Fix Validation

This commit is contained in:
Thomas Peterson 2022-06-27 19:47:56 +02:00
parent 83cd932a89
commit 68dcc64dfd
16 changed files with 1401 additions and 8 deletions

View File

@ -3,11 +3,14 @@ namespace PSC\Library\Calc\Calc;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\Error\Validation\Input\Max;
use PSC\Library\Calc\Error\Validation\Input\Min;
use PSC\Library\Calc\General\Type\Edge;
use PSC\Library\Calc\General\Type\EdgeCollection;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Base;
use PSC\Library\Calc\Option\Type\Checkbox;
use PSC\Library\Calc\Option\Type\Input;
use PSC\Library\Calc\Option\Type\Select;
class Valid
@ -37,7 +40,18 @@ class Valid
/** @var Base $option */
foreach($this->article->getOptions() as $option) {
if($option instanceof Input) {
if($option->getMaxValue() && $option->getMaxValue() <= $option->getRawValue()) {
$option->setIsValid(false);
$option->addValidationError(new Max($option->getRawValue(), $option->getMaxValue()));
continue;
}
if($option->getMinValue() && $option->getMinValue() >= $option->getRawValue()) {
$option->setIsValid(false);
$option->addValidationError(new Min($option->getRawValue(), $option->getMinValue()));
continue;
}
}
if($option instanceof Select|| $option instanceof Checkbox) {
$valid = false;

View File

@ -0,0 +1,11 @@
<?php
namespace PSC\Library\Calc\Error\Validation;
interface Base {
public function getType(): string;
public function getMessage(): string;
}

View File

@ -0,0 +1,30 @@
<?php
namespace PSC\Library\Calc\Error\Validation\Input;
use PSC\Library\Calc\Error\Validation\Base;
class Max implements Base {
protected int $currentValue = 0;
protected int $maxValue = 0;
private string $TYPE = "input::validation::max";
public function getType(): string
{
return $this->TYPE;
}
public function __construct(int $currentValue, int $maxValue)
{
$this->currentValue = $currentValue;
$this->maxValue = $maxValue;
}
public function getMessage(): string
{
return "value must be lower then " . $this->maxValue;
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace PSC\Library\Calc\Error\Validation\Input;
use PSC\Library\Calc\Error\Validation\Base;
class Min implements Base {
protected int $currentValue = 0;
protected int $minValue = 0;
private string $TYPE = "input::validation::min";
public function getType(): string
{
return $this->TYPE;
}
public function __construct(int $currentValue, int $minValue)
{
$this->minValue = $minValue;
$this->currentValue = $currentValue;
}
public function getMessage(): string
{
return "value must be greater then " . $this->minValue;
}
}

View File

@ -0,0 +1,46 @@
<?php
namespace PSC\Library\Calc\Error\Validation;
use ArrayIterator;
use Countable;
use IteratorAggregate;
use Traversable;
class Set implements Countable, IteratorAggregate {
private array $values = [];
public function count(): int
{
return count($this->values);
}
public function getIterator(): Traversable
{
return new ArrayIterator($this->values);
}
public function add(Base $base): Set
{
if($this->has($base)) {
return $this;
}
$this->values[] = $base;
return $this;
}
private function has(Base $base): bool
{
return array_search($base, $this->values) !== false;
}
public function first(): ?Base
{
if($this->count() === 0) {
return null;
}
return array_values($this->values)[0];
}
}

View File

@ -2,22 +2,30 @@
namespace PSC\Library\Calc\Option\Parser;
use PSC\Library\Calc\General\Parser\EdgeCollectionContainer;
use PSC\Library\Calc\Option\Type\Input as PSCInput;
use SimpleXMLElement;
class Input extends Base
{
protected $element;
public function __construct(\SimpleXMLElement $node)
{
$this->element = new \PSC\Library\Calc\Option\Type\Input();
parent::__construct($node);
}
public function parse()
public function parse(): PSCInput
{
parent::parse();
if(isset($this->node['min'])) {
$this->element->setMinValue((int)$this->node['min']);
}
if(isset($this->node['max'])) {
$this->element->setMaxValue((int)$this->node['max']);
}
if($this->node->children()) {
$edgeCollectionContainerParser = new EdgeCollectionContainer($this->node);
$this->element->setEdgesCollectionContainer($edgeCollectionContainerParser->parse());

View File

@ -1,6 +1,8 @@
<?php
namespace PSC\Library\Calc\Option\Type;
use PSC\Library\Calc\Error\Validation\Base as PSCBase;
use PSC\Library\Calc\Error\Validation\Set;
use PSC\Library\Calc\General\Type\EdgeCollectionContainer;
class Base
@ -44,9 +46,22 @@ class Base
protected $savedCalcValues = [];
private $amount = true;
protected Set $validationErrors;
public function __construct()
{
$this->edgesCollectionContainer = new EdgeCollectionContainer();
$this->validationErrors = new Set();
}
public function addValidationError(PSCBase $error)
{
$this->validationErrors->add($error);
}
public function getValidationErrors(): Set
{
return $this->validationErrors;
}
/**

View File

@ -3,7 +3,29 @@ namespace PSC\Library\Calc\Option\Type;
class Input extends Base
{
private ?int $minValue = null;
private ?int $maxValue = null;
public $type = 'input';
public function setMinValue(?int $min): void
{
$this->minValue = $min;
}
public function getMinValue(): ?int
{
return $this->minValue;
}
public function setMaxValue(?int $max): void
{
$this->maxValue = $max;
}
public function getMaxValue(): ?int
{
return $this->maxValue;
}
}

View File

@ -0,0 +1,73 @@
<?php
namespace PSC\Library\Calc\Tests\Customer\P;
use PHPUnit\Framework\TestCase;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\Error\Validation\Input\Max;
use PSC\Library\Calc\Error\Validation\Input\Min;
use PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\PaperContainer;
use PSC\Library\Calc\PreCalc\PreCalc;
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
class CalcTest extends TestCase
{
protected ?Engine $engine;
public function setUp(): void
{
$repository = new PaperRepostory();
$paperContainer = new PaperContainer();
$paperContainer->parse(simplexml_load_string(file_get_contents(__DIR__ . '/papierContainer.xml')));
$this->engine = new Engine();
$this->engine->setPaperContainer($paperContainer);
$this->engine->setPaperRepository($repository);
$this->engine->setFormulas(file_get_contents(__DIR__ . '/formels.txt'));
$this->engine->setParameters(file_get_contents(__DIR__ . '/parameters.txt'));
$this->engine->setTemplates(file_get_contents(__DIR__ . '/calcTemplates.xml'));
$this->engine->loadString(file_get_contents(__DIR__ . '/calc.xml'));
}
public function tearDown(): void
{
$this->engine = null;
}
public function testCalcPrice(): void
{
$article = $this->engine->getArticle();
$this->assertSame(92.16, $this->engine->getPrice());
}
public function testMaxBreite(): void
{
$article = $this->engine->getArticle();
$this->engine->setVariable('breite_frei', 600);
$this->engine->calc();
$this->assertFalse($article->getOptionById('breite_frei')->isValid());
$this->assertEquals(1, count($article->getOptionById('breite_frei')->getValidationErrors()));
$this->assertInstanceOf(Max::class, $article->getOptionById('breite_frei')->getValidationErrors()->first());
}
public function testMinBreite(): void
{
$article = $this->engine->getArticle();
$this->engine->setVariable('breite_frei', 10);
$this->engine->calc();
$this->assertFalse($article->getOptionById('breite_frei')->isValid());
$this->assertEquals(1, count($article->getOptionById('breite_frei')->getValidationErrors()));
$this->assertInstanceOf(Min::class, $article->getOptionById('breite_frei')->getValidationErrors()->first());
}
}

483
tests/Customer/P/calc.xml Normal file
View File

@ -0,0 +1,483 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>Aufkleber Proppe</name>
<kommentar>Freies Format</kommentar>
<uploads>
<upload id="neutral" name="Druckdaten" description="Bitte laden sie eine PDF für den Druck hoch"/>
</uploads>
<!-- Beginn der Eingabemaske -->
<option id="auflage" name="Auflage" type="Select" default="250" helplink="/cms/auflage?show=2&amp;help=1">
<opt id="250" name="250 Exemplare"></opt>
<opt id="500" name="500 Exemplare"></opt>
<opt id="700" name="750 Exemplare"></opt>
<opt id="1000" name="1.000 Exemplare"></opt>
<opt id="1500" name="1.500 Exemplare"></opt>
<opt id="2000" name="2.000 Exemplare"></opt>
<opt id="2500" name="2.500 Exemplare"></opt>
<opt id="3000" name="3.000 Exemplare"></opt>
<opt id="3500" name="3.500 Exemplare"></opt>
<opt id="4000" name="4.000 Exemplare"></opt>
<opt id="4500" name="4.500 Exemplare"></opt>
<opt id="5000" name="5.000 Exemplare"></opt>
<opt id="6000" name="6.000 Exemplare"></opt>
<opt id="7000" name="7.000 Exemplare"></opt>
<opt id="8000" name="8.000 Exemplare"></opt>
<opt id="9000" name="9.000 Exemplare"></opt>
<opt id="10000" name="10.000 Exemplare"></opt>
<opt id="12500" name="12.500 Exemplare"></opt>
<opt id="15000" name="15.000 Exemplare"></opt>
<opt id="20000" name="20.000 Exemplare"></opt>
<opt id="25000" name="25.000 Exemplare"></opt>
<opt id="30000" name="30.000 Exemplare"></opt>
<opt id="35000" name="35.000 Exemplare"></opt>
<opt id="40000" name="40.000 Exemplare"></opt>
<opt id="45000" name="45.000 Exemplare"></opt>
<opt id="50000" name="50.000 Exemplare"></opt>
<opt id="75000" name="75.000 Exemplare"></opt>
<opt id="100000" name="100.000 Exemplare"></opt>
</option>
<option id="format1" name="Format" type="Hidden" default="9">
<opt id="1" name="100 x 100 mm"></opt>
<opt id="3" name="35 x 300 mm"></opt>
<opt id="4" name="40 x 320 mm"></opt>
<opt id="5" name="45 x 350 mm"></opt>
<opt id="6" name="50 x 400 mm"></opt>
<opt id="7" name="55 x 450 mm"></opt>
<opt id="8" name="60 x 460 mm"></opt>
<opt id="9" name="Freies Format"></opt>
</option>
<option id="breite_frei" name="Breite (in mm)" type="Input" default="100" min="30" max="480" helplink="/cms/breitaufkl?show=2&amp;help=1">
<format1>
<grenze>9</grenze>
</format1>
</option>
<option id="hoehe_frei" name="Höhe (in mm)" type="Input" default="100" min="30" max="325" helplink="/cms/höhe?show=2&amp;help=1">
<format1>
<grenze>9</grenze>
</format1>
</option>
<option id="papier" name="Material" type="Select" mode="papierdb" container="aufkleber_proppe" default="931001" helplink="/cms/mataufkl?show=2&amp;help=1"/>
<option id="seitenzahl" name="Seitenzahl" type="Hidden" default="2">
<opt id="2" name="2 Seiten"></opt>
</option>
<option id="druckfarben_inhalt" name="Farbigkeit" type="Select" default="4" helplink="/cms/farbigkeit?show=2&amp;help=1">
<opt id="4" name="4/0 ISO (Euro) Skala (einseitig)"/>
<!-- <opt id="2" name="4/4 Euroskala (beidseitig)"/> -->
</option>
<option id="accordion_start" name="accordion_start" default="Weitere Parameter" type="Hidden"></option>
<option id="ecken" name="Ecken abrunden" type="Select" default="0" helplink="/cms/ecken-runden?show=2&amp;help=1">
<opt id="0" name="Nein"></opt>
<opt id="1" name="4 Ecken abrunden, 3mm"></opt>
<opt id="2" name="4 Ecken abrunden, 6mm"></opt>
</option>
<option id="druckdaten" name="Druckdaten" type="Select" default="pdf" help="In welchem Dateiformat liefern Sie uns Ihre druckfertigen Daten?" helplink="/cms/druckdaten?show=2&amp;help=1">
<opt id="pdf" name="druckfähige PDF-Datei">
<auflage>
<grenze pauschale="0">1-</grenze>
</auflage>
</opt>
<opt id="jpg" name="JPG, tiff, ai, id, psd (+ 10,00 €)">
<auflage>
<grenze pauschale="10">1-</grenze>
</auflage>
</opt>
</option>
<option id="belegexemplare" name="Belegexemplare" type="Select" default="nein" help="Möchten Sie bei abweichender Lieferadresse Belegexemplare zugesendet haben?" helplink="/cms/belegexemplare?show=2&amp;help=1">
<opt id="nein" name="nein">
<auflage>
<grenze pauschale="0">1-</grenze>
</auflage>
</opt>
<opt id="ja" name="ja (+ 10,00 €)">
<auflage>
<grenze pauschale="10">1-</grenze>
</auflage>
</opt>
</option>
<option id="absender" name="Absendeadresse" type="Select" default="1" helplink="/cms/absendeadresse?show=2&amp;help=1">
<opt id="1" name="Etiketten Hero"></opt>
<opt id="2" name="Neutral"></opt>
</option>
<option id="accordion_stop" name="accordion_stop" type="Hidden"></option>
<!--
<option id="oesen" name="Etiketten ösen" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
<option id="lochung" name="Etiketten lochen" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
<option id="stanzung" name="Etiketten stanzen" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
<option id="blindpraegung" name="Blindprägung" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
<option id="heissfolie" name="Heißfolienprägung" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
<option id="falzen" name="Etiketten falzen" type="Select" default="0">
<opt id="0" name="Nein"></opt>
<opt id="1" name="Ja"></opt>
</option>
-->
<!-- Ende der Eingabemaske -->
<!-- Nutzenberechnung -->
<option id="breite_inkl_beschnitt" name="breite_inkl_beschnitt" type="Hidden" default="1">
<auflage>
<grenze calc_value="($Vbreite_frei$V+(2*$Pbeschnitt_proppe$P))">1-</grenze>
</auflage>
</option>
<option id="hoehe_inkl_beschnitt" name="hoehe_inkl_beschnitt" type="Hidden" default="1">
<auflage>
<grenze calc_value="($Vhoehe_frei$V+(2*$Pbeschnitt_proppe$P))">1-</grenze>
</auflage>
</option>
<option id="nutzen" name="Nutzen" type="Hidden" default="1">
<auflage>
<grenze calc_value="(max((floor($Pdruckbogen_hoehe_proppe$P/($CVbreite_inkl_beschnitt_auflage$CV)))*(floor($Pdruckbogen_breite_proppe$P/$CVhoehe_inkl_beschnitt_auflage$CV)),(floor($Pdruckbogen_breite_proppe$P/($CVbreite_inkl_beschnitt_auflage$CV)))*(floor($Pdruckbogen_hoehe_proppe$P/$CVhoehe_inkl_beschnitt_auflage$CV))))">1-</grenze>
</auflage>
</option>
<!--
<option id="nutzen_check" name="Nutzen" type="Hidden" default="1">
<auflage>
<grenze formel="(max((floor(325/($CVbreite_inkl_beschnitt_auflage$CV)))*(floor(490/$CVhoehe_inkl_beschnitt_auflage$CV)),(floor(490/($CVbreite_inkl_beschnitt_auflage$CV)))*(floor(325/$CVhoehe_inkl_beschnitt_auflage$CV))))">1-</grenze>
</auflage>
</option>
-->
// Gesamtfläche mm² Formel
<option id="gesamtflaeche" name="gesamtflaeche" type="Hidden" default="1">
<auflage>
<grenze calc_value="($Pdruckbogen_breite_proppe$P*$Pdruckbogen_hoehe_proppe$P)/1000000">1-</grenze>
</auflage>
</option>
// Kosten Datencheck
<option id="kosten_datencheck" name="jobflaeche_prozent" type="Hidden" default="1">
<auflage>
<grenze formel="($Pstundensatz_datencheck_proppe$P/$CVnutzen_auflage$CV)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Kosten Druckplatten
<option id="kosten_druckplatten" name="kosten_druckplatten" type="Hidden" default="1">
<auflage>
<grenze formel="(($Pplattenpreis_proppe$P*$Vdruckfarben_inhalt$V)/($CVnutzen_auflage$CV))*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Fixkosten Druck
<option id="kosten_druck_fix" name="kosten_druck_fix" type="Hidden" default="1">
<auflage>
<grenze formel="(($Pstundensatz_druck_proppe$P*$Peinrichtezeit_druck_proppe$P)/($CVnutzen_auflage$CV))*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// variable Kosten Druck
<option id="kosten_druck_var" name="kosten_druck_var" type="Hidden" default="1">
<auflage>
<grenze formel="((($Vauflage$V*$Pzuschussfaktor_proppe$P)+($Pmaterial_fix_propppe$P))/($Pmaschinenleistung_druck_proppe$P))*(($Pstundensatz_druck_proppe$P)/($CVnutzen_auflage$CV))*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Fixkosten Material
<option id="kosten_material_fix" name="kosten_material_fix" type="Hidden" default="1">
<auflage>
<grenze formel="($Pmaterial_fix_propppe$P*$Vpapier_value$V/2/1000)/($CVnutzen_auflage$CV)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// variable Kosten Material
<option id="kosten_material_var" name="kosten_material_var" type="Hidden" default="1">
<auflage>
<grenze formel="($Vauflage$V*$Pzuschussfaktor_proppe$P)*($Vpapier_value$V/2/1000)/($CVnutzen_auflage$CV)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// variable Kosten Farbe
<option id="kosten_farbe_var" name="kosten_farbe_var" type="Hidden" default="1">
<auflage>
<grenze formel="(((($Vauflage$V)*($Pzuschussfaktor_proppe$P)+$Pmaterial_fix_propppe$P)*($CVgesamtflaeche_auflage$CV))*($Pfarbe_kg_propppe$P)/1000)/($CVnutzen_auflage$CV)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Anzahl Schnitte
<option id="anzahl_schnitte" name="anzahl_schnitte" type="Hidden" default="1">
<auflage>
<grenze calc_value="($CVnutzen_auflage$CV)+4">1-</grenze>
</auflage>
</option>
// Fixkosten Schneiden
<option id="kosten_schneiden_fix" name="kosten_schneiden_fix" type="Hidden" default="1">
<auflage>
<grenze formel="($Pstundensatz_schneiden_proppe$P/60)*($Pschneiden_ruesten_proppe$P)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// variable Kosten Schneiden
<!--
<option id="kosten_schneiden_var" name="kosten_schneiden_var" type="Hidden" default="1">
<auflage>
<grenze formel="(ceil((($Vauflage$V*$Pzuschussfaktor_proppe$P+$Pmaterial_fix_propppe$P)*$Vpapier_grammatur$V/1000)/$Phubhoehe_schneiden_proppe$P)*(12+2)*$Pzeit_je_schnitt_proppe$P)/($CVnutzen_auflage$CV)*$Pstundensatz_schneiden_proppe$P/60">1-</grenze>
</auflage>
</option>
-->
<!--
<option id="kosten_schneiden_var_neu" name="kosten_schneiden_var" type="Hidden" default="1">
<auflage>
<grenze formel="(($Vauflage$V*$Pzuschussfaktor_proppe$P+$Pmaterial_fix_propppe$P)*$Vpapier_grammatur$V/1000)/$Phubhoehe_schneiden_proppe$P*($CVanzahl_schnitte_auflage$CV)*$Pzeit_je_schnitt_proppe$P">1-</grenze>
</auflage>
</option>
// =((D5*1,01+F16)*C3/1000)/C1*(12+2)*0,6
-->
<option id="kosten_schneiden_var_ganz_neu" name="kosten_schneiden_var" type="Hidden" default="1">
<auflage>
<grenze formel="(((($Vauflage$V*$Pzuschussfaktor_proppe$P+$Pmaterial_fix_propppe$P)*$Vpapier_grammatur$V/1000)/$Phubhoehe_schneiden_proppe$P)*4*$Pzeit_je_schnitt_proppe$P*$Pstundensatz_schneiden_proppe$P/60)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// =(Auflage*Zuschuß+MatFix)*Mat Stärke/Schneidehöhe*4 (Schnitte)*Zeit je Schnitt*Std Satz
// Fixkosten Ecken runden
<option id="kosten_runden_fix" name="kosten_runden_fix" type="Hidden" default="1">
<ecken>
<grenze formel="0">0</grenze>
<grenze formel="(($Pecken_runden_ruesten_proppe$P)*$Pstundensatz_ecken_runden_proppe$P/60)*$Pgewinnzuschlag$P">1-4</grenze>
</ecken>
</option>
// variable Kosten Ecken runden
<option id="kosten_runden_var" name="kosten_runden_var" type="Hidden" default="1">
<ecken>
<grenze formel="0">0</grenze>
<grenze formel="($Vauflage$V*$Pzuschussfaktor_proppe$P*$Vpapier_grammatur$V/1000/$Phubhoehe_ecken_proppe$P*4*$Pecken_runden_zeit_pro_hub$P*$Pstundensatz_ecken_runden_proppe$P/3600)*$Pgewinnzuschlag$P">1-4</grenze>
</ecken>
</option>
// Fixkosten Ösen
<option id="kosten_oesen_fix" name="kosten_oesen_fix" type="Hidden" default="1">
<oesen>
<grenze formel="0">0</grenze>
<grenze formel="(($Voesen$V*$Poesen_ruesten_proppe$P)*$Pstundensatz_oesen_proppe$P/60)*$Pgewinnzuschlag$P">1-4</grenze>
</oesen>
</option>
// variable Kosten ösen
<option id="kosten_oesen_var" name="kosten_oesen_var" type="Hidden" default="1">
<oesen>
<grenze formel="0">0</grenze>
<grenze formel="(($Vauflage$V*$Pzuschussfaktor_proppe$P/1000)*$Pstundensatz_oesen_proppe$P+($Vauflage$V*$Pzuschussfaktor_proppe$P*$Pmaterial_oesen_proppe$P))*$Voesen$V">1-4</grenze>
</oesen>
</option>
// Fixkosten lochen
<option id="kosten_lochen_fix" name="kosten_lochen_fix" type="Hidden" default="1">
<lochung>
<grenze formel="0">0</grenze>
<grenze formel="(($Vlochung$V*$Plochen_ruesten_proppe$P)*$Pstundensatz_lochen_proppe$P/60)*$Pgewinnzuschlag$P">1-4</grenze>
</lochung>
</option>
// variable Kosten Lochung
<option id="kosten_lochung_var" name="kosten_lochung_var" type="Hidden" default="1">
<lochung>
<grenze formel="0">0</grenze>
<grenze formel="(($Vauflage$V*$Pzuschussfaktor_proppe$P*$Vpapier_grammatur$V/1000)/$Phubhoehe_lochen_proppe$P*$Plochen_zeit_pro_hub$P*($Pstundensatz_lochen_proppe$P/3600)*$Vlochung$V)*$Pgewinnzuschlag$P">1-4</grenze>
</lochung>
</option>
// Fixkosten Stanzung
<option id="kosten_stanzen_fix" name="kosten_stanzen_fix" type="Hidden" default="1">
<stanzung>
<grenze formel="0">0</grenze>
<grenze formel="($Vstanzung$V*$Pstanzen_ruesten_proppe$P*$Pstundensatz_stanzen_proppe$P/60)+($Vstanzung$V*$Pstanzen_werkzeug_proppe$P)*$Pgewinnzuschlag$P">1-4</grenze>
</stanzung>
</option>
// variable Kosten Stanzung
<option id="kosten_stanzung_var" name="kosten_stanzung_var" type="Hidden" default="1">
<stanzung>
<grenze formel="0">0</grenze>
<grenze formel="(($Vauflage$V*$Pzuschussfaktor_proppe$P/1000)*$Pstanzen_zeit_pro_1000_proppe$P*1.09*$Vstanzung$V)*$Pgewinnzuschlag$P">1-4</grenze>
</stanzung>
</option>
// Fixkosten Prägung (Nutzen geteilt durch 2???)
<option id="kosten_praegen_fix" name="kosten_praegen_fix" type="Hidden" default="1">
<blindpraegung>
<grenze formel="0">0</grenze>
<grenze formel="(((($Pstundensatz_praegen_proppe$P*$Vblindpraegung$V)/(($CVnutzen_auflage$CV/2)*($Vblindpraegung$V)))+$Ppraegestempel_proppe$P)*$Vblindpraegung$V)*$Pgewinnzuschlag$P">1-4</grenze>
</blindpraegung>
</option>
// variable Kosten Prägung
<option id="kosten_praegung_var" name="kosten_praegung_var" type="Hidden" default="1">
<blindpraegung>
<grenze formel="0">0</grenze>
<grenze formel="((((($Vauflage$V*$Pzuschussfaktor_proppe$P+$Pmaterial_fix_propppe$P)/$Ppraegen_pro_h_proppe$P))*($Pstundensatz_praegen_proppe$P/($CVnutzen_auflage$CV/2)))*$Vblindpraegung$V)*$Pgewinnzuschlag$P">1-4</grenze>
</blindpraegung>
</option>
// Fixkosten Heissfolie (Nutzen geteilt durch 2???)
<option id="kosten_praegen_fix" name="kosten_praegen_fix" type="Hidden" default="1">
<heissfolie>
<grenze formel="0">0</grenze>
<grenze formel="(((($Pstundensatz_heissfolie_proppe$P*1.25)/(($CVnutzen_auflage$CV/2)*($Vheissfolie$V)))+$Pheissfoliestempel_proppe$P)*$Vheissfolie$V)*$Pgewinnzuschlag$P">1-4</grenze>
</heissfolie>
</option>
// variable Kosten Heissfolie
<option id="kosten_heissfolie_var" name="kosten_heissfolie_var" type="Hidden" default="1">
<heissfolie>
<grenze formel="0">0</grenze>
<grenze formel="((((($Vauflage$V*$Pzuschussfaktor_proppe$P+$Pmaterial_fix_propppe$P)/$Pheissfolie_pro_h_proppe$P))*($Pstundensatz_heissfolie_proppe$P/($CVnutzen_auflage$CV/2)))*$Vheissfolie$V)*$Pgewinnzuschlag$P">1-4</grenze>
</heissfolie>
</option>
// Fixkosten Falzen
<option id="kosten_falzen_fix" name="kosten_falzen_fix" type="Hidden" default="1">
<falzen>
<grenze formel="0">0</grenze>
<grenze formel="($Pfalzen_ruesten_proppe$P/60*$Pstundensatz_falzen_proppe$P*$Vfalzen$V)*$Pgewinnzuschlag$P">1-4</grenze>
</falzen>
</option>
// variable Kosten Falzen
<option id="kosten_falzen_var" name="kosten_falzen_var" type="Hidden" default="1">
<falzen>
<grenze formel="0">0</grenze>
<grenze formel="($Vauflage$V*$Pzuschussfaktor_proppe$P/$Pfalzen_pro_h_proppe$P*$Pstundensatz_falzen_proppe$P*$Vfalzen$V)*$Pgewinnzuschlag$P">1-4</grenze>
</falzen>
</option>
// variable Kosten bündlen
<option id="kosten_buendeln_var" name="kosten_buendeln_var" type="Hidden" default="1">
<auflage>
<grenze formel="0">0</grenze>
<grenze formel="($Vauflage$V/$Pbuendeln_pro_h_proppe$P*$Pstundensatz_buendeln_proppe$P)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// variable Kosten verpacken (Anzahl Ex pro Karton)
<option id="anzahl_ex_karton" name="kosten_verpacken_material_var" type="Hidden" default="1">
<auflage>
<grenze calc_value="0">0</grenze>
<grenze calc_value="floor(($Pverpackung_breite_mm_proppe$P*$Pverpackung_laenge_mm_proppe$P)/($Vbreite_frei$V*$Vhoehe_frei$V))*floor($Pverpackung_hoehe_mm_proppe$P/($Vpapier_grammatur$V/1000))">1-</grenze>
</auflage>
</option>
// Kosten Kartons
<option id="kosten_kartons" name="kosten_kartons" type="Hidden" default="1">
<auflage>
<grenze formel="0">0</grenze>
<grenze formel="((ceil($Vauflage$V/($CVanzahl_ex_karton_auflage$CV)))*$Pverpackung_material_proppe$P)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
<option id="kosten_kartons_umverpackung" name="kosten_kartons_umverpackung" type="Hidden" default="1">
<auflage>
<grenze formel="0">0</grenze>
<grenze formel="((ceil($Vauflage$V/($CVanzahl_ex_karton_auflage$CV)))*$Pverpackung_material_umverp_proppe$P)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Gewicht Produkte
<option id="gewicht_produkte" name="gewicht_produkte" type="Hidden" default="1">
<auflage>
<grenze calc_value="$Vbreite_frei$V*$Vhoehe_frei$V/1000000*$Vauflage$V*$Vpapier_grammatur$V">1-</grenze>
</auflage>
</option>
// Gewicht Kartons
<option id="gewicht_karton" name="gewicht_karton" type="Hidden" default="1">
<auflage>
<grenze calc_value="(ceil($Vauflage$V/($CVanzahl_ex_karton_auflage$CV)))*$Pkarton_gewicht_proppe$P">1-</grenze>
</auflage>
</option>
// Gewicht Umkartons
<option id="gewicht_umkarton" name="gewicht_umkarton" type="Hidden" default="1">
<auflage>
<grenze calc_value="(ceil($Vauflage$V/($CVanzahl_ex_karton_auflage$CV))/2)*$Pumkarton_gewicht_proppe$P">1-</grenze>
</auflage>
</option>
<option id="gesamtgewicht" name="gesamtgewicht" type="Hidden" default="1">
<auflage>
<grenze calc_value="(($CVgewicht_produkte_auflage$CV)+($CVgewicht_karton_auflage$CV)+($CVgewicht_umkarton_auflage$CV))">1-</grenze>
</auflage>
</option>
<option id="versandkosten" name="versandkosten" type="Hidden" default="1">
<gesamtgewicht formel="$CVgesamtgewicht_auflage$CV">
<grenze formel="($Pversandkosten_proppe_bis_05000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">1-5000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_10000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">5001-10000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_20000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">10001-20000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_30000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">20001-30000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_35000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">30001-35000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_40000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">34001-40000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_50000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">40001-50000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_60000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">50001-60000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_65000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">60001-65000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_70000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">65001-70000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_80000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">70001-80000</grenze>
<grenze formel="($Pversandkosten_proppe_bis_90000g$P+$Pzuschlag_versand_proppe$P)*$Pgewinnzuschlag$P">80001-90000</grenze>
<grenze formel="300">90001-</grenze>
</gesamtgewicht>
</option>
<option id="auftragspauschale" name="auftragspauschale" type="Hidden" default="1">
<auflage>
<grenze formel="($Pauftragspauschale_proppe$P)*$Pgewinnzuschlag$P">1-</grenze>
</auflage>
</option>
// Gesamtgewicht für Produktkalkulation
<option id="weight" name="weight" type="Hidden" default="1">
<auflage>
<grenze formel="($CVgewicht_produkte_auflage$CV)+($CVgewicht_karton_auflage$CV)+($CVgewicht_umkarton_auflage$CV)">1-</grenze>
</auflage>
</option>
</artikel>
</kalkulation>

View File

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

View File

@ -0,0 +1,127 @@
//Flyer
$flyer40='($Pflyerklick$P*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$flyer44='($Pflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$fflyer44='($Pfflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
// Karten
$weihnachtskarte2s='((0.5*$Vauflage$V)+(5))/1.19';
$weihnachtskarte4s='((1.5*$Vauflage$V)+(5))/1.19';
$karte40='($Pkarteklick$P*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$karte44='($Pkarteklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$faltkarte44='($Pfkarteklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$einleger='($Pflyerklick$P*2*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)';
$planonut='$pnuten+($Vauflage$V*$pnut$P)';
$geschlossennut='$pnuten+($Vauflage$V*$pnutgeschlossen$P)';
//kalender
$kalendera5='($Vauflage$V*$Vseiten$V*.3)+($Vauflage$V*6.96)+5';
$kalendera4='($Vauflage$V*$Vseiten$V*.5)+($Vauflage$V*7.96)+5';
$kalendera3='($Vauflage$V*$Vseiten$V*.75)+($Vauflage$V*9.2)+5';
//Bogen
$bogen40='($Pfarbdruck1$P*$Vauflage$V*$Vsorten$V)+($Vpapier_value$V*$Vauflage$V)';
$bogen44='($Pflyerklick$P*2*$Vauflage$V*$Vsorten$V)+($Vpapier_value$V*$Vauflage$V)';
// Visitenkarte einseitig doppelseitigKlappvisitenkarten
$vk40='$Pvkpauschale$P+($Pvisitenkarte$P*$Vauflage$V/10)+(($Vpapier_value$V*$Vauflage$V)/20)';
$vk44='$Pvkpauschale$P+($Pvisitenkarte$P*$Vauflage$V*2/10)+(($Vpapier_value$V*$Vauflage$V)/20)';
$vkk44='20+($Pvisitenkartek$P*$Vauflage$V)*4+$Pvkpauschale$P+($Vpapier_value$V/10*$Vauflage$V)+($Pnut$P*$Vauflage$V)+(($Vpapier_value$V*$Vauflage$V)/20)';
// Poster
$rahmen='((((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V))/10000)*30.5)+($Vauflage$V*15)';
$poster='2.5+(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pposterqm1$P)/10000)';
$postera1='(($Pposterqm1$P/2)*$Vauflage$V)+$Pposterpauschale$P';
$fhhpostera1='(($Pposterqm1$P/2)*$Vmenge$V)';
$postera0='(($Pposterqm1$P/1)*$Vauflage$V)+$Pposterpauschale$P';
//plakat
$plakata3='(0.25*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V)+19.8';
$plakata4='(0.15*$Vauflage$V)+($Vpapier_value$V*$Vauflage$V/2)+19.9';
$plakat160='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat160qm1$P)/10000)+$Pplakatpauschale$P';
$plakat140='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat140qm1$P)/10000)';
$plakat80='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplakat80qm1$P)/10000)';
//Leinwand
$leinwand='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*70)/10000)';
$leisten='((tonumber($Vkurz$V)+tonumber($Vlang$V)*$Vauflage$V)*2)*5.5/100';
$aufziehen='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*40)/10000)+(5*$Vauflage$V)';
//Banner
$banner='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pbannerqm$P)/10000)';
$mesh='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pmeshqm$P)/10000)';
$blockout='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pblockoutqm$P)/10000)';
$pp='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pppqm$P)/10000)';
$lamprotect='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*30)/10000)';
$solprotect='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*12)/10000)';
$solprotectmm='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*12)/1000000)';
$oesen='((tonumber($Vkurz$V)+tonumber($Vlang$V)*$Vauflage$V)*2)/50';
// Tapete
$tapete='(((tonumber($Vkurz$V)*tonumber($Vlang$V))*$Vauflage$V)*(44.5)/10000)';
//Klebefolie
$cutfolie='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Pcutfolieqm$P)/10000)+$Pcutfoliepausch$P';
$cuttransfer='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Pcuttransferqm$P)/10000)';
$aufkleber='(((tonumber($Vkurz$V+1)*tonumber($Vlang$V+1)*$Vauflage$V)*$Paufkleberqm$P)/1000000)+25';
$klebefolie='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pklebefolieqm$P)/10000)';
$diafilm='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*(70))/10000)';
//Plotten
$pltfarbe='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotfarbe$P)/1000000)';
$pltsw='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotsw$P)/1000000)';
$pltfarbefl='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pplotfarbefl$P)/1000000)';
//Laminieren
$laminierenposter='(((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Plaminieren$P)/10000)';
//Kaschieren
$kaschieren3hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk3hs$P)/10000+$Pruestkosten$P';
$kaschieren5hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5hs$P)/10000+$Pruestkosten$P';
$kaschieren5fsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
$kaschieren5hsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
$kaschieren10fsposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pk10fs$P)/10000+$Pruestkosten$P';
$kaschierenaluposter='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkalu$P)/10000+$Pruestkosten$P';
$kaschierenalufolie='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkalu$P)/11000';
$kaschieren3hs='((tonumber($Vkurz$V)*tonumber($Vlang$V)*$Vauflage$V)*$Pkaschieren3hs$P)/10000+$Pruestkosten$P';
$kaschieren5hs='(($Vauflage$V)*$Pk5hs$P)/10000+$Pruestkosten$P';
$kaschieren10hs='(($Vauflage$V)*$Pk10hs$P)/10000+$Pruestkosten$P';
$kaschieren5fs='(($Vauflage$V)*$Pk5fs$P)/10000+$Pruestkosten$P';
$kaschieren10fs='(($Vauflage$V)*$Pk10fs$P)/10000+$Pruestkosten$P';
$kaschierenalu='(($Vauflage$V)*$Pkalu$P)/10000+$Pruestkosten$P';
//RollUpbasic
$rollbasic='(144.35/1.19*$Vauflage$V)';
// Cellophanieren
$cello='10+$Pcello$P*$Vauflage$V';
$cellodps='10+$Pcello$P*2*$Vauflage$V';
$formelvkcello='5+($Pcello$P*$Vauflage$V/20)';
//Taschenlaminat
$formeltl='$Ptaschenlaminieren3$P*$Vauflage$V';
//eckenrunden
$formel7='$Peckenrundeneinrichten$P+($Peckenrunden$P*$Vauflage$V)';
//Falten
$falten='$Pfalte$P*$Vauflage$V';
//nuten
$nutplano='$Pnuten$P+($Pnut$P*$Vauflage$V)';
// nuten für kombiartikel
$nutplan='($Pnut$P*$Vauflage$V)';
$nutzu='$Pnuten$P+($Pnutgeschlossen$P*$Vauflage$V)';
//heften
$heften='10+(0.15*$Vauflage$V)';
//Briefpapier
$briefpapier='($Vauflage$V*0.10)+25+($Vpapier_value$V/2*$Vauflage$V)';
// Zeitungen
// abizeitung
$abi_a4_sw='($Vauflage$V*$Vswseiten$V)*0.025)+($Vauflage$V*.08)';
//Schuelerzeitung
$sza5fc='($Vauflage$V*0.6)+10+(($Vauflage$V*$Vswswseiten$V)*0.015)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
$sza4fc='($Vauflage$V*0.6)+10+(($Vauflage$V*$Vswswseiten$V)*0.025)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
$sza5='10+(($Vauflage$V*$Vswswseiten$V)*0.015)+($Vauflage$V*0.15)+($Vpapier_value$V/4*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/4*$Vumschlag_value$V)';
$sza4='10+(($Vauflage$V*$Vswswseiten$V)*0.025)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';
$sz4ca5='10+(($Vauflage$V*$Vswswseiten$V)*0.15)+($Vauflage$V*0.15)+($Vpapier_value$V/4*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/4*$Vumschlag_value$V)';
$sz4ca4='10+(($Vauflage$V*$Vswswseiten$V)*0.25)+($Vauflage$V*0.15)+($Vpapier_value$V/2*$Vauflage$V*$Vswswseiten$V)+($Vauflage$V/2*$Vumschlag_value$V)';

View File

@ -0,0 +1,330 @@
<?xml version="1.0" encoding="UTF-8"?>
<container>
//Proppe
<papiercontainer id="aufkleber_proppe">
<papier id="931001"/>
</papiercontainer>
<papiercontainer id="umweltfreundliche Aufkleber">
<papier id="931006"/>
<papier id="931007"/>
</papiercontainer>
<papiercontainer id="anhängeetiketten">
<papier id="931017">
<grenzen>
<seitenzahl>
<grenze>2</grenze>
</seitenzahl>
</grenzen>
</papier>
<papier id="931018">
<grenzen>
<seitenzahl>
<grenze>2</grenze>
</seitenzahl>
</grenzen>
</papier>
<papier id="931019">
<grenzen>
<seitenzahl>
<grenze>2</grenze>
</seitenzahl>
</grenzen>
</papier>
<papier id="931020">
<grenzen>
<seitenzahl>
<grenze>2</grenze>
</seitenzahl>
</grenzen>
</papier>
<papier id="931021">
<grenzen>
<seitenzahl>
<grenze>2</grenze>
</seitenzahl>
</grenzen>
</papier>
</papiercontainer>
<papier id="931023"/> Diese 2 Zeilen standen vorher innerhalb des Papiercontainers an letzter Stelle. Wenn 4-seitige Anhägeeti in Klak aktiv, dann wieder einfügen
<papier id="931024"/>
<papiercontainer id="naßleimetiketten">
<papier id="931011"/>
<papier id="931012"/>
<papier id="931013"/>
<papier id="931014"/>
<papier id="931015"/>
<papier id="931016"/>
</papiercontainer>
<papiercontainer id="trockengummiert">
<papier id="931022"/>
</papiercontainer>
<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>
</container>

View File

@ -0,0 +1,192 @@
//Proppe
$gewinnzuschlag=1.1;
$druckbogen_breite_proppe=490;
$druckbogen_hoehe_proppe=325;
$stundensatz_datencheck_proppe=68;
$beschnitt_proppe=1.5;
$plattenpreis_proppe=13;
$stundensatz_druck_proppe=135;
$einrichtezeit_druck_proppe=0.6;
$zuschussfaktor_proppe=1.01;
$maschinenleistung_druck_proppe=6000;
$material_fix_propppe=220;
$farbe_kg_propppe=16.5;
$stundensatz_schneiden_proppe=61;
$hubhoehe_schneiden_proppe=75;
$zeit_je_schnitt_proppe=0.3;
$schneiden_ruesten_proppe=9;
$ecken_runden_ruesten_proppe=6;
$ecken_runden_zeit_pro_hub=25;
$hubhoehe_ecken_proppe=30;
$stundensatz_ecken_runden_proppe=45;
$oesen_ruesten_proppe=6;
$oesen_anzahl_pro_h=1000;
$stundensatz_oesen_proppe=45;
$material_oesen_proppe=0.016;
$lochen_ruesten_proppe=6;
$lochen_zeit_pro_hub=90;
$hubhoehe_lochen_proppe=50;
$stundensatz_lochen_proppe=45;
$stanzen_ruesten_proppe=15;
$stanzen_zeit_pro_1000_proppe=5;
$stanzen_werkzeug_proppe=650;
$stundensatz_stanzen_proppe=65;
$praegen_pro_h_proppe=2250;
$praegestempel_proppe=85;
$stundensatz_praegen_proppe=70;
$heissfolie_pro_h_proppe=1900;
$heissfoliestempel_proppe=65;
$stundensatz_heissfolie_proppe=135;
$falzen_ruesten_proppe=20.4;
$falzen_pro_h_proppe=4000;
$stundensatz_falzen_proppe=45;
$buendeln_pro_h_proppe=80000;
$stundensatz_buendeln_proppe=40;
$verpackung_breite_mm_proppe=214;
$verpackung_laenge_mm_proppe=302;
$verpackung_hoehe_mm_proppe=100;
$verpackung_material_proppe=0.32;
$verpackung_material_umverp_proppe=1.8;
$karton_gewicht_proppe=200;
$umkarton_gewicht_proppe=300;
$zuschlag_versand_proppe=3;
$versandkosten_proppe_bis_05000g=9.2;
$versandkosten_proppe_bis_10000g=10.2;
$versandkosten_proppe_bis_20000g=11.2;
$versandkosten_proppe_bis_30000g=17.2;
$versandkosten_proppe_bis_35000g=26.3;
$versandkosten_proppe_bis_40000g=27.3;
$versandkosten_proppe_bis_50000g=28.3;
$versandkosten_proppe_bis_60000g=34.3;
$versandkosten_proppe_bis_65000g=43.4;
$versandkosten_proppe_bis_70000g=44.4;
$versandkosten_proppe_bis_80000g=45.4;
$versandkosten_proppe_bis_90000g=51.4;
$auftragspauschale_proppe=35;
//express
$exp1=0.1;
$exp2=1.2;
// copyshop
$swst1=0.08/1.07;
$swst2=0.065/1.07;
$swst3=0.055/1.07;
$swst4=0.05/1.07;
$swst5=0.045/1.07;
$swst6=0.035/1.07;
$titeldruck=0.6/1.07;
$fst1=0.9/1.07;
$fst2=0.75/1.07;
$fst3=0.55/1.07;
$fst4=0.45/1.07;
$fst5=0.4/1.07;
$fst6=0.25/1.07;
$fswst1=0.2/1.07;
$fswst2=0.11/1.07;
$fswst3=0.10/1.07;
$fswst4=0.09/1.07;
$fswst5=0.08/1.07;
$fswst6=0.06/1.07;
$b100=3.3/1.07;
$b150=3.7/1.07;
$b200=4.3/1.07;
$b300=5.3/1.07;
$b300plus=6.3/1.07;
//shopende
//farbdrucke
$farbdruck1=0.80;
$farbdruck2=0.80*0.85;
$farbdruck3=0.80*0.75;
$farbdruck4=0.80*0.65;
$farbdruck5=0.80*0.55;
$farbdruck6=0.80*0.45;
$farbdruck7=0.80*0.37;
$farbdruck8=0.80*0.31;
$pauschale=30;
$posterpauschale=0;
$posterqm1=39.85/1.19;
$plakatpauschale=10;
$plakat140qm1=25;
$plakat160qm1=20;
$plakat80qm1=15;
$plakatA3=10;
$plakataffichenqm1=17.5;
$aufkleberqm=45;
$klebefolieqm=45;
$cutfolieqm=45;
$cuttransferqm=15;
$cutfoliepausch=25;
$solprotectqm=15;
$wallmountqm=60;
//banner
$bannerqm=40;
$meshqm=40;
$ppqm=40;
$blockoutqm=40;
$vkpauschale=17.5;
$laminieren=30;
//Flyer
$flyerschneiden=7.5;
$fflyerschneiden=8;
$flyer=20;
$fflyer=30;
$karten=20;
//$karten=35;
$fkarten=25;
$flyerklick=0.3;
$fflyerklick=0.3;
$fflyerfalten=0.01;
$fkarteklick=0.310;
$karteklick=0.25;
// Weihnachtskarten
$klick=0.5;
$visitenkarte=0.60;
$k3hs=50;
$k5hs=55;
$k10hs=65;
$k5fs=55;
$k10fs=59.9;
$kalu=89.99;
$cello=0.1;
$taschenlaminierena4=0.8;
$taschenlaminierena3=1.25;
$eckenrunden=0.01;
$eckenrundeneinrichten=5;
$nuten=12;
$nut=.12;
$nutgeschlossen=.18;
$schneiden=2.5;
$falten=0.01;
$MiniRolli3=21.99;
$MiniRolli4=16.99;
$ruestkosten=0;
$tbk=.60;
$tbkpauschale=30;
//plotten
$plotsw=3.95;
$plotfarbe=9.95;
$plotfarbefl=14.95;
//aufschlag
$aufschlag=1.5;

View File

@ -263,6 +263,16 @@ class PaperRepostory implements ObjectRepository
$papier['sm150g']->setPapierTyp11(1);
$papier['sm150g']->setPapierTyp14(1);
$papier['931001'] = new Paper();
$papier['931001']->setArtNr('931001');
$papier['931001']->setGrammatur('200');
$papier['931001']->setPreis('300');
$papier['931001']->setVolume(1);
$papier['931001']->setPapierTyp3(1);
$papier['931001']->setDescription1('Haftpapier hochglänzend weiß, permanent 80g');
$papier['931001']->setDescription2('Michaelis - High Gloss White permanent geschlitzt');
return $papier[$criteria['artNr']];
}