This commit is contained in:
Thomas Peterson 2019-08-01 15:05:18 +02:00
parent ebefe0a2a9
commit de4406d603
14 changed files with 1096 additions and 19 deletions

View File

@ -55,12 +55,12 @@ class CalcValues
/** @var Select\Opt $opt */
foreach($option->getOptions() as $opt) {
if($opt->isValid() && $opt->isSelected()) {
$price = $this->parseEdgeCollection($price, $option, $opt->getEdgesCollectionContainer());
$price = $this->parseEdgeCollection($price, $option->getId(), $opt->getEdgesCollectionContainer());
}
}
}
$this->parseEdgeCollection($price, $option, $option->getEdgesCollectionContainer());
$this->parseEdgeCollection($price, $option->getId(), $option->getEdgesCollectionContainer());
}
@ -69,11 +69,11 @@ class CalcValues
/**
* @param $price
* @param Base $option
* @param id
* @param EdgeCollectionContainer $container
* @return int
*/
private function parseEdgeCollection($price, $option, EdgeCollectionContainer $container)
private function parseEdgeCollection($price, $id, EdgeCollectionContainer $container, $isSub = false)
{
$calcValue1 = 0;
@ -99,9 +99,16 @@ class CalcValues
if($edge->getCalcValue() != "") {
$cv = $this->formelCalc->parse($edge->getCalcValue());
eval('$cv = ' . $cv . ';');
$this->engine->addCalcVariable($option->getId() . '_' . $collection->getName(), $cv);
if($isSub) {
$this->engine->addCalcVariable($id, $cv);
}else{
$this->engine->addCalcVariable($id . '_' . $collection->getName(), $cv);
}
}
if($edge->getEdgesCollectionContainer()->count() > 0) {
$this->parseEdgeCollection($price, $id . '_' . $collection->getName(), $edge->getEdgesCollectionContainer(), true);
}
}
}

View File

@ -38,20 +38,29 @@ class Edge
$edge->setPauschale(floatval($this->node->attributes()->pauschale));
}
if(isset($this->node->attributes()->value) && $this->node->children()) {
$edge->setValues([(string)$this->node->attributes()->value]);
if($this->node->children()) {
$edgeCollectionContainerParser = new EdgeCollectionContainer($this->node);
$edge->setEdgesCollectionContainer($edgeCollectionContainerParser->parse());
}
}else {
$value = (string)$this->node;
if(preg_match("/^([0-9a-zA-Z_]+)$/", trim($value), $regs)) {
if (preg_match("/^([0-9a-zA-Z_]+)$/", trim($value), $regs)) {
$edge->setValues([$regs[1]]);
}elseif(preg_match("/^([0-9]+)-([0-9]+)$/", trim($value), $regs)) {
} elseif (preg_match("/^([0-9]+)-([0-9]+)$/", trim($value), $regs)) {
$edge->setRegion(true);
$edge->setFrom(intval($regs[1]));
$edge->setTo(intval($regs[2]));
}elseif(preg_match("/^([0-9]+)-$/", trim($value), $regs)) {
} elseif (preg_match("/^([0-9]+)-$/", trim($value), $regs)) {
$edge->setRegion(true);
$edge->setFrom(intval($regs[1]));
}elseif(strpos(trim($value), ",") !== false) {
} elseif (strpos(trim($value), ",") !== false) {
$values = explode(",", trim($value));
$edge->setValues($values);
}
}
return $edge;
}

View File

@ -14,6 +14,14 @@ class Edge
protected $region = false;
/** @var EdgeCollectionContainer */
protected $edgesCollectionContainer = null;
public function __construct()
{
$this->edgesCollectionContainer = new EdgeCollectionContainer();
}
/**
* @return string
*/
@ -168,4 +176,20 @@ class Edge
return false;
}
/**
* @return EdgeCollectionContainer
*/
public function getEdgesCollectionContainer()
{
return $this->edgesCollectionContainer;
}
/**
* @param EdgeCollectionContainer $edgesCollectionContainer
*/
public function setEdgesCollectionContainer($edgesCollectionContainer)
{
$this->edgesCollectionContainer = $edgesCollectionContainer;
}
}

View File

@ -0,0 +1,48 @@
<?php
namespace PSC\Library\Calc\Tests\Complex;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\PaperContainer;
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
class SecondTest 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/Complex2/papierContainer.xml')));
$this->engine = new Engine();
$this->engine->setPaperContainer($paperContainer);
$this->engine->setPaperRepository($repository);
$this->engine->setFormulas(file_get_contents(__DIR__.'/../TestFiles/Complex2/formels.txt'));
$this->engine->setParameters(file_get_contents(__DIR__.'/../TestFiles/Complex2/parameters.txt'));
$this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/Complex2/1.xml'));
}
public function tearDown()
{
$this->engine = null;
}
public function testIfArticleCountIsCorrect()
{
$this->assertEquals(1, $this->engine->getArticles()->Count());
}
public function testIfDefaultPriceIsOk()
{
$this->assertEquals(328.53 , $this->engine->getPrice());
}
}

View File

