This commit is contained in:
Thomas Peterson 2025-03-17 15:46:05 +01:00
parent 502bbaa780
commit a98f1749b4
13 changed files with 448 additions and 9 deletions

File diff suppressed because one or more lines are too long

View File

@ -52,6 +52,7 @@ class Valid
$valid = false; $valid = false;
$nextShouldBeValid = false; $nextShouldBeValid = false;
$isDefaultValid = true;
/** @var Select\Opt $opt */ /** @var Select\Opt $opt */
foreach ($option->getOptions() as $opt) { foreach ($option->getOptions() as $opt) {
@ -92,6 +93,10 @@ class Valid
$opt->setIsValid(true); $opt->setIsValid(true);
} }
if(!$opt->isValid() && $opt->getId() == $option->getDefault()) {
$isDefaultValid = false;
}
if($option->getDefault() === null && $opt->isValid()) { if($option->getDefault() === null && $opt->isValid()) {
$option->setDefault($opt->getId()); $option->setDefault($opt->getId());
if(!$this->engine->hasVariable($option->getId())) { if(!$this->engine->hasVariable($option->getId())) {
@ -99,6 +104,12 @@ class Valid
} }
} }
if($option->getDefault() !== null && $opt->isValid() && !$isDefaultValid) {
$option->setDefault($opt->getId());
$this->engine->setVariable($option->getId(), $opt->getId());
$isDefaultValid = true;
}
if($option instanceof Checkbox) { if($option instanceof Checkbox) {
if (isset($this->engine->getVariables()[$option->getId()]) && is_array($this->engine->getVariables()[$option->getId()]) && in_array($opt->getId(), $this->engine->getVariables()[$option->getId()])) { if (isset($this->engine->getVariables()[$option->getId()]) && is_array($this->engine->getVariables()[$option->getId()]) && in_array($opt->getId(), $this->engine->getVariables()[$option->getId()])) {
$opt->setIsSelected(true); $opt->setIsSelected(true);

View File

@ -181,7 +181,7 @@ class CalcTest extends TestCase
0 => '1', 0 => '1',
), ),
]); ]);
$this->assertSame(37.74, $this->engine->getPrice()); $this->assertSame(34.77, $this->engine->getPrice());
} }
} }

View File

@ -0,0 +1,54 @@
<?php
namespace PSC\Library\Calc\Tests\Customer\HH;
use PHPUnit\Framework\TestCase;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\PaperContainer;
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
class CalcTest extends TestCase
{
/** @var Engine */
protected $engine = null;
public function setUp(): void
{
$repository = new PaperRepostory();
$paperContainer = new PaperContainer();
$paperContainer->parse(simplexml_load_string(file_get_contents(__DIR__ . '/papierContainer.xml')));
$this->engine = new Engine();
$this->engine->setPaperContainer($paperContainer);
$this->engine->setPaperRepository($repository);
$this->engine->setFormulas(file_get_contents(__DIR__ . '/formels.txt'));
$this->engine->setParameters(file_get_contents(__DIR__ . '/parameters.txt'));
$this->engine->setTemplates(file_get_contents(__DIR__ . '/calcTemplates.xml'));
$this->engine->loadString(file_get_contents(__DIR__ . '/calc.xml'));
}
public function tearDown(): void
{
$this->engine = null;
}
public function testPrice(): void
{
$this->engine->calc();
$this->assertSame(105.0, $this->engine->getPrice());
}
public function testDefaultSelectValues(): void
{
$this->engine->setVariable('durchmesser', 10);
$this->engine->calc();
$this->assertSame(176.3, $this->engine->getPrice());
}
}

332
tests/Customer/HH/calc.xml Normal file
View File

