diff --git a/src/Calc/Valid.php b/src/Calc/Valid.php
index 5885611..b6974fe 100644
--- a/src/Calc/Valid.php
+++ b/src/Calc/Valid.php
@@ -51,6 +51,7 @@ class Valid
if($option instanceof Select|| $option instanceof Checkbox) {
$valid = false;
+ $nextShouldBeValid = false;
/** @var Select\Opt $opt */
foreach ($option->getOptions() as $opt) {
@@ -90,9 +91,21 @@ class Valid
}else {
if ($this->engine->getVariables()[$option->getId()] == $opt->getId()) {
- $opt->setIsSelected(true);
+ if(!$opt->isValid()) {
+ $nextShouldBeValid = true;
+ } else {
+ $opt->setIsSelected(true);
+ }
+
} else {
- $opt->setIsSelected(false);
+ if($nextShouldBeValid && $opt->isValid()) {
+ $this->engine->getVariables()[$option->getId()] = $opt->getId();
+ $opt->setIsSelected(true);
+ $nextShouldBeValid = false;
+ } else{
+ $opt->setIsSelected(false);
+ }
+
}
}
diff --git a/tests/Customer/K/CalcTest.php b/tests/Customer/K/CalcTest.php
index db6bbdb..508c052 100644
--- a/tests/Customer/K/CalcTest.php
+++ b/tests/Customer/K/CalcTest.php
@@ -40,9 +40,10 @@ class CalcTest extends TestCase
public function testCalcPlan(): void
{
$this->engine->setVariable('anz_ausfuhren', 2500);
+ $this->engine->calc();
/** @var Select $option */
$option = $this->engine->getArticle()->getOptionById('tarif');
-
- $this->assertSame("Basic", $option->getValue());
+
+ $this->assertSame("Business", $option->getValue());
}
}
diff --git a/tests/Customer/Q/CalcTest.php b/tests/Customer/Q/CalcTest.php
new file mode 100644
index 0000000..8319768
--- /dev/null
+++ b/tests/Customer/Q/CalcTest.php
@@ -0,0 +1,58 @@
+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 testCalcPrice(): void
+ {
+ $article = $this->engine->getArticle();
+
+ $this->assertSame(11.22, $this->engine->getPrice());
+
+ }
+
+ public function testCalcPriceDefaultChange(): void
+ {
+ $this->engine->setVariable('print', '885731');
+
+ $this->assertSame(50.29, $this->engine->getPrice());
+
+ }
+
+}
diff --git a/tests/Customer/Q/calc.xml b/tests/Customer/Q/calc.xml
new file mode 100644
index 0000000..06bb3d5
--- /dev/null
+++ b/tests/Customer/Q/calc.xml
@@ -0,0 +1,1615 @@
+
+
+
+ Klapp-Visitenkarten quer 4/4 farbig (beidseitiger Druck)
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Customer/Q/calcTemplates.xml b/tests/Customer/Q/calcTemplates.xml
new file mode 100644
index 0000000..093d936
--- /dev/null
+++ b/tests/Customer/Q/calcTemplates.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/Customer/Q/formels.txt b/tests/Customer/Q/formels.txt
new file mode 100644
index 0000000..e27ee52
--- /dev/null
+++ b/tests/Customer/Q/formels.txt
@@ -0,0 +1,127 @@
+//Flyer
+$flyer40='($Pflyerklick$P*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$flyer44='($Pflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$fflyer44='($Pfflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+
+// Karten
+$weihnachtskarte2s='((0.5*$Vauflage$V)+(5))/1.19';
+$weihnachtskarte4s='((1.5*$Vauflage$V)+(5))/1.19';
+$karte40='($Pkarteklick$P*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$karte44='($Pkarteklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$faltkarte44='($Pfkarteklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$einleger='($Pflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
+$planonut='$pnuten+($Vauflage$V*$pnut$P)';
+$geschlossennut='$pnuten+($Vauflage$V*$pnutgeschlossen$P)';
+
+//kalender
+$kalendera5='($Vauflage$V*$Vseiten$V*.3)+($Vauflage$V*6.96)+5';
+$kalendera4='($Vauflage$V*$Vseiten$V*.5)+($Vauflage$V*7.96)+5';
+$kalendera3='($Vauflage$V*$Vseiten$V*.75)+($Vauflage$V*9.2)+5';
+
+//Bogen
+$bogen40='($Pfarbdruck1$P*$Vauflage$V*$Vsorten$V)+($Vpapier_value$V*$Vauflage$V)';
+$bogen44='($Pflyerklick$P*2*$Vauflage$V*$Vsorten$V)+($Vpapier_value$V*$Vauflage$V)';
+// Visitenkarte einseitig doppelseitigKlappvisitenkarten
+$vk40='$Pvkpauschale$P+($Pvisitenkarte$P*$Vauflage$V/10)+(($Vpapier_value$V*$Vauflage$V)/20)';
+$vk44='$Pvkpauschale$P+($Pvisitenkarte$P*$Vauflage$V*2/10)+(($Vpapier_value$V*$Vauflage$V)/20)';
+$vkk44='20+($Pvisitenkartek$P*$Vauflage$V)*4+$Pvkpauschale$P+($Vpapier_value$V/10*$Vauflage$V)+($Pnut$P*$Vauflage$V)+(($Vpapier_value$V*$Vauflage$V)/20)';
+
+// Poster
+$rahmen='((((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V))/10000)*30.5)+($Vauflage$V*15)';
+$poster='2.5+(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pposterqm1$P)/10000)';
+$postera1='(($Pposterqm1$P/2)*$Vauflage$V)+$Pposterpauschale$P';
+$fhhpostera1='(($Pposterqm1$P/2)*$Vmenge$V)';
+$postera0='(($Pposterqm1$P/1)*$Vauflage$V)+$Pposterpauschale$P';
+
+//plakat
+$plakata3='(0.25*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)+19.8';
+$plakata4='(0.15*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V/2)+19.9';
+$plakat160='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat160qm1$P)/10000)+$Pplakatpauschale$P';
+$plakat140='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat140qm1$P)/10000)';
+$plakat80='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat80qm1$P)/10000)';
+
+
+//Leinwand
+$leinwand='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*70)/10000)';
+$leisten='((tonumber($Vkurz$V)+tonumber($Vlang$V)*$Vauflage$V)*2)*5.5/100';
+$aufziehen='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*40)/10000)+(5*$Vauflage$V)';
+
+//Banner
+$banner='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pbannerqm$P)/10000)';
+$mesh='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pmeshqm$P)/10000)';
+$blockout='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pblockoutqm$P)/10000)';
+$pp='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pppqm$P)/10000)';
+$lamprotect='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*30)/10000)';
+$solprotect='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*12)/10000)';
+$solprotectmm='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*12)/1000000)';
+$oesen='((tonumber($Vkurz$V)+tonumber($Vlang$V)*$Vauflage$V)*2)/50';
+
+// Tapete
+$tapete='(((tonumber($Vkurz$V)*tonumber($Vlang$V))*$Vauflage$V)*(44.5)/10000)';
+
+//Klebefolie
+
+$cutfolie='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Pcutfolieqm$P)/10000)+$Pcutfoliepausch$P';
+$cuttransfer='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Pcuttransferqm$P)/10000)';
+$aufkleber='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Paufkleberqm$P)/1000000)+25';
+$klebefolie='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pklebefolieqm$P)/10000)';
+$diafilm='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*(70))/10000)';
+
+//Plotten
+$pltfarbe='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotfarbe$P)/1000000)';
+$pltsw='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotsw$P)/1000000)';
+$pltfarbefl='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotfarbefl$P)/1000000)';
+//Laminieren
+$laminierenposter='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Plaminieren$P)/10000)';
+//Kaschieren
+$kaschieren3hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk3hs$P)/10000+$Pruestkosten$P';
+$kaschieren5hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5hs$P)/10000+$Pruestkosten$P';
+$kaschieren5fsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
+$kaschieren5hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
+$kaschieren10fsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk10fs$P)/10000+$Pruestkosten$P';
+$kaschierenaluposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkalu$P)/10000+$Pruestkosten$P';
+$kaschierenalufolie='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkalu$P)/11000';
+
+$kaschieren3hs='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkaschieren3hs$P)/10000+$Pruestkosten$P';
+$kaschieren5hs='(($Vauflage$V)*$Pk5hs$P)/10000+$Pruestkosten$P';
+$kaschieren10hs='(($Vauflage$V)*$Pk10hs$P)/10000+$Pruestkosten$P';
+$kaschieren5fs='(($Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
+$kaschieren10fs='(($Vauflage$V)*$Pk10fs$P)/10000+$Pruestkosten$P';
+$kaschierenalu='(($Vauflage$V)*$Pkalu$P)/10000+$Pruestkosten$P';
+
+//RollUpbasic
+$rollbasic='(144.35/1.19*$Vauflage$V)';
+
+// Cellophanieren
+$cello='10+$Pcello$P*$Vauflage$V';
+$cellodps='10+$Pcello$P*2*$Vauflage$V';
+$formelvkcello='5+($Pcello$P*$Vauflage$V/20)';
+
+//Taschenlaminat
+$formeltl='$Ptaschenlaminieren3$P*$Vauflage$V';
+
+//eckenrunden
+$formel7='$Peckenrundeneinrichten$P+($Peckenrunden$P*$Vauflage$V)';
+//Falten
+$falten='$Pfalte$P*$Vauflage$V';
+//nuten
+$nutplano='$Pnuten$P+($Pnut$P*$Vauflage$V)';
+// nuten für kombiartikel
+$nutplan='($Pnut$P*$Vauflage$V)';
+$nutzu='$Pnuten$P+($Pnutgeschlossen$P*$Vauflage$V)';
+//heften
+$heften='10+(0.15*$Vauflage$V)';
+
+//Briefpapier
+$briefpapier='($Vauflage$V*0.10)+25+($Vpapier_value$V/2*$Vauflage$V)';
+
+// Zeitungen
+// abizeitung
+$abi_a4_sw='($Vauflage$V*$Vswseiten$V)*0.025)+($Vauflage$V*.08)';
+//Schuelerzeitung
+$sza5fc='($Vauflage$V*0.6)+10+(($Vauflage$V*$Vswswseiten$V)*0.015)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
+$sza4fc='($Vauflage$V*0.6)+10+(($Vauflage$V*$Vswswseiten$V)*0.025)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
+$sza5='10+(($Vauflage$V*$Vswswseiten$V)*0.015)+($Vauflage$V*0.15)+($Vpapier_value$V/4*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/4*$Vumschlag_value$V)';
+$sza4='10+(($Vauflage$V*$Vswswseiten$V)*0.025)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
+$sz4ca5='10+(($Vauflage$V*$Vswswseiten$V)*0.15)+($Vauflage$V*0.15)+($Vpapier_value$V/4*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/4*$Vumschlag_value$V)';
+$sz4ca4='10+(($Vauflage$V*$Vswswseiten$V)*0.25)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
diff --git a/tests/Customer/Q/papierContainer.xml b/tests/Customer/Q/papierContainer.xml
new file mode 100644
index 0000000..58f9d81
--- /dev/null
+++ b/tests/Customer/Q/papierContainer.xml
@@ -0,0 +1,330 @@
+
+
+
+
+//Proppe
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+ 2
+
+
+
+
+
+ Diese 2 Zeilen standen vorher innerhalb des Papiercontainers an letzter Stelle. Wenn 4-seitige Anhägeeti in Klak aktiv, dann wieder einfügen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Customer/Q/parameters.txt b/tests/Customer/Q/parameters.txt
new file mode 100644
index 0000000..e4fe065
--- /dev/null
+++ b/tests/Customer/Q/parameters.txt
@@ -0,0 +1,192 @@
+//Proppe
+$gewinnzuschlag=1.1;
+$druckbogen_breite_proppe=490;
+$druckbogen_hoehe_proppe=325;
+$stundensatz_datencheck_proppe=68;
+$beschnitt_proppe=1.5;
+$plattenpreis_proppe=13;
+$stundensatz_druck_proppe=135;
+$einrichtezeit_druck_proppe=0.6;
+$zuschussfaktor_proppe=1.01;
+$maschinenleistung_druck_proppe=6000;
+
+$material_fix_propppe=220;
+$farbe_kg_propppe=16.5;
+
+$stundensatz_schneiden_proppe=61;
+$hubhoehe_schneiden_proppe=75;
+$zeit_je_schnitt_proppe=0.3;
+$schneiden_ruesten_proppe=9;
+
+$ecken_runden_ruesten_proppe=6;
+$ecken_runden_zeit_pro_hub=25;
+$hubhoehe_ecken_proppe=30;
+$stundensatz_ecken_runden_proppe=45;
+
+$oesen_ruesten_proppe=6;
+$oesen_anzahl_pro_h=1000;
+$stundensatz_oesen_proppe=45;
+$material_oesen_proppe=0.016;
+
+$lochen_ruesten_proppe=6;
+$lochen_zeit_pro_hub=90;
+$hubhoehe_lochen_proppe=50;
+$stundensatz_lochen_proppe=45;
+
+$stanzen_ruesten_proppe=15;
+$stanzen_zeit_pro_1000_proppe=5;
+$stanzen_werkzeug_proppe=650;
+$stundensatz_stanzen_proppe=65;
+
+$praegen_pro_h_proppe=2250;
+$praegestempel_proppe=85;
+$stundensatz_praegen_proppe=70;
+
+$heissfolie_pro_h_proppe=1900;
+$heissfoliestempel_proppe=65;
+$stundensatz_heissfolie_proppe=135;
+
+$falzen_ruesten_proppe=20.4;
+$falzen_pro_h_proppe=4000;
+$stundensatz_falzen_proppe=45;
+
+$buendeln_pro_h_proppe=80000;
+$stundensatz_buendeln_proppe=40;
+
+$verpackung_breite_mm_proppe=214;
+$verpackung_laenge_mm_proppe=302;
+$verpackung_hoehe_mm_proppe=100;
+$verpackung_material_proppe=0.32;
+$verpackung_material_umverp_proppe=1.8;
+$karton_gewicht_proppe=200;
+$umkarton_gewicht_proppe=300;
+$zuschlag_versand_proppe=3;
+
+$versandkosten_proppe_bis_05000g=9.2;
+$versandkosten_proppe_bis_10000g=10.2;
+$versandkosten_proppe_bis_20000g=11.2;
+$versandkosten_proppe_bis_30000g=17.2;
+$versandkosten_proppe_bis_35000g=26.3;
+$versandkosten_proppe_bis_40000g=27.3;
+$versandkosten_proppe_bis_50000g=28.3;
+$versandkosten_proppe_bis_60000g=34.3;
+$versandkosten_proppe_bis_65000g=43.4;
+$versandkosten_proppe_bis_70000g=44.4;
+$versandkosten_proppe_bis_80000g=45.4;
+$versandkosten_proppe_bis_90000g=51.4;
+
+$auftragspauschale_proppe=35;
+
+
+
+//express
+$exp1=0.1;
+$exp2=1.2;
+
+
+// copyshop
+$swst1=0.08/1.07;
+$swst2=0.065/1.07;
+$swst3=0.055/1.07;
+$swst4=0.05/1.07;
+$swst5=0.045/1.07;
+$swst6=0.035/1.07;
+$titeldruck=0.6/1.07;
+$fst1=0.9/1.07;
+$fst2=0.75/1.07;
+$fst3=0.55/1.07;
+$fst4=0.45/1.07;
+$fst5=0.4/1.07;
+$fst6=0.25/1.07;
+$fswst1=0.2/1.07;
+$fswst2=0.11/1.07;
+$fswst3=0.10/1.07;
+$fswst4=0.09/1.07;
+$fswst5=0.08/1.07;
+$fswst6=0.06/1.07;
+$b100=3.3/1.07;
+$b150=3.7/1.07;
+$b200=4.3/1.07;
+$b300=5.3/1.07;
+$b300plus=6.3/1.07;
+//shopende
+//farbdrucke
+$farbdruck1=0.80;
+$farbdruck2=0.80*0.85;
+$farbdruck3=0.80*0.75;
+$farbdruck4=0.80*0.65;
+$farbdruck5=0.80*0.55;
+$farbdruck6=0.80*0.45;
+$farbdruck7=0.80*0.37;
+$farbdruck8=0.80*0.31;
+$pauschale=30;
+$posterpauschale=0;
+$posterqm1=39.85/1.19;
+$plakatpauschale=10;
+$plakat140qm1=25;
+$plakat160qm1=20;
+$plakat80qm1=15;
+$plakatA3=10;
+$plakataffichenqm1=17.5;
+
+$aufkleberqm=45;
+$klebefolieqm=45;
+$cutfolieqm=45;
+$cuttransferqm=15;
+$cutfoliepausch=25;
+$solprotectqm=15;
+$wallmountqm=60;
+//banner
+$bannerqm=40;
+$meshqm=40;
+$ppqm=40;
+$blockoutqm=40;
+
+$vkpauschale=17.5;
+$laminieren=30;
+
+//Flyer
+$flyerschneiden=7.5;
+$fflyerschneiden=8;
+$flyer=20;
+$fflyer=30;
+$karten=20;
+//$karten=35;
+$fkarten=25;
+$flyerklick=0.3;
+$fflyerklick=0.3;
+$fflyerfalten=0.01;
+$fkarteklick=0.310;
+$karteklick=0.25;
+// Weihnachtskarten
+
+$klick=0.5;
+$visitenkarte=0.60;
+$k3hs=50;
+$k5hs=55;
+$k10hs=65;
+$k5fs=55;
+$k10fs=59.9;
+$kalu=89.99;
+$cello=0.1;
+$taschenlaminierena4=0.8;
+$taschenlaminierena3=1.25;
+$eckenrunden=0.01;
+$eckenrundeneinrichten=5;
+$nuten=12;
+$nut=.12;
+$nutgeschlossen=.18;
+$schneiden=2.5;
+$falten=0.01;
+$MiniRolli3=21.99;
+$MiniRolli4=16.99;
+$ruestkosten=0;
+$tbk=.60;
+$tbkpauschale=30;
+//plotten
+$plotsw=3.95;
+$plotfarbe=9.95;
+$plotfarbefl=14.95;
+
+//aufschlag
+$aufschlag=1.5;