@ -170,6 +170,14 @@ class PaperRepostory implements ObjectRepository
$papier['CONG300_1']->setDescription1('300 g/m² Naturkarton gerippt hochweiß');
$papier['CONG300_1']->setDescription2('300 g/m² Conqueror gerippt diamantweiß');
$papier['grasnatur85'] = new Paper();
$papier['grasnatur85']->setArtNr('grasnatur85');
$papier['grasnatur85']->setGrammatur('85');
$papier['grasnatur85']->setPreis('160');
$papier['grasnatur85']->setVolume('1.2');
$papier['grasnatur85']->setDescription1('Graspapier 50% Faseranteil (85 g/m²)');
$papier['grasnatur85']->setDescription2('Graspapier 50% Faseranteil (85 g/m²)');
return $papier[$criteria['artNr']];

View File

@ -0,0 +1,45 @@
<?php
namespace PSC\Library\Calc\Tests\Recursiv;
use PSC\Library\Calc\Article;
use PSC\Library\Calc\Engine;
use PSC\Library\Calc\PaperContainer;
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
class SecondTest 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/Recursiv/papierContainer.xml')));
$this->engine = new Engine();
$this->engine->setPaperContainer($paperContainer);
$this->engine->setPaperRepository($repository);
$this->engine->setFormulas(file_get_contents(__DIR__.'/../TestFiles/Recursiv/formels.txt'));
$this->engine->setParameters(file_get_contents(__DIR__.'/../TestFiles/Recursiv/parameters.txt'));
$this->engine->loadString(file_get_contents(__DIR__ . '/../TestFiles/Recursiv/1.xml'));
}
public function tearDown()
{
$this->engine = null;
}
public function testIfArticleCountIsCorrect()
{
$this->assertEquals(1, $this->engine->getArticles()->Count());
$this->engine->getPrice();
}
}

View File

