Add Paper And Calc Values
This commit is contained in:
parent
ae27792eac
commit
e3df96216a
@ -12,7 +12,11 @@ use PSC\Library\Calc\Article;
|
|||||||
use PSC\Library\Calc\Engine;
|
use PSC\Library\Calc\Engine;
|
||||||
use PSC\Library\Calc\General\Type\Edge;
|
use PSC\Library\Calc\General\Type\Edge;
|
||||||
use PSC\Library\Calc\General\Type\EdgeCollection;
|
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\Base;
|
||||||
|
use PSC\Library\Calc\Option\Type\PaperDbSelect;
|
||||||
|
use PSC\Library\Calc\Option\Type\Select;
|
||||||
|
use PSC\Library\Calc\Tests\Mock\Paper;
|
||||||
|
|
||||||
class Calc
|
class Calc
|
||||||
{
|
{
|
||||||
@ -47,23 +51,84 @@ class Calc
|
|||||||
/** @var Base $option */
|
/** @var Base $option */
|
||||||
foreach($this->article->getOptions() as $option) {
|
foreach($this->article->getOptions() as $option) {
|
||||||
|
|
||||||
/** @var EdgeCollection $collection */
|
if($option instanceof PaperDbSelect) {
|
||||||
foreach($option->getEdgesCollectionContainer() as $collection) {
|
/** @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 */
|
}elseif($option instanceof Select) {
|
||||||
foreach($collection as $edge) {
|
/** @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)) {
|
$price = $this->parseEdgeCollection($price, $option, $option->getEdgesCollectionContainer());
|
||||||
$formel = $this->formelCalc->parseVariables($edge->getFormel());
|
}
|
||||||
if ($formel != "") {
|
|
||||||
eval('$price += ' . $formel . ';');
|
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);
|
$this->engine->setVariable('price', $price);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,7 +28,24 @@ class Formel
|
|||||||
$this->article = $article;
|
$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);
|
preg_match_all('/\$V\w*\$V/', $formel, $founds);
|
||||||
|
|
||||||
@ -59,4 +76,72 @@ class Formel
|
|||||||
|
|
||||||
return $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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -7,6 +7,7 @@ use PSC\Library\Calc\General\Type\Edge;
|
|||||||
use PSC\Library\Calc\General\Type\EdgeCollection;
|
use PSC\Library\Calc\General\Type\EdgeCollection;
|
||||||
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
|
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
|
||||||
use PSC\Library\Calc\Option\Type\Base;
|
use PSC\Library\Calc\Option\Type\Base;
|
||||||
|
use PSC\Library\Calc\Option\Type\Select;
|
||||||
|
|
||||||
class Valid
|
class Valid
|
||||||
{
|
{
|
||||||
@ -24,11 +25,10 @@ class Valid
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return float
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function calc()
|
public function perform()
|
||||||
{
|
{
|
||||||
$price = 0;
|
|
||||||
|
|
||||||
/** @var Base $option */
|
/** @var Base $option */
|
||||||
foreach($this->article->getOptions() as $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 $section
|
||||||
* @param Edge $edge
|
* @param Edge $edge
|
||||||
|
|||||||
@ -22,11 +22,11 @@ class Engine
|
|||||||
/** @var ObjectRepository */
|
/** @var ObjectRepository */
|
||||||
protected $paperRepository;
|
protected $paperRepository;
|
||||||
|
|
||||||
/** @var array */
|
/** @var string */
|
||||||
protected $formulas = array();
|
protected $formulas = "";
|
||||||
|
|
||||||
/** @var array */
|
/** @var string */
|
||||||
protected $parameters = array();
|
protected $parameters = "";
|
||||||
|
|
||||||
/** @var array */
|
/** @var array */
|
||||||
protected $variables = array();
|
protected $variables = array();
|
||||||
@ -43,6 +43,9 @@ class Engine
|
|||||||
/** @var bool */
|
/** @var bool */
|
||||||
protected $dirty = true;
|
protected $dirty = true;
|
||||||
|
|
||||||
|
/** @var Article */
|
||||||
|
protected $article = null;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load XML From String
|
* Load XML From String
|
||||||
@ -88,10 +91,10 @@ class Engine
|
|||||||
* @return Article
|
* @return Article
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function getArticleByName($name = false)
|
private function getArticleByName($name = false)
|
||||||
{
|
{
|
||||||
if($name === false) {
|
if($name === false) {
|
||||||
$this->articles[0];
|
return $this->articles[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
@ -138,7 +141,7 @@ class Engine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mixed
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getFormulas()
|
public function getFormulas()
|
||||||
{
|
{
|
||||||
@ -146,7 +149,7 @@ class Engine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param mixed $formulas
|
* @param string $formulas
|
||||||
*/
|
*/
|
||||||
public function setFormulas($formulas)
|
public function setFormulas($formulas)
|
||||||
{
|
{
|
||||||
@ -155,7 +158,7 @@ class Engine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getParameters()
|
public function getParameters()
|
||||||
{
|
{
|
||||||
@ -163,7 +166,7 @@ class Engine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $parameters
|
* @param string $parameters
|
||||||
*/
|
*/
|
||||||
public function setParameters($parameters)
|
public function setParameters($parameters)
|
||||||
{
|
{
|
||||||
@ -190,27 +193,28 @@ class Engine
|
|||||||
|
|
||||||
public function calc($name = false) {
|
public function calc($name = false) {
|
||||||
|
|
||||||
|
$this->price = 0;
|
||||||
if($name) {
|
if($name) {
|
||||||
$article = $this->getArticleByName($name);
|
$this->article = $this->getArticleByName($name);
|
||||||
}else{
|
}else{
|
||||||
$article = $this->articles[0];
|
$this->article = $this->articles[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prefill with defaults
|
// Prefill with defaults
|
||||||
/** @var Base $option */
|
/** @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) {
|
if(!isset($this->variables[$option->getId()]) && $option->getDefault() !== null && !$option instanceof Text) {
|
||||||
$this->variables[$option->getId()] = $option->getDefault();
|
$this->variables[$option->getId()] = $option->getDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if Option is valid
|
// Check if Option is valid
|
||||||
$calcValid = new Valid($this, $article);
|
$calcValid = new Valid($this, $this->article);
|
||||||
$calcValid->calc();
|
$calcValid->perform();
|
||||||
|
|
||||||
// CALC Formel
|
// CALC Formel
|
||||||
$calcFormel = new Calc($this, $article);
|
$calcFormel = new Calc($this, $this->article);
|
||||||
$this->price += $calcFormel->calc();
|
$this->price = $calcFormel->calc();
|
||||||
|
|
||||||
$this->dirty = false;
|
$this->dirty = false;
|
||||||
return true;
|
return true;
|
||||||
@ -273,6 +277,10 @@ class Engine
|
|||||||
$this->calcVariables = $calcVariables;
|
$this->calcVariables = $calcVariables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function addCalcVariable($id, $value) {
|
||||||
|
$this->calcVariables[$id] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
public function setVariable($var, $value)
|
public function setVariable($var, $value)
|
||||||
{
|
{
|
||||||
$this->variables[$var] = $value;
|
$this->variables[$var] = $value;
|
||||||
@ -294,4 +302,15 @@ class Engine
|
|||||||
$this->tax = $tax;
|
$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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -28,6 +28,9 @@ class Base
|
|||||||
if(isset($this->node['help'])) {
|
if(isset($this->node['help'])) {
|
||||||
$this->element->setHelp((string)$this->node['help']);
|
$this->element->setHelp((string)$this->node['help']);
|
||||||
}
|
}
|
||||||
|
if(isset($this->node['exportAjax']) && (string)$this->node['exportAjax'] == 1) {
|
||||||
|
$this->element->setIsAjaxExport(true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,12 @@ class Select extends Base
|
|||||||
|
|
||||||
public function __construct(\SimpleXMLElement $node)
|
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);
|
parent::__construct($node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,12 +53,13 @@ class Select extends Base
|
|||||||
/** @var PaperContainer\Item $papier */
|
/** @var PaperContainer\Item $papier */
|
||||||
|
|
||||||
foreach ($container->getItems() as $papier) {
|
foreach ($container->getItems() as $papier) {
|
||||||
/** @var Paper $papierDb */
|
/** @var Paper $paper */
|
||||||
$papierDb = $this->getPaperRepository()->findOneBy(array('artNr' => $papier->getId()));
|
$paper = $this->getPaperRepository()->findOneBy(array('artNr' => $papier->getId()));
|
||||||
if($papierDb) {
|
if($paper) {
|
||||||
$optPapier = new \PSC\Library\Calc\Option\Type\Select\Opt();
|
$optPapier = new \PSC\Library\Calc\Option\Type\Select\PaperOpt();
|
||||||
$optPapier->setId($papierDb->getArtNr());
|
$optPapier->setId($paper->getArtNr());
|
||||||
$optPapier->setLabel($papierDb->getDescription1());
|
$optPapier->setLabel($paper->getDescription1());
|
||||||
|
$optPapier->setPaper($paper);
|
||||||
$this->element->addOption($optPapier);
|
$this->element->addOption($optPapier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace PSC\Library\Calc\Option\Parser\Select;
|
namespace PSC\Library\Calc\Option\Parser\Select;
|
||||||
|
|
||||||
|
use PSC\Library\Calc\General\Parser\EdgeCollectionContainer;
|
||||||
use PSC\Library\Calc\Option\Parser\Base;
|
use PSC\Library\Calc\Option\Parser\Base;
|
||||||
|
|
||||||
class Opt
|
class Opt
|
||||||
@ -19,6 +20,11 @@ class Opt
|
|||||||
$this->element->setId((string)$this->node['id']);
|
$this->element->setId((string)$this->node['id']);
|
||||||
$this->element->setLabel((string)$this->node['name']);
|
$this->element->setLabel((string)$this->node['name']);
|
||||||
|
|
||||||
|
if($this->node->children()) {
|
||||||
|
$edgeCollectionContainerParser = new EdgeCollectionContainer($this->node);
|
||||||
|
$this->element->setEdgesCollectionContainer($edgeCollectionContainerParser->parse());
|
||||||
|
}
|
||||||
|
|
||||||
return $this->element;
|
return $this->element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace PSC\Library\Calc\Option\Type;
|
namespace PSC\Library\Calc\Option\Type;
|
||||||
|
|
||||||
use General\EdgeCollection;
|
|
||||||
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
|
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
|
||||||
|
|
||||||
class Base
|
class Base
|
||||||
@ -31,13 +30,18 @@ class Base
|
|||||||
protected $value = '';
|
protected $value = '';
|
||||||
|
|
||||||
/** @var EdgeCollectionContainer */
|
/** @var EdgeCollectionContainer */
|
||||||
protected $edgesCollectionContainer = [];
|
protected $edgesCollectionContainer = null;
|
||||||
|
|
||||||
/** @var bool */
|
/** @var bool */
|
||||||
protected $isValid = true;
|
protected $isValid = true;
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
protected $isAjaxExport = false;
|
||||||
|
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
$this->edgesCollectionContainer = new EdgeCollectionContainer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -208,5 +212,21 @@ class Base
|
|||||||
$this->edgesCollectionContainer = $edgesCollectionContainer;
|
$this->edgesCollectionContainer = $edgesCollectionContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isAjaxExport()
|
||||||
|
{
|
||||||
|
return $this->isAjaxExport;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param bool $isAjaxExport
|
||||||
|
*/
|
||||||
|
public function setIsAjaxExport($isAjaxExport)
|
||||||
|
{
|
||||||
|
$this->isAjaxExport = $isAjaxExport;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
14
src/Option/Type/PaperDbSelect.php
Normal file
14
src/Option/Type/PaperDbSelect.php
Normal 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()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -86,4 +86,12 @@ class Select extends Base
|
|||||||
return $this->options;
|
return $this->options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getSelectedOption()
|
||||||
|
{
|
||||||
|
/** @var Opt $opt */
|
||||||
|
foreach($this->getOptions() as $opt) {
|
||||||
|
if($opt->isSelected()) return $opt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace PSC\Library\Calc\Option\Type\Select;
|
namespace PSC\Library\Calc\Option\Type\Select;
|
||||||
|
|
||||||
|
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
|
||||||
use PSC\Library\Calc\Option\Type\Base;
|
use PSC\Library\Calc\Option\Type\Base;
|
||||||
|
|
||||||
class Opt
|
class Opt
|
||||||
@ -11,6 +12,24 @@ class Opt
|
|||||||
/** @var string $label */
|
/** @var string $label */
|
||||||
protected $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
|
* @return string
|
||||||
*/
|
*/
|
||||||
@ -43,5 +62,51 @@ class Opt
|
|||||||
$this->label = $label;
|
$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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
23
src/Option/Type/Select/PaperOpt.php
Normal file
23
src/Option/Type/Select/PaperOpt.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -38,7 +38,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
|
|||||||
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
||||||
|
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
$article = $parser->getArticleByName('Kalender');
|
$article = $parser->getArticle();
|
||||||
$this->assertInstanceOf('PSC\Library\Calc\Article', $article);
|
$this->assertInstanceOf('PSC\Library\Calc\Article', $article);
|
||||||
$this->assertEquals('Kalender', $article->getName());
|
$this->assertEquals('Kalender', $article->getName());
|
||||||
}
|
}
|
||||||
@ -55,7 +55,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
|
|||||||
$parser->setPaperContainer($paperContainer);
|
$parser->setPaperContainer($paperContainer);
|
||||||
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
$article = $parser->getArticleByName('Kalender');
|
$article = $parser->getArticle();
|
||||||
|
|
||||||
/** @var Select $option */
|
/** @var Select $option */
|
||||||
$option = $article->getOptionById('size');
|
$option = $article->getOptionById('size');
|
||||||
@ -77,7 +77,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
|
|||||||
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
||||||
|
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
$article = $parser->getArticleByName('Kalender');
|
$article = $parser->getArticle();
|
||||||
|
|
||||||
$article->setParams(array(
|
$article->setParams(array(
|
||||||
"motive" => 0,
|
"motive" => 0,
|
||||||
@ -123,7 +123,7 @@ class CalendarXmlTest extends \PHPUnit_Framework_TestCase
|
|||||||
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/calendar.xml'));
|
||||||
|
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
$article = $parser->getArticleByName('Kalender');
|
$article = $parser->getArticle();
|
||||||
|
|
||||||
$this->assertEquals(11, $article->getOptions()->count());
|
$this->assertEquals(11, $article->getOptions()->count());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testIfParserGetArticleCorrect()
|
public function testIfParserGetArticleCorrect()
|
||||||
{
|
{
|
||||||
$article = $this->engine->getArticleByName('test1');
|
$article = $this->engine->getArticle();
|
||||||
$this->assertEquals('test1', $article->getName());
|
$this->assertEquals('test1', $article->getName());
|
||||||
|
|
||||||
$this->assertEquals(17, count($article->getOptions()));
|
$this->assertEquals(17, count($article->getOptions()));
|
||||||
|
|||||||
@ -27,7 +27,8 @@ class SimpleXmlTest extends \PHPUnit_Framework_TestCase
|
|||||||
$parser = new Engine(new Container());
|
$parser = new Engine(new Container());
|
||||||
$parser->loadString(file_get_contents(__DIR__ .'/../TestFiles/General/simple2articles.xml'));
|
$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->assertInstanceOf('PSC\Library\Calc\Article', $article);
|
||||||
$this->assertEquals('Blocks A5 25blatt geleimt', $article->getName());
|
$this->assertEquals('Blocks A5 25blatt geleimt', $article->getName());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testIfParserGetArticleCorrect()
|
public function testIfParserGetArticleCorrect()
|
||||||
{
|
{
|
||||||
$article = $this->engine->getArticleByName('test1');
|
$article = $this->engine->getArticle();
|
||||||
$this->assertEquals('test1', $article->getName());
|
$this->assertEquals('test1', $article->getName());
|
||||||
|
|
||||||
$this->assertEquals(2, count($article->getOptions()));
|
$this->assertEquals(2, count($article->getOptions()));
|
||||||
@ -43,7 +43,7 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->engine->calc('test1');
|
$this->engine->calc('test1');
|
||||||
|
|
||||||
/** @var Article $article */
|
/** @var Article $article */
|
||||||
$article = $this->engine->getArticleByName('test1');
|
$article = $this->engine->getArticle();
|
||||||
|
|
||||||
/** @var Base $option */
|
/** @var Base $option */
|
||||||
$option = $article->getOptionById('gebwert');
|
$option = $article->getOptionById('gebwert');
|
||||||
|
|||||||
43
tests/Calc/PreisPauschale.php
Normal file
43
tests/Calc/PreisPauschale.php
Normal 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());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
47
tests/CalcValue/ComplexTest.php
Normal file
47
tests/CalcValue/ComplexTest.php
Normal 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
27
tests/CalcValue/SimpleTest.php
Normal file
27
tests/CalcValue/SimpleTest.php
Normal 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -244,6 +244,8 @@ class Paper
|
|||||||
|
|
||||||
private $digitalVar;
|
private $digitalVar;
|
||||||
|
|
||||||
|
private $volume;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@ -1092,5 +1094,21 @@ class Paper
|
|||||||
$this->digitalVar = $digitalVar;
|
$this->digitalVar = $digitalVar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getVolume()
|
||||||
|
{
|
||||||
|
return $this->volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mixed $volume
|
||||||
|
*/
|
||||||
|
public function setVolume($volume)
|
||||||
|
{
|
||||||
|
$this->volume = $volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,6 +101,64 @@ class PaperRepostory implements ObjectRepository
|
|||||||
$papier['bdg300']->setArtNr('bdg300');
|
$papier['bdg300']->setArtNr('bdg300');
|
||||||
$papier['bdg300']->setDescription1('Bilderdruck glänzend 300 gr');
|
$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']];
|
return $papier[$criteria['artNr']];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
17
tests/TestFiles/Calc/pauschale_preis.xml
Normal file
17
tests/TestFiles/Calc/pauschale_preis.xml
Normal 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>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
</gebyn>
|
</gebyn>
|
||||||
</option>
|
</option>
|
||||||
|
|
||||||
<option id="calc_min" name="" type="Hidden">
|
<option id="calc_min" name="" type="Hidden" default="1">
|
||||||
<gebyn formel="$Vprice$V <= 2500? 1:2">
|
<gebyn formel="$Vprice$V <= 2500? 1:2">
|
||||||
<grenze formel="2500-$Vprice$V">1</grenze>
|
<grenze formel="2500-$Vprice$V">1</grenze>
|
||||||
<grenze formel="">2</grenze>
|
<grenze formel="">2</grenze>
|
||||||
|
|||||||
246
tests/TestFiles/CalcValue/complex.xml
Normal file
246
tests/TestFiles/CalcValue/complex.xml
Normal 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>
|
||||||
273
tests/TestFiles/CalcValue/papierContainer.xml
Normal file
273
tests/TestFiles/CalcValue/papierContainer.xml
Normal 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>
|
||||||
30
tests/TestFiles/CalcValue/simple.xml
Normal file
30
tests/TestFiles/CalcValue/simple.xml
Normal 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>
|
||||||
@ -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">
|
<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)">
|
<opt id="a5h" name="DIN A5 Hochformat (210x148mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera5$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
<opt id="a5q" name="DIN A5 Querformat (148x210mm)">
|
<opt id="a5q" name="DIN A5 Querformat (148x210mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera5$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
<opt id="a4h" name="DIN A4 Hochformat (297 x 210 mm)">
|
<opt id="a4h" name="DIN A4 Hochformat (297 x 210 mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera4$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
<opt id="a4q" name="DIN A4 Querformat (210x297mm)">
|
<opt id="a4q" name="DIN A4 Querformat (210x297mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera4$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
<opt id="a3h" name="DIN A3 Hochformat (420x297mm)">
|
<opt id="a3h" name="DIN A3 Hochformat (420x297mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera3$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
<opt id="a3q" name="DIN A3 Querformat (297x420mm)">
|
<opt id="a3q" name="DIN A3 Querformat (297x420mm)">
|
||||||
<auflage>
|
<auflage>
|
||||||
<grenze formel="($Fkalendera3$F)">1-</grenze>
|
<grenze formel="(0)">1-</grenze>
|
||||||
</auflage>
|
</auflage>
|
||||||
</opt>
|
</opt>
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
306
tests/TestFiles/formels.txt
Normal file
306
tests/TestFiles/formels.txt
Normal 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)';
|
||||||
378
tests/TestFiles/parameters.txt
Normal file
378
tests/TestFiles/parameters.txt
Normal 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 €
|
||||||
Loading…
Reference in New Issue
Block a user