@ -0,0 +1,332 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>Auf Boden oder Rolle</name>
<kommentar></kommentar>
<uploads>
<upload id="neutral" name="Druckdaten" description="Bitte laden sie eine PDF für den Druck hoch"/>
</uploads>
<!-- ab hier beginnt die Eingabemaske -->
<!-- Durchmesser -->
<option id="durchmesser" name="Durchmesser" type="Select" default="16" help="Wählen Sie den Durchmesser">
<opt id="10" name="10 mm"></opt>
<opt id="15" name="15 mm"></opt>
<opt id="16" name="16 mm"></opt>
<opt id="20" name="20 mm"></opt>
<opt id="25" name="25 mm"></opt>
<opt id="30" name="30 mm"></opt>
<opt id="35" name="35 mm"></opt>
<opt id="40" name="40 mm"></opt>
<opt id="50" name="50 mm"></opt>
<opt id="100" name="100 mm"></opt>
<opt id="150" name="150 mm"></opt>
<opt id="200" name="200 mm"></opt>
<opt id="300" name="300 mm"></opt>>
</option>
<!-- Material -->
<option id="material" name="Material" type="Select" default="1" help="Wählen Sie das Material">
<opt id="1" name="Dokumentenfolie auf Bogen gestanzt (fälschungssicher)">
<durchmesser>
<grenze>16,20,25,30,35,40,50</grenze>
</durchmesser>
</opt>
<opt id="2" name="Folie transparent auf Bogen oder Rolle">
<durchmesser>
<grenze>16,20,25,30,35,40,50,100,150,200,300</grenze>
</durchmesser>
</opt>
<opt id="3" name="PE-Folie Rolle (mit je 1.000 Stück)">
<durchmesser>
<grenze>10,15,20,25,30,35,40</grenze>
</durchmesser>
</opt>
<opt id="4" name="PVC-Folie Einzelplakette">
<durchmesser>
<grenze>100,150,200,300</grenze>
</durchmesser>
</opt>
</option>
<!-- Stück -->
<option id="stueck" name="Stück" type="Select" default="500" help="Wählen Sie den Durchmesser">
<opt id="100" name="100">
<material>
<grenze value="2">
<durchmesser>
<grenze formel="32.27">100</grenze>
<grenze formel="58.09">150</grenze>
<grenze formel="81.33">200</grenze>
<grenze formel="113.86">300</grenze>
</durchmesser>
</grenze>
<grenze value="4">
<durchmesser>
<grenze formel="107.58">100</grenze>
<grenze formel="193.64">150</grenze>
<grenze formel="271.09">200</grenze>
<grenze formel="379.53">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="250" name="250">
<material>
<grenze value="1">
<durchmesser>
<grenze formel="80.85">30</grenze>
<grenze formel="85.10">35</grenze>
<grenze formel="90.575">40</grenze>
<grenze formel="96.05">50</grenze>
</durchmesser>
</grenze>
</material>
<material>
<grenze value="2">
<durchmesser>
<grenze formel="24.25">30</grenze>
<grenze formel="25.525">35</grenze>
<grenze formel="27.175">40</grenze>
<grenze formel="28.825">50</grenze>
<grenze formel="64.55">100</grenze>
<grenze formel="116.175">150</grenze>
<grenze formel="162.65">200</grenze>
<grenze formel="227.725">300</grenze>
</durchmesser>
</grenze>
</material>
<material>
<grenze value="4">
<durchmesser>
<grenze formel="215.15">100</grenze>
<grenze formel="387.30">150</grenze>
<grenze formel="542.175">200</grenze>
<grenze formel="759.05">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="500" name="500">
<material>
<grenze value="1">
<durchmesser>
<grenze formel="105.00">16</grenze>
<grenze formel="108.70">20</grenze>
<grenze formel="122.50">25</grenze>
<grenze formel="129.35">30</grenze>
<grenze formel="136.15">35</grenze>
<grenze formel="144.95">40</grenze>
<grenze formel="153.70">50</grenze>
</durchmesser>
</grenze>
<grenze value="2">
<durchmesser>
<grenze formel="31.50">16</grenze>
<grenze formel="32.60">20</grenze>
<grenze formel="36.75">25</grenze>
<grenze formel="38.80">30</grenze>
<grenze formel="40.85">35</grenze>
<grenze formel="43.50">40</grenze>
<grenze formel="46.10">50</grenze>
<grenze formel="103.30">100</grenze>
<grenze formel="185.90">150</grenze>
<grenze formel="260.25">200</grenze>
<grenze formel="264.35">300</grenze>
</durchmesser>
</grenze>
<grenze value="4">
<durchmesser>
<grenze formel="344.25">100</grenze>
<grenze formel="619.65">150</grenze>
<grenze formel="867.50">200</grenze>
<grenze formel="1214.50">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="1000" name="1.000">
<material>
<grenze value="1">
<durchmesser>
<grenze formel="168.00">16</grenze>
<grenze formel="173.90">20</grenze>
<grenze formel="196.00">25</grenze>
<grenze formel="207.00">30</grenze>
<grenze formel="217.90">35</grenze>
<grenze formel="231.90">40</grenze>
<grenze formel="245.90">50</grenze>
</durchmesser>
</grenze>
<grenze value="2">
<durchmesser>
<grenze formel="50.40">16</grenze>
<grenze formel="52.20">20</grenze>
<grenze formel="58.80">25</grenze>
<grenze formel="62.10">30</grenze>
<grenze formel="65.40">35</grenze>
<grenze formel="69.60">40</grenze>
<grenze formel="73.80">50</grenze>
<grenze formel="165.20">100</grenze>
<grenze formel="297.40">150</grenze>
<grenze formel="416.40">200</grenze>
<grenze formel="583.00">300</grenze>
</durchmesser>
</grenze>
<grenze value="3">
<durchmesser>
<grenze formel="176.30">10</grenze>
<grenze formel="182.18">15</grenze>
<grenze formel="188.06">20</grenze>
<grenze formel="193.94">25</grenze>
<grenze formel="199.82">30</grenze>
<grenze formel="205.70">35</grenze>
<grenze formel="211.58">40</grenze>
</durchmesser>
</grenze>
<grenze value="4">
<durchmesser>
<grenze formel="550.80">100</grenze>
<grenze formel="991.40">150</grenze>
<grenze formel="1387.00">200</grenze>
<grenze formel="1943.20">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="1500" name="1.500">
<material>
<grenze value="1">
<durchmesser>
<grenze formel="226.80">16</grenze>
<grenze formel="234.75">20</grenze>
<grenze formel="264.60">25</grenze>
<grenze formel="279.45">30</grenze>
<grenze formel="294.15">35</grenze>
<grenze formel="313.05">40</grenze>
<grenze formel="331.95">50</grenze>
</durchmesser>
</grenze>
<grenze value="2">
<durchmesser>
<grenze formel="68.10">16</grenze>
<grenze formel="70.50">20</grenze>
<grenze formel="79.35">25</grenze>
<grenze formel="83.85">30</grenze>
<grenze formel="86.55">35</grenze>
<grenze formel="93.90">40</grenze>
<grenze formel="99.60">50</grenze>
<grenze formel="198.30">100</grenze>
<grenze formel="356.85">150</grenze>
<grenze formel="499.65">200</grenze>
<grenze formel="699.60">300</grenze>
</durchmesser>
</grenze>
<grenze value="4">
<durchmesser>
<grenze formel="660.90">100</grenze>
<grenze formel="1189.65">150</grenze>
<grenze formel="1665.60">200</grenze>
<grenze formel="2331.75">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="2000" name="2.000">
<material>
<grenze value="1">
<durchmesser>
<grenze formel="272.20">16</grenze>
<grenze formel="281.60">20</grenze>
<grenze formel="317.60">25</grenze>
<grenze formel="335.40">30</grenze>
<grenze formel="353.00">35</grenze>
<grenze formel="375.80">40</grenze>
<grenze formel="398.40">50</grenze>
</durchmesser>
</grenze>
<grenze value="2">
<durchmesser>
<grenze formel="81.60">16</grenze>
<grenze formel="84.40">20</grenze>
<grenze formel="95.20">25</grenze>
<grenze formel="100.60">30</grenze>
<grenze formel="106.00">35</grenze>
<grenze formel="112.80">40</grenze>
<grenze formel="119.60">50</grenze>
<grenze formel="211.60">100</grenze>
<grenze formel="380.80">150</grenze>
<grenze formel="533.00">200</grenze>
<grenze formel="746.20">300</grenze>
</durchmesser>
</grenze>
<grenze value="3">
<durchmesser>
<grenze formel="274.20">10</grenze>
<grenze formel="285.96">15</grenze>
<grenze formel="297.72">20</grenze>
<grenze formel="309.48">25</grenze>
<grenze formel="321.24">30</grenze>
<grenze formel="333.00">35</grenze>
<grenze formel="344.76">40</grenze>
</durchmesser>
</grenze>
<grenze value="4">
<durchmesser>
<grenze formel="705.00">100</grenze>
<grenze formel="1269.00">150</grenze>
<grenze formel="1766.60">200</grenze>
<grenze formel="2487.20">300</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="5000" name="5.000">
<material>
<grenze value="3">
<durchmesser>
<grenze formel="487.50">10</grenze>
<grenze formel="518.90">15</grenze>
<grenze formel="548.30">20</grenze>
<grenze formel="577.70">25</grenze>
<grenze formel="607.10">30</grenze>
<grenze formel="636.50">35</grenze>
<grenze formel="665.90">40</grenze>
</durchmesser>
</grenze>
</material>
</opt>
<opt id="10000" name="10.000">
<material>
<grenze value="3">
<durchmesser>
<grenze formel="734.00">10</grenze>
<grenze formel="792.80">15</grenze>
<grenze formel="851.60">20</grenze>
<grenze formel="910.40">25</grenze>
<grenze formel="969.20">30</grenze>
<grenze formel="1028.00">35</grenze>
<grenze formel="1086.80">40</grenze>
</durchmesser>
</grenze>
</material>
</opt>
</option>
<!-- Ende Eingabemaske -->
<!-- Gewichtsberechnung
<option id="weight" name="weight" type="Hidden" default="1">
<auflage>
<grenze calc_value="((($CVbreite_format1$CV)*$CVhoehe_format1$CV/1000000*(($Vseiten_gesamt$V-4)/$Vinhalt_druck$V)*$Vpapiersorte_inhalt_grammatur$V)/1000*$Vauflage$V)+((($CVbreite_format1$CV)*$CVhoehe_format1$CV/1000000*2*$Vpapiersorte_umschlag_grammatur$V)/1000*$Vauflage$V)">1-</grenze>
</auflage>
</option>
-->
</artikel>
</kalkulation>

