diff --git a/src/Calc/Calc.php b/src/Calc/Calc.php
index fe7e907..0c54289 100644
--- a/src/Calc/Calc.php
+++ b/src/Calc/Calc.php
@@ -96,7 +96,7 @@ class Calc
/** @var EdgeCollection $collection */
foreach($container as $collection) {
-
+ if($collection->getName() == "opt") continue;
if($collection->getFormel() != "") {
$formel = $this->formelCalc->parse($collection->getFormel());
eval('$var = ' . $formel . ';');
@@ -127,8 +127,11 @@ class Calc
$formel = $this->formelCalc->parse($edge->getFormel());
if ($formel != "" && $option->getId() != 'weight' && !$option->isAjaxExport()) {
$p = 0;
- eval('$p = ' . $formel . ';');
- $price += $p;
+
+ eval('@$p = ' . $formel . ';');
+ if($p > 0) {
+ $price += $p;
+ }
$this->engine->setVariable('price', $price);
}
diff --git a/src/Calc/CalcValues.php b/src/Calc/CalcValues.php
new file mode 100644
index 0000000..2f488be
--- /dev/null
+++ b/src/Calc/CalcValues.php
@@ -0,0 +1,113 @@
+engine = $engine;
+ $this->article = $article;
+ $this->formelCalc = new Formel($engine, $article);
+ }
+
+ public function calc()
+ {
+ $price = 0;
+
+ /** @var Base $option */
+ foreach($this->article->getOptions() as $option) {
+
+ if($option instanceof Select) {
+ /** @var Select\Opt $opt */
+ foreach($option->getOptions() as $opt) {
+ if($opt->isValid() && $opt->isSelected()) {
+ $price = $this->parseEdgeCollection($price, $option, $opt->getEdgesCollectionContainer());
+ }
+ }
+ }
+
+ $this->parseEdgeCollection($price, $option, $option->getEdgesCollectionContainer());
+ $this->engine->setVariables($option->parseAdditionalValues($this->engine->getVariables()));
+ }
+
+ return $price;
+ }
+
+ /**
+ * @param $price
+ * @param Base $option
+ * @param EdgeCollectionContainer $container
+ * @return int
+ */
+ private function parseEdgeCollection($price, $option, EdgeCollectionContainer $container)
+ {
+
+ $calcValue1 = 0;
+ $calcValue2 = 0;
+ $calcValueAccount1 = 0;
+ $calcValueAccount2 = 0;
+
+ /** @var EdgeCollection $collection */
+ foreach($container as $collection) {
+ if($collection->getName() == "opt") continue;
+ if($collection->getFormel() != "") {
+ $formel = $this->formelCalc->parse($collection->getFormel());
+ eval('$var = ' . $formel . ';');
+ }else{
+ $var = $this->engine->getVariables()[$collection->getName()];
+ }
+
+ /** @var Edge $edge */
+ foreach($collection as $edge) {
+
+ if($edge->isValid($var)) {
+
+ if($edge->getCalcValue() != "") {
+ $cv = $this->formelCalc->parse($edge->getCalcValue());
+ eval('$cv = ' . $cv . ';');
+ $this->engine->addCalcVariable($option->getId() . '_' . $collection->getName(), $cv);
+ }
+
+
+ }
+ }
+ }
+
+ return $price;
+ }
+
+}
\ No newline at end of file
diff --git a/src/Calc/Formel.php b/src/Calc/Formel.php
index 87ac77d..f64448d 100644
--- a/src/Calc/Formel.php
+++ b/src/Calc/Formel.php
@@ -106,7 +106,11 @@ class Formel
foreach ($founds [0] as $key => $found) {
$foundvalue = str_replace('$F', '', $found);
- $formel = str_replace($found, $$foundvalue, $formel);
+ if(isset($$foundvalue)) {
+ $formel = str_replace($found, $$foundvalue, $formel);
+ }else{
+ $formel = str_replace($found, 0, $formel);
+ }
}
}
diff --git a/src/Calc/Valid.php b/src/Calc/Valid.php
index e485531..26fdbc5 100644
--- a/src/Calc/Valid.php
+++ b/src/Calc/Valid.php
@@ -18,16 +18,20 @@ class Valid
/** @var Article */
protected $article = null;
+ /** @var Formel */
+ protected $formelCalc;
+
public function __construct($engine, $article)
{
$this->engine = $engine;
$this->article = $article;
+ $this->formelCalc = new Formel($engine, $article);
}
/**
* @return void
*/
- public function perform()
+ public function perform($withFormel = true)
{
/** @var Base $option */
@@ -44,10 +48,24 @@ class Valid
}
/** @var EdgeCollection $collection */
foreach($opt->getEdgesCollectionContainer() as $collection) {
- /** @var Edge $edge */
- foreach($collection as $edge) {
- if($this->edgeIsValid($collection->getName(), $edge)) {
- $opt->setIsValid(true);
+
+ if(!$withFormel && trim($collection->getFormel()) != "") continue;
+
+ if(trim($collection->getFormel()) != "") {
+ $value = $this->formelCalc->parse($collection->getFormel());
+ eval('$value = ' . $value . ';');
+ /** @var Edge $edge */
+ foreach ($collection as $edge) {
+ if ($this->edgeIsValidWithValue($value, $edge)) {
+ $opt->setIsValid(true);
+ }
+ }
+ }else {
+ /** @var Edge $edge */
+ foreach ($collection as $edge) {
+ if ($this->edgeIsValid($collection->getName(), $edge)) {
+ $opt->setIsValid(true);
+ }
}
}
}
@@ -77,8 +95,6 @@ class Valid
}
}
}
-
-
}
}
@@ -113,4 +129,30 @@ class Valid
return false;
}
+
+ /**
+ * @param $section
+ * @param Edge $edge
+ * @return bool
+ */
+ private function edgeIsValidWithValue($value, $edge)
+ {
+ if($edge->isRegion() &&
+ $edge->getFrom() <= $value &&
+ $edge->getTo() >= $value) {
+ return true;
+ }
+
+ if($edge->isRegion() &&
+ $edge->getFrom() <= $value &&
+ $edge->getTo() == 0) {
+ return true;
+ }
+
+ if(!$edge->isRegion() && in_array($value, $edge->getValues())) {
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/src/Engine.php b/src/Engine.php
index 5b1e771..8af7fb7 100644
--- a/src/Engine.php
+++ b/src/Engine.php
@@ -3,8 +3,10 @@ namespace PSC\Library\Calc;
use Doctrine\Common\Persistence\ObjectRepository;
use PSC\Library\Calc\Calc\Calc;
+use PSC\Library\Calc\Calc\CalcValues;
use PSC\Library\Calc\Calc\Valid;
use PSC\Library\Calc\Option\Type\Base;
+use PSC\Library\Calc\Option\Type\PaperDbSelect;
use PSC\Library\Calc\Option\Type\Select\Opt;
use PSC\Library\Calc\Option\Type\Text;
@@ -225,6 +227,14 @@ class Engine
$calcValid = new Valid($this, $this->article);
$calcValid->perform();
+ // CALC Values
+ $calcValues = new CalcValues($this, $this->article);
+ $calcValues->calc();
+
+ // Check if Option is valid
+ $calcValid = new Valid($this, $this->article);
+ $calcValid->perform(true);
+
// CALC Formel
$calcFormel = new Calc($this, $this->article);
$this->price = $calcFormel->calc();
diff --git a/src/Option/Type/Base.php b/src/Option/Type/Base.php
index 20d0b55..f28e872 100644
--- a/src/Option/Type/Base.php
+++ b/src/Option/Type/Base.php
@@ -228,5 +228,8 @@ class Base
$this->isAjaxExport = $isAjaxExport;
}
-
+ public function parseAdditionalValues($variables)
+ {
+ return $variables;
+ }
}
\ No newline at end of file
diff --git a/src/Option/Type/PaperDbSelect.php b/src/Option/Type/PaperDbSelect.php
index f9aae23..d336f19 100644
--- a/src/Option/Type/PaperDbSelect.php
+++ b/src/Option/Type/PaperDbSelect.php
@@ -2,13 +2,28 @@
namespace PSC\Library\Calc\Option\Type;
use PSC\Library\Calc\Option\Type\Select\Opt;
+use PSC\Library\Calc\Option\Type\Select\PaperOpt;
+use PSC\Library\Calc\Tests\Mock\Paper;
class PaperDbSelect extends Select
{
- public function getSelectedPaper()
+ public function parseAdditionalValues($variables)
{
+ /** @var PaperOpt $option */
+ $option = $this->getSelectedOption();
+ /** @var Paper $paper */
+ $paper = $option->getPaper();
+
+ $variables[$this->getId() . '_grammatur'] = $paper->getGrammatur();
+ $variables[$this->getId() . '_volume'] = $paper->getVolume();
+ $variables[$this->getId() . '_offset_fix'] = $paper->getOffsetFix();
+ $variables[$this->getId() . '_offset_var'] = $paper->getOffsetVar();
+ $variables[$this->getId() . '_digital_fix'] = $paper->getDigitalFix();
+ $variables[$this->getId() . '_digital_var'] = $paper->getDigitalVar();
+
+ return $variables;
}
}
\ No newline at end of file
diff --git a/tests/Complex/FirstTest.php b/tests/Complex/FirstTest.php
new file mode 100644
index 0000000..735b6ab
--- /dev/null
+++ b/tests/Complex/FirstTest.php
@@ -0,0 +1,48 @@
+parse(simplexml_load_string(file_get_contents(__DIR__ . '/../TestFiles/Complex/papierContainer.xml')));
+
+ $this->engine = new Engine();
+ $this->engine->setPaperContainer($paperContainer);
+ $this->engine->setPaperRepository($repository);
+ $this->engine->setFormulas(file_get_contents(__DIR__.'/../TestFiles/Complex/formels.txt'));
+ $this->engine->setParameters(file_get_contents(__DIR__.'/../TestFiles/Complex/parameters.txt'));
+
+ $this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/Complex/1.xml'));
+
+ }
+
+ public function tearDown()
+ {
+ $this->engine = null;
+ }
+
+ public function testIfArticleCountIsCorrect()
+ {
+ $this->assertEquals(1, $this->engine->getArticles()->Count());
+ }
+
+ public function testIfDefaultPriceIsOk()
+ {
+ $this->assertEquals(162.19, $this->engine->getPrice());
+ }
+}
\ No newline at end of file
diff --git a/tests/Mock/PaperRepostory.php b/tests/Mock/PaperRepostory.php
index 6f940b9..d62ae91 100644
--- a/tests/Mock/PaperRepostory.php
+++ b/tests/Mock/PaperRepostory.php
@@ -112,6 +112,18 @@ class PaperRepostory implements ObjectRepository
$papier['INM115']->setDescription1('115 g/m² Bilderdruck matt gestrichen');
$papier['INM115']->setDescription2('115 g/m² Inapa Infinity silk, seidenmatt');
+ $papier['INM135'] = new Paper();
+ $papier['INM135']->setArtNr('INM135');
+ $papier['INM135']->setGrammatur('135');
+ $papier['INM135']->setOffsetVar('495');
+ $papier['INM135']->setOffsetFix('345');
+ $papier['INM135']->setDigitalVar('495');
+ $papier['INM135']->setDigitalFix('345');
+ $papier['INM135']->setPreis(28);
+ $papier['INM135']->setVolume(0.118);
+ $papier['INM135']->setDescription1('135 g/m² Bilderdruck matt gestrichen');
+ $papier['INM135']->setDescription2('135 g/m² Inapa Infinity silk, seidenmatt');
+
$papier['INM300'] = new Paper();
$papier['INM300']->setArtNr('INM300');
$papier['INM300']->setGrammatur('300');
diff --git a/tests/TestFiles/Complex/1.xml b/tests/TestFiles/Complex/1.xml
new file mode 100644
index 0000000..9d949d5
--- /dev/null
+++ b/tests/TestFiles/Complex/1.xml
@@ -0,0 +1,333 @@
+
+
+
+
+
+
+
+
+
+ Musterprodukt U4 Test
+ XXX-XXXXU4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/TestFiles/Complex/formels.txt b/tests/TestFiles/Complex/formels.txt
new file mode 100644
index 0000000..b2e29b5
--- /dev/null
+++ b/tests/TestFiles/Complex/formels.txt
@@ -0,0 +1,523 @@
+// Gewinnzuschlag
+$test='((35-((exp($Vauflage$V/3200)-1)*10))/100+1)'; // Löschen
+$expG_ALT='( (((($PG$P-1)*100)-((exp($Vauflage$V/$PGexpW1$P)-$PGexpW2$P)*$PGexpW3$P))/100+1) )'; // Löschen
+$expG='( max($PmindestGewinn$P,(((($PG$P-1)*100)-((exp(max(0,$Vauflage$V*$Vversionen$V-$PabAuflage$P)/$PGexpW1$P)-$PGexpW2$P)*$PGexpW3$P))/100+1)) )';
+
+// Verwaltungs- und Vertriebsgemeinkosten (%)
+$VVGK='(1+$PVwGK$P+$PVtGK$P+$PSeKV$P)';
+
+// #### Material (000) ####
+$amko='1';
+$amkog='1';
+$bmko='($PMGK$P+$PSeMK$P)';
+$bmkog='(1+$PMGK$P+$PSeMK$P)';
+$cmko='(1+$PMGK$P+$PSeMK$P)*($FVVGK$F-1)';
+$cmkog='(1+$PMGK$P+$PSeMK$P)*($FVVGK$F)';
+$dmko='(1+$PMGK$P+$PSeMK$P)*$FVVGK$F*($FexpG$F-1)';
+$dmko2='(1+$PMGK$P+$PSeMK$P)*$FVVGK$F*($PG$P-1)';
+$dmkog='(1+$PMGK$P+$PSeMK$P)*$FVVGK$F*($FexpG$F)';
+$dmkog2='(1+$PMGK$P+$PSeMK$P)*$FVVGK$F*($PG$P)';
+
+// #### iGen (100) ####
+$FK100='( ($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a100fko='($PMaK100$P+$PFEK100$P)';
+$a100fkog='($PMaK100$P+$PFEK100$P)';
+$b100fko='($PMaK100$P+$PFEK100$P)*($PFGK$P+$PSeKF$P)';
+$b100fkog='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)';
+$c100fko='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c100fkog='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d100fko='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d100fko2='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d100fkog='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d100fkog2='($PMaK100$P+$PFEK100$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Planschneider (200) ####
+$FK200='( ($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a200fko='($PMaK200$P+$PFEK200$P)';
+$a200fkog='($PMaK200$P+$PFEK200$P)';
+$b200fko='($PMaK200$P+$PFEK200$P)*($PFGK$P+$PSeKF$P)';
+$b200fkog='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)';
+$c200fko='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c200fkog='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d200fko='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d200fko2='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d200fkog='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d200fkog2='($PMaK200$P+$PFEK200$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Falzmaschine (300) ####
+$FK300='( ($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a300fko='($PMaK300$P+$PFEK300$P)';
+$a300fkog='($PMaK300$P+$PFEK300$P)';
+$b300fko='($PMaK300$P+$PFEK300$P)*($PFGK$P+$PSeKF$P)';
+$b300fkog='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)';
+$c300fko='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c300fkog='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d300fko='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d300fko2='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d300fkog='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d300fkog2='($PMaK300$P+$PFEK300$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Multifinisher (400) ####
+$FK400='( ($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a400fko='($PMaK400$P+$PFEK400$P)';
+$a400fkog='($PMaK400$P+$PFEK400$P)';
+$b400fko='($PMaK400$P+$PFEK400$P)*($PFGK$P+$PSeKF$P)';
+$b400fkog='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)';
+$c400fko='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c400fkog='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d400fko='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d400fko2='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d400fkog='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d400fkog2='($PMaK400$P+$PFEK400$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Broschürenfertigung (500) ####
+$FK500='( ($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a500fko='($PMaK500$P+$PFEK500$P)';
+$a500fkog='($PMaK500$P+$PFEK500$P)';
+$b500fko='($PMaK500$P+$PFEK500$P)*($PFGK$P+$PSeKF$P)';
+$b500fkog='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)';
+$c500fko='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c500fkog='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d500fko='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d500fko2='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d500fkog='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d500fkog2='($PMaK500$P+$PFEK500$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Stanze (600) ####
+$FK600='( ($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a600fko='($PMaK600$P+$PFEK600$P)';
+$a600fkog='($PMaK600$P+$PFEK600$P)';
+$b600fko='($PMaK600$P+$PFEK600$P)*($PFGK$P+$PSeKF$P)';
+$b600fkog='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)';
+$c600fko='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c600fkog='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d600fko='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d600fko2='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d600fkog='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d600fkog2='($PMaK600$P+$PFEK600$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// #### Bohrmaschine (701) ####
+$FK701='( ($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P) )'; // Löschen
+$a701fko='($PMaK701$P+$PFEK701$P)';
+$a701fkog='($PMaK701$P+$PFEK701$P)';
+$b701fko='($PMaK701$P+$PFEK701$P)*($PFGK$P+$PSeKF$P)';
+$b701fkog='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)';
+$c701fko='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F-1)';
+$c701fkog='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*($FVVGK$F)';
+$d701fko='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F-1)';
+$d701fko2='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P-1)';
+$d701fkog='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($FexpG$F)';
+$d701fkog2='($PMaK701$P+$PFEK701$P)*(1+$PFGK$P+$PSeKF$P)*$FVVGK$F*($PG$P)';
+
+// Blatt zu Gewicht (ohne Versionen)
+// +0.000001 = funktioniert durch das runden genau bis zu 1.000.000 Blatt (offenes Format)
+$BlattUmschlag='(round(($Vumschlag$V/($CVumschlag_auflage$CV+0.000001))))';
+$Blatt='(round(($Vinhalt$V/($CVinhalt_staerke$CV+0.000001)))+pow(0,round(($Vinhalt$V/($CVinhalt_staerke$CV+0.000001)))))';
+
+// Bogen zu Auflage (ohne Versionen)
+// +0.000001 = funktioniert durch das runden genau bis zu 1.000.000 Blatt (offenes Format)
+$BogenAlt='( $Vauflage$V/$CVaus_gross$CV )'; // Löschen
+$BogenUmschlag='(($Vauflage$V/$CVaus_gross$CV)*(round(($Vumschlag$V/($CVumschlag_auflage$CV+0.000001)))))';
+$Bogen='(($Vauflage$V/$CVaus_gross$CV)*(round(($Vinhalt$V/($CVinhalt_staerke$CV+0.000001)))+pow(0,round(($Vinhalt$V/($CVinhalt_staerke$CV+0.000001))))))';
+
+// Druckbogenzugabe *Prozentual +Bogen
+$DruckbogenzugabeProzentUmschlag='(1+$CVdrbzgupp_auflage$CV)';
+$DruckbogenzugabeProzent='(1+$CVdrbzgpp_auflage$CV)';
+$DruckbogenzugabeStueckUmschlag='($CVdrbzgup_auflage$CV+$CVdrbzgukp_kaschierungumschlag$CV)';
+$DruckbogenzugabeStueck='($CVdrbzgp_auflage$CV+$CVdrbzgkp_kaschierung$CV)';
+
+// ###### Berechnung ######
+// #### Papier (000) Berechnung auf Bogenbasis ####
+$einaus000m='floor(pow(($Veinauto000m$V),0.01))';
+$Ber000mf_Alt='( ($Vpapier_value$V/1000)*($FBogenAlt$F+$CVdrbzgp_auflage$CV)*$Vversionen$V )'; // Löschen
+$Ber000mf='( ( ($Vpapierumschlag_value$V/1000)*(($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F) + ($Vpapier_value$V/1000)*(($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F) ) * $Vversionen$V )'; // Löschen
+$Ber000mf_U='(($Vpapierumschlag_value$V/1000)*(($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F))';
+$Ber000mf_I='(($Vpapier_value$V/1000)*(($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F))';
+$Bera000mko='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Famko$F';
+$Bera000mkog='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Famkog$F';
+$Berb000mko='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fbmko$F';
+$Berb000mkog='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fbmkog$F';
+$Berc000mko='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fcmko$F';
+$Berc000mkog='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fcmkog$F';
+$Berd000mko='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmko$F';
+$Berd000mko2='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmko2$F';
+$Berd000mkog='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmkog$F';
+$Berd000mkog2='($FBer000mf_U$F + $FBer000mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmkog2$F';
+
+// #### iGen (100) Berechnung auf Bogenbasis ####
+$einaus100m='floor(pow(($Veinauto100m$V),0.01))';
+$Ber100mf_Alt='( $CVfarbe_seiten$CV*($FBogenAlt$F+$CVdrbzgp_auflage$CV)*$Vversionen$V )'; // Löschen
+$Ber100mf='( ( $CVfarbeumschlag_seiten$CV*(($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F) + $CVfarbe_seiten$CV*(($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F) ) * $Vversionen$V )'; // Löschen
+$Ber100mf_U='($CVfarbeumschlag_seiten$CV*(($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F))';
+$Ber100mf_I='($CVfarbe_seiten$CV*(($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F))';
+$Bera100mko='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Famko$F';
+$Bera100mkog='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Famkog$F';
+$Berb100mko='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fbmko$F';
+$Berb100mkog='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fbmkog$F';
+$Berc100mko='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fcmko$F';
+$Berc100mkog='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fcmkog$F';
+$Berd100mko='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmko$F';
+$Berd100mko2='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmko2$F';
+$Berd100mkog='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmkog$F';
+$Berd100mkog2='($FBer100mf_U$F + $FBer100mf_I$F) * $Vversionen$V * $CVpreiskorrektur_auflage$CV * $Fdmkog2$F';
+
+$einaus100f='floor(pow(($Veinauto100f$V),0.01))';
+$Ber100ff_Alt='( ($FBogenAlt$F+$CVdrbzgp_auflage$CV)*$Vversionen$V/($CVstdl100p_auflage$CV/$Vseiten$V)+$CVerz100p_auflage$CV )'; // Löschen
+$Ber100ff='( ((((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$Vversionen$V)/round($CVstdl100p_auflage$CV/($Vseitenumschlag$V+0.000001)))+$CVerzu100p_auflage$CV) + ((((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$Vversionen$V)/round($CVstdl100p_auflage$CV/($Vseiten$V+0.000001)))+$CVerz100p_auflage$CV) )';
+$Ber100ff_U='((((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$Vversionen$V)/round($CVstdl100p_auflage$CV/($Vseitenumschlag$V+0.000001)))+$CVerzu100p_auflage$CV)';
+$Ber100ff_I='((((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$Vversionen$V)/round($CVstdl100p_auflage$CV/($Vseiten$V+0.000001)))+$CVerz100p_auflage$CV)';
+$Bera100fko='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fa100fko$F';
+$Bera100fkog='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fa100fkog$F';
+$Berb100fko='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fb100fko$F';
+$Berb100fkog='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fb100fkog$F';
+$Berc100fko='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fc100fko$F';
+$Berc100fkog='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fc100fkog$F';
+$Berd100fko='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd100fko$F';
+$Berd100fko2='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd100fko2$F';
+$Berd100fkog='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd100fkog$F';
+$Berd100fkog2='($FBer100ff_U$F + $FBer100ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd100fkog2$F';
+
+// #### Planschneider (200) Berechnung auf Bogenbasis ####
+$einaus200f='floor(pow(($Veinauto200f$V+$CVplanschneider_papier$CV+$CVplanschneider_auflage$CV),0.01))';
+$Ber200ff_ALT=' ( (ceil($Vpapier_volume$V* ( ($FBogen$F+$CVdrbzgp_auflage$CV) *$Vversionen$V )/$PSchnittH200$P))*(($CVaus_gross$CV+4)/$CVstdl200p_auflage$CV)+$CVerz200p_auflage$CV )'; // Löschen
+$Ber200ff='( ((ceil($Vpapierumschlag_volume$V*((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$Vversionen$V)/$PSchnittH200$P))*(($CVaus_gross$CV+4)/$CVstdl200p_auflage$CV)+$CVerzu200p_auflage$CV) + ((ceil($Vpapier_volume$V*((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$Vversionen$V)/$PSchnittH200$P))*(($CVaus_gross$CV+4)/$CVstdl200p_auflage$CV)+$CVerz200p_auflage$CV) )'; // Löschen
+$Ber200ff_U='((ceil($Vpapierumschlag_volume$V*((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$Vversionen$V)/$PSchnittH200$P))*(($CVaus_gross$CV+4)/$CVstdl200p_auflage$CV)+$CVerzu200p_auflage$CV)';
+$Ber200ff_I='((ceil($Vpapier_volume$V*((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$Vversionen$V)/$PSchnittH200$P))*(($CVaus_gross$CV+4)/$CVstdl200p_auflage$CV)+$CVerz200p_auflage$CV)';
+$Bera200fko='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fa200fko$F';
+$Bera200fkog='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fa200fkog$F';
+$Berb200fko='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fb200fko$F';
+$Berb200fkog='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fb200fkog$F';
+$Berc200fko='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fc200fko$F';
+$Berc200fkog='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fc200fkog$F';
+$Berd200fko='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd200fko$F';
+$Berd200fko2='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd200fko2$F';
+$Berd200fkog='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd200fkog$F';
+$Berd200fkog2='($FBer200ff_U$F + $FBer200ff_I$F) * $CVpreiskorrektur_auflage$CV * $Fd200fkog2$F';
+
+// #### Falzmaschine (300) Berechnung auf Einzelnutzenbasis ####
+$einaus300f='floor(pow(($Veinauto300f$V+$CVfalzmaschine_auflage$CV),0.01))';
+$Ber300ff='( ( ((($Vauflage$V+($CVdrbzgp_auflage$CV*$CVaus_gross$CV))*$Vversionen$V)/$CVstdl300p_gross$CV)+$CVerz300p_auflage$CV )*$CVonoff300p_papier_grammatur$CV )';
+$Ber300ff_U='(((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$Vversionen$V/$CVstdl300p_gross$CV)*$CVonoff300pumschlag_papierumschlag_grammatur$CV)';
+$Ber300ff_I='(((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$Vversionen$V/$CVstdl300p_gross$CV)*$CVonoff300p_papier_grammatur$CV)';
+$Ber300ff_B01='(max($CVonoff300pumschlag_papierumschlag_grammatur$CV,$CVonoff300p_papier_grammatur$CV))';
+$Bera300fko='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fa300fko$F';
+$Bera300fkog='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fa300fkog$F';
+$Berb300fko='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fb300fko$F';
+$Berb300fkog='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fb300fkog$F';
+$Berc300fko='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fc300fko$F';
+$Berc300fkog='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fc300fkog$F';
+$Berd300fko='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fd300fko$F';
+$Berd300fko2='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fd300fko2$F';
+$Berd300fkog='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fd300fkog$F';
+$Berd300fkog2='(($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F)) * $CVpreiskorrektur_auflage$CV * $Fd300fkog2$F';
+
+// #### Multifinisher (400) Berechnung auf Auflagenbasis ####
+$einaus400f='floor(pow(($Veinauto400f$V+$CVmultifinisher_papier$CV+$CVmultifinisher_auflage$CV),0.01))';
+$Ber400ff='(((($Vauflage$V*$Vversionen$V)+($CVdrbzgp_auflage$CV*$CVaus_gross$CV))/$CVstdl400p_gross$CV)+$CVerz400p_auflage$CV)';
+$Ber400ff_U='';
+$Ber400ff_I='';
+$Bera400fko='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fa400fko$F';
+$Bera400fkog='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fa400fkog$F';
+$Berb400fko='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fb400fko$F';
+$Berb400fkog='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fb400fkog$F';
+$Berc400fko='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fc400fko$F';
+$Berc400fkog='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fc400fkog$F';
+$Berd400fko='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fd400fko$F';
+$Berd400fko2='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fd400fko2$F';
+$Berd400fkog='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fd400fkog$F';
+$Berd400fkog2='$FBer400ff$F * $CVpreiskorrektur_auflage$CV * $Fd400fkog2$F';
+
+// #### Broschürenfertigung klammergeheftet (500) Berechnung auf Auflagenbasis ####
+$einaus500m='floor(pow(($Veinauto500m$V+$CVbroschuerenfertigung_auflage$CV),0.01))';
+$Ber500mf='( (($CVklammermaterial_klammerart$CV/1000)*$CVklammeranzahl_klammerart$CV)*(($Vauflage$V*$Vversionen$V)+($CVdrbzgp_auflage$CV*$CVaus_gross$CV)) )';
+$Ber500mf_U='';
+$Ber500mf_I='';
+$Bera500mko='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Famko$F';
+$Bera500mkog='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Famkog$F';
+$Berb500mko='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fbmko$F';
+$Berb500mkog='$FBer500mfU$F * $CVpreiskorrektur_auflage$CV * $Fbmkog$F';
+$Berc500mko='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fcmko$F';
+$Berc500mkog='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fcmkog$F';
+$Berd500mko='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fdmko$F';
+$Berd500mko2='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fdmko2$F';
+$Berd500mkog='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fdmkog$F';
+$Berd500mkog2='$FBer500mf$F * $CVpreiskorrektur_auflage$CV * $Fdmkog2$F';
+
+$einaus500f='floor(pow(($Veinauto500f$V+$CVbroschuerenfertigung_auflage$CV),0.01))';
+$Ber500ff='(((($Vauflage$V*$Vversionen$V)+($CVdrbzgp_auflage$CV*$CVaus_gross$CV))/$CVstdl500p_gross$CV)+$CVerz500p_auflage$CV)';
+$Ber500ff_U='';
+$Ber500ff_I='';
+$Bera500fko='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fa500fko$F';
+$Bera500fkog='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fa500fkog$F';
+$Berb500fko='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fb500fko$F';
+$Berb500fkog='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fb500fkog$F';
+$Berc500fko='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fc500fko$F';
+$Berc500fkog='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fc500fkog$F';
+$Berd500fko='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fd500fko$F';
+$Berd500fko2='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fd500fko2$F';
+$Berd500fkog='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fd500fkog$F';
+$Berd500fkog2='$FBer500ff$F * $CVpreiskorrektur_auflage$CV * $Fd500fkog2$F';
+
+// #### Broschürenfertigung drahtkammgebunden (501) ####
+
+// #### Broschürenfertigung klebegebunden (502) ####
+
+// #### Stanze (600) #### ohne Nutzen Multiplikation bei den Zugabebogen
+$einaus600f='floor(pow(($Veinauto600f$V+$CVstanze_auflage$CV),0.01))';
+$Ber600ff_Alt='(((($Vauflage$V*$Vversionen$V)+($CVdrbzgp_auflage$CV*$CVaus_gross$CV))/$CVstdl600p_gross$CV)+$CVerz600p_auflage$CV)';
+$Ber600ff='(((($Vauflage$V*$Vversionen$V)+($CVdrbzgp_auflage$CV))/$CVstdl600p_gross$CV)+$CVerz600p_auflage$CV)';
+$Ber600ff_U='';
+$Ber600ff_I='';
+$Bera600fko='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fa600fko$F';
+$Bera600fkog='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fa600fkog$F';
+$Berb600fko='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fb600fko$F';
+$Berb600fkog='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fb600fkog$F';
+$Berc600fko='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fc600fko$F';
+$Berc600fkog='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fc600fkog$F';
+$Berd600fko='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fd600fko$F';
+$Berd600fko2='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fd600fko2$F';
+$Berd600fkog='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fd600fkog$F';
+$Berd600fkog2='$FBer600ff$F * $CVpreiskorrektur_auflage$CV * $Fd600fkog2$F';
+
+// #### Bohrmaschine (701) ####
+$einaus701f='floor(pow(($Veinauto701f$V+$CVbohrmaschine_auflage$CV),0.01))';
+$Ber701ff_U='((ceil($Vpapierumschlag_volume$V*((($FBogenUmschlag$F*$FDruckbogenzugabeProzentUmschlag$F)+$FDruckbogenzugabeStueckUmschlag$F)*$CVaus_gross$CV*$Vversionen$V)/$PEinlageH701$P))/$CVstdl701p_auflage$CV+$CVerzu701p_auflage$CV)';
+$Ber701ff_I='((ceil($Vpapier_volume$V*((($FBogen$F*$FDruckbogenzugabeProzent$F)+$FDruckbogenzugabeStueck$F)*$CVaus_gross$CV*$Vversionen$V)/$PEinlageH701$P))/$CVstdl701p_auflage$CV+$CVerz701p_auflage$CV)';
+$Bera701fko='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fa701fko$F';
+$Bera701fkog='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fa701fkog$F';
+$Berb701fko='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fb701fko$F';
+$Berb701fkog='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fb701fkog$F';
+$Berc701fko='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fc701fko$F';
+$Berc701fkog='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fc701fkog$F';
+$Berd701fko='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fd701fko$F';
+$Berd701fko2='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fd701fko2$F';
+$Berd701fkog='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fd701fkog$F';
+$Berd701fkog2='(($FBer701ff_U$F + $FBer701ff_I$F)*$Vbohrung$V) * $CVpreiskorrektur_auflage$CV * $Fd701fkog2$F';
+
+// #### besondere Arbeiten als Pauschale (899) ####
+$Berg899fko='$CVsonder1_auflage$CV';
+
+// #### Sonderkosten = Visitenkartenkarton / Codierung (900) #### -->
+$Ber900ff_000='$CVproduktpreis_auflage$CV*$Vauflage$V*$Vversionen$V'; // Produktpreis
+$Ber900ff_001='$CVverpz_auflage$CV'; // Visitenkartenkarton
+$Ber900ff_002='$CVcodeart_auflage$CV'; // Codierung
+$Berg900fko='(($FBer900ff_000$F)+($FBer900ff_001$F)+($FBer900ff_002$F))';
+
+// #### Preiskorrekturpauschale (990) #### -->
+$Berg990fko='$CVpreiskorrekturpauschale_auflage$CV';
+
+// #### Aufschläge (998) ####
+$Berg998fko='$CVdatacheck_auflage$CV+$CVkorrektur_auflage$CV+$CVproduktion_auflage$CV+$CVoffline_nopresentation_auflage$CV+$CVsatzarbeit_nopresentation_auflage$CV';
+
+
+
+// $akosten_ergebnis='(($FBera000mkog$F)+($FBera100mkog$F)+($FBera100fkog$F)+($FBera200fkog$F*$CVplanschneider_auflage$CV)+($FBera300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))';
+$akosten_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Famkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Famkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fa100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fa200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fa300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fa400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Famkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fa500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fa600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fa701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+';
+// $bkosten_ergebnis='(($FBerb000mkog$F)+($FBerb100mkog$F)+($FBerb100fkog$F)+($FBerb200fkog$F*$CVplanschneider_auflage$CV)+($FBerb300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))';
+$bkosten_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fbmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fbmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fb100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fb200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fb300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fb400fkog$F*$Feinaus400f$F)+
+($FBer500mfU$F*$CVpreiskorrektur_auflage$CV*$Fbmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fb500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fb600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fb701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+';
+// $bkostena_ergebnis='(($FBerb000mko$F)+($FBerb100mko$F)+($FBerb100fko$F)+($FBerb200fko$F*$CVplanschneider_auflage$CV)+($FBerb300fko$F*$CVfalzmaschine_auflage$CV))';
+$bkostena_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fbmko$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fbmko$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fb100fko$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fb200fko$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fb300fko$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fb400fko$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fbmko$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fb500fko$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fb600fko$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fb701fko$F*$Feinaus701f$F)
+';
+// $ckosten_ergebnis='(($FBerc000mkog$F)+($FBerc100mkog$F)+($FBerc100fkog$F)+($FBerc200fkog$F*$CVplanschneider_auflage$CV)+($FBerc300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))';
+$ckosten_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fcmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fcmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fc100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fc200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fc300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fc400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fcmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fc500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fc600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fc701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+';
+// $ckostena_ergebnis='(($FBerc000mko$F)+($FBerc100mko$F)+($FBerc100fko$F)+($FBerc200fko$F*$CVplanschneider_auflage$CV)+($FBerc300fko$F*$CVfalzmaschine_auflage$CV))';
+$ckostena_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fcmko$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fcmko$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fc100fko$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fc200fko$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fc300fko$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fc400fko$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fcmko$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fc500fko$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fc600fko$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fc701fko$F*$Feinaus701f$F)
+';
+// $dkosten1_ergebnis='(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F*$CVplanschneider_auflage$CV)+($FBerd300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))';
+$dkosten1_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+';
+// $dkostena1_ergebnis='(($FBerd000mko$F)+($FBerd100mko$F)+($FBerd100fko$F)+($FBerd200fko$F*$CVplanschneider_auflage$CV)+($FBerd300fko$F*$CVfalzmaschine_auflage$CV))';
+$dkostena1_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmko$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmko$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fko$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fko$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fko$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fko$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmko$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fko$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fko$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fko$F*$Feinaus701f$F)
+';
+// $dkosten2_ergebnis='(($FBerd000mkog2$F)+($FBerd100mkog2$F)+($FBerd100fkog2$F)+($FBerd200fkog2$F*$CVplanschneider_auflage$CV)+($FBerd300fkog2$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))';
+$dkosten2_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog2$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog2$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog2$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog2$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog2$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog2$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog2$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog2$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog2$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog2$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+';
+// $dkostena2_ergebnis='(($FBerd000mko2$F)+($FBerd100mko2$F)+($FBerd100fko2$F)+($FBerd200fko2$F*$CVplanschneider_auflage$CV)+($FBerd300fko2$F*$CVfalzmaschine_auflage$CV))';
+$dkostena2_ergebnis='
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmko2$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmko2$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fko2$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fko2$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fko2$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fko2$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmko2$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fko2$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fko2$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fko2$F*$Feinaus701f$F)
+';
+
+// $calc_rabatt_benutzer_ergebnis='(-(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F*$CVplanschneider_auflage$CV)+($FBerd300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2+($CVrabattkalk_nopresentation_auflage$CV/100)))';
+$calc_rabatt_benutzer_ergebnis='(-(
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+)*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2+($CVrabattkalk_nopresentation_auflage$CV/100)))';
+// $rabatt_benutzer_ergebnis='(+(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F*$CVplanschneider_auflage$CV)+($FBerd300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2+($CVrabattkalk_nopresentation_auflage$CV/100)))';
+$rabatt_benutzer_ergebnis='(+(
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+)*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2+($CVrabattkalk_nopresentation_auflage$CV/100)))';
+// $calc_rabatt_produkt_ergebnis='(-(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F*$CVplanschneider_auflage$CV)+($FBerd300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)))';
+$calc_rabatt_produkt_ergebnis='(-(
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+)*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)))';
+//$rabatt_produkt_ergebnis='(+(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F*$CVplanschneider_auflage$CV)+($FBerd300fkog$F*$CVfalzmaschine_auflage$CV)+($FBerg899fko$F)+($FBerg990fko$F))*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)))';
+$rabatt_produkt_ergebnis='(+(
+(($FBer000mf_U$F+$FBer000mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus000m$F)+
+(($FBer100mf_U$F+$FBer100mf_I$F)*$Vversionen$V*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus100m$F)+
+(($FBer100ff_U$F+$FBer100ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd100fkog$F*$Feinaus100f$F)+
+(($FBer200ff_U$F+$FBer200ff_I$F)*$CVpreiskorrektur_auflage$CV*$Fd200fkog$F*$Feinaus200f$F)+
+((($FBer300ff_U$F*$CVaus_gross$CV)+($FBer300ff_I$F*$CVaus_gross$CV)+($CVerz300p_auflage$CV*$FBer300ff_B01$F))*$CVpreiskorrektur_auflage$CV*$Fd300fkog$F*$Feinaus300f$F)+
+($FBer400ff$F*$CVpreiskorrektur_auflage$CV*$Fd400fkog$F*$Feinaus400f$F)+
+($FBer500mf$F*$CVpreiskorrektur_auflage$CV*$Fdmkog$F*$Feinaus500m$F)+
+($FBer500ff$F*$CVpreiskorrektur_auflage$CV*$Fd500fkog$F*$Feinaus500f$F)+
+($FBer600ff$F*$CVpreiskorrektur_auflage$CV*$Fd600fkog$F*$Feinaus600f$F)+
+((($FBer701ff_U$F+$FBer701ff_I$F)*$Vbohrung$V)*$CVpreiskorrektur_auflage$CV*$Fd701fkog$F*$Feinaus701f$F)+
+($FBerg899fko$F)+
+($FBerg900fko$F)+
+($FBerg990fko$F)
+)*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)))';
+
+$calc_aufschlag_ergebnis='(+($FBerg998fko$F))';
+$aufschlag_ergebnis='(+($FBerg998fko$F))';
+
+
+
+// #### Gewicht (XXX) ####
+$WeightU='((($Vgross$V+($Vformatwith$V*$Vformatheight$V))/1000000)*$Vpapierumschlag_grammatur$V*$Vauflage$V*$FBlattUmschlag$F)';
+$WeightI='((($Vgross$V+($Vformatwith$V*$Vformatheight$V))/1000000)*$Vpapier_grammatur$V*$Vauflage$V*$FBlatt$F)';
+$WeightZ='$CVverpzgp_auflage$CV';
+$Berweight_ALT='(($Vgross$V/1000000)*$Vpapier_grammatur$V*$Vauflage$V*$Vversionen$V+$CVverpzgp_auflage$CV)';
+$Berweight='(($FWeightU$F+$FWeightI$F)*$Vversionen$V+$FWeightZ$F)';
+$Berproductweight='(($CVproduktgewicht_auflage$CV)*$Vauflage$V*$Vversionen$V+$FWeightZ$F)';
diff --git a/tests/TestFiles/Complex/papierContainer.xml b/tests/TestFiles/Complex/papierContainer.xml
new file mode 100644
index 0000000..6171139
--- /dev/null
+++ b/tests/TestFiles/Complex/papierContainer.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ papier1
+
+
+
+
+
+
+ papier1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/TestFiles/Complex/parameters.txt b/tests/TestFiles/Complex/parameters.txt
new file mode 100644
index 0000000..9be8f18
--- /dev/null
+++ b/tests/TestFiles/Complex/parameters.txt
@@ -0,0 +1,399 @@
+// Gewinnzuschlag
+$G='1.35'; // Gewinn 35%
+$abAuflage='500'; // ab welcher Auflage greift exp
+$mindestGewinn='1.05'; // Mindestgewinn 5%
+$GexpW1='1500';
+$GexpW2='1';
+$GexpW3='25';
+
+// Sondereinzelkosten des Vertriebs (%) SeKV
+$SeKV='0.00';
+// Vertriebsgemeinkosten (%) VtGK
+$VtGK='0.10';
+// Verwaltungsgemeinkosten (%) VwGK
+$VwGK='0.20';
+
+// Sondereinzelkosten der Fertigung (%) SeKF
+$SeKF='0.00';
+// Fertigungsgemeinkosten (%) FGK
+$FGK='0.20';
+
+// Sondereinzelkosten des Materials (%) SeMK
+$SeMK='0.00';
+// Materialgemeinkosten (%) MGK
+$MGK='0.10';
+
+
+// #### iGen (100) #############################################################
+// Maschinenkosten (€) MK
+$MaK100='57.60';
+// Fertigungseinzelkosten (€) FEK
+$FEK100='22.40';
+// Materialeinzelkosten MEK für (iGen) Klick
+$MEK10001='0.0099'; // ################ ALT 0.00944 NEU 0.0099 ###############
+$MEK10004='0.026'; // ################ ALT 0.03 NEU 0.026 ###############
+$MEK10014='0.05'; // ################ ALT 0.05308 NEU 0.05 ###############
+$MEK10024='0.05'; // ################ ALT 0.05308 NEU 0.05 ###############
+// Einrichtungszeit
+$ErZ100='0.05';
+// Stundenleistung (iGen) Format
+$StdL10001='3000'; // ################ ALT 2000 NEU 3000 ###############
+$StdL10002='1500';
+
+// #### Planschneider (200) ####################################################
+// Maschinenkosten (€) MK
+$MaK200='11.10'; // ################ ALT 11.80 NEU 11.10 ################
+// Fertigungseinzelkosten (€) FEK
+$FEK200='17.90';
+// Einrichtungszeit
+$ErZ200='0.05';
+// Schnitthoehe (100 mm)
+$SchnittH200='100';
+// Stundenleistung
+$StdL200='130';
+
+// #### Falzmaschine (300) #####################################################
+// Maschinenkosten (€) MK
+$MaK300='7.10';
+// Fertigungseinzelkosten (€) FEK
+$FEK300='17.90';
+// Einrichtungszeit
+$ErZ300='0.17';
+// Stundenleistung
+$StdL30011='4000'; // 1 Bruch bis 21 cm/h
+$StdL30012='3000'; // 1 Bruch bis 42 cm/h
+$StdL30021='3000'; // 2 Bruch bis 30 cm/h
+$StdL30022='2000'; // 2 Bruch bis 42 cm/h
+$StdL30031='2500'; // 2 Doppelparalell bis 30 cm/h
+$StdL30032='1500'; // 2 Doppelparalell bis 42 cm/h
+
+// #### Multifinisher (400) ####################################################
+// Maschinenkosten (€) MK
+$MaK400='17.10'; // ################ ALT 7.10 NEU 17.10 ################
+// Fertigungseinzelkosten (€) FEK
+$FEK400='17.90';
+// Einrichtungszeit
+$ErZ400='0.08';
+// Stundenleistung
+$StdL40011='3000'; // 3000 Visitenkarten Pro Stunde
+
+// #### Broschürenfertigung klammergeheftet (500) ##############################
+// Maschinenkosten (€) MK
+$MaK500='10.10';
+// Fertigungseinzelkosten (€) FEK
+$FEK500='17.90';
+// Materialeinzelkosten MEK für (Broschürenfertigung klammergeheftet)
+$MEK50001='3.00'; // (per Tausend für Klammer)
+$MEK50002='6.00'; // (per Tausend für Ringöse)
+// Einrichtungszeit
+$ErZ500='0.17';
+// Stundenleistung
+$StdL50011='400'; // Normal
+$StdL50012='200'; // XL und XXL
+
+// #### Stanzen (600) ##########################################################
+// Maschinenkosten (€) MK
+$MaK600='7.60';
+// Fertigungseinzelkosten (€) FEK
+$FEK600='22.40';
+// Einrichtungszeit
+$ErZ60011='0.50'; // Stanzen 1 Nutzen einfach
+$ErZ60012='0.75'; // Stanzen 1 Nutzen nomal
+$ErZ60013='1.00'; // Stanzen 1 Nutzen schwer
+$ErZ60021='0.75'; // HFP 1 Nutzen einfach
+$ErZ60022='1.00'; // HFP 1 Nutzen nomal
+$ErZ60023='1.25'; // HFP 1 Nutzen schwer
+$ErZ60031='0.50'; // Blindprägen 1 Nutzen einfach
+$ErZ60032='0.75'; // Blindprägen 1 Nutzen nomal
+$ErZ60033='1.00'; // Blindprägen 1 Nutzen schwer
+// Stundenleistung
+$StdL60011='2000'; // Stanzen bis DIN A4
+$StdL60012='1000'; // Stanzen größer DIN A4
+$StdL60021='1000'; // HFP bis DIN A4
+$StdL60022='500'; // HFP größer DIN A4
+$StdL60031='1000'; // Blindprägen bis DIN A4
+$StdL60032='500'; // Blindprägen größer DIN A4
+
+// #### Bohrmaschine (701) #####################################################
+// Maschinenkosten (€) MK
+$MaK701='6.10';
+// Fertigungseinzelkosten (€) FEK
+$FEK701='17.90';
+// Einrichtungszeit
+$ErZ701='0.09';
+// Einlagehoehe (40 mm)
+$EinlageH701='40';
+// Stundenleistung
+$StdL701='100';
+
+// #### Stundenleistungen (998) #######################################################
+// Satzarbeit (€)
+$StdLSatz001='60.00'; // (StandardSatzarbeit)
+
+// #### Pauschalen (998) #######################################################
+// Datencheck (€)
+$PCheck001='0.00'; // (StandardCheck)
+$PCheck002='15.00'; // (ProfiCheck)
+// Korrekturabzug (€)
+$PKorr000='0.00'; // (keinen)
+$PKorr001='2.00'; // (PDF per E-Mail)
+// Produktionszeit (€)
+$PZeit001='12.50'; // (Express)
+$PZeit003='5.00'; // (Schnell)
+$PZeit005='0'; // (Normal)
+$PZeit009='0'; // (SameDay)
+// Offlinebestellung (€)
+$POffline000='0.00'; // (Nein)
+$POffline001='10.00'; // (Ja)
+
+// #############################################################################
+// #### Zugabe Einrichtungszeit und Druckbogen und Umverpackung ####
+// #############################################################################
+// Flyer 100001 100002 100003
+// Plakate 450001 450002 450003 450004
+// Postkarten 650001 650002 650003
+// Kalender 700001 700002 700003 700004
+// Aufkleber 750001 750002 750003
+// Express Produkte 999101 999451
+$DrBZgP100000='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg100000='5'; // Druckbogenzugabe Stück
+$VerpZg100000='600'; // Gewichtzugabe für Versandverpackung
+
+// Faltblätter (Parallelfalz) 150011 150012 150013 150014
+// Faltblätter (Wickelfalz) 150021 150022 150023
+// Faltblätter (Zickzackfalz) 150031 150032 150033
+// Blattsammlungen 500001
+// Klappkarten (Parallelfalz) 550011 550012 550013 550014
+// Klappkarten (offener Altarfalz) 550021 550022
+$DrBZgP150000='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg150000='10'; // Druckbogenzugabe Stück
+$VerpZg150000='600'; // Gewichtzugabe für Versandverpackung
+
+// Broschueren (klammergeheftet) 200011
+$DrBZgPU200000='0.00'; // Druckbogenzugabe Umschlag Prozentual
+$DrBZgU200000='10'; // Druckbogenzugabe Umschlag Stück
+$DrBZgPUK200000='0.00'; // Druckbogenzugabe Umschlag **Kaschieren** Prozentual
+$DrBZgUK200000='0'; // Druckbogenzugabe Umschlag **Kaschieren** Stück
+$DrBZgP200000='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg200000='10'; // Druckbogenzugabe Stück
+$DrBZgPK200000='0.00'; // Druckbogenzugabe **Kaschieren** Prozentual
+$DrBZgK200000='0'; // Druckbogenzugabe **Kaschieren** Stück
+$VerpZg200000='600'; // Gewichtzugabe für Versandverpackung
+
+// Visitenkarten 400011 400012
+// Klappvisitenkarten 400021 400022 400023 400024
+// Express Produkte 999401
+$DrBZgP400000='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg400000='5'; // Druckbogenzugabe Stück
+$VerpZg400000='600'; // Gewichtzugabe für Versandverpackung
+$VerpZ400000='0.15'; // Preis für eine VK-Schachtel
+
+// Eintrittskarten 850001 850005
+$DrBZgP850001='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg850001='15'; // Druckbogenzugabe Stück
+$DrBZgP850005='0.00'; // Druckbogenzugabe Prozentual
+$DrBZg850005='30'; // Druckbogenzugabe Stück
+$VerpZg850000='600'; // Gewichtzugabe für Versandverpackung
+$SonderZ850001='15'; // Sonderzuschlag Codierung-Nr
+$SonderproZ850001='5'; // Sonderzuschlag Codierung-Nr per 1000
+$SonderZ850002='40'; // Sonderzuschlag Codierung-Code
+$SonderproZ850002='5'; // Sonderzuschlag Codierung-Code per 1000
+
+// #############################################################################
+// #### Produktrabatte ####
+// #############################################################################
+// Flyer 100001 100002 100003
+$RP100001='0'; // Prozentual
+$RP100002='0'; // Prozentual
+$RP100003='0'; // Prozentual
+// Faltblätter (Parallelfalz) 150011 150012 150013 150014
+$RP150011='0'; // Prozentual
+$RP150012='0'; // Prozentual
+$RP150013='0'; // Prozentual
+$RP150014='0'; // Prozentual
+// Faltblätter (Wickelfalz) 150021 150022 150023
+$RP150021='0'; // Prozentual
+$RP150022='0'; // Prozentual
+$RP150023='0'; // Prozentual
+// Faltblätter (Zickzackfalz) 150031 150032 150033
+$RP150031='0'; // Prozentual
+$RP150032='0'; // Prozentual
+$RP150033='0'; // Prozentual
+// Broschueren (klammergeheftet) 200011 200012 200013 200014 200015 200016
+$RP200011='0'; // Prozentual
+$RP200012='0'; // Prozentual
+$RP200013='0'; // Prozentual
+$RP200014='0'; // Prozentual
+$RP200015='0'; // Prozentual
+$RP200016='0'; // Prozentual
+// Visitenkarten 400011
+$RP400011='0'; // Prozentual
+// Klappvisitenkarten 400021 400023 400024
+$RP400021='0'; // Prozentual
+$RP400023='0'; // Prozentual
+$RP400024='0'; // Prozentual
+// Plakate 450001 450002 450003 450004
+$RP450001='0'; // Prozentual
+$RP450002='0'; // Prozentual
+$RP450003='0'; // Prozentual
+$RP450004='0'; // Prozentual
+// Blattsammlungen 500001
+$RP500001='0'; // Prozentual
+// Klappkarten (Parallelfalz) 550011 550012 550013 550014
+$RP550011='0'; // Prozentual
+$RP550012='0'; // Prozentual
+$RP550013='0'; // Prozentual
+$RP550014='0'; // Prozentual
+// Klappkarten (offener Altarfalz) 550021 550022 550023
+$RP550021='0'; // Prozentual
+$RP550022='0'; // Prozentual
+$RP550023='0'; // Prozentual
+// Postkarten 650001 650002 650003
+$RP650001='0'; // Prozentual
+$RP650002='0'; // Prozentual
+$RP650003='0'; // Prozentual
+// Kalender 700001 700002 700003 700004
+$RP700001='0'; // Prozentual
+$RP700002='0'; // Prozentual
+$RP700003='0'; // Prozentual
+$RP700004='0'; // Prozentual
+// Aufkleber 750001 750002 750003
+$RP750001='0'; // Prozentual
+$RP750002='0'; // Prozentual
+$RP750003='0'; // Prozentual
+// Eintrittskarten 850001 850005
+$RP850001='0'; // Prozentual
+$RP850005='0'; // Prozentual
+// (SameDay) Flyer 999101
+$RP999101='0'; // Prozentual
+// (SameDay) Visitenkarten 999401
+$RP999401='0'; // Prozentual
+// (SameDay) Plakate 999451
+$RP999451='0'; // Prozentual
+
+// #############################################################################
+// #### Produktpreiskorrektur (Positiv und Negativ) ####
+// #############################################################################
+// Flyer 100001 100002 100003
+$PkP100001='1'; // Prozentual
+$PkPp100001='0.00'; // Wert €
+$PkP100002='1'; // Prozentual
+$PkPp100002='0.00'; // Wert €
+$PkP100003='1'; // Prozentual
+$PkPp100003='0.00'; // Wert €
+// Faltblätter (Parallelfalz) 150011 150012 150013 150014
+$PkP150011='1'; // Prozentual
+$PkPp150011='0.00'; // Wert €
+$PkP150012='1'; // Prozentual
+$PkPp150012='0.00'; // Wert €
+$PkP150013='1'; // Prozentual
+$PkPp150013='0.00'; // Wert €
+$PkP150014='1'; // Prozentual
+$PkPp150014='0.00'; // Wert €
+// Faltblätter (Wickelfalz) 150021 150022 150023
+$PkP150021='1'; // Prozentual
+$PkPp150021='0.00'; // Wert €
+$PkP150022='1'; // Prozentual
+$PkPp150022='0.00'; // Wert €
+$PkP150023='1'; // Prozentual
+$PkPp150023='0.00'; // Wert €
+// Faltblätter (Zickzackfalz) 150031 150032 150033
+$PkP150031='1'; // Prozentual
+$PkPp150031='0.00'; // Wert €
+$PkP150032='1'; // Prozentual
+$PkPp150032='0.00'; // Wert €
+$PkP150033='1'; // Prozentual
+$PkPp150033='0.00'; // Wert €
+// Broschueren (klammergeheftet ohne Umschlag) 200011 200012 200013
+$PkP200011='1.00'; // Prozentual
+$PkPp200011='0.00'; // Wert €
+$PkP200012='1.00'; // Prozentual
+$PkPp200012='0.00'; // Wert €
+$PkP200013='1.00'; // Prozentual
+$PkPp200013='0.00'; // Wert €
+// Broschueren (klammergeheftet mit Umschlag) 200014 200015 200016
+$PkP200014='1.00'; // Prozentual
+$PkPp200014='0.00'; // Wert €
+$PkP200015='1.00'; // Prozentual
+$PkPp200015='0.00'; // Wert €
+$PkP200016='1.00'; // Prozentual
+$PkPp200016='0.00'; // Wert €
+// Visitenkarten 400011
+$PkP400011='1'; // Prozentual
+$PkPp400011='0.00'; // Wert €
+// Klappvisitenkarten 400021 400023 400024
+$PkP400021='1.2'; // Prozentual
+$PkPp400021='5.00'; // Wert €
+$PkP400023='1.2'; // Prozentual
+$PkPp400023='5.00'; // Wert €
+$PkP400024='1.2'; // Prozentual
+$PkPp400024='5.00'; // Wert €
+// Plakate 450001 450002 450003 450004
+$PkP450001='1'; // Prozentual
+$PkPp450001='5.00'; // Wert €
+$PkP450002='1'; // Prozentual
+$PkPp450002='5.00'; // Wert €
+$PkP450003='1'; // Prozentual
+$PkPp450003='5.00'; // Wert €
+$PkP450004='1'; // Prozentual
+$PkPp450004='5.00'; // Wert €
+// Blattsammlungen 500001
+$PkP500001='1'; // Prozentual
+$PkPp500001='0.00'; // Wert €
+// Klappkarten (Parallelfalz) 550011 550012 550013 550014
+$PkP550011='1'; // Prozentual
+$PkPp550011='0.00'; // Wert €
+$PkP550012='1'; // Prozentual
+$PkPp550012='0.00'; // Wert €
+$PkP550013='1'; // Prozentual
+$PkPp550013='0.00'; // Wert €
+$PkP550014='1'; // Prozentual
+$PkPp550014='0.00'; // Wert €
+// Klappkarten (offener Altarfalz) 550021 550022 550023
+$PkP550021='1'; // Prozentual
+$PkPp550021='0.00'; // Wert €
+$PkP550022='1'; // Prozentual
+$PkPp550022='0.00'; // Wert €
+$PkP550023='1'; // Prozentual
+$PkPp550023='0.00'; // Wert €
+// Postkarten 650001 650002 650003
+$PkP650001='1'; // Prozentual
+$PkPp650001='0.00'; // Wert €
+$PkP650002='1'; // Prozentual
+$PkPp650002='0.00'; // Wert €
+$PkP650003='1'; // Prozentual
+$PkPp650003='0.00'; // Wert €
+// Aufkleber 750001 750002 750003
+$PkP750001='1'; // Prozentual
+$PkPp750001='0.00'; // Wert €
+$PkP750002='1'; // Prozentual
+$PkPp750002='0.00'; // Wert €
+$PkP750003='1'; // Prozentual
+$PkPp750003='0.00'; // Wert €
+// Eintrittskarten 850001 850005
+$PkP850001='1'; // Prozentual
+$PkPp850001='0.00'; // Wert €
+$PkP850005='1'; // Prozentual
+$PkPp850005='0.00'; // Wert €
+// (SameDay) Flyer 999101
+$PkP999101='1.5'; // Prozentual
+$PkPp999101='32.00'; // Wert €
+// (SameDay) Visitenkarten 999401
+$PkP999401='1.5'; // Prozentual
+$PkPp999401='37.00'; // Wert €
+// (SameDay) Plakate 999451
+$PkP999451='1.5'; // Prozentual
+$PkPp999451='32.00'; // Wert €
+
+// #############################################################################
+// #### Festpreise (privater Shop) ####
+// #############################################################################
+// Visitenkarten
+$FPVk0010100='19.25';
+$FPVk0010200='22.80';
+$FPVk0010300='26.40';
+$FPVk0010400='30.00';
+$FPVk0010500='33.35';
+$FPVk0010600='36.60';
+$FPVk0010700='39.55';
+$FPVk0010800='42.24';