@ -0,0 +1,565 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>Plakate</name>
<kommentar/>
<uploads>
<upload id="inhalt" name="Druckdaten" description="Bitte laden sie eine PDF für den Druck hoch"/>
</uploads>
<option id="ecoprint" name="" type="Text" default="">
</option>
<!-- Beginn der Eingabemaske -->
<option id="auflage" name="Auflage" type="Select" default="100">
<opt id="5" name="5 Exemplare"></opt>
<opt id="10" name="10 Exemplare"></opt>
<opt id="25" name="25 Exemplare"></opt>
<opt id="50" name="50 Exemplare"></opt>
<opt id="100" name="100 Exemplare"></opt>
<opt id="200" name="200 Exemplare"></opt>
<opt id="300" name="300 Exemplare"></opt>
<opt id="400" name="400 Exemplare"></opt>
<opt id="500" name="500 Exemplare"></opt>
<opt id="750" 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="3000" name="3.000 Exemplare"></opt>
<opt id="5000" name="5.000 Exemplare"></opt>
<opt id="7500" name="7.500 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="30000" name="30.000 Exemplare"></opt>
<opt id="40000" name="40.000 Exemplare"></opt>
<opt id="50000" name="50.000 Exemplare"></opt>
<opt id="100000" name="100.000 Exemplare"></opt>
</option>
<option id="format1" name="Format" type="Select" default="11">
<opt id="9" name="DIN A3 Hochformat (297 x 420 mm)"></opt>
<opt id="10" name="DIN A3 Querformat (420 x 297 mm)"></opt>
<opt id="11" name="DIN A2 Hochformat (420 x 594 mm)"></opt>
<opt id="12" name="DIN A2 Querformat (594 x 420 mm)"></opt>
<opt id="13" name="DIN A1 Hochformat (594 x 840 mm)"></opt>
<opt id="14" name="DIN A1 Querformat (840 x 594 mm)"></opt>
<opt id="15" name="Hochformat 700 x 1000 mm"></opt>
<opt id="16" name="Querformat 1000 x 700 mm)"></opt>
</option>
<option id="seitenzahl" name="Seitenzahl" type="Hidden" default="2">
<opt id="2" name="2 Seiten"></opt>
<opt id="4" name="4 Seiten"></opt>
</option>
<option id="druckfarben_inhalt" name="Farbigkeit" type="Select" default="1">
<opt id="1" name="4/0 Euroskala (einseitig)"/>
<opt id="2" name="4/4 Euroskala (beidseitig)"/>
</option>
<option id="papier" name="Papiersorte" type="Select" mode="papierdb" container="grasbriefbogen" default="grasnatur85"/>
<!-- Mit diesen Optionen wird momentan nicht gerechnet -->
<option id="dateiformat_geliefert" name="Druckdaten" type="Select" default="1">
<opt id="1" name="PDF-Datei (Standard)"/>
</option>
<option id="korrekturabzug" name="Korrekturabzug" type="Select" default="1">
<opt id="1" name="per PDF (Standard)"/>
<opt id="2" name="per Laserproof"/>
<opt id="3" name="kein Korrekturabzug"/>
</option>
<option id="absender" name="Absenderadresse" type="Select" default="1">
<opt id="1" name="Die Grasdruckerei"/>
<opt id="2" name="Neutralversand"/>
</option>
<option id="belegexemplar" name="Belegexemplar" type="Select" default="1">
<opt id="1" name="Nein"/>
<opt id="2" name="Ja"/>
</option>
<option id="produktionszeit" name="Produktionszeit" type="Select" default="2">
<opt id="1" name="Green (14 Tage)"/>
<opt id="2" name="Normal (7 Tage)"/>
<opt id="3" name="Express nach Rücksprache"/>
</option>
<!-- Ende der Eingabemaske -->
<!-- Beginn Kalkulation -->
<!-- Formatbestimmung -->
<!-- Breite für Gewichtsberechnung -->
<option id="breite" name="Seitenbreite Einzelseite" type="Hidden" default="1">
<format1>
<grenze calc_value="105">1,3</grenze>
<grenze calc_value="148">4,5</grenze>
<grenze calc_value="210">2,6,7</grenze>
<grenze calc_value="297">8,9</grenze>
<grenze calc_value="420">10,11,12</grenze>
<grenze calc_value="594">13</grenze>
<grenze calc_value="840">14</grenze>
<grenze calc_value="700">15,16</grenze>
</format1>
</option>
<!-- Breite für Plakate -->
<option id="breite_offen" name="Breite offenes Format" type="Hidden" default="1">
<format1>
<grenze calc_value="105">1,3</grenze>
<grenze calc_value="148">4,5</grenze>
<grenze calc_value="210">2,6,7</grenze>
<grenze calc_value="297">8,9</grenze>
<grenze calc_value="420">10</grenze>
<grenze calc_value="594">11,12,13</grenze>
<grenze calc_value="840">14</grenze>
<grenze calc_value="700">15,16</grenze>
</format1>
</option>
<!-- Breite offen (Flyer)
<option id="breite_offen" name="Breite offenes Format" type="Hidden" default="1">
<format1>
<grenze calc_value="105*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">1,3</grenze>
<grenze calc_value="148*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">4,5</grenze>
<grenze calc_value="210*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">2,6,7</grenze>
<grenze calc_value="297*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">8,9</grenze>
<grenze calc_value="420*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">10</grenze>
<grenze calc_value="594*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">11,12,13</grenze>
<grenze calc_value="840*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">14</grenze>
<grenze calc_value="700*$Vseitenzahl$V/2*$Vdruckfarben_inhalt$V">15,16</grenze>
</format1>
</option>
-->
<!-- Höhe -->
<option id="hoehe_offen" name="seitenhoehe" type="Hidden" default="1">
<format1>
<grenze calc_value="105">2,4</grenze>
<grenze calc_value="148">3,6</grenze>
<grenze calc_value="210">1,5,8</grenze>
<grenze calc_value="297">7,10</grenze>
<grenze calc_value="420">9,11,12</grenze>
<grenze calc_value="594">14</grenze>
<grenze calc_value="840">13</grenze>
<grenze calc_value="1000">15,16</grenze>
</format1>
</option>
<!-- Nutzenberechnung A3 -->
<option id="nutzen_sm52" name="Nutzen SM52" type="Hidden" default="1">
<auflage>
<grenze calc_value="(max((floor(320/($CVbreite_offen_format1$CV)))*(floor(470/$CVhoehe_offen_format1$CV)),(floor(470/($CVbreite_offen_format1$CV)))*(floor(320/$CVhoehe_offen_format1$CV))))">1-</grenze>
</auflage>
</option>
<!-- Nutzenberechnung A2 -->
<option id="nutzen_sm102" name="Nutzen SM102" type="Hidden" default="1">
<auflage>
<grenze calc_value="(max((floor(720/($CVbreite_offen_format1$CV)))*(floor(1020/$CVhoehe_offen_format1$CV)),(floor(1020/($CVbreite_offen_format1$CV)))*(floor(720/$CVhoehe_offen_format1$CV))))">1-</grenze>
</auflage>
</option>
<!-- Nutzenauswertung: Wenn Nutzen SM52 = 0 dann Nutzen SM 102 -->
<!-- Durch diese Info wissen wir auch, auf welcher Maschine produziert wird -->
<option id="nutzen_final" name="Nutzen final" type="Hidden" default="1">
<auflage formel="$CVnutzen_sm52_auflage$CV">
<grenze calc_value="$CVnutzen_sm102_auflage$CV">0</grenze>
<grenze calc_value="$CVnutzen_sm52_auflage$CV">1-</grenze>
</auflage>
</option>
<!-- Hier beginnt die eigentliche Preisberechnung -->
<!-- Arbeitsvorbereitung -->
<option id="kosten_av" name="Arbeitsvorbereitung" type="Hidden" default="1">
<auflage>
<grenze formel="$Pav_stundensatz$P*$Pav_flyer_zeit$P">1-</grenze>
</auflage>
</option>
<!-- DTP -->
<option id="kosten_dtp" name="DTP" type="Hidden" default="1">
<auflage>
<grenze formel="$Pdtp_stundensatz$P*$Pdtp_flyer_zeit$P">1-</grenze>
</auflage>
</option>
<!-- Kosten Farbe aus ausgelagerter Formel -->
<option id="kosten_farbe" name="farbe" type="Hidden" default="1">
<format1>
<grenze calc_value="$Ffarbe_a4$F">7,8</grenze>
<grenze calc_value="$Ffarbe_a5$F">5,6</grenze>
<grenze calc_value="$Ffarbe_a6$F">3,4</grenze>
<grenze calc_value="$Ffarbe_dl$F">1,2</grenze>
<grenze calc_value="$Ffarbe_a3$F">9,10</grenze>
<grenze calc_value="$Ffarbe_a2$F">11,12</grenze>
<grenze calc_value="$Ffarbe_a1$F">13,14</grenze>
<grenze calc_value="$Ffarbe_3b$F">15,16</grenze>
</format1>
</option>
<!-- Fixkosten Falzen -->
<option id="fixkosten_falzen" name="Fixkosten Falzen" type="Hidden" default="1">
<seitenzahl>
<grenze calc_value="0">2</grenze>
<grenze calc_value="($Pfalzen_ruesten$P*$Pfalzen_horizon$P/60)">4</grenze>
<grenze calc_value="($Pfalzen_ruesten$P*$Pfalzen_horizon$P/60)+($Pzus_falzbrueche$P)">6</grenze>
<grenze calc_value="($Pfalzen_ruesten$P*$Pfalzen_horizon$P/60)+(2*$Pzus_falzbrueche$P)">8</grenze>
<grenze calc_value="($Pfalzen_ruesten$P*$Pfalzen_horizon$P/60)+(3*$Pzus_falzbrueche$P)">10</grenze>
</seitenzahl>
</option>
<!-- Variable Kosten Falzen -->
<option id="fortlaufgeschwindigkeit_falzen" name="fortlaufgeschwindigkeit_falzen" type="Hidden" default="1">
<papier_grammatur>
<grenze calc_value="$Pfalzen_speed$P">1-169</grenze>
<grenze calc_value="$Pfalzen_speed_mit_nuten$P">170-500</grenze>
</papier_grammatur>
</option>
<option id="kosten_fortlauf_falzen" name="kosten_fortlauf_falzen" type="Hidden" default="1">
<auflage formel="$Vseitenzahl$V &gt; 2" >
<grenze calc_value="($Pfalzen_horizon$P/60)*(60/$CVfortlaufgeschwindigkeit_falzen_papier_grammatur$CV*$Vauflage$V)">0</grenze>
<grenze calc_value="($Pfalzen_horizon$P/60)*(60/$CVfortlaufgeschwindigkeit_falzen_papier_grammatur$CV*$Vauflage$V)">1</grenze>
</auflage>
</option>
<!-- Fixkosten Nuten -->
<option id="fixkosten_nuten_seitenzahl" name="Fixkosten Nuten über Seitenzahl" type="Hidden" default="1">
<seitenzahl>
<grenze calc_value="0">2</grenze>
<grenze calc_value="($Pnuten_ruesten$P*$Pfalzen_horizon$P/60)">4</grenze>
<grenze calc_value="($Pnuten_ruesten$P*$Pfalzen_horizon$P/60)+($Pzus_nutlinien$P)">6</grenze>
<grenze calc_value="($Pnuten_ruesten$P*$Pfalzen_horizon$P/60)+(2*$Pzus_nutlinien$P)">8</grenze>
<grenze calc_value="($Pnuten_ruesten$P*$Pfalzen_horizon$P/60)+(3*$Pzus_nutlinien$P)">10</grenze>
</seitenzahl>
</option>
<!-- Fixkosten Nuten, für Papier ab 170g -->
<option id="fixkosten_nuten" name="Fixkosten Nuten" type="Hidden" default="1">
<papier_grammatur>
<grenze calc_value="0">1-169</grenze>
<grenze calc_value="($CVfixkosten_nuten_seitenzahl_seitenzahl$CV)">170-</grenze>
</papier_grammatur>
</option>
<!-- Schneiden auf Endformat -->
<!-- Rüsten schneiden -->
<option id="kosten_ruesten_schneiden" name="kosten_ruesten_schneiden" type="Hidden" default="1">
<auflage>
<grenze calc_value="$Pschneidemaschine$P/60*$Pschneiden_ruesten$P">1-</grenze>
</auflage>
</option>
<!-- Stapelhöhe berechnen -->
<option id="stapelhoehe" name="stapelhoehe" type="Hidden" default="1">
<auflage>
<grenze calc_value="$CVanzahl_druckbogen_auflage$CV*$Vpapier_grammatur$V*$Vpapier_volume$V/1000">1-</grenze>
</auflage>
</option>
<!-- Anzahl Hübe berechnen -->
<option id="anzahl_huebe" name="Anzahl Hübe" type="Hidden" default="1">
<auflage>
<grenze calc_value="(ceil($CVstapelhoehe_auflage$CV/$Phubhoehe$P))">1-</grenze>
</auflage>
</option>
<!-- Anzahl Schnitte berechnen Grenze greift nicht!!!!) -->
<!-- Anzahl Schnitte berechnen Grenze greift nicht!!!!) NUR ZUR ANZEIGE; KANN SPÄTER RAUS-->
<!-- Briefbogen A4: Egal ob 1 oder 2 Nutzen, Anzahl Schnitte gleich -->
<option id="schndeiden_fortlauf_a3" name="Anzahl Schnitte" type="Hidden" default="1">
<nutzen_final formel="$CVnutzen_sm52_auflage$CV">
<grenze calc_value="round(($Pschneidemaschine$P/$Pschnitte_pro_stunde$P)*($CVnutzen_final_auflage$CV+4),2)">0</grenze>
<grenze calc_value="round(($Pschneidemaschine$P/$Pschnitte_pro_stunde$P)*($CVnutzen_final_auflage$CV+5),2)">1</grenze>
<grenze calc_value="round(($Pschneidemaschine$P/$Pschnitte_pro_stunde$P)*($CVnutzen_final_auflage$CV+4),2)">2-</grenze>
</nutzen_final>
</option>
<!-- Papierberechnung hier fortsetzen!! -->
<!-- Anzahl Druckbogen netto (geprüft, funktioniert) -->
<option id="anzahl_druckbogen" name="anzahl_druckbogen" type="Hidden" default="1">
<auflage>
<grenze calc_value="($Vauflage$V/$CVnutzen_final_auflage$CV)">1-</grenze>
</auflage>
</option>
<!-- Formel geprüft, passt
<option id="anzahl_druckbogen_check" name="anzahl_druckbogen" type="Hidden" default="1">
<auflage>
<grenze formel="($Vauflage$V/$CVnutzen_final_auflage$CV)">1-</grenze>
</auflage>
</option>
-->
<!-- Papiergewicht und Papierpreis -->
<option id="kosten_papier" name="kosten_papier" type="Hidden" default="1">
<breite_offen formel="($CVbreite_offen_format1$CV &gt; 465)">
<grenze calc_value="round((($Ppapierbreite_a3$P*$Ppapierhoehe_a3$P*($CVanzahl_druckbogen_auflage$CV+$Pzuschuss_a3$P)*$Vpapier_grammatur$V)/1000000000)*($Vpapier_value$V+$Pzuschlag_vorschneiden$P)/100,2)">0</grenze>
<grenze calc_value="round((($Ppapierbreite_a2$P*$Ppapierhoehe_a2$P*($CVanzahl_druckbogen_auflage$CV+$Pzuschuss_a2$P)*$Vpapier_grammatur$V)/1000000000)*($Vpapier_value$V)/100,2)">1</grenze>
</breite_offen>
</option>
<!-- ###################### Berechnung Platten, Trockenzeit, Druck, Papier auf Basis des Druckverfahrens ############## -->
<!-- Anzahl Platten anhand Nutzen final: Wenn nur ein Nutzen auf Platten, dann SW (8 Pl), ansonten Umschlagen/Umstülpen (4 Pl)
<option id="anzahl_platten" name="Anzahl Platten" type="Hidden" default="1">
<druckfarben_inhalt>
<grenze calc_value="4">1</grenze>
<grenze calc_value="8">2</grenze>
</druckfarben_inhalt>
</option>
-->
<!-- Anzahl Platten für Plakate manuell ermittelt in Abhängigkeit von Farbigkeit und Format-->
<option id="anzahl_platten" name="Anzahl Platten" type="Hidden" default="1">
<druckfarben_inhalt>
<!-- 4/0 Euroskala (einseitig) -->
<grenze value="1">
<format1>
<grenze calc_value="4">9-16</grenze> //einseitig bedruckt, mindestanzahl 4 Platten, egal welches Format
</format1>
</grenze>
<!-- 4/4 Euroskala (beidseitig) -->
<grenze value="2">
<format1>
<grenze calc_value="8">9,10</grenze> //8 Platten, kleine Maschine, S+W
<grenze calc_value="4">11,12</grenze> //4 Platten, große Maschine, zum Umschlagen
<grenze calc_value="8">13,14</grenze> //8 Platten, große Maschine, S+W
<grenze calc_value="8">15,16</grenze> //8 Platten, große Maschine, S+W
</format1>
</grenze>
</druckfarben_inhalt>
</option>
<!-- Anzahl Platten für Plakate, geprüft und passt
<option id="anzahl_platten_check" name="Anzahl Platten" type="Hidden" default="1">
<druckfarben_inhalt>
// 4/0 Euroskala (einseitig)
<grenze value="1">
<format1>
<grenze formel="4">9-16</grenze> //einseitig bedruckt, mindestanzahl 4 Platten, egal welches Format
</format1>
</grenze>
// 4/4 Euroskala (beidseitig)
<grenze value="2">
<format1>
<grenze formel="8">9,10</grenze> //8 Platten, kleine Maschine, S+W
<grenze formel="4">11,12</grenze> //4 Platten, große Maschine, zum Umschlagen
<grenze formel="8">13,14</grenze> //8 Platten, große Maschine, S+W
<grenze formel="8">15,16</grenze> //8 Platten, große Maschine, S+W
</format1>
</grenze>
</druckfarben_inhalt>
</option>
-->
<!-- Kosten Druckplatten + Rüsten (nicht bei Digitaldruck) -->
<!-- SM52 Platten Wenn anzahl Druckbogen >500 und offenes Format < 465 -->
<option id="kosten_platten_sm52" name="Kosten Druckplatten 52" type="Hidden" default="1">
<auflage formel="$CVanzahl_druckbogen_auflage$CV &gt; 500 &amp;&amp; $CVbreite_offen_format1$CV &lt; 465">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$CVanzahl_platten_druckfarben_inhalt$CV*($Pplatten_sm52$P+$Pruesten_sm52$P)">1-</grenze>
</auflage>
</option>
<!-- SM52 Platten , geprüft, passt
<option id="kosten_platten_sm52_check" name="Kosten Druckplatten 52" type="Hidden" default="1">
<auflage formel="$CVanzahl_druckbogen_auflage$CV &gt; 500 &amp;&amp; $CVbreite_offen_format1$CV &lt; 465">
<grenze formel="0">0</grenze>
<grenze formel="$CVanzahl_platten_druckfarben_inhalt$CV*($Pplatten_sm52$P+$Pruesten_sm52$P)">1-</grenze>
</auflage>
</option>
-->
<!-- SM102 Platten Wenn offenes Format > 465 -->
<option id="kosten_platten_sm102" name="Kosten Druckplatten 102" type="Hidden" default="1">
<auflage formel="$CVbreite_offen_format1$CV &gt; 465">
<grenze calc_value="0">0</grenze>
<grenze calc_value="($CVanzahl_platten_druckfarben_inhalt$CV*($Pplatten_sm102$P+$Pruesten_sm102$P))">1-</grenze>
</auflage>
</option>
<!-- SM102 Platten geprüft, passt
<option id="kosten_platten_sm102_check" name="Kosten Druckplatten 102" type="Hidden" default="1">
<auflage formel="$CVbreite_offen_format1$CV &gt; 465">
<grenze formel="0">0</grenze>
<grenze formel="($CVanzahl_platten_druckfarben_inhalt$CV*($Pplatten_sm102$P+$Pruesten_sm102$P))">1-</grenze>
</auflage>
</option>
-->
<!-- Fortdruckzeit (nicht bei Digitaldruck) -->
<!-- SM52 Fortdruck: Wenn anzahl Druckbogen >500 und offenes Format < 465 -->
<option id="kosten_fortdruck_sm52" name="kosten_fortdruck_sm52" type="Hidden" default="1">
<auflage formel="$CVanzahl_druckbogen_auflage$CV &gt; 500 &amp;&amp; $CVbreite_offen_format1$CV &lt; 465">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$Pstundensatz_sm52$P/60*(60/$Psm52_speed$P*(($CVanzahl_druckbogen_auflage$CV+$Pzuschuss_a3$P)*$Vdruckfarben_inhalt$V))">1-</grenze>
</auflage>
</option>
<!-- SM102 Fortdruck: Wenn offenes Format > 465 -->
<option id="kosten_fortdruck_sm102" name="kosten_fortdruck_sm102" type="Hidden" default="1">
<auflage formel="$CVbreite_offen_format1$CV &gt; 465">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$Pstundensatz_sm102_extern$P/60*(60/$Psm102_fremd_speed$P*(($CVanzahl_druckbogen_auflage$CV+$Pzuschuss_a2$P)*$Vdruckfarben_inhalt$V))">1-</grenze>
</auflage>
</option>
<!-- Digitaldruck Klickkosten: Wenn anzahl Druckbogen <501 und offenes Format < 465 -->
<!-- Anstatt Fortdruck im Offset kommen hier Klickkosten für den Digitaldruck-->
<option id="klickkosten_digitaldruck" name="Kosten Druckplatten" type="Hidden" default="1">
<auflage formel="$CVanzahl_druckbogen_auflage$CV &lt; 501 &amp;&amp; $CVbreite_offen_format1$CV &lt; 465">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$Pklickkosten_4c$P*($CVanzahl_druckbogen_auflage$CV+$Pzuschuss_digital$P)*$Vdruckfarben_inhalt$V">1-</grenze>
</auflage>
</option>
<!-- Trockenzeit (nicht bei Digitaldruck) Wenn Anzahl Druckbogen > 500 und < 1001, unter 500 Digitaldruck. -->
<option id="kosten_trockenzeit_auflage" name="kosten_trockenzeit_auflage" type="Hidden" default="1">
<druckverfahren formel="$CVanzahl_druckbogen_auflage$CV &gt; 500 &amp;&amp; $CVanzahl_druckbogen_auflage$CV &lt; 1001">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$Pstundensatz_sm52$P*$Ptrockenzeit_flyer$P/60">1</grenze>
</druckverfahren>
</option>
<!-- Trockenzeit (nicht bei Digitaldruck) Wenn offenes Format > 465 und Anzahl Druckbogen < 1001. -->
<option id="kosten_trockenzeit_format" name="kosten_trockenzeit_format" type="Hidden" default="1">
<druckverfahren formel="$CVbreite_offen_format1$CV &gt; 465 &amp;&amp; $CVanzahl_druckbogen_auflage$CV &lt; 1001">
<grenze calc_value="0">0</grenze>
<grenze calc_value="$Pstundensatz_sm102_extern$P*$Ptrockenzeit_flyer$P/60">1</grenze>
</druckverfahren>
</option>
<!-- Korrekturabzug -->
<option id="kosten_korrekturabzug" name="kosten_korrekturabzug" type="Hidden" default="1">
<korrekturabzug>
<grenze formel="0">1,3</grenze>
<grenze formel="$Plaserproof$P">2</grenze>
</korrekturabzug>
</option>
<!-- Belegexemplar -->
<option id="kosten_belegexemplar" name="kosten_belegexemplar" type="Hidden" default="1">
<belegexemplar>
<grenze formel="0">1</grenze>
<grenze formel="$Pbelegexemplar$P">2</grenze>
</belegexemplar>
</option>
<!-- ################# Summenbildung ################################################## -->
<!-- Produktionszeit Faktor -->
<option id="produktionszeit_faktor" name="produktionszeit_faktor" type="Hidden" default="1">
<produktionszeit>
<grenze calc_value="$Poeko_faktor$P">1</grenze>
<grenze calc_value="1">2</grenze>
<grenze calc_value="$Pexpress_faktor$P">3</grenze>
</produktionszeit>
</option>
<!-- Summe Material -->
<option id="kosten_produktion_material" name="kosten_produktion_material" type="Hidden" default="1">
<auflage>
<grenze formel="($CVkosten_farbe_format1$CV)+($CVkosten_papier_breite_offen$CV)+($CVkosten_platten_sm52_auflage$CV)+($CVkosten_platten_sm102_auflage$CV)+($CVklickkosten_digitaldruck_auflage$CV)">1-</grenze>
</auflage>
</option>
<!-- Summe Wertschöpfung -->
<option id="kosten_produktion_wertschoepfung" name="kosten_produktion_wertschoepfung" type="Hidden" default="1">
<auflage>
<grenze formel="(($CVfixkosten_falzen_seitenzahl$CV)+($CVkosten_fortlauf_falzen_auflage$CV)+($CVfixkosten_nuten_papier_grammatur$CV)+($CVkosten_ruesten_schneiden_auflage$CV)+($CVschndeiden_fortlauf_a3_nutzen_final$CV)+($CVkosten_fortdruck_sm52_auflage$CV)+($CVkosten_fortdruck_sm102_auflage$CV)+($CVkosten_trockenzeit_auflage_druckverfahren$CV)+($CVkosten_trockenzeit_format_druckverfahren$CV))*($CVproduktionszeit_faktor_produktionszeit$CV)">1-</grenze>
</auflage>
</option>
<!-- Ende Kalkulation -->
<!-- Gewicht Produkt -->
<option id="weight_produkte" name="weight" type="Hidden" default="1">
<auflage>
<grenze calc_value="$CVbreite_format1$CV*$CVhoehe_offen_format1$CV/1000000*$Vauflage$V*$Vpapier_grammatur$V">1-</grenze>
</auflage>
</option>
<option id="kosten_und_anzahl_verpackungen" name="kosten_und_anzahl_verpackungen" type="Hidden" default="1">
<auflage>
<grenze formel="(ceil($CVweight_produkte_auflage$CV/$Pverpackungsgewichtsbasis$P/1000))*$Pverpackungsmaterial$P">1-</grenze>
</auflage>
</option>
<option id="weight" name="weight" type="Hidden" default="1">
<auflage>
<grenze formel="$CVbreite_offen_format1$CV*$CVhoehe_offen_format1$CV/$Vdruckfarben_inhalt$V/1000000*$Vauflage$V*$Vpapier_grammatur$V">1-</grenze>
</auflage>
</option>
<!--
=AUFRUNDEN(B18/Fixkosten!D26;0)
//Verpacken
$verpacken_pro_kg=0.12;
//Verpackungsmaterial pro 6 kg
$verpackungsmaterial=0.30;
//Verpackungsgewichtsbasis in kg
$verpackungsgewichtsbasis=6;
-->
</artikel>
</kalkulation>