View File

@ -0,0 +1,4 @@
<root>
</root>

View File

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<container>
<papiercontainer id="einleger">
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
</papiercontainer>
</container>

View File

View File

@ -55,12 +55,14 @@ class CalcComplexTest extends TestCase
public function testAndereProduktArt2(): void public function testAndereProduktArt2(): void
{ {
$this->engine->setVariable('produktart_nopresentationpdf', 2); $this->engine->setVariable('produktart_nopresentationpdf', 2);
$this->assertSame(31.63, $this->engine->getPrice()); $this->engine->calc();
$this->assertSame(46.25, $this->engine->getPrice());
} }
public function testAndereProduktArt3(): void public function testAndereProduktArt3(): void
{ {
$this->engine->setVariable('produktart_nopresentationpdf', 3); $this->engine->setVariable('produktart_nopresentationpdf', 3);
$this->assertSame(31.63, $this->engine->getPrice()); $this->assertSame(36.22, $this->engine->getPrice());
} }
} }

View File

@ -27,8 +27,28 @@
</option> </option>
<!-- ### Auswahl 3 ### --> <!-- ### Auswahl 3 ### -->
<option id="auswahl3" name="Auswahl 3 (beeinflusst von Auswahl 2)" type="Select" default="30"> <option id="auswahl3" name="Auswahl 3 (beeinflusst von Auswahl 2)" type="Select" default="30">
<opt id="30" name="Option 3-10"><auswahl2><grenze>20</grenze></auswahl2><og1><grenze calc_value="110" calc_value_2="111" calc_value_3="112">1</grenze></og1><og2><grenze calc_value="210" calc_value_2="211" calc_value_3="212">1</grenze></og2></opt> <opt id="30" name="Option 3-10">
<opt id="31" name="Option 3-11"><auswahl2><grenze>21</grenze></auswahl2><og1><grenze calc_value="120" calc_value_2="121" calc_value_3="122">1</grenze></og1><og2><grenze calc_value="220" calc_value_2="221" calc_value_3="222">1</grenze></og2></opt> <auswahl2>
<grenze>20</grenze>
</auswahl2>
<og1>
<grenze calc_value="110" calc_value_2="111" calc_value_3="112">1</grenze>
</og1>
<og2>
<grenze calc_value="210" calc_value_2="211" calc_value_3="212">1</grenze>
</og2>
</opt>
<opt id="31" name="Option 3-11">
<auswahl2>
<grenze>21</grenze>
</auswahl2>
<og1>
<grenze calc_value="120" calc_value_2="121" calc_value_3="122">1</grenze>
</og1>
<og2>
<grenze calc_value="220" calc_value_2="221" calc_value_3="222">1</grenze>
</og2>
</opt>
<opt id="32" name="Option 3-12"><auswahl2><grenze>20,22</grenze></auswahl2><og1><grenze calc_value="130" calc_value_2="131" calc_value_3="132">1</grenze></og1><og2><grenze calc_value="230" calc_value_2="231" calc_value_3="232">1</grenze></og2></opt> <opt id="32" name="Option 3-12"><auswahl2><grenze>20,22</grenze></auswahl2><og1><grenze calc_value="130" calc_value_2="131" calc_value_3="132">1</grenze></og1><og2><grenze calc_value="230" calc_value_2="231" calc_value_3="232">1</grenze></og2></opt>
</option> </option>
<!-- ### Eingabe 1 ### --> <!-- ### Eingabe 1 ### -->

