Add Paper And Calc Values

This commit is contained in:
Thomas Peterson 2018-11-22 17:46:26 +01:00
parent ae27792eac
commit e3df96216a
29 changed files with 1841 additions and 60 deletions

View File

@ -12,7 +12,11 @@ use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\General\Type\Edge;
use PSC\Library\Calc\General\Type\EdgeCollection;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Base;
use PSC\Library\Calc\Option\Type\PaperDbSelect;
use PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\Tests\Mock\Paper;
class Calc
{
@ -47,23 +51,84 @@ class Calc
/** @var Base $option */
foreach($this->article->getOptions() as $option) {
/** @var EdgeCollection $collection */
foreach($option->getEdgesCollectionContainer() as $collection) {
if($option instanceof PaperDbSelect) {
/** @var Select\Opt $opt */
foreach($option->getOptions() as $opt) {
if ($opt->isValid() && $opt->isSelected()) {
/** @var Paper $paper */
$paper = $this->engine->getPaperRepository()->findOneBy(['artNr' => $opt->getId()]);
$this->engine->setVariable($option->getId().'_digital_fix', $paper->getDigitalFix());
$this->engine->setVariable($option->getId().'_digital_var', $paper->getDigitalVar());
$this->engine->setVariable($option->getId().'_value', $paper->getPreis());
$this->engine->setVariable($option->getId().'_volume', $paper->getVolume());
if($collection->getFormel() != "") {
$formel = $this->formelCalc->parseVariables($collection->getFormel());
eval('$var = ' . $formel . ';');
}else{
$var = $this->engine->getVariables()[$collection->getName()];
}
}
/** @var Edge $edge */
foreach($collection as $edge) {
}elseif($option instanceof Select) {
/** @var Select\Opt $opt */
foreach($option->getOptions() as $opt) {
if($opt->isValid() && $opt->isSelected()) {
$price = $this->parseEdgeCollection($price, $option, $opt->getEdgesCollectionContainer());
}
}
}
if($edge->isValid($var)) {
$formel = $this->formelCalc->parseVariables($edge->getFormel());
if ($formel != "") {
eval('$price += ' . $formel . ';');
$price = $this->parseEdgeCollection($price, $option, $option->getEdgesCollectionContainer());
}
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->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->getPauschale() != 0) {
eval('$price += ' . $edge->getPauschale() . ';');
}
if($edge->getPreis() != 0) {
eval('$price += ' . ($edge->getPreis()*$var) . ';');
}
if($edge->getCalcValue() != "") {
$cv = $this->formelCalc->parse($edge->getCalcValue());
eval('$cv = ' . $cv . ';');
$this->engine->addCalcVariable($option->getId() . '_' . $collection->getName(), $cv);
}
if($edge->getFormel() != "") {
$formel = $this->formelCalc->parse($edge->getFormel());
if ($formel != "" && $option->getId() != 'weight' && !$option->isAjaxExport()) {
$p = 0;
eval('$p = ' . $formel . ';');
$price += $p;
$this->engine->setVariable('price', $price);
}

View File

@ -28,7 +28,24 @@ class Formel
$this->article = $article;
}
public function parseVariables($formel)
public function parse($formel) {
$i = 0;
while((strpos($formel,'$F') !== false || strpos($formel,'$P') !== false || strpos($formel,'$V') !== false || strpos($formel,'$CV') !== false) && $i < 6) {
$formel = $this->parseCalcVariables($formel);
$formel = $this->parseFormulas($formel);
$formel = $this->parseParameters($formel);
$formel = $this->parseVariables($formel);
$i++;
}
return $formel;
}
private function parseVariables($formel)
{
preg_match_all('/\$V\w*\$V/', $formel, $founds);
@ -59,4 +76,72 @@ class Formel
return $formel;
}
private function parseParameters($formel)
{
preg_match_all('/\$P\w*\$P/', $formel, $founds);
if (!empty($founds [0])) {
eval(str_replace('\\', '', $this->engine->getParameters()));
foreach ($founds [0] as $key => $found) {
$foundvalue = str_replace('$P', '', $found);
if (isset($$foundvalue)) {
$formel = str_replace($found, $$foundvalue, $formel);
} else {
$formel = str_replace($found, 0, $formel);
}
}
}
return $formel;
}
private function parseFormulas($formel)
{
preg_match_all('/\$F\w*\$F/', $formel, $founds);
if (!empty($founds [0])) {
eval(str_replace('\\', '', $this->engine->getFormulas()));
foreach ($founds [0] as $key => $found) {
$foundvalue = str_replace('$F', '', $found);
$formel = str_replace($found, $$foundvalue, $formel);
}
}
return $formel;
}
private function parseCalcVariables($formel)
{
preg_match_all('/\$CV\w*\$CV/', $formel, $founds);
$variables = $this->engine->getCalcVariables();
if (!empty($founds [0])) {
foreach ($founds [0] as $key => $found) {
$foundvalue = str_replace('$CV', '', $found);
if (isset($variables [$foundvalue])) {
if ($variables [$foundvalue] == 'null') {
$formel = str_replace($found, 0, $formel);
} else {
if ($foundvalue == 'auflage') {
$formel = str_replace($found, str_replace(',', '.', $variables [$foundvalue]), $formel);
} else {
if ($variables [$foundvalue] == '') {
$formel = str_replace($found, 0, $formel);
} else {
$formel = str_replace($found, $variables [$foundvalue], $formel);
}
}
}
} else {
$formel = str_replace($found, 0, $formel);
}
}
}
return $formel;
}
}

View File

@ -7,6 +7,7 @@ use PSC\Library\Calc\General\Type\Edge;
use PSC\Library\Calc\General\Type\EdgeCollection;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Base;
use PSC\Library\Calc\Option\Type\Select;
class Valid
{
@ -24,11 +25,10 @@ class Valid
}
/**
* @return float
* @return void
*/
public function calc()
public function perform()
{
$price = 0;
/** @var Base $option */
foreach($this->article->getOptions() as $option) {
@ -45,12 +45,35 @@ class Valid
}
}
}
if($option instanceof Select) {
/** @var Select\Opt $opt */
foreach ($option->getOptions() as $opt) {
if(count($opt->getEdgesCollectionContainer()) > 0) {
$opt->setIsValid(false);
}
/** @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($this->engine->getVariables()[$option->getId()] == $opt->getId()) {
$opt->setIsSelected(true);
}
}
}
}
return $price;
}
/**
* @param $section
* @param Edge $edge

View File

@ -22,11 +22,11 @@ class Engine
/** @var ObjectRepository */
protected $paperRepository;
/** @var array */
protected $formulas = array();
/** @var string */
protected $formulas = "";
/** @var array */
protected $parameters = array();
/** @var string */
protected $parameters = "";
/** @var array */
protected $variables = array();
@ -43,6 +43,9 @@ class Engine
/** @var bool */
protected $dirty = true;
/** @var Article */
protected $article = null;
/**
* Load XML From String
@ -88,10 +91,10 @@ class Engine
* @return Article
* @throws \Exception
*/
public function getArticleByName($name = false)
private function getArticleByName($name = false)
{
if($name === false) {
$this->articles[0];
return $this->articles[0];
}
/** @var Article $article */
@ -138,7 +141,7 @@ class Engine
}
/**
* @return mixed
* @return string
*/
public function getFormulas()
{
@ -146,7 +149,7 @@ class Engine
}
/**
* @param mixed $formulas
* @param string $formulas
*/
public function setFormulas($formulas)
{
@ -155,7 +158,7 @@ class Engine
}
/**
* @return array
* @return string
*/
public function getParameters()
{
@ -163,7 +166,7 @@ class Engine
}
/**
* @param array $parameters
* @param string $parameters
*/
public function setParameters($parameters)
{
@ -190,27 +193,28 @@ class Engine
public function calc($name = false) {
$this->price = 0;
if($name) {
$article = $this->getArticleByName($name);
$this->article = $this->getArticleByName($name);
}else{
$article = $this->articles[0];
$this->article = $this->articles[0];
}
// Prefill with defaults
/** @var Base $option */
foreach($article->getOptions() as $option) {
foreach($this->article->getOptions() as $option) {
if(!isset($this->variables[$option->getId()]) && $option->getDefault() !== null && !$option instanceof Text) {
$this->variables[$option->getId()] = $option->getDefault();
}
}
// Check if Option is valid
$calcValid = new Valid($this, $article);
$calcValid->calc();
$calcValid = new Valid($this, $this->article);
$calcValid->perform();
// CALC Formel
$calcFormel = new Calc($this, $article);
$this->price += $calcFormel->calc();
$calcFormel = new Calc($this, $this->article);
$this->price = $calcFormel->calc();
$this->dirty = false;
return true;
@ -273,6 +277,10 @@ class Engine
$this->calcVariables = $calcVariables;
}
public function addCalcVariable($id, $value) {
$this->calcVariables[$id] = $value;
}
public function setVariable($var, $value)
{
$this->variables[$var] = $value;
@ -294,4 +302,15 @@ class Engine
$this->tax = $tax;
}
/**
* @return Article
*/
public function getArticle($name = false)
{
if($this->dirty || $this->article == null || ($name != false && $this->article->getName() != $name)) {
$this->calc($name);
}
return $this->article;
}
}

View File

@ -28,6 +28,9 @@ class Base
if(isset($this->node['help'])) {
$this->element->setHelp((string)$this->node['help']);
}
if(isset($this->node['exportAjax']) && (string)$this->node['exportAjax'] == 1) {
$this->element->setIsAjaxExport(true);
}
}

View File

@ -22,7 +22,12 @@ class Select extends Base
public function __construct(\SimpleXMLElement $node)
{
$this->element = new \PSC\Library\Calc\Option\Type\Select();
if(isset($node['mode']) && (string)$node['mode'] == \PSC\Library\Calc\Option\Type\Select::$modePaperDb) {
$this->element = new \PSC\Library\Calc\Option\Type\PaperDbSelect();
}else{
$this->element = new \PSC\Library\Calc\Option\Type\Select();
}
parent::__construct($node);
}
@ -48,12 +53,13 @@ class Select extends Base
/** @var PaperContainer\Item $papier */
foreach ($container->getItems() as $papier) {
/** @var Paper $papierDb */
$papierDb = $this->getPaperRepository()->findOneBy(array('artNr' => $papier->getId()));
if($papierDb) {
$optPapier = new \PSC\Library\Calc\Option\Type\Select\Opt();
$optPapier->setId($papierDb->getArtNr());
$optPapier->setLabel($papierDb->getDescription1());
/** @var Paper $paper */
$paper = $this->getPaperRepository()->findOneBy(array('artNr' => $papier->getId()));
if($paper) {
$optPapier = new \PSC\Library\Calc\Option\Type\Select\PaperOpt();
$optPapier->setId($paper->getArtNr());
$optPapier->setLabel($paper->getDescription1());
$optPapier->setPaper($paper);
$this->element->addOption($optPapier);
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace PSC\Library\Calc\Option\Parser\Select;
use PSC\Library\Calc\General\Parser\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Parser\Base;
class Opt
@ -19,6 +20,11 @@ class Opt
$this->element->setId((string)$this->node['id']);
$this->element->setLabel((string)$this->node['name']);
if($this->node->children()) {
$edgeCollectionContainerParser = new EdgeCollectionContainer($this->node);
$this->element->setEdgesCollectionContainer($edgeCollectionContainerParser->parse());
}
return $this->element;
}

View File

@ -1,7 +1,6 @@
<?php
namespace PSC\Library\Calc\Option\Type;
use General\EdgeCollection;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
class Base
@ -31,13 +30,18 @@ class Base
protected $value = '';
/** @var EdgeCollectionContainer */
protected $edgesCollectionContainer = [];
protected $edgesCollectionContainer = null;
/** @var bool */
protected $isValid = true;
/** @var bool */
protected $isAjaxExport = false;
public function __construct()
{
$this->edgesCollectionContainer = new EdgeCollectionContainer();
}
/**
@ -208,5 +212,21 @@ class Base
$this->edgesCollectionContainer = $edgesCollectionContainer;
}
/**
* @return bool
*/
public function isAjaxExport()
{
return $this->isAjaxExport;
}
/**
* @param bool $isAjaxExport
*/
public function setIsAjaxExport($isAjaxExport)
{
$this->isAjaxExport = $isAjaxExport;
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace PSC\Library\Calc\Option\Type;
use PSC\Library\Calc\Option\Type\Select\Opt;
class PaperDbSelect extends Select
{
public function getSelectedPaper()
{
}
}

View File

@ -86,4 +86,12 @@ class Select extends Base
return $this->options;
}
public function getSelectedOption()
{
/** @var Opt $opt */
foreach($this->getOptions() as $opt) {
if($opt->isSelected()) return $opt;
}
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Base;
class Opt
@ -11,6 +12,24 @@ class Opt
/** @var string $label */
protected $label;
/** @var EdgeCollectionContainer */
protected $edgesCollectionContainer;
/** @var bool */
protected $isValid = true;
/** @var bool */
protected $isSelected = false;
/**
* Opt constructor.
*/
public function __construct()
{
$this->edgesCollectionContainer = new EdgeCollectionContainer();
}
/**
* @return string
*/
@ -43,5 +62,51 @@ class Opt
$this->label = $label;
}
/**
* @return EdgeCollectionContainer
*/
public function getEdgesCollectionContainer()
{
return $this->edgesCollectionContainer;
}
/**
* @param EdgeCollectionContainer $edgesCollectionContainer
*/
public function setEdgesCollectionContainer($edgesCollectionContainer)
{
$this->edgesCollectionContainer = $edgesCollectionContainer;
}
/**
* @return bool
*/
public function isValid()
{
return $this->isValid;
}
/**
* @param bool $isValid
*/
public function setIsValid($isValid)
{
$this->isValid = $isValid;
}
/**
* @return bool
*/
public function isSelected()
{
return $this->isSelected;
}
/**
* @param bool $isSelected
*/
public function setIsSelected($isSelected)
{
$this->isSelected = $isSelected;
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Base;
class PaperOpt extends Opt
{
protected $paper = null;
public function setPaper($paper)
{
$this->paper = $paper;
}
/**
* @return null
*/
public function getPaper()
{
return $this->paper;
}
}

View File

@ -38,7 +38,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
/** @var Article $article */
$article = $parser->getArticleByName('Kalender');
$article = $parser->getArticle();
$this->assertInstanceOf('PSC\Library\Calc\Article', $article);
$this->assertEquals('Kalender', $article->getName());
}
@ -55,7 +55,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
$parser->setPaperContainer($paperContainer);
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
/** @var Article $article */
$article = $parser->getArticleByName('Kalender');
$article = $parser->getArticle();
/** @var Select $option */
$option = $article->getOptionById('size');
@ -77,7 +77,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
/** @var Article $article */
$article = $parser->getArticleByName('Kalender');
$article = $parser->getArticle();
$article->setParams(array(
"motive" => 0,
@ -123,7 +123,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
/** @var Article $article */
$article = $parser->getArticleByName('Kalender');
$article = $parser->getArticle();
$this->assertEquals(11, $article->getOptions()->count());
}

View File

@ -27,7 +27,7 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
public function testIfParserGetArticleCorrect()
{
$article = $this->engine->getArticleByName('test1');
$article = $this->engine->getArticle();
$this->assertEquals('test1', $article->getName());
$this->assertEquals(17, count($article->getOptions()));

View File

@ -27,7 +27,8 @@ class SimpleXmlTest extends \PHPUnit_Framework_TestCase
$parser = new Engine(new Container());
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/simple2articles.xml'));
$article = $parser->getArticleByName('Blocks A5 25blatt geleimt');
$parser->calc("Blocks A5 25blatt geleimt");
$article = $parser->getArticle();
$this->assertInstanceOf('PSC\Library\Calc\Article', $article);
$this->assertEquals('Blocks A5 25blatt geleimt', $article->getName());
}

View File

@ -29,7 +29,7 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase
public function testIfParserGetArticleCorrect()
{
$article = $this->engine->getArticleByName('test1');
$article = $this->engine->getArticle();
$this->assertEquals('test1', $article->getName());
$this->assertEquals(2, count($article->getOptions()));
@ -43,7 +43,7 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase
$this->engine->calc('test1');
/** @var Article $article */
$article = $this->engine->getArticleByName('test1');
$article = $this->engine->getArticle();
/** @var Base $option */
$option = $article->getOptionById('gebwert');

View File

@ -0,0 +1,43 @@
<?php
namespace PSC\Library\Calc\Tests\Calc;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\Option\Type\Base;
use PSC\Library\Calc\PaperContainer\Container;
class PreisPauschale extends \PHPUnit_Framework_TestCase
{
/** @var Engine */
protected $engine = null;
public function setUp()
{
$this->engine = new Engine(new Container());
$this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/Calc/pauschale_preis.xml'));
}
public function tearDown()
{
$this->engine = null;
}
public function testIfArticleCountIsCorrect()
{
$this->assertEquals(1, $this->engine->getArticles()->Count());
}
public function testPreisPauschaleCalc()
{
$this->engine->calc();
$this->assertEquals(110, $this->engine->getPrice());
$this->engine->setVariables(['auflage' => 50]);
$this->assertEquals(270, $this->engine->getPrice());
$this->engine->setVariables(['auflage' => 250]);
$this->assertEquals(0, $this->engine->getPrice());
}
}

View File

@ -0,0 +1,47 @@
<?php
namespace PSC\Library\Calc\Tests\CalcValue;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\Option\Type\PaperDbSelect;
use PSC\Library\Calc\PaperContainer;
use PSC\Library\Calc\PaperContainer\Container;
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
class ComplexTest extends \PHPUnit_Framework_TestCase
{
/** @var Engine */
protected $engine = null;
public function setUp()
{
$repository = new PaperRepostory();
$paperContainer = new PaperContainer();
$paperContainer->parse(simplexml_load_string(file_get_contents(__DIR__ .'/../TestFiles/CalcValue/papierContainer.xml')));
$this->engine = new Engine();
$this->engine->setPaperRepository($repository);
$this->engine->setPaperContainer($paperContainer);
$this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/CalcValue/complex.xml'));
$this->engine->setFormulas(file_get_contents(__DIR__.'/../TestFiles/formels.txt'));
$this->engine->setParameters(file_get_contents(__DIR__.'/../TestFiles/parameters.txt'));
}
public function tearDown()
{
$this->engine = null;
}
public function testIfParseValue()
{
$this->assertEquals(28.54, $this->engine->getPrice());
}
public function testIfPaperGrammaturValue()
{
$this->assertInstanceOf(PaperDbSelect::Class, $this->engine->getArticle()->getOptionById('papier'));
$this->assertEquals("INM115", $this->engine->getArticle()->getOptionById('papier')->getSelectedOption()->getId());
$this->assertEquals(0.104, $this->engine->getArticle()->getOptionById('papier')->getSelectedOption()->getPaper()->getVolume());
}
}

View File

@ -0,0 +1,27 @@
<?php
namespace PSC\Library\Calc\Tests\CalcValue;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\PaperContainer\Container;
class SimpleTest extends \PHPUnit_Framework_TestCase
{
/** @var Engine */
protected $engine = null;
public function setUp()
{
$this->engine = new Engine(new Container());
$this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/CalcValue/simple.xml'));
}
public function tearDown()
{
$this->engine = null;
}
public function testIfParseValue()
{
$this->assertEquals(20, $this->engine->getPrice());
}
}

View File

@ -244,6 +244,8 @@ class Paper
private $digitalVar;
private $volume;
/**
* @return mixed
*/
@ -1092,5 +1094,21 @@ class Paper
$this->digitalVar = $digitalVar;
}
/**
* @return mixed
*/
public function getVolume()
{
return $this->volume;
}
/**
* @param mixed $volume
*/
public function setVolume($volume)
{
$this->volume = $volume;
}
}

View File

@ -101,6 +101,64 @@ class PaperRepostory implements ObjectRepository
$papier['bdg300']->setArtNr('bdg300');
$papier['bdg300']->setDescription1('Bilderdruck glänzend 300 gr');
$papier['INM115'] = new Paper();
$papier['INM115']->setArtNr('INM115');
$papier['INM115']->setGrammatur('115');
$papier['INM115']->setDigitalVar('495');
$papier['INM115']->setDigitalFix('345');
$papier['INM115']->setPreis(24);
$papier['INM115']->setVolume(0.104);
$papier['INM115']->setDescription1('115 g/m² Bilderdruck matt gestrichen');
$papier['INM115']->setDescription2('115 g/m² Inapa Infinity silk, seidenmatt');
$papier['INM300'] = new Paper();
$papier['INM300']->setArtNr('INM300');
$papier['INM300']->setGrammatur('300');
$papier['INM300']->setDigitalVar('495');
$papier['INM300']->setDigitalFix('345');
$papier['INM300']->setPreis(58);
$papier['INM300']->setVolume(0.303);
$papier['INM300']->setDescription1('115 g/m² Bilderdruck matt gestrichen');
$papier['INM300']->setDescription2('115 g/m² Inapa Infinity silk, seidenmatt');
$papier['INA90'] = new Paper();
$papier['INA90']->setArtNr('INA90');
$papier['INA90']->setArtNr('90');
$papier['INA90']->setDigitalVar('495');
$papier['INA90']->setDigitalFix('345');
$papier['INA90']->setPreis(28.3);
$papier['INA90']->setVolume(0.119);
$papier['INA90']->setDescription1(' 90 g/m² Offsetpapier hochweiß, natur');
$papier['INA90']->setDescription2('90 g/m² Multi Business, 1,3-faches Volumen');
$papier['INA400'] = new Paper();
$papier['INA400']->setArtNr('INA400');
$papier['INA400']->setGrammatur('400');
$papier['INA400']->setDigitalVar('495');
$papier['INA400']->setDigitalFix('345');
$papier['INA400']->setPreis(154);
$papier['INA400']->setVolume(0.548);
$papier['INA400']->setDescription1('400 g/m² Offsetpapier hochweiß, natur');
$papier['INA400']->setDescription2('400 g/m² Maestro extra, 1,3-faches Volumen');
$papier['ZETL260'] = new Paper();
$papier['ZETL260']->setArtNr('ZETL260');
$papier['ZETL260']->setGrammatur('260');
$papier['ZETL260']->setDigitalVar('495');
$papier['ZETL260']->setDigitalFix('345');
$papier['ZETL260']->setPreis(220);
$papier['ZETL260']->setVolume(0.280);
$papier['ZETL260']->setDescription1('260 g/m² Zanders ZETA leinen brilliantweiß');
$papier['ZETL260']->setDescription2('260 g/m² Naturkarton leinengeprägt');
$papier['CONG300_1'] = new Paper();
$papier['CONG300_1']->setArtNr('CONG300_1');
$papier['CONG300_1']->setGrammatur('300');
$papier['CONG300_1']->setDescription1('300 g/m² Naturkarton gerippt hochweiß');
$papier['CONG300_1']->setDescription2('300 g/m² Conqueror gerippt diamantweiß');
return $papier[$criteria['artNr']];
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>preis und pauschale</name>
<kommentar>kein</kommentar>
<option id="auflage" name="Auflage" type="Input" width="3" require="true" default="10"/>
<option id="calc" name="calc" type="Hidden" default="1">
<auflage>
<grenze preis="10" pauschale="10">1-10</grenze>
<grenze preis="5" pauschale="20">11-100</grenze>
<grenze>101-</grenze>
</auflage>
</option>
</artikel>
</kalkulation>

View File

@ -56,7 +56,7 @@
</gebyn>
</option>
<option id="calc_min" name="" type="Hidden">
<option id="calc_min" name="" type="Hidden" default="1">
<gebyn formel="$Vprice$V &lt;= 2500? 1:2">
<grenze formel="2500-$Vprice$V">1</grenze>
<grenze formel="">2</grenze>

View File

@ -0,0 +1,246 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Shop: NoWe-Shop -->
<!-- Artikel-Name: Flyer im DIN Format -->
<!-- Artikel-Nummer: 100-100001 -->
<!-- Änderung: 25.07.2018 12:00 -->
<!-- Besondere Produktkorrekturen = keine -->
<kalkulation>
<artikel>
<name>Flyer im DIN Format</name>
<kommentar>100-100001</kommentar>
<!-- ### Preflight ### -->
<uploads>
<upload id="uploaddata" name="Druckdaten als PDF" description="Bitte lade Deine Daten hoch">
<preflight id="Preflight-PDF"/>
</upload>
</uploads>
<!-- ### Papierkatalog ### -->
<option id="papierauswahlinhalt" name="Papierauswahl" type="Select" default="papier1">
<opt id="papier1" name="gestrichene Papiere"></opt>
<opt id="papier2" name="Naturpapiere"></opt>
<opt id="papier3" name="Premiumpapiere"></opt>
</option>
<option id="papier" name="Papiergewicht" type="Select" mode="papierdb" container="XXX-XXXXX9" default="INM115" helplink="/cms/papierinformationen" />
<!-- ### Format und Ausrichtung ### -->
<option id="gross" name="Endformat" type="Select" default="62370">
<opt id="124740" name="DIN A3" />
<opt id="62370" name="DIN A4" />
<opt id="31080" name="DIN A5" />
<opt id="15540" name="DIN A6" />
<opt id="7770" name="DIN A7" />
<opt id="3848" name="DIN A8" />
<opt id="22050" name="DIN lang 105" />
<opt id="20580" name="DIN lang 98" />
</option>
<option id="aus" name="Hoch- oder Querformat" type="Select" default="02100297">
<opt id="02970420" name="297 x 420 mm (Hochformat)"><gross><grenze calc_value="1">124740</grenze></gross></opt>
<opt id="04200297" name="420 x 297 mm (Querformat)"><gross><grenze calc_value="1">124740</grenze></gross></opt>
<opt id="02100297" name="210 x 297 mm (Hochformat)"><gross><grenze calc_value="2">62370</grenze></gross></opt>
<opt id="02970210" name="297 x 210 mm (Querformat)"><gross><grenze calc_value="2">62370</grenze></gross></opt>
<opt id="01480210" name="148 x 210 mm (Hochformat)"><gross><grenze calc_value="4">31080</grenze></gross></opt>
<opt id="02100148" name="210 x 148 mm (Querformat)"><gross><grenze calc_value="4">31080</grenze></gross></opt>
<opt id="01050148" name="105 x 148 mm (Hochformat)"><gross><grenze calc_value="9">15540</grenze></gross></opt>
<opt id="01480105" name="148 x 105 mm (Querformat)"><gross><grenze calc_value="9">15540</grenze></gross></opt>
<opt id="00740105" name="74 x 105 mm (Hochformat)"><gross><grenze calc_value="18">7770</grenze></gross></opt>
<opt id="01050074" name="105 x 74 mm (Querformat)"><gross><grenze calc_value="18">7770</grenze></gross></opt>
<opt id="00520074" name="52 x 74 mm (Hochformat)"><gross><grenze calc_value="32">3848</grenze></gross></opt>
<opt id="00740052" name="74 x 52 mm (Querformat)"><gross><grenze calc_value="32">3848</grenze></gross></opt>
<opt id="01050210" name="105 x 210 mm (Hochformat)"><gross><grenze calc_value="6">22050</grenze></gross></opt>
<opt id="02100105" name="210 x 105 mm (Querformat)"><gross><grenze calc_value="6">22050</grenze></gross></opt>
<opt id="00980210" name="98 x 210 mm (Hochformat)"><gross><grenze calc_value="6">20580</grenze></gross></opt>
<opt id="02100098" name="210 x 98 mm (Querformat)"><gross><grenze calc_value="6">20580</grenze></gross></opt>
</option>
<!-- ### Seiten und Farbigkeit ### -->
<option id="seiten" name="einseitiger oder zweiseitiger Druck" type="Select" default="2">
<opt id="1" name="einseitiger Druck" />
<opt id="2" name="zweiseitiger Druck" />
</option>
<option id="4cklick" name="Klickkosten zum Format" type="Hidden">
<formatwidth formel="$Vpapier_digital_var$V">
<grenze calc_value="$PMEK10004$P">0-521</grenze>
<grenze calc_value="$PMEK10014$P">522-571</grenze>
<grenze calc_value="$PMEK10024$P">572-660</grenze>
</formatwidth>
</option>
<option id="1cklick" name="Klickkosten zum Format" type="Hidden">
<formatwidth formel="$Vpapier_digital_var$V">
<grenze calc_value="$PMEK10001$P">0-660</grenze>
</formatwidth>
</option>
<option id="farbe" name="Farbigkeit" type="Select" default="4f4f">
<opt id="4f" name="einseitig farbig (4/0-farbig Euroskala)"><seiten><grenze calc_value="($CV4cklick_formatwidth$CV)">1</grenze></seiten></opt>
<opt id="1f" name="einseitig schwarz (1/0-farbig)"><seiten><grenze calc_value="($CV1cklick_formatwidth$CV)">1</grenze></seiten></opt>
<opt id="4f4f" name="beidseitig farbig (4/4-farbig Euroskala)"><seiten><grenze calc_value="($CV4cklick_formatwidth$CV+$CV4cklick_formatwidth$CV)">2</grenze></seiten></opt>
<opt id="1f1f" name="beidseitig schwarz (1/1-farbig schwarz)"><seiten><grenze calc_value="($CV1cklick_formatwidth$CV+$CV1cklick_formatwidth$CV)">2</grenze></seiten></opt>
<opt id="4f1f" name="vorderseitig farbig (Euroskala) rückseitig schwarz (4/1-farbig)"><seiten><grenze calc_value="($CV4cklick_formatwidth$CV+$CV1cklick_formatwidth$CV)">2</grenze></seiten></opt>
<opt id="1f4f" name="vorderseitig schwarz rückseitig farbig (Euroskala) (1/4-farbig)"><seiten><grenze calc_value="($CV4cklick_formatwidth$CV+$CV1cklick_formatwidth$CV)">2</grenze></seiten></opt>
</option>
<!-- ### Auflage ### -->
<option id="auflage" name="Auflagenhöhe" type="Input" default="100" min="1" max="4000" require="true" />
<!--
<option id="auflage" name="Auflage" type="Select" default="100" require="true">
<opt id="100" name="100 St." />
<opt id="200" name="200 St." />
<opt id="300" name="300 St." />
<opt id="400" name="400 St." />
<opt id="500" name="500 St." />
<opt id="1000" name="1000 St." />
</option>
-->
<option id="versionen" name="Versionen" type="Select" default="1">
<opt id="1" name="1 Version pro Auflage" />
<opt id="2" name="2 Versionen pro Auflage" />
<opt id="3" name="3 Versionen pro Auflage" />
<opt id="4" name="4 Versionen pro Auflage" />
<opt id="5" name="5 Versionen pro Auflage" />
<opt id="6" name="6 Versionen pro Auflage" />
<opt id="7" name="7 Versionen pro Auflage" />
<opt id="8" name="8 Versionen pro Auflage" />
<opt id="9" name="9 Versionen pro Auflage" />
<opt id="10" name="10 Versionen pro Auflage" />
</option>
<!-- ### Datencheck ### -->
<option id="datacheck" name="Datencheck" type="Select" default="std" helplink="/cms/datenpruefung">
<opt id="std" name="StandardCheck"><auflage><grenze calc_value="$PPCheck001$P">1-</grenze></auflage></opt>
<opt id="profi" name="ProfiCheck"><auflage><grenze calc_value="$PPCheck002$P">1-</grenze></auflage></opt>
</option>
<!-- ### Korrektur ### -->
<option id="korrektur" name="Korrekturabzug" type="Select" default="std">
<opt id="std" name="keinen"><auflage><grenze calc_value="$PPKorr000$P">1-</grenze></auflage></opt>
<opt id="pdf" name="PDF per E-Mail"><auflage><grenze calc_value="$PPKorr001$P">1-</grenze></auflage></opt>
</option>
<!-- ### Produktionszeit ### -->
<option id="produktion" name="Produktionszeit" type="Select" default="long">
<opt id="long" name="Normal - 5 Arbeitstage Bestellung bis 12 Uhr"><auflage><grenze calc_value="$PPZeit005$P">1-</grenze></auflage></opt>
<opt id="std" name="Schnell - 3 Arbeitstage Bestellung bis 12 Uhr"><auflage><grenze calc_value="$PPZeit003$P">1-3000</grenze></auflage></opt>
<opt id="exp" name="Express - 1 Arbeitstag Bestellung bis 12 Uhr"><auflage><grenze calc_value="$PPZeit001$P">1-1500</grenze></auflage></opt>
</option>
<!-- ###### Kalkulationsparameter zum Produkt ###### -->
<option id="preiskorrektur" name="Preiskorrektur (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PPkP100001$P">1-</grenze></auflage>
</option>
<option id="preiskorrekturpauschale" name="Preiskorrekturpauschale (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PPkPp100001$P">1-</grenze></auflage>
</option>
<option id="produktrabatt" name="Rabatt (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PRP100001$P">1-</grenze></auflage>
</option>
<option id="erz100p" name="Einrichtungszeit (iGen)" type="Hidden">
<auflage><grenze calc_value="$PErZ100$P">1-</grenze></auflage>
</option>
<option id="stdl100p" name="Stundenleistung (iGen)" type="Hidden">
<auflage><grenze calc_value="$PStdL10001$P">1-</grenze></auflage>
</option>
<option id="erz200p" name="Einrichtungszeit (Planschneider)" type="Hidden">
<auflage><grenze calc_value="$PErZ200$P">1-</grenze></auflage>
</option>
<option id="stdl200p" name="Stundenleistung (Planschneider)" type="Hidden">
<auflage><grenze calc_value="$PStdL200$P">1-</grenze></auflage>
</option>
<option id="drbzgpp" name="Druckbogenzugabe Prozent (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PDrBZgP100000$P">1-</grenze></auflage>
</option>
<option id="drbzgp" name="Druckbogenzugabe Stück (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PDrBZg100000$P">1-</grenze></auflage>
</option>
<option id="verpzgp" name="Umverpackungszugabe Gewicht (Produkt)" type="Hidden">
<auflage><grenze calc_value="$PVerpZg100000$P">1-</grenze></auflage>
</option>
<!-- ###### Berechnung ###### -->
<!-- ### Material (Papier) ### -->
<option id="g000mko" name="g000mko" type="Hidden"><auflage><grenze formel="round($FBerd000mkog$F, 2)">1-</grenze></auflage></option>
<!-- ### Material (iGen) ### -->
<option id="g100mko" name="g100mko" type="Hidden"><auflage><grenze formel="round($FBerd100mkog$F, 2)">1-</grenze></auflage></option>
<!-- ### Fertigungskosten (iGen) ### -->
<option id="g100fko" name="g100fko" type="Hidden"><auflage><grenze formel="round($FBerd100fkog$F, 2)">1-</grenze></auflage></option>
<!-- ### Fertigungskosten (Planschneider) ### -->
<option id="g200fko" name="g200fko" type="Hidden"><auflage><grenze formel="round($FBerd200fkog$F, 2)">1-</grenze></auflage></option>
<!-- ### Preiskorrekturpauschale ### -->
<option id="g990fko" name="g990fko" type="Hidden"><auflage><grenze formel="round($FBerg990fko$F, 2)">1-</grenze></auflage></option>
<!-- ### Kalkulationshilfe ### -->
<option id="akosten" name="akosten" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBera000mkog$F)+($FBera100mkog$F)+($FBera100fkog$F)+($FBera200fkog$F)+($FBerg990fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="bkosten" name="bkosten" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerb000mkog$F)+($FBerb100mkog$F)+($FBerb100fkog$F)+($FBerb200fkog$F)+($FBerg990fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="bkostena" name="bkostena" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerb000mko$F)+($FBerb100mko$F)+($FBerb100fko$F)+($FBerb200fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="ckosten" name="ckosten" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerc000mkog$F)+($FBerc100mkog$F)+($FBerc100fkog$F)+($FBerc200fkog$F)+($FBerg990fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="ckostena" name="ckostena" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerc000mko$F)+($FBerc100mko$F)+($FBerc100fko$F)+($FBerc200fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="dkosten1" name="dkosten1" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F)+($FBerg990fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="dkostena1" name="dkostena1" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerd000mko$F)+($FBerd100mko$F)+($FBerd100fko$F)+($FBerd200fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="dkosten2" name="dkosten2" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerd000mkog2$F)+($FBerd100mkog2$F)+($FBerd100fkog2$F)+($FBerd200fkog2$F)+($FBerg990fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="dkostena2" name="dkostena2" type="Hidden" exportAjax="1">
<auflage>
<grenze formel="round((($FBerd000mko2$F)+($FBerd100mko2$F)+($FBerd100fko2$F)+($FBerd200fko2$F)), 2)">1-</grenze>
</auflage>
</option>
<!-- ### Rabatt (Benutzerrabatt)### -->
<option id="calc_rabatt_benutzer" name="calc_rabatt_benutzer" type="Hidden" default="1">
<auflage>
<grenze formel="round(-(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F)+($FBerg990fko$F))*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2), 2)">1-</grenze>
</auflage>
</option>
<option id="rabatt_benutzer" name="rabatt_benutzer" type="Hidden" exportAjax="1">
<calc_rabatt_benutzer>
<grenze formel="round(+(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F)+($FBerg990fko$F))*($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2), 2)">1-</grenze>
</calc_rabatt_benutzer>
</option>
<!-- ### Rabatt (Produktrabatt)### -->
<option id="calc_rabatt_produkt" name="calc_rabatt_produkt" type="Hidden" default="1">
<auflage>
<grenze formel="round(-(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F)+($FBerg990fko$F))*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)), 2)">1-</grenze>
</auflage>
</option>
<option id="rabatt_produkt" name="rabatt_produkt" type="Hidden" exportAjax="1">
<calc_rabatt_produkt>
<grenze formel="round(+(($FBerd000mkog$F)+($FBerd100mkog$F)+($FBerd100fkog$F)+($FBerd200fkog$F)+($FBerg990fko$F))*($CVproduktrabatt_auflage$CV)*pow(0,($calcValue1+$calcValue2+$calcValueAccount1+$calcValueAccount2)), 2)">1-</grenze>
</calc_rabatt_produkt>
</option>
<!-- ### Aufschlag (Servicepauschalen)### -->
<option id="calc_aufschlag" name="calc_aufschlag" type="Hidden" default="1">
<auflage>
<grenze formel="round((+($FBerg998fko$F)), 2)">1-</grenze>
</auflage>
</option>
<option id="aufschlag" name="aufschlag" type="Hidden" exportAjax="1">
<calc_aufschlag>
<grenze formel="round((+($FBerg998fko$F)), 2)">1-</grenze>
</calc_aufschlag>
</option>
<!-- ### Gewichtsberechnung ### -->
<option id="weight" name="weight" type="Hidden">
<auflage>
<grenze formel="$FBerweight$F">1-</grenze>
</auflage>
</option>
</artikel>
</kalkulation>

View File

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8"?>
<container>
<papiercontainer id="einleger">
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="trans"/>
<papier id="c100"/>
<papier id="biotop80"/>
</papiercontainer>
<papiercontainer id="fanbuch">
<papier id="kp80"/>
<papier id="biotop80"/>
<papier id="c100"/>
<papier id="recy80"/>
<papier id="munken90"/>
<papier id="kar"/>
<papier id="lin"/>
</papiercontainer>
<papiercontainer id="brosch_sw_innen">
<papier id="kp80"/>
<papier id="c100"/>
<papier id="recy80"/>
<papier id="munken90"/>
</papiercontainer>
<papiercontainer id="abi_sw_innen">
<papier id="kp80"/>
<papier id="recy80"/>
</papiercontainer>
<papiercontainer id="abi_farb_innen">
<papier id="c100"/>
<papier id="recy80"/>
</papiercontainer>
<papiercontainer id="inkjet">
<papier id="kp80"/>
<papier id="biotop80"/>
<papier id="recy80"/>
</papiercontainer>
<papiercontainer id="swpapier">
<papier id="kp80"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken80"/>
<papier id="farb80"/>
</papiercontainer>
<papiercontainer id="briefpapier">
<papier id="kp80"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken80"/>
<papier id="c100"/>
</papiercontainer>
<papiercontainer id="brosch_sw_umschlag">
<papier id="biotop160"/>
<papier id="recy160"/>
<papier id="k160"/>
<papier id="k160f"/>
<papier id="kp80"/>
<papier id="c100"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken90"/>
</papiercontainer>
<papiercontainer id="brosch_farb_umschlag">
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="biotop160"/>
<papier id="c200"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken90"/>
<papier id="c100"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
</papiercontainer>
<papiercontainer id="brosch_farb_innen">
<papier id="c100"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken90"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
</papiercontainer>
<papiercontainer id="titeldruck">
<papier id="c200"/>
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
</papiercontainer>
<papiercontainer id="katalog_umschlag">
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
</papiercontainer>
<papiercontainer id="katalog_innen">
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
</papiercontainer>
<papiercontainer id="flyer">
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
</papiercontainer>
<papiercontainer id="flyerkarte">
<papier id="kp80"/>
<papier id="recy80"/>
<papier id="munken90"/>
<papier id="c100"/>
<papier id="c120"/>
<papier id="c200"/>
<papier id="c300"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="cro270"/>
<papier id="munken240"/>
<papier id="recy240"/>
</papiercontainer>
<papiercontainer id="1">
<papier id="c100"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
</papiercontainer>
<papiercontainer id="4cpapier">
<papier id="c100_incl"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="biotop80"/>
<papier id="recy80"/>
<papier id="munken90"/>
</papiercontainer>
<papiercontainer id="stro">
<papier id="c100_incl"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
</papiercontainer>
<papiercontainer id="faltflyer">
<papier id="c100"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="bdm170"/>
<papier id="bdg170"/>
</papiercontainer>
<papiercontainer id="karte">
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdg350"/>
<papier id="cro270"/>
</papiercontainer>
<papiercontainer id="postkarte">
<papier id="c300"/>
<papier id="recy240"/>
<papier id="munken240"/>
<papier id="cro270"/>
</papiercontainer>
<papiercontainer id="vk">
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdg350"/>
<papier id="visit"/>
<papier id="cro270"/>
</papiercontainer>
<papiercontainer id="2">
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdg350"/>
<papier id="rtemotion"/>
<papier id="cro270"/>
</papiercontainer>
<papiercontainer id="fk">
<papier id="c200"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="munken240"/>
</papiercontainer>
<papiercontainer id="faltkartekoffset">
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
</papiercontainer>
<papiercontainer id="3">
<papier id="cc100"/>
<papier id="cc120"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
<papier id="cc300"/>
<papier id="bdm250"/>
<papier id="bdm350"/>
<papier id="bdg250"/>
<papier id="bdg350"/>
<papier id="rtemotion"/>
</papiercontainer>
<papiercontainer id="4">
<papier id="bkls"/>
<papier id="bklg"/>
<papier id="bklr"/>
</papiercontainer>
<papiercontainer id="01">
<papier id="kp80"/>
<papier id="k160"/>
<papier id="k160f"/>
</papiercontainer>
<papiercontainer id="cd">
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="biotop160"/>
<papier id="recy160"/>
<papier id="c200"/>
<papier id="c100"/>
<papier id="bdm135"/>
<papier id="bdg135"/>
</papiercontainer>
<papiercontainer id="zertifikat">
<papier id="bdm170"/>
<papier id="bdg170"/>
<papier id="biotop160"/>
<papier id="recy160"/>
<papier id="c200"/>
<papier id="c300"/>
<papier id="bdm250"/>
<papier id="bdg250"/>
<papier id="bdg350"/>
<papier id="visit"/>
<papier id="cro270"/>
<papier id="munken240"/>
</papiercontainer>
<papiercontainer id="serienbrief">
<papier id="kp80"/>
<papier id="c100"/>
<papier id="recy80"/>
<papier id="munken90"/>
<papier id="angel"/>
</papiercontainer>
<papiercontainer id="plakat">
<papier id="160mt"/>
<papier id="80mt"/>
</papiercontainer>
<papiercontainer id="XXX-XXXXX9">
<papier id="INM115"><grenzen><papierauswahlinhalt><grenze>papier1</grenze></papierauswahlinhalt></grenzen></papier>
<papier id="INM300"><grenzen><papierauswahlinhalt><grenze>papier1</grenze></papierauswahlinhalt></grenzen></papier>
<papier id="INA90"><grenzen><papierauswahlinhalt><grenze>papier2</grenze></papierauswahlinhalt></grenzen></papier>
<papier id="INA400"><grenzen><papierauswahlinhalt><grenze>papier2</grenze></papierauswahlinhalt></grenzen></papier>
<papier id="ZETL260"><grenzen><papierauswahlinhalt><grenze>papier3</grenze></papierauswahlinhalt></grenzen></papier>
<papier id="CONG300_1"><grenzen><papierauswahlinhalt><grenze>papier3</grenze></papierauswahlinhalt></grenzen></papier>
</papiercontainer>
</container>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>simple</name>
<kommentar>simple</kommentar>
<option id="auflage" name="Auflagenhöhe" type="Input" default="100" min="1" max="4000" require="true" />
<option id="gebyn" name="Benutzen Sie ein eigenes Gebäude?" type="Select" default="1">
<opt id="1" name="Ja">
<auflage>
<grenze calc_value="(20)">1-</grenze>
</auflage>
</opt>
<opt id="2" name="Nein">
<auflage>
<grenze calc_value="(10)">1-</grenze>
</auflage>
</opt>
</option>
<option id="calc" name="calc" type="Hidden" default="1">
<auflage>
<grenze formel="$CVgebyn_auflage$CV">1-</grenze>
</auflage>
</option>
</artikel>
</kalkulation>

View File

@ -17,32 +17,32 @@
<option id="size" name="Wählen Sie eine Größe" type="Select" width="3" default="a4h" require="true" help="Wählen Sie eine Größe">
<opt id="a5h" name="DIN A5 Hochformat (210x148mm)">
<auflage>
<grenze formel="($Fkalendera5$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
<opt id="a5q" name="DIN A5 Querformat (148x210mm)">
<auflage>
<grenze formel="($Fkalendera5$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
<opt id="a4h" name="DIN A4 Hochformat (297 x 210 mm)">
<auflage>
<grenze formel="($Fkalendera4$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
<opt id="a4q" name="DIN A4 Querformat (210x297mm)">
<auflage>
<grenze formel="($Fkalendera4$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
<opt id="a3h" name="DIN A3 Hochformat (420x297mm)">
<auflage>
<grenze formel="($Fkalendera3$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
<opt id="a3q" name="DIN A3 Querformat (297x420mm)">
<auflage>
<grenze formel="($Fkalendera3$F)">1-</grenze>
<grenze formel="(0)">1-</grenze>
</auflage>
</opt>
</option>

306
tests/TestFiles/formels.txt Normal file
View File

@ -0,0 +1,306 @@
// 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 ####
$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 ####
$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';
$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 ####
$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 ####
$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 ####
$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 ####
$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';
$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
$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) ####
$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';
// #### 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';
// #### Gewicht (XXX) ####
$WeightU='(($Vgross$V/1000000)*$Vpapierumschlag_grammatur$V*$Vauflage$V*$FBlattUmschlag$F)';
$WeightI='(($Vgross$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)';

View File

@ -0,0 +1,378 @@
// 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';
// #### Pauschalen (998) #######################################################
// Datencheck
$PCheck001='0.00'; // (Standard)
$PCheck002='15.00'; // (Profi)
// Korrekturabzug
$PKorr000='0.00'; // (StandardCheck)
$PKorr001='2.00'; // (ProfiCheck)
// Produktionszeit
$PZeit001='12.50'; // (Express)
$PZeit003='5.00'; // (Schnell)
$PZeit005='0'; // (Normal)
$PZeit009='0'; // (SameDay)
// #############################################################################
// #### 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 €