View File

@ -0,0 +1,145 @@
// Grasdruckerei
//Farbkostenberechnung pro Seite auf Basis A4=100%
$farbe_a4='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P)';
$farbe_a5='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a5$P)';
$farbe_a6='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a6$P)';
$farbe_a7='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a7$P)';
$farbe_dl='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_dl$P)';
$farbe_210='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_210$P)';
$farbe_148='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_148$P)';
$farbe_a3='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a3$P)';
$farbe_a2='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a2$P)';
$farbe_a1='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_a1$P)';
$farbe_3b='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_3b$P)';
$farbe_vk2='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_vk2$P)';
$farbe_vk4='($Vauflage$V*$Vseitenzahl$V*$Pfarbkst$P*$Pfarbe_faktor_vk4$P)';
//#########################
//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,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<container>
<papiercontainer id="grasbriefbogen">
<papier id="grasnatur85">
</papier>
</papiercontainer>
</container>

View File

@ -0,0 +1,140 @@
//Grasdruckerei
//Stundensätze Druckmaschinen
$stundensatz_sm52=85;
$stundensatz_sm102_extern=160;
//Leistungswerte Maschinen (Stück/h)
$sm52_speed=5000;
$sm102_fremd_speed=8000;
$falzen_speed=5000;
$falzen_speed_mit_nuten=3000;
//Sammelhefter intern
$heften_intern_fix=25;
$heften_intern_var=0.30;
//Sammelhefter extern
$stundensatz_sammelhefter=120;
$sammelhefter_speed=4500;
//Sammelhefter Rüsten in Minuten
$sammelhefter_ruesten=0.25;
//Klebebindung
$kb_intern_fix=30;
$kb_intern_var=0.55;
//Klebebinder extern
$stundensatz_kb=180;
$kb_speed=2300;
//Klebebinder Rüsten in Minuten
$kb_ruesten=0.5;
//Wire-O
$wireo_fix=7;
$wireo_var=1.5;
//Plattenkosten
$platten_sm52=8;
$platten_sm102=35;
//Rüsten pro Platte (in Euro)
$ruesten_sm52=8;
$ruesten_sm102=30;
$av_stundensatz=58;
$dtp_stundensatz=75;
//Farbkosten pro Seite A4
$farbkst=0.000800;
//Formatfaktor auf Basis A4 = 100% für Farbkostenberechnung
$farbe_faktor_a5=0.5;
$farbe_faktor_a6=0.25;
$farbe_faktor_a7=0.125;
$farbe_faktor_dl=0.3;
$farbe_faktor_210=0.67;
$farbe_faktor_148=0.4;
$farbe_faktor_a3=2;
$farbe_faktor_a2=4;
$farbe_faktor_a1=8;
$farbe_faktor_3b=10;
$farbe_faktor_vk2=0.1;
$farbe_faktor_vk4=0.2;
//Stundensätze Maschinen WV
$falzen_horizon=65;
$schneidemaschine=40;
//Stundensätze Falzen extern
$stundensatz_falzen_extern=90;
$falzen_fremd_speed=5000;
//Falzen extern Rüsten in Minuten
$falzen_extern_ruesten=0.25;
//Schneidemaschine Hubhöhe in mm
$hubhoehe=150;
//Anzahl Schnitte/h
$schnitte_pro_stunde=120;
//Zeiten WV (in Minuten)
$falzen_ruesten=17;
$nuten_ruesten=8;
$schneiden_ruesten=2.5;
//Zusätzliche Fixkosten WV
$zus_falzbrueche=8;
$zus_nutlinien=7;
//Flyer
$av_flyer_zeit=0.32;
$dtp_flyer_zeit=0.17;
$trockenzeit_flyer=5;
//Broschüre
$av_broschuere_zeit=0.40;
$dtp_broschuere_zeit=0.30;
$trockenzeit_broschuere=5; //prüfen, ob benötigt wird
//Papierformate für Papierpreisberechnung
$papierbreite_a3=470;
$papierhoehe_a3=320;
$papierbreite_a2=1020;
$papierhoehe_a2=720;
//Papierzuschlag für Vorschneiden bei Druck im A3 pro 100 kg
$zuschlag_vorschneiden=16;
$zuschuss_a3=10;
$zuschuss_a2=100;
//Klickkosten Digitaldruck
$klickkosten_4c=0.088;
$klickkosten_1c=0.037;
$zuschuss_digital=10;
//Blockleimung
$blockleimung_fix=15;
$blockleimung_var=0.30;
//Verpacken
$verpacken_pro_kg=0.12;
//Verpackungsmaterial pro 6 kg
$verpackungsmaterial=0.30;
//Verpackungsgewichtsbasis in kg
$verpackungsgewichtsbasis=6;
//Korrekturabzug
$laserproof=25;
//Belegexemplar
$belegexemplar=12;
//Produktionszeit Faktor auf Wertschöpfung
$oeko_faktor=0.95;
$express_faktor=1.3;

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<kalkulation>
<artikel>
<name>Plakate</name>
<kommentar/>
<option id="auflage" name="Auflage" type="Select" default="100">
<opt id="5" name="5 Exemplare"></opt>
<opt id="10" name="10 Exemplare"></opt>
<opt id="25" name="25 Exemplare"></opt>
<opt id="50" name="50 Exemplare"></opt>
<opt id="100" name="100 Exemplare"></opt>
<opt id="200" name="200 Exemplare"></opt>
<opt id="300" name="300 Exemplare"></opt>
<opt id="400" name="400 Exemplare"></opt>
<opt id="500" name="500 Exemplare"></opt>
<opt id="750" 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="3000" name="3.000 Exemplare"></opt>
<opt id="5000" name="5.000 Exemplare"></opt>
<opt id="7500" name="7.500 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="30000" name="30.000 Exemplare"></opt>
<opt id="40000" name="40.000 Exemplare"></opt>
<opt id="50000" name="50.000 Exemplare"></opt>
<opt id="100000" name="100.000 Exemplare"></opt>
</option>
<option id="format1" name="Format" type="Select" default="11">
<opt id="9" name="DIN A3 Hochformat (297 x 420 mm)"></opt>
<opt id="10" name="DIN A3 Querformat (420 x 297 mm)"></opt>
<opt id="11" name="DIN A2 Hochformat (420 x 594 mm)"></opt>
<opt id="12" name="DIN A2 Querformat (594 x 420 mm)"></opt>
<opt id="13" name="DIN A1 Hochformat (594 x 840 mm)"></opt>
<opt id="14" name="DIN A1 Querformat (840 x 594 mm)"></opt>
<opt id="15" name="Hochformat 700 x 1000 mm"></opt>
<opt id="16" name="Querformat 1000 x 700 mm)"></opt>
</option>
<option id="druckfarben_inhalt" name="Farbigkeit" type="Select" default="1">
<opt id="1" name="4/0 Euroskala (einseitig)"/>
<opt id="2" name="4/4 Euroskala (beidseitig)"/>
</option>
<option id="anzahl_platten" name="Anzahl Platten" type="Hidden" default="1">
<druckfarben_inhalt>
<grenze value="1">
<format1>
<grenze calc_value="4">9-16</grenze> //einseitig bedruckt, mindestanzahl 4 Platten, egal welches Format
</format1>
</grenze>
<grenze value="2">
<format1>
<grenze calc_value="8">9,10</grenze> //8 Platten, kleine Maschine, S+W
<grenze calc_value="4">11,12</grenze> //4 Platten, große Maschine, zum Umschlagen
<grenze calc_value="8">13,14</grenze> //8 Platten, große Maschine, S+W
<grenze calc_value="8">15,16</grenze> //8 Platten, große Maschine, S+W
</format1>
</grenze>
</druckfarben_inhalt>
</option>
</artikel>
</kalkulation>

View File

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<container>
<papiercontainer id="grasbriefbogen">
<papier id="grasnatur85">
</papier>
</papiercontainer>
</container>

View File