View File

@ -374,7 +374,14 @@
<!-- <option id="aus" name="offenes Endformat" type="Select" default="02960210"> --> <!-- <option id="aus" name="offenes Endformat" type="Select" default="02960210"> -->
<option id="oformat" name="offenes Endformat" type="Select" default="02100297"> <option id="oformat" name="offenes Endformat" type="Select" default="02100297">
<!-- Standardprodukt DIN Formate --> <!-- Standardprodukt DIN Formate -->
<opt id="02100297" name="210 x 297 mm (Hochformat)"><eformat><grenze calc_value="210" calc_value_2="297" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="2" calc_value_9="1*$CVpapierauswahl_og1$CV">62370</grenze></eformat><og1><grenze calc_value="210" calc_value_2="297">1</grenze></og1></opt> <opt id="02100297" name="210 x 297 mm (Hochformat)">
<eformat>
<grenze calc_value="210" calc_value_2="297" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="2" calc_value_9="1*$CVpapierauswahl_og1$CV">62370</grenze>
</eformat>
<og1>
<grenze calc_value="210" calc_value_2="297">1</grenze>
</og1>
</opt>
<opt id="02970210" name="297 x 210 mm (Querformat)"><eformat><grenze calc_value="297" calc_value_2="210" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="2" calc_value_9="1*$CVpapierauswahl_og1$CV">62370</grenze></eformat><og1><grenze calc_value="297" calc_value_2="210">1</grenze></og1></opt> <opt id="02970210" name="297 x 210 mm (Querformat)"><eformat><grenze calc_value="297" calc_value_2="210" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="2" calc_value_9="1*$CVpapierauswahl_og1$CV">62370</grenze></eformat><og1><grenze calc_value="297" calc_value_2="210">1</grenze></og1></opt>
<opt id="01480210" name="148 x 210 mm (Hochformat)"><eformat><grenze calc_value="148" calc_value_2="210" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="4" calc_value_9="1*$CVpapierauswahl_og1$CV">31080</grenze></eformat><og1><grenze calc_value="148" calc_value_2="210">1</grenze></og1></opt> <opt id="01480210" name="148 x 210 mm (Hochformat)"><eformat><grenze calc_value="148" calc_value_2="210" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="4" calc_value_9="1*$CVpapierauswahl_og1$CV">31080</grenze></eformat><og1><grenze calc_value="148" calc_value_2="210">1</grenze></og1></opt>
<opt id="02100148" name="210 x 148 mm (Querformat)"><eformat><grenze calc_value="210" calc_value_2="148" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="4" calc_value_9="1*$CVpapierauswahl_og1$CV">31080</grenze></eformat><og1><grenze calc_value="210" calc_value_2="148">1</grenze></og1></opt> <opt id="02100148" name="210 x 148 mm (Querformat)"><eformat><grenze calc_value="210" calc_value_2="148" calc_value_3="$Vpapier_digital_fix$V*$CVpapierauswahl_og1$CV+$Vpapierbreite_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_4="$Vpapier_digital_var$V*$CVpapierauswahl_og1$CV+$Vpapierhoehe_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_5="$Vpapier_volume$V*$CVpapierauswahl_og1$CV+$Vpapierstaerke_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_6="$Vpapier_grammatur$V*$CVpapierauswahl_og1$CV+$Vpapiergrammatur_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_7="$Vpapier_value$V*$CVpapierauswahl_og1$CV+$Vpapierpreis_nopresentationpdf$V*$CVpapierauswahl_og1_10$CV" calc_value_8="4" calc_value_9="1*$CVpapierauswahl_og1$CV">31080</grenze></eformat><og1><grenze calc_value="210" calc_value_2="148">1</grenze></og1></opt>

View File

@ -38,14 +38,14 @@ class CalcTest extends TestCase
public function testPrice(): void public function testPrice(): void
{ {
self::assertSame(32.22, $this->engine->getPrice()); self::assertSame(131.86, $this->engine->getPrice());
} }
public function testPriceProductArt(): void public function testPriceProductArt(): void
{ {
$this->engine->setVariable('produktart_nopresentationpdf', 61); $this->engine->setVariable('produktart_nopresentationpdf', 61);
$this->engine->calc(); $this->engine->calc();
self::assertSame(82.79, $this->engine->getPrice()); self::assertSame(199.6, $this->engine->getPrice());
} }
} }