Fix Calc php 8
This commit is contained in:
parent
71011d6ba3
commit
7486301b88
File diff suppressed because one or more lines are too long
@ -83,6 +83,7 @@ class Calc
|
||||
|
||||
/** @var EdgeCollection $collection */
|
||||
foreach($container as $collection) {
|
||||
$var = 'XXXXXXXXXXXX';
|
||||
if($collection->getName() == "opt") continue;
|
||||
if($collection->getFormel() != "") {
|
||||
$formel = $this->formelCalc->parse($collection->getFormel());
|
||||
@ -92,9 +93,7 @@ class Calc
|
||||
eval('$var = ' . $formel . ';');
|
||||
}
|
||||
}else{
|
||||
if(!isset($this->engine->getVariables()[$collection->getName()])) {
|
||||
$var = 'XXXXXXXXXXXX';
|
||||
}else{
|
||||
if(isset($this->engine->getVariables()[$collection->getName()])) {
|
||||
$var = $this->engine->getVariables()[$collection->getName()];
|
||||
}
|
||||
}
|
||||
@ -102,7 +101,7 @@ class Calc
|
||||
/** @var Edge $edge */
|
||||
foreach($collection as $edge) {
|
||||
|
||||
if($edge->isValid($var)) {
|
||||
if($var !== "XXXXXXXXXXXX" && $edge->isValid($var)) {
|
||||
|
||||
if($edge->getPauschale() != 0) {
|
||||
eval('$gesamt += ' . $edge->getPauschale() . ';');
|
||||
@ -150,9 +149,14 @@ class Calc
|
||||
if ($formel != "" && !in_array($option->getId(), ['weight', 'weight_single']) && $option->isAjaxExport() && !$option->isDisplayOnly() && $option->isAmount()) {
|
||||
$p = 0;
|
||||
$formel = str_replace("tonumber", '$this->toNumber', $formel);
|
||||
try {
|
||||
eval('@$p = ' . $formel . ';');
|
||||
|
||||
$this->engine->addAjaxVariable($option->getId(), $p);
|
||||
}catch (\Throwable $e) {
|
||||
$this->engine->addDebugCalcFormel($edge->getFormel(), $formel . ' = error');
|
||||
$p = 0;
|
||||
}
|
||||
}
|
||||
if ($formel != "" && !in_array($option->getId(), ['weight', 'weight_single']) && !$option->isAjaxExport() && $option->isDisplayOnly() && $option->isAmount()) {
|
||||
$p = 0;
|
||||
|
||||
@ -92,6 +92,7 @@ class CalcValues
|
||||
|
||||
/** @var EdgeCollection $collection */
|
||||
foreach ($container as $collection) {
|
||||
$var = 'XXXXXXXX';
|
||||
if ($collection->getName() == "opt") continue;
|
||||
if ($collection->getFormel() != "") {
|
||||
$formel = $this->formelCalc->parse($collection->getFormel());
|
||||
@ -101,9 +102,7 @@ class CalcValues
|
||||
eval('$var = ' . $formel . ';');
|
||||
}
|
||||
} else {
|
||||
if (!isset($this->engine->getVariables()[$collection->getName()])) {
|
||||
$var = 'XXXXXXXX';
|
||||
} else {
|
||||
if (isset($this->engine->getVariables()[$collection->getName()])) {
|
||||
$var = $this->engine->getVariables()[$collection->getName()];
|
||||
}
|
||||
}
|
||||
@ -111,7 +110,7 @@ class CalcValues
|
||||
/** @var Edge $edge */
|
||||
foreach ($collection as $edge) {
|
||||
|
||||
if ($edge->isValid($var)) {
|
||||
if ($var !== 'XXXXXXXX' && $edge->isValid($var)) {
|
||||
|
||||
if ($edge->getCalcValue() != "") {
|
||||
$cv = $this->formelCalc->parse($edge->getCalcValue());
|
||||
|
||||
@ -247,7 +247,9 @@ class Engine
|
||||
$tmp = [];
|
||||
foreach ($this->variables as $key => $variable) {
|
||||
if(!is_array($variable)) {
|
||||
if($variable !== null) {
|
||||
$tmp[$key] = str_replace(",", ".", $variable);
|
||||
}
|
||||
}else{
|
||||
$tmp[$key] = $variable;
|
||||
}
|
||||
|
||||
@ -45,5 +45,6 @@ class ThirdTest extends TestCase
|
||||
$this->engine->setVariable('auflage', 1500);
|
||||
$this->engine->setVariable('druckfarben_inhalt', 2);
|
||||
$this->assertEquals(152.00 , $this->engine->getPrice());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ class CalcComplexTest extends TestCase
|
||||
public function testAuflage500(): void
|
||||
{
|
||||
$this->engine->setVariable('auflage', 500);
|
||||
$this->engine->calc();
|
||||
$this->assertSame(94.68, $this->engine->getPrice());
|
||||
}
|
||||
|
||||
|
||||
@ -321,8 +321,8 @@
|
||||
<opt id="3" name="BB" />
|
||||
</option>
|
||||
<!-- ### Farbigkeit Umschlag ### -->
|
||||
<option id="duplexU" name="einseitiger oder zweiseitiger Druck" type="Select" default="X">
|
||||
<opt id="X" name="kein Umschlag"><produktart_nopresentationpdf><grenze>1,2,3,5</grenze></produktart_nopresentationpdf></opt>
|
||||
<option id="duplexU" name="einseitiger oder zweiseitiger Druck" type="Select" default="0">
|
||||
<opt id="0" name="kein Umschlag"><produktart_nopresentationpdf><grenze>1,2,3,5</grenze></produktart_nopresentationpdf></opt>
|
||||
<opt id="1" name="einseitiger Druck"><produktart_nopresentationpdf><grenze>4</grenze></produktart_nopresentationpdf></opt>
|
||||
<opt id="2" name="zweiseitiger Druck"><produktart_nopresentationpdf><grenze>4</grenze></produktart_nopresentationpdf></opt>
|
||||
</option>
|
||||
|
||||
45
tests/Customer/T/CalcTest.php
Normal file
45
tests/Customer/T/CalcTest.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace PSC\Library\Calc\Tests\Customer\T;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PSC\Library\Calc\Article;
|
||||
use PSC\Library\Calc\Engine;
|
||||
use PSC\Library\Calc\PaperContainer;
|
||||
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
|
||||
|
||||
class CalcTest extends TestCase
|
||||
{
|
||||
|
||||
/** @var Engine */
|
||||
protected $engine = null;
|
||||
|
||||
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 testIfDefaultPriceIsOk(): void
|
||||
{
|
||||
$this->engine->calc();
|
||||
$this->assertEquals(0 , $this->engine->getPrice());
|
||||
|
||||
}
|
||||
}
|
||||
25
tests/Customer/T/calc.xml
Normal file
25
tests/Customer/T/calc.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- ACHTUNG STA+ PRÄ verwendet wegen "A < 682 cm2 Problem" hier IMMER den Fixwert von Fischer statt Tiegel -->
|
||||
<kalkulation>
|
||||
<artikel>
|
||||
<name>Banderolen</name>
|
||||
<kommentar/>
|
||||
|
||||
<option id="ecoprint" name="eco-print" type="Text" default="Umweltfreundlicher Offsetdruck (klimaneutrale und emissionsarme Produktion, mineralölfreie Ökodruckfarben, Papier aus nachhaltiger Forstwirtschaft oder Recycling, VOC-/alkoholfreier Druck mit Ökostrom)">
|
||||
</option>
|
||||
|
||||
<option id="auflage" name="Auflage" type="Input" default="3000" min="100" max="50000"/>
|
||||
|
||||
<option id="calc_leimung" name="calc_leimung" type="Hidden" default="1">
|
||||
<leimung>
|
||||
<grenze calc_value="200">1-</grenze>
|
||||
</leimung>
|
||||
</option>
|
||||
|
||||
<option id="calc_formel" name="calc_formel" type="Hidden" default="1">
|
||||
<auflage>
|
||||
<grenze formel="$CVcalc_leimung_leimung$CV">1-</grenze>
|
||||
</auflage>
|
||||
</option>
|
||||
</artikel>
|
||||
</kalkulation>
|
||||
163
tests/Customer/T/calcTemplates.xml
Normal file
163
tests/Customer/T/calcTemplates.xml
Normal file
@ -0,0 +1,163 @@
|
||||
<root>
|
||||
<option id="calc_farbigkeit_farbwechsel_inhalt_brosch_kba" name="calc_farbigkeit_farbwechsel_inhalt_brosch_kba" type="Hidden" default="1">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="0">1,5</grenze>
|
||||
<grenze calc_value="1">2,6</grenze>
|
||||
<grenze calc_value="2">3,7</grenze>
|
||||
<grenze calc_value="3">4,8</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</option>
|
||||
|
||||
<option id="calc_anzahl_druckplatten_inhalt_brosch_kba" name="calc_anzahl_druckplatten_inhalt_brosch_kba" type="Hidden" default="1">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="1">1,2</grenze>
|
||||
<grenze calc_value="2">3</grenze>
|
||||
<grenze calc_value="3">4</grenze>
|
||||
<grenze calc_value="4">5</grenze>
|
||||
<grenze calc_value="5">6</grenze>
|
||||
<grenze calc_value="6">7</grenze>
|
||||
<grenze calc_value="7">8</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</option>
|
||||
|
||||
|
||||
<option id="calc_farbigkeit_farbwechsel_umschlag_brosch_kba" name="calc_farbigkeit_farbwechsel_umschlag_brosch_kba" type="Hidden" default="1">
|
||||
<druckfarben_umschlag>
|
||||
<grenze calc_value="(0+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">1,5,6</grenze>
|
||||
<grenze calc_value="(1+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">2,7</grenze>
|
||||
<grenze calc_value="(2+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">3,8</grenze>
|
||||
<grenze calc_value="(3+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">4,9</grenze>
|
||||
</druckfarben_umschlag>
|
||||
</option>
|
||||
|
||||
<option id="calc_anzahl_druckplatten_umschlag_brosch_kba" name="calc_anzahl_druckplatten_umschlag_brosch_kba" type="Hidden" default="1">
|
||||
<druckfarben_umschlag>
|
||||
<grenze calc_value="(1+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">1,2</grenze>
|
||||
<grenze calc_value="(2+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">3</grenze>
|
||||
<grenze calc_value="(3+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">4</grenze>
|
||||
<grenze calc_value="(4+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">5,6</grenze>
|
||||
<grenze calc_value="(5+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">7</grenze>
|
||||
<grenze calc_value="(6+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">8</grenze>
|
||||
<grenze calc_value="(7+(($Vdruckplatte_option_umschlag$V == 3 || $Vdruckplatte_option_umschlag$V == 2 || $Vdruckplatte_option_umschlag$V == 5 || $Vdruckplatte_option_umschlag$V == 4)? 1:0))">9</grenze>
|
||||
</druckfarben_umschlag>
|
||||
</option>
|
||||
|
||||
<option id="calc_anzahl_farben_plano_fa" name="calc_anzahl_farben_plano_fa" type="Hidden" default="1">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="4">1</grenze>
|
||||
<grenze calc_value="4">2</grenze>
|
||||
<grenze calc_value="4">3</grenze>
|
||||
<grenze calc_value="5">4</grenze>
|
||||
<grenze calc_value="5">5</grenze>
|
||||
<grenze calc_value="6">6</grenze>
|
||||
<grenze calc_value="1">7</grenze>
|
||||
<grenze calc_value="1">8</grenze>
|
||||
<grenze calc_value="2">9</grenze>
|
||||
<grenze calc_value="2">10</grenze>
|
||||
<grenze calc_value="2">11</grenze>
|
||||
<grenze calc_value="2">12</grenze>
|
||||
<grenze calc_value="3">13</grenze>
|
||||
<grenze calc_value="3">14</grenze>
|
||||
<grenze calc_value="3">15</grenze>
|
||||
<grenze calc_value="1">16</grenze>
|
||||
<grenze calc_value="1">17</grenze>
|
||||
<grenze calc_value="4">18</grenze>
|
||||
<grenze calc_value="4">19</grenze>
|
||||
<grenze calc_value="6">20</grenze>
|
||||
<grenze calc_value="7">21</grenze>
|
||||
<grenze calc_value="8">22</grenze>
|
||||
<grenze calc_value="4">23</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</option>
|
||||
|
||||
<option id="calc_bedruckte_seiten_plano_fa" name="calc_bedruckte_seiten_plano_fa" type="Hidden" default="1">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="1">1</grenze>
|
||||
<grenze calc_value="2">2</grenze>
|
||||
<grenze calc_value="2">3</grenze>
|
||||
<grenze calc_value="1">4</grenze>
|
||||
<grenze calc_value="2">5</grenze>
|
||||
<grenze calc_value="2">6</grenze>
|
||||
<grenze calc_value="1">7</grenze>
|
||||
<grenze calc_value="2">8</grenze>
|
||||
<grenze calc_value="1">9</grenze>
|
||||
<grenze calc_value="1">10</grenze>
|
||||
<grenze calc_value="2">11</grenze>
|
||||
<grenze calc_value="2">12</grenze>
|
||||
<grenze calc_value="1">13</grenze>
|
||||
<grenze calc_value="2">14</grenze>
|
||||
<grenze calc_value="2">15</grenze>
|
||||
<grenze calc_value="1">16</grenze>
|
||||
<grenze calc_value="2">17</grenze>
|
||||
<grenze calc_value="1">18</grenze>
|
||||
<grenze calc_value="2">19</grenze>
|
||||
<grenze calc_value="1">20</grenze>
|
||||
<grenze calc_value="1">21</grenze>
|
||||
<grenze calc_value="1">22</grenze>
|
||||
<grenze calc_value="1">23</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</option>
|
||||
|
||||
<option id="calc_anzahl_farbwechsel_plano_fa" name="calc_anzahl_farbwechsel_plano_fa" type="Hidden" default="1">
|
||||
<auflage formel="$CVhilfsvalue_maschine_auflage$CV">
|
||||
<grenze value="kba">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="0">1</grenze>
|
||||
<grenze calc_value="0">2</grenze>
|
||||
<grenze calc_value="0">3</grenze>
|
||||
<grenze calc_value="1">4</grenze>
|
||||
<grenze calc_value="1">5</grenze>
|
||||
<grenze calc_value="2">6</grenze>
|
||||
<grenze calc_value="0">7</grenze>
|
||||
<grenze calc_value="0">8</grenze>
|
||||
<grenze calc_value="1">9</grenze>
|
||||
<grenze calc_value="2">10</grenze>
|
||||
<grenze calc_value="1">11</grenze>
|
||||
<grenze calc_value="2">12</grenze>
|
||||
<grenze calc_value="3">13</grenze>
|
||||
<grenze calc_value="2">14</grenze>
|
||||
<grenze calc_value="3">15</grenze>
|
||||
<grenze calc_value="1">16</grenze>
|
||||
<grenze calc_value="1">17</grenze>
|
||||
<grenze calc_value="1">18</grenze>
|
||||
<grenze calc_value="4">19</grenze>
|
||||
<grenze calc_value="2">20</grenze>
|
||||
<grenze calc_value="3">21</grenze>
|
||||
<grenze calc_value="4">22</grenze>
|
||||
<grenze calc_value="4">23</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</grenze>
|
||||
<grenze value="gto">
|
||||
<druckfarben_inhalt>
|
||||
<grenze calc_value="3">1</grenze>
|
||||
<grenze calc_value="3">2</grenze>
|
||||
<grenze calc_value="3">3</grenze>
|
||||
<grenze calc_value="4">4</grenze>
|
||||
<grenze calc_value="4">5</grenze>
|
||||
<grenze calc_value="5">6</grenze>
|
||||
<grenze calc_value="0">7</grenze>
|
||||
<grenze calc_value="0">8</grenze>
|
||||
<grenze calc_value="1">9</grenze>
|
||||
<grenze calc_value="2">10</grenze>
|
||||
<grenze calc_value="1">11</grenze>
|
||||
<grenze calc_value="2">12</grenze>
|
||||
<grenze calc_value="3">13</grenze>
|
||||
<grenze calc_value="2">14</grenze>
|
||||
<grenze calc_value="3">15</grenze>
|
||||
<grenze calc_value="1">16</grenze>
|
||||
<grenze calc_value="1">17</grenze>
|
||||
<grenze calc_value="4">18</grenze>
|
||||
<grenze calc_value="6">19</grenze>
|
||||
<grenze calc_value="6">20</grenze>
|
||||
<grenze calc_value="7">21</grenze>
|
||||
<grenze calc_value="8">22</grenze>
|
||||
<grenze calc_value="4">23</grenze>
|
||||
</druckfarben_inhalt>
|
||||
</grenze>
|
||||
</auflage>
|
||||
</option>
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
733
tests/Customer/T/formels.txt
Normal file
733
tests/Customer/T/formels.txt
Normal file
@ -0,0 +1,733 @@
|
||||
$hilfsvalue_abschlag_sammelform_plano = '((($CVhilfsvalue_sammelform_format_auflage$CV/100*75)+($CVhilfsvalue_sammelform_menge_auflage$CV/100*25))/(75+25)*100)';
|
||||
|
||||
$hilfsvalue_sammelform_format_plano = '(max(0,getSammelformFormatPlano($Vsortenzahl$V*$CVformat_offen_breite_auflage$CV*$CVformat_offen_hoehe_auflage$CV)-(5*abs(1.408-max($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)/min($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)))))';
|
||||
|
||||
if(!function_exists('getSammelformMengenAbschlagPlano')) {
|
||||
|
||||
function getSammelformMengenAbschlagPlano($menge) {
|
||||
|
||||
if($menge < 2500) return 100;
|
||||
if($menge < 7500) return 90;
|
||||
if($menge < 10000) return 80;
|
||||
if($menge < 15000) return 70;
|
||||
if($menge < 20000) return 60;
|
||||
if($menge < 35000) return 50;
|
||||
if($menge < 50000) return 25;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function getSammelformFormatPlano($value) {
|
||||
if($value < 56) return 150;
|
||||
if($value < 63) return 130;
|
||||
if($value < 649) return 100;
|
||||
if($value < 1299) return 90;
|
||||
if($value < 1999) return 80;
|
||||
if($value < 2499) return 60;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
function getCalcTableValue($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $weiterVerarbeitung, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender) {
|
||||
|
||||
$price = 9999999999;
|
||||
$nutzen = 9999999999;
|
||||
$nettobg = 9999999999;
|
||||
$zuschuss = 9999999999;
|
||||
$bogen_hoehe = 1000;
|
||||
$bogen_breite = 1000;
|
||||
$ctp = 999999999;
|
||||
|
||||
$formate=array();
|
||||
if($papierType1) {
|
||||
$formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'seiten' => 4);
|
||||
}
|
||||
if($papierType1 && ($weiterVerarbeitung == 3)) {
|
||||
$formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType2) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 4);
|
||||
}
|
||||
if($papierType2 && ($weiterVerarbeitung == 3)) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType3) {
|
||||
//$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 4);
|
||||
}
|
||||
if($papierType3 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType4) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 4);
|
||||
}
|
||||
if($papierType4 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType5) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 4);
|
||||
}
|
||||
if($papierType5 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType6) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 4);
|
||||
}
|
||||
if($papierType6 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType7) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 4);
|
||||
}
|
||||
if($papierType7 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType8) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 4);
|
||||
}
|
||||
if($papierType8 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType9) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 4);
|
||||
}
|
||||
if($papierType9 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType10) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 4);
|
||||
}
|
||||
if($papierType10 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType11) {
|
||||
$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 4);
|
||||
}
|
||||
if($papierType11 && ($weiterVerarbeitung == 3)) {
|
||||
$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType12) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 4);
|
||||
}
|
||||
if($papierType12 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 2);
|
||||
}
|
||||
|
||||
if($papierType13) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 4);
|
||||
}
|
||||
if($papierType13 && ($weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 2);
|
||||
}
|
||||
if($papierType14) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 4);
|
||||
}
|
||||
if($papierType14 && ($weiterVerarbeitung == 3)) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 2);
|
||||
}
|
||||
|
||||
//echo "<br/><br/>";
|
||||
|
||||
foreach($formate as $key => $format) {
|
||||
|
||||
if($format['seiten'] == 4) {
|
||||
$calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe)*2;
|
||||
$calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe)*2;
|
||||
}else{
|
||||
$calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
|
||||
$calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
|
||||
}
|
||||
|
||||
$nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2;
|
||||
|
||||
$calc1 = 200;
|
||||
|
||||
$calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100*ceil($seiten/($nutzen_calc*2))+($anzahlFarbwechsel*100)+($seiten/($nutzen_calc*2)*$auflage*0.02));
|
||||
|
||||
$zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2;
|
||||
|
||||
$nettoBedruckGesamt = $seiten/$nutzen_calc*$auflage/2;
|
||||
$ctp1 = ceil($seiten/$nutzen_calc)*($anzahlDruckfarben)+$druckplatteOption;
|
||||
$price_calc = ((($nettoBedruckGesamt+$zuschussCalc)*$format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000))+($kostenDruckplatte*$ctp1);
|
||||
//var_dump($nutzen_calc);
|
||||
//var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.$nettoBedruckGesamt.'-'.$price_calc.'-'.$price);
|
||||
//echo "<br/>";
|
||||
|
||||
if($price_calc < $price && $nutzen > 0) {
|
||||
$price = $price_calc;
|
||||
$nutzen = $nutzen_calc;
|
||||
$ctp = $ctp1;
|
||||
$zuschuss = $zuschussCalc;
|
||||
$nettobg = $nettoBedruckGesamt;
|
||||
$bogen_hoehe = $format['hoehe'];
|
||||
$bogen_breite = $format['breite'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if($what == 'nutzen') {
|
||||
if($seiten < $nutzen) {
|
||||
return $seiten;
|
||||
}
|
||||
return $nutzen;
|
||||
}
|
||||
if($what == 'nettobg') {
|
||||
return $nettobg;
|
||||
}
|
||||
if($what == 'zuschuss') {
|
||||
return $zuschuss;
|
||||
}
|
||||
|
||||
if($what == 'bogen_hoehe') {
|
||||
return $bogen_hoehe;
|
||||
}
|
||||
|
||||
if($what == 'ctp') {
|
||||
return $ctp;
|
||||
}
|
||||
|
||||
if($what == 'bogen_breite') {
|
||||
return $bogen_breite;
|
||||
}
|
||||
return $price;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getCalcTableValueUmschlag($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender, $umschlag_seiten_bedruckt) {
|
||||
|
||||
$price = 9999999999;
|
||||
$nutzen = 9999999999;
|
||||
$nettobg = 9999999999;
|
||||
$zuschuss = 9999999999;
|
||||
$bogen_hoehe = 1000;
|
||||
$bogen_breite = 1000;
|
||||
|
||||
$formate=array();
|
||||
if($papierType1) {
|
||||
$formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType1 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType2) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType2 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType3) {
|
||||
$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType3 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType4) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType4 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType5) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType5 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType6) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType6 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType7) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType7 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType8) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType8 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType9) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType9 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType10) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType10 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType11) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType11 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType12) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType12 && $umschlagen == 1) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType13) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType13 && ($weiterVerarbeitung == 2 || $weiterVerarbeitung == 3)) {
|
||||
//$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1);
|
||||
}
|
||||
if($papierType14) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType14 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
//echo "<br/><br/>";
|
||||
|
||||
foreach($formate as $key => $format) {
|
||||
|
||||
|
||||
if($format['umschlagen'] == 0) {
|
||||
$calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
|
||||
$calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
|
||||
|
||||
$ctp1 = $umschlag_seiten_bedruckt*$anzahlDruckfarben+$druckplatteOption;
|
||||
|
||||
}else{
|
||||
$calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
|
||||
$calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
|
||||
|
||||
$ctp1 = $anzahlDruckfarben+$druckplatteOption;
|
||||
}
|
||||
|
||||
$nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2;
|
||||
|
||||
if($format['umschlagen'] == 1) {
|
||||
$nutzen_calc = floor($nutzen_calc/2)*2;
|
||||
}
|
||||
|
||||
if($nutzen_calc == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$calc1 = 150;
|
||||
|
||||
$calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02);
|
||||
|
||||
$zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2;
|
||||
|
||||
//var_dump($nutzen_calc);
|
||||
|
||||
$nettoBedruckGesamt = $auflage/$nutzen_calc;
|
||||
|
||||
$gramGesch = (100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100;
|
||||
|
||||
$fortdruckGeschwindigkeit = 2500+$gramGesch*(log10($auflage*$auflage)*700);
|
||||
|
||||
$kba1 = 140*($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$umschlag_seiten_bedruckt*(ceil($anzahlDruckfarben/5));
|
||||
//var_dump($zuschussCalc.' - '.$nettoBedruckGesamt.' - '.$fortdruckGeschwindigkeit.' - '.$umschlag_seiten_bedruckt.' - '.$anzahlDruckfarben);
|
||||
$price_calc = ($format['hoehe']*$format['breite']*($nettoBedruckGesamt+$zuschussCalc)*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1)+$kba1;
|
||||
|
||||
//var_dump($format['hoehe'].' - '.$format['breite'].' - '.$ctp1.' - '.$kba1.' - '.$price_calc.' - '.$price);
|
||||
//echo "<br/>";
|
||||
|
||||
|
||||
if($price_calc < $price) {
|
||||
$price = $price_calc;
|
||||
$nutzen = $nutzen_calc;
|
||||
$zuschuss = $zuschussCalc;
|
||||
$nettobg = $nettoBedruckGesamt;
|
||||
$bogen_hoehe = $format['hoehe'];
|
||||
$bogen_breite = $format['breite'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if($what == 'nutzen') {
|
||||
return $nutzen;
|
||||
}
|
||||
if($what == 'nettobg') {
|
||||
return $nettobg;
|
||||
}
|
||||
if($what == 'zuschuss') {
|
||||
return $zuschuss;
|
||||
}
|
||||
|
||||
if($what == 'bogen_hoehe') {
|
||||
return $bogen_hoehe;
|
||||
}
|
||||
|
||||
if($what == 'bogen_breite') {
|
||||
return $bogen_breite;
|
||||
}
|
||||
return $price;
|
||||
|
||||
}
|
||||
|
||||
function getPurHelpKlebe($what, $var) {
|
||||
|
||||
$fix = 222;
|
||||
$per = 89;
|
||||
|
||||
if($var > 7) {
|
||||
$fix = 233;
|
||||
$per = 102;
|
||||
}
|
||||
if($var > 12) {
|
||||
$fix = 244;
|
||||
$per = 114;
|
||||
}
|
||||
if($var > 16) {
|
||||
$fix = 366;
|
||||
$per = 228;
|
||||
}
|
||||
|
||||
if($what=='fix') {
|
||||
return $fix;
|
||||
}
|
||||
return $per;
|
||||
}
|
||||
|
||||
function getPurHelpFalz($what, $var) {
|
||||
|
||||
$fix = 10.30;
|
||||
$per = 7.05;
|
||||
|
||||
if($var == 6) {
|
||||
$fix = 15.40;
|
||||
$per = 8.20;
|
||||
}
|
||||
if($var == 8) {
|
||||
$fix = 15.40;
|
||||
$per = 8.40;
|
||||
}
|
||||
if($var == 12) {
|
||||
$fix = 20.50;
|
||||
$per = 9.70;
|
||||
}
|
||||
if($var == 16) {
|
||||
$fix = 31.50;
|
||||
$per = 9.50;
|
||||
}
|
||||
if($var == 24) {
|
||||
$fix = 41.00;
|
||||
$per = 10.70;
|
||||
}
|
||||
if($var == 32) {
|
||||
$fix = 51.20;
|
||||
$per = 11.90;
|
||||
}
|
||||
if($var == 48) {
|
||||
$fix = 102.30;
|
||||
$per = 12.90;
|
||||
}
|
||||
|
||||
if($what=='fix') {
|
||||
return $fix;
|
||||
}
|
||||
return $per;
|
||||
}
|
||||
|
||||
|
||||
function getCalcTableValueOffsetPlano($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlSeiten, $format_offen_breite, $format_offen_hoehe, $drucklack, $papier_vs_rs_unterschiedlich) {
|
||||
//var_dump( func_get_args());
|
||||
$price = 9999999999;
|
||||
$nutzen = 9999999999;
|
||||
$nettobg = 9999999999;
|
||||
$zuschuss = 9999999999;
|
||||
$bogen_hoehe = 1000;
|
||||
$bogen_breite = 1000;
|
||||
$ctp = 999999999;
|
||||
$druckgaenge = 99999999;
|
||||
$fortdruckmaschine = 0;
|
||||
$stundensatz = 99999999;
|
||||
$maschine = 'kba';
|
||||
|
||||
$formate=array();
|
||||
if($papierType1) {
|
||||
$formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType1 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType2) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType2 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType3) {
|
||||
$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType3 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType4) {
|
||||
$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType4 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType5) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType5 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType6) {
|
||||
$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType6 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType7) {
|
||||
$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType7 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType8) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType8 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType9) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType9 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType10) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType10 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType11) {
|
||||
$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType11 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType12) {
|
||||
$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType12 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType13) {
|
||||
$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType13 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
if($papierType14) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0);
|
||||
}
|
||||
if($papierType14 && $umschlagen == 1) {
|
||||
$formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1);
|
||||
}
|
||||
|
||||
//echo "<br/><br/>";
|
||||
|
||||
foreach($formate as $key => $format) {
|
||||
|
||||
$geiferRand = getGeiferRand($format);
|
||||
$bogenRaender = getBogenRaender($format);
|
||||
|
||||
|
||||
if($format['umschlagen'] == 0) {
|
||||
|
||||
$nutzen_calc = max(
|
||||
((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))),
|
||||
((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite))))
|
||||
);
|
||||
|
||||
}else{
|
||||
$nutzen_calc= 2*floor((max(
|
||||
((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))),
|
||||
((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite))))
|
||||
))/2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if($anzahlSeiten==2 && $papier_vs_rs_unterschiedlich==0 && $nutzen_calc > 1 && $format['umschlagen'] == 1) {
|
||||
$ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten/2;
|
||||
}else{
|
||||
$ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten;
|
||||
}
|
||||
|
||||
$maschine1 = getMaschine($format['breite'], $format['hoehe']);
|
||||
|
||||
if(getMaschine($format['breite'], $format['hoehe']) == "gto") {
|
||||
$druckgaenge1 = $anzahlSeiten*($anzahlDruckfarben+$drucklack);
|
||||
$fortdruckmaschine1 = 0;
|
||||
$stundensatz1 = 40;
|
||||
$anzahlFarb1 = max($anzahlFarbwechsel, $anzahlDruckfarben-1);
|
||||
}else{
|
||||
$druckgaenge1 = ceil(($anzahlDruckfarben+$drucklack)/5)*$anzahlSeiten;
|
||||
$fortdruckmaschine1 = 4500;
|
||||
$stundensatz1 = 140;
|
||||
$anzahlFarb1 = $anzahlFarbwechsel;
|
||||
}
|
||||
|
||||
$zuschussCalc = intval(max(200,floor(($anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02))));
|
||||
|
||||
$fortdruckGeschwindigkeit = (log10($auflage*$auflage)*900)*(100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100;
|
||||
|
||||
$nettoBedruckGesamt = (round($auflage/$nutzen_calc,0));
|
||||
$druckkosten = $stundensatz1*((($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$druckgaenge1)+($ctp1*7/60)+($anzahlFarb1*45/60));
|
||||
|
||||
//var_dump($maschine1.'-'.$stundensatz1.'-'.$zuschussCalc.'-'.$nettoBedruckGesamt.'-'.$fortdruckGeschwindigkeit.'-'.$druckgaenge1.'-'.$ctp1.'-'.$anzahlFarb1);
|
||||
//echo "<br/>";
|
||||
|
||||
$price_calc = (($nettoBedruckGesamt+$zuschussCalc)*($format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1))+$druckkosten;
|
||||
|
||||
if($price_calc < $price && $nettoBedruckGesamt != 0) {
|
||||
$price = $price_calc;
|
||||
$nutzen = $nutzen_calc;
|
||||
$ctp = $ctp1;
|
||||
$zuschuss = $zuschussCalc;
|
||||
$nettobg = $nettoBedruckGesamt;
|
||||
$bogen_hoehe = $format['hoehe'];
|
||||
$bogen_breite = $format['breite'];
|
||||
$druckgaenge = $druckgaenge1;
|
||||
$fortdruckmaschine = $fortdruckmaschine1;
|
||||
$stundensatz = $stundensatz1;
|
||||
$maschine = $maschine1;
|
||||
}
|
||||
//var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.($zuschussCalc+$nettoBedruckGesamt).'-'.$druckkosten.'-'.$price_calc.'-'.$price);
|
||||
//echo "<br/>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if($what == 'nutzen') {
|
||||
return $nutzen;
|
||||
}
|
||||
if($what == 'nettobg') {
|
||||
return $nettobg;
|
||||
}
|
||||
if($what == 'maschine') {
|
||||
return $maschine;
|
||||
}
|
||||
if($what == 'zuschuss') {
|
||||
return $zuschuss;
|
||||
}
|
||||
if($what == 'fortdruckmaschine') {
|
||||
return $fortdruckmaschine;
|
||||
}
|
||||
|
||||
if($what == 'maschine_stundensatz') {
|
||||
return $stundensatz;
|
||||
}
|
||||
|
||||
if($what == 'bogen_hoehe') {
|
||||
return $bogen_hoehe;
|
||||
}
|
||||
|
||||
if($what == 'ctp') {
|
||||
return $ctp;
|
||||
}
|
||||
|
||||
if($what == 'druckgaenge') {
|
||||
return $druckgaenge;
|
||||
}
|
||||
|
||||
if($what == 'bogen_breite') {
|
||||
return $bogen_breite;
|
||||
}
|
||||
return $price;
|
||||
|
||||
}
|
||||
|
||||
function getMaschine($breite, $hoehe) {
|
||||
if($breite > 49 || $hoehe > 49) {
|
||||
|
||||
return 'kba';
|
||||
}
|
||||
|
||||
return 'gto';
|
||||
}
|
||||
|
||||
function getGeiferRand($format) {
|
||||
$maschine = getMaschine($format['breite'], $format['hoehe']);
|
||||
|
||||
if($maschine == 'kba') {
|
||||
return 2.3;
|
||||
}
|
||||
|
||||
return 1.4;
|
||||
}
|
||||
|
||||
function getBogenRaender($format) {
|
||||
$maschine = getMaschine($format['breite'], $format['hoehe']);
|
||||
|
||||
if($maschine == 'kba') {
|
||||
return 1.5;
|
||||
}
|
||||
|
||||
return 0.8;
|
||||
}
|
||||
|
||||
function getMaschineKosten($format) {
|
||||
$maschine = getMaschine($format['breite'], $format['hoehe']);
|
||||
|
||||
if($maschine == 'kba') {
|
||||
return 140;
|
||||
}
|
||||
|
||||
return 40;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
6
tests/Customer/T/papierContainer.xml
Normal file
6
tests/Customer/T/papierContainer.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<container>
|
||||
<papiercontainer id="banderolen">
|
||||
<papier id="sm150g"/>
|
||||
</papiercontainer>
|
||||
</container>
|
||||
210
tests/Customer/T/parameters.txt
Normal file
210
tests/Customer/T/parameters.txt
Normal file
@ -0,0 +1,210 @@
|
||||
$onlinerabatt_flaschenanhaenger_p = 0;
|
||||
$onlinerabatt_flaschenanhaenger_f = 10;
|
||||
|
||||
$onlinerabatt_digitalplot_p = 0;
|
||||
$onlinerabatt_digitalplot_f = 5;
|
||||
|
||||
$onlinerabatt_ausdruck_p = 0;
|
||||
$onlinerabatt_ausdruck_f = 10;
|
||||
|
||||
$onlinerabatt_digitalproof_p = 0;
|
||||
$onlinerabatt_digitalproof_f = 0;
|
||||
$medienkeil_aufpreis_f = 8;
|
||||
|
||||
$onlinerabatt_farbscan_p = 0;
|
||||
$onlinerabatt_farbscan_f = 5;
|
||||
|
||||
$onlinerabatt_strichscan_p = 0;
|
||||
$onlinerabatt_strichscan_f = 5;
|
||||
|
||||
$hour_druckvorstufe = 60;
|
||||
$geiferRand = 2.3;
|
||||
$bogenRaender = 1.5;
|
||||
|
||||
$onlinerabatt_broschuere_p = 0;
|
||||
$onlinerabatt_broschuere_f = 30;
|
||||
$aktionsrabatt_broschuere_p = 12;
|
||||
$aktionsrabatt_broschuere_f = 0;
|
||||
|
||||
$onlinerabatt_plano_p = 0;
|
||||
$onlinerabatt_plano_f = 10;
|
||||
|
||||
$onlinerabatt_privatdrucksachen_p = 0;
|
||||
$onlinerabatt_privatdrucksachen_f = 5;
|
||||
|
||||
$aktionsrabatt_plano_p = 12;
|
||||
$aktionsrabatt_plano_p_vk = 6;
|
||||
$aktionsrabatt_plano_f = 0;
|
||||
$aktionsrabatt_plano_f_vk = 0;
|
||||
|
||||
$papierzuschlag_broschuere = 1.3;
|
||||
$papierzuschlag_plano = 1.3;
|
||||
|
||||
$onlinerabatt_20 = -20;
|
||||
$onlinerabatt_10 = -10;
|
||||
|
||||
$onlinerabatt_etikett = -10;
|
||||
|
||||
$kostenProDruckplatte = 15;
|
||||
$stundenSatzDruck = 140;
|
||||
$stundenSatzDruckGTO = 40;
|
||||
$ruestZeitJeDruckplatte = 5;
|
||||
$ruestZeitJeDruckplatteGTO = 15;
|
||||
$kostenProZusatzdruckplatteGTO = 35;
|
||||
|
||||
$farbwechselZeit = 45;
|
||||
$farbwechselZeitGTO = 20;
|
||||
|
||||
$stundensatz_wtv_maschinen = 50;
|
||||
$stundensatz_wtv = 30;
|
||||
$stundensatz_vorstufe = 60;
|
||||
$stundensatz_vorstufe_daten_huellen = 60;
|
||||
$vorstufe_fixkosten = 20;
|
||||
|
||||
$papieraufschlag_huellen = 1.3;
|
||||
|
||||
$durckfarbe_preis_je_bogen = 1;
|
||||
|
||||
$aufpreis_drucklack_matt_voll = 10;
|
||||
$aufpreis_drucklack_matt_partiell = 30;
|
||||
$aufpreis_drucklack_glzd_voll = 55;
|
||||
$aufpreis_drucklack_glzd_partiell = 95;
|
||||
|
||||
|
||||
$buchrueckenstaerke = 0.36;
|
||||
|
||||
// WTV
|
||||
$ringoesen = 60;
|
||||
$oesen_stkpreis = 0.20;
|
||||
$oesen_fixpreis = 45;
|
||||
$beilage_einlegen_bestimmte = 45;
|
||||
$beilage_einlegen_unbestimmte = 35;
|
||||
$buendeln = 0.15;
|
||||
$perforation = 25;
|
||||
$laserstanzung = 0.50;
|
||||
$folieeinschweissen = 0.13;
|
||||
|
||||
$ruestkosten_perforation = 35;
|
||||
$ruestkosten_lochung = 15;
|
||||
$ruestkosten_umlaufender_karton = 35;
|
||||
|
||||
$fixkosten_nummerierung = 15;
|
||||
$fixkosten_blockleimung = 25;
|
||||
$fixkosten_umlaufender_karton = 0.6;
|
||||
|
||||
$umschlag_kaschierung_mk = 0.8;
|
||||
$umschlag_kaschierung_gl = 0.6;
|
||||
|
||||
$faktor_klein_gross_falzung = 3;
|
||||
$aufpreis_falzen_altarfalz = 50;
|
||||
$falzbruch_ruesten = 10;
|
||||
|
||||
$plano_fa_aufpreis_anderes_dateiformat = 25;
|
||||
$plano_fa_fixpreis_buendeln = 15;
|
||||
$plano_fa_preis_je_buendel = 0.15;
|
||||
$plano_fa_fixpreis_perforation = 35;
|
||||
$plano_fa_tsdpreis_perforation = 35;
|
||||
$plano_fa_tsdpreis_ecken_runden = 16;
|
||||
$plano_fa_tsdpreis_ecken_runden_nassleimetik = 1.50;
|
||||
$plano_fa_fixpreis_ecken_runden = 15;
|
||||
$plano_fa_fixpreis_bohren = 25;
|
||||
$plano_fa_tsdpreis_bohren = 5;
|
||||
$plano_fa_stckpreis_laserstanzung = 0.50;
|
||||
$plano_fa_fixpreis_laserstanzung = 150;
|
||||
$plano_fa_fixpreis_cito = 260;
|
||||
$plano_fa_tsdpreis_cito = 35;
|
||||
$plano_fa_fixpreis_cito_nassleimetik = 80;
|
||||
$plano_fa_tsdpreis_cito_nassleimetik = 2;
|
||||
|
||||
// Sammelform
|
||||
$sammelform_brosch_inhalt_happy = -60;
|
||||
$sammelform_brosch_inhalt_eq = -45;
|
||||
$sammelform_brosch_inhalt_sense = -45;
|
||||
$sammelform_brosch_inhalt_sky = -30;
|
||||
$sammelform_brosch_inhalt_glam = -60;
|
||||
$sammelform_brosch_inhalt_post = 0;
|
||||
|
||||
$sammelform_brosch_umschlag_happy = -60;
|
||||
$sammelform_brosch_umschlag_eq = -40;
|
||||
$sammelform_brosch_umschlag_sense = -20;
|
||||
$sammelform_brosch_umschlag_sky = -10;
|
||||
$sammelform_brosch_umschlag_glam = -40;
|
||||
$sammelform_brosch_umschlag_post = 0;
|
||||
|
||||
$sammelform_plano_fa_happy = -180;
|
||||
$sammelform_plano_fa_eq = -160;
|
||||
$sammelform_plano_fa_sense = -130;
|
||||
$sammelform_plano_fa_sky = -125;
|
||||
$sammelform_plano_fa_glam = -60;
|
||||
$sammelform_plano_fa_post = -90;
|
||||
$sammelform_plano_fa_happy_rapetik = - 280;
|
||||
$sammelform_plano_fa_happy_aufkleber = - 280;
|
||||
$sammelform_plano_fa_eq_aufkleber = - 250;
|
||||
$sammelform_plano_fa_stdformatabschlag = 30;
|
||||
|
||||
// Banderolen Verschluss
|
||||
$klebepunkte_lose_fix = 15;
|
||||
$klebepunkte_lose_pro_tausend = 12;
|
||||
$klebepunkte_vorkonf_fix = 15;
|
||||
$klebepunkte_vorkonf_pro_tausend = 47;
|
||||
$haftstreifen_lose_fix = 15;
|
||||
$haftstreifen_lose_pro_tausend = 15;
|
||||
$haftstreifen_vorkonf_fix = 45;
|
||||
$haftstreifen_vorkonf_pro_tausend = 85;
|
||||
|
||||
// Digitaldruck
|
||||
$standard_bogenbreite = 45;
|
||||
$standard_bogenhoehe = 32;
|
||||
$stundensatz_vorstufe_digitaldruck = 90;
|
||||
$stundensatz_nuten_digitaldruck = 15;
|
||||
$stundensatz_klebebinder = 200;
|
||||
$papierzuschlag_digitaldruck = 1.3;
|
||||
$klick_digitaldruck_a4fbg = 0.17;
|
||||
$klick_digitaldruck_a4sw = 0.07;
|
||||
|
||||
|
||||
$plano_fa_maxabschlag_proz_ek = 90;
|
||||
$plano_fa_maxabschlag_abs = 7;
|
||||
|
||||
$plano_stanzen_fix1 = 35;
|
||||
$plano_stanzen_fix1_vkru7 = 15;
|
||||
$plano_stanzen_fix2 = 85;
|
||||
$plano_stanzen_fix3_mappen = 260;
|
||||
|
||||
$plano_stanzen_var1 = 13;
|
||||
$plano_stanzen_var2 = 33;
|
||||
$plano_stanzen_var3_mappen = 40;
|
||||
|
||||
|
||||
$plano_praegen_fix1 = 60;
|
||||
$plano_praegen_fix2 = 110;
|
||||
$plano_praegen_var1 = 25;
|
||||
$plano_praegen_var2 = 45;
|
||||
|
||||
$plano_digitalproof_minimal = 15;
|
||||
|
||||
|
||||
$plano_express_f = 45;
|
||||
$plano_express_p = 13;
|
||||
$plano_relax_f = 0;
|
||||
$plano_relax_p = 15;
|
||||
$plano_max_highend_f = 0;
|
||||
$plano_max_highend_p = 10;
|
||||
$plano_easy_value_f = 0;
|
||||
$plano_easy_value_p = 10;
|
||||
|
||||
$rdh_aufschlag_sonderformate = 1.7;
|
||||
$bro_aufschlag_pur = 1.22;
|
||||
$bro_aufschlag_wire_o = 1.40;
|
||||
$bro_aufschlag_hdcover = 1.20;
|
||||
|
||||
$bro_weight_faktor = 1.05;
|
||||
|
||||
$brosch_express_f = 45;
|
||||
$brosch_express_p = 13;
|
||||
$brosch_relax_f = 0;
|
||||
$brosch_relax_p = 8;
|
||||
$brosch_max_highend_f = 60;
|
||||
$brosch_max_highend_p = 10;
|
||||
$brosch_easy_value_f = 0;
|
||||
$brosch_easy_value_p = 10;
|
||||
Loading…
Reference in New Issue
Block a user