diff --git a/src/Calc/Calc.php b/src/Calc/Calc.php
index 0a9016f..7392c79 100644
--- a/src/Calc/Calc.php
+++ b/src/Calc/Calc.php
@@ -87,11 +87,7 @@ class Calc
if($collection->getName() == "opt") continue;
if($collection->getFormel() != "") {
$formel = $this->formelCalc->parse($collection->getFormel());
- if(preg_match("/^[a-z](.*)/", $formel)) {
- eval('$var = "' . $formel . '";');
- }else{
- eval('$var = ' . $formel . ';');
- }
+ eval('$var = ' . $formel . ';');
}else{
if(isset($this->engine->getVariables()[$collection->getName()])) {
$var = $this->engine->getVariables()[$collection->getName()];
@@ -122,8 +118,8 @@ class Calc
}catch (\Throwable $e) {
$cv = 0;
}
- $this->engine->addCalcVariable($option->getId() . '_' . $collection->getName(), $cv);
- $this->engine->setCalcVaribleStack($cv, $calcValueId);
+ $this->engine->addCalcVariable($option->getId() . '_' . $collection->getName(), $orgCv);
+ $this->engine->setCalcVaribleStack($orgCv, $calcValueId);
}
if($edge->getFormel() != "") {
@@ -139,7 +135,6 @@ class Calc
$this->engine->addDebugCalcFormel($edge->getFormel(), $formel . ' = error');
$p = 0;
}
- //echo $option->getId(). ' / '.$formel . ' / '.$p.' / '.PHP_EOL.PHP_EOL;
if($p > 0 || $p < 0) {
$gesamt += $p;
}
diff --git a/tests/Customer/V/CalcTest.php b/tests/Customer/V/CalcTest.php
new file mode 100644
index 0000000..e092dda
--- /dev/null
+++ b/tests/Customer/V/CalcTest.php
@@ -0,0 +1,44 @@
+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->assertEquals(130.97 , $this->engine->getPrice());
+
+ }
+}
diff --git a/tests/Customer/V/calc.xml b/tests/Customer/V/calc.xml
new file mode 100644
index 0000000..d3b82a7
--- /dev/null
+++ b/tests/Customer/V/calc.xml
@@ -0,0 +1,677 @@
+
+
+
+
+
+
+
+ Flaschenanhänger Schleife
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Customer/V/calcTemplates.xml b/tests/Customer/V/calcTemplates.xml
new file mode 100644
index 0000000..7b1cdd7
--- /dev/null
+++ b/tests/Customer/V/calcTemplates.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Customer/V/formels.txt b/tests/Customer/V/formels.txt
new file mode 100644
index 0000000..7c563a7
--- /dev/null
+++ b/tests/Customer/V/formels.txt
@@ -0,0 +1,2685 @@
+if(!function_exists('getSammelformMengenAbschlagPlano')) {
+
+ function getSammelformMengenAbschlagPlano($menge) {
+ return 1;
+ }
+
+
+
+
+
+// ####### Beginn Kopiersektion PSC #######
+
+
+
+// DIGITALDRUCK
+function getPrePressDIGIPlanoFa22($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $loseblatt, $personalisierung){
+ //Parameter
+ $Pstundensatz_vorstufe = 70;
+ $Pplano_fa_aufpreis_anderes_dateiformat = 25;
+ $Pumweltzeichen_fsc = 15;
+ $Pumweltzeichen_blauerengel = 335;
+ $Psortenzeit_vorstufe = 3;
+ $Pgrundzeit_vorstufe = 20;
+ $Pplano_digitalproof_minimal = 15;
+
+ $bedruckteSeiten = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt)[1];
+
+ $datenuebernahme_kosten = ($Pgrundzeit_vorstufe+$sortenzahl*$bedruckteSeiten*$Psortenzeit_vorstufe)/60*$Pstundensatz_vorstufe;
+
+ $dateiformat_kosten = 0;
+ if($dateiformat_geliefert != 1){
+ $dateiformat_kosten = $Pplano_fa_aufpreis_anderes_dateiformat;
+ }
+
+ $korrekturabzug_kosten = 0;
+ if($korrekturabzug == 2){
+ $korrekturabzug_kosten = max($Pplano_digitalproof_minimal, (($breite_offen*$hoehe_offen)/62*$sortenzahl*$bedruckteSeiten));
+ }
+
+ $umweltzeichen_kosten = 0;
+ if($umweltzeichen == 2){
+ $umweltzeichen_kosten = $Pumweltzeichen_fsc;
+ }
+ if($umweltzeichen == 3){
+ $umweltzeichen_kosten = $Pumweltzeichen_blauerengel;
+ }
+
+ $eigenkosten = $datenuebernahme_kosten + $dateiformat_kosten + $korrekturabzug_kosten + $umweltzeichen_kosten;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- Digitaldruck PrePress Plano-Fa --------------------'."\n");
+ echo('$datenuebernahme_kosten: '.round($datenuebernahme_kosten,2)."\n");
+ echo('$dateiformat_kosten: '.$dateiformat_kosten."\n");
+ echo('$umweltzeichen_kosten: '.$umweltzeichen_kosten."\n");
+ echo('$korrekturabzug_kosten: '.round($korrekturabzug_kosten,2)."\n\n");
+ }
+
+ return $eigenkosten;
+
+}
+
+function getDruckNutzenDIGI($breite_offen, $hoehe_offen){
+ $Druckbogenbreite = 45;
+ $Druckbogenhoehe = 32;
+ $DruckbgRaender = 1;
+ $drucknutzen = max(
+ (floor(($Druckbogenbreite-$DruckbgRaender)/$breite_offen))*(floor(($Druckbogenhoehe-$DruckbgRaender)/$hoehe_offen)),
+ (floor(($Druckbogenhoehe-$DruckbgRaender)/$breite_offen))*(floor(($Druckbogenbreite-$DruckbgRaender)/$hoehe_offen))
+ );
+ return [$drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender];
+}
+
+function getPrintDIGIPlanoFa22($what, $papiersorte_grammatur, $papiersorte_value, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $sortenzahl, $papiersorte_sammelform, $anzblattjeblock, $wtvzuschusspapier){
+ $KlickKostenA4SW = 0.042 * 9.2 ; //= EK Dewart 4/2022 x Faktor
+ $KlickKostenA4Farbe = 0.012 * 5.5; //= EK Dewart 4/2022 x Faktor
+ [$anzahlDruckfarben, $bedruckteSeiten] = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt);
+
+ [$drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender] = getDruckNutzenDIGI($breite_offen, $hoehe_offen);
+
+ $zuschuss_digitaldruck = 10 * $bedruckteSeiten + ($sortenzahl * 5);
+
+ $nettobg = ceil(($auflage/$drucknutzen));
+ $bruttobg = 1.05 * $nettobg + $wtvzuschusspapier + $zuschuss_digitaldruck;
+
+ $papierkosten = ($Druckbogenbreite * $Druckbogenhoehe * $papiersorte_grammatur * $papiersorte_value / 1000000000 * $bruttobg) * 1.3;
+
+ $mengenabschlagDruck = 1 - log10($auflage*$auflage)/50/$drucknutzen*$bedruckteSeiten;
+
+ if($druckfarben_inhalt == 1 || $druckfarben_inhalt == 3){
+ $klickkosten = $KlickKostenA4Farbe;
+ }else{
+ $klickkosten = $KlickKostenA4SW;
+ }
+
+ $druckkosten = $bruttobg * $klickkosten * $bedruckteSeiten * $mengenabschlagDruck;
+
+ if($papiersorte_sammelform == 0){
+ $ruestkosten = 20 + $sortenzahl * 3;
+ }else{
+ $ruestkosten = 10 + $sortenzahl * 3;
+ }
+
+ $eigenkosten = $ruestkosten + $druckkosten;
+ $fremdkosten = $papierkosten;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-----> '.$auflage.' x '.$breite_offen.' x '.$hoehe_offen);
+ echo(' ----- Digitaldruck PRINT Plano-Fa --------------------'."\n");
+ echo('Papier: '.$Druckbogenbreite.' x '.$Druckbogenhoehe.' mit 1.05 x '.$nettobg.' Nettobg. + '.$zuschuss_digitaldruck.' ZU Druck + '.$wtvzuschusspapier.' ZU WTV = '.$bruttobg.' zu '.$drucknutzen.' Nutzen | ');
+ echo('Rüstkosten: '.round($ruestkosten,2)." Euro\n");
+ echo('Druckkosten: '.(round($druckkosten,2))." Euro\n");
+ echo('Papier: '.round($papierkosten,2)." Euro\n");
+ echo('Klickkosten ohne Abschlag: '.$klickkosten.' mit Mengenabschlag Druck: '.$mengenabschlagDruck."\n");
+ echo('Gesamte Eigenkosten Print: '.round($eigenkosten,2)."\n");
+ echo('Gesamte Fremdkosten Print: '.round($fremdkosten,2)."\n");
+ echo('Gesamtkosten Print: '.(round($eigenkosten+$fremdkosten,2))." Euro\n\n");
+ }
+
+
+ return [$eigenkosten, $fremdkosten, $drucknutzen, $nettobg, $zuschuss_digitaldruck, $wtvzuschusspapier, $papierkosten];
+
+}
+
+function getWTVDIGIPlanoFa22($what, $auflage, $drucknutzen, $hoehe_offen, $breite_offen, $hoehe_geschl, $breite_geschl, $papiersorte_grammatur, $papiersorte_value, $sortenzahl, $falzung, $falzart, $loseblatt, $bohren_lochen, $verschluss, $klebepunkte_durchmesser, $ecken_runden, $personalisierung, $buendeln, $stanzung, $stanzart, $nutlinien, $oesen, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $musterversand, $absender){
+
+ //Parameter Digitaldruck
+ $Druckbogenbreite = 45;
+ $Druckbogenhoehe = 32;
+ $Pstundensatz_wtv = 30;
+ $Pstundensatz_wtv_maschinen = 50;
+ $Pfaktor_klein_gross_falzung = 2.5;
+ $Pfalzbruch_ruesten = 10;
+ $wtveigenkosten = 0;
+ $wtvfremdkosten = 0;
+ $wtvzuschusspapier = 0;
+ $wtvfrachtkosten = 0;
+ $wtvfrachtgewicht = $auflage * $papiersorte_grammatur * $hoehe_offen * $breite_offen/ 10000000 * 1.1;
+ $wtvfrachtpreis = 50 + $wtvfrachtgewicht/500*15;
+ $grammaturfaktor_geschw_wtv = (100-sqrt((150-$papiersorte_grammatur)*(150-$papiersorte_grammatur))/3.6)/100;
+ $wtvgeschwindigkeit = (log10($auflage*$auflage)*900)*(100-sqrt((150-$papiersorte_grammatur)*(150-$papiersorte_grammatur))/3.6)/100;
+ $Pklebepunkte_lose_fix = 15;
+ $Pklebepunkte_lose_pro_tausend = 12;
+ $Pklebepunkte_vorkonf_fix = 15;
+ $Pklebepunkte_vorkonf_pro_tausend = 47;
+ $Phaftstreifen_lose_fix = 15;
+ $Phaftstreifen_lose_pro_tausend = 7;
+ $Phaftstreifen_vorkonf_fix = 45;
+ $Phaftstreifen_vorkonf_pro_tausend = 77;
+ $haftstreifen_material_pro_cm = 0.002;
+ $Pplano_stanzen_fix1 = 35;
+ $Pplano_stanzen_fix2 = 97.5;
+ $Pplano_stanzen_var1 = 14;
+ $Pplano_stanzen_var2 = 37.5;
+ $Poesen_fixpreis= 45;
+ $Poesen_stkpreis = 0.20;
+ $Pplano_fa_fixpreis_bohren = 25;
+ $Pplano_fa_tsdpreis_bohren = 5;
+ $Pplano_fa_fixpreis_ecken_runden = 15;
+ $Pplano_fa_tsdpreis_ecken_runden = 16;
+ $Pplano_fa_fixpreis_buendeln = 15;
+ $Pplano_fa_preis_je_buendel = 0.09;
+
+ //endschneiden + verpacken Digitaldruck
+ $zeit_endschneiden = (20+5*$sortenzahl+(sqrt($auflage/5)))/60;
+ $kosten_endschneiden = $zeit_endschneiden*$Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_endschneiden;
+ $wtvzuschusspapier += (10 + $auflage * 0.002) / $drucknutzen;
+
+ //falzung Digitaldruck
+ $zeit_falzung = 0;
+ $fakt_falzung = 1;
+
+ if(!($falzung == 'nein' || $falzung == 0)){
+ $zeit_falzung = (15+$falzung*$Pfalzbruch_ruesten)/60+($auflage/3000);
+ if (($breite_offen> 14.7 && $hoehe_offen > 14.7 && $breite_offen< 85 && $hoehe_offen < 55 && $breite_geschl > 3.6 && $hoehe_geschl > 3.6 && $falzung < 6) ||
+ ($breite_offen > 14.7 && $hoehe_offen > 14.7 && $breite_offen < 55 && $hoehe_offen < 85 && $breite_offen > 3.6 && $hoehe_geschl > 3.6 && $falzung < 6)){
+ $fakt_falzung = 1;
+ }else{
+ $fakt_falzung = $Pfaktor_klein_gross_falzung;
+ if($falzung >5){
+ $fakt_falzung *= 1.5;
+ }
+ if(!($falzung == 1 && $papiersorte_grammatur > 169)){ //wenn nur Morgana nötig ist
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ }
+ }
+ if($falzart==5 || $falzart==6){
+ $zeit_falzung += 1 + $auflage/$wtvgeschwindigkeit*0.3;
+ }
+ if($falzart==99){
+ $zeit_falzung += 1 + $auflage/$wtvgeschwindigkeit*0.3;
+ }
+
+ $wtvzuschusspapier += ($auflage * 0.005 + $falzung * 30) / $drucknutzen;
+ if($falzung == 1 && $papiersorte_grammatur > 169){ //wenn nur Morgana nötig ist
+ $zeit_falzung = 0;
+ }
+ }
+ $kosten_falzung = $zeit_falzung * $fakt_falzung * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_falzung;
+
+
+ //nuten Digitaldruck
+ $zeit_nuten = 0;
+ if($papiersorte_grammatur > 169 && (!($falzung == 'nein' || $falzung == 0 || $nutlinien == 0))){
+ $zeit_nuten = ( $auflage / 1000 + 0.5 );
+ $wtvzuschusspapier += ($auflage * 0.005 + 30) / $drucknutzen;
+ }
+ $kosten_nuten = $zeit_nuten * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_nuten;
+
+
+ //loseblatt Digitaldruck
+ $kosten_loseblatt = $loseblatt * 20;
+
+
+ //ecken runden Digitaldruck
+ $kosten_eckenrunden = 0;
+ if($ecken_runden != 0){
+ $kosten_eckenrunden = 1/$grammaturfaktor_geschw_wtv * $auflage*$Pplano_fa_tsdpreis_ecken_runden/1000+$Pplano_fa_fixpreis_ecken_runden;
+ }
+
+ $zeit_eckenrunden = $kosten_eckenrunden / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_eckenrunden;
+
+
+ //bohren, lochen Digitaldruck
+ $kosten_bohren_lochen = 0;
+ if($bohren_lochen != 0){
+ $bohrformatliste = array(array(0.1,2),array(5,1.5),array(10,1.2),array(20,1),array(650,1.2),array(1300,1.4));
+ foreach($bohrformatliste as $n){
+ if($breite_offen*$hoehe_offen >= $n[0]){
+ $bohraufschlag = $n[1];
+ }
+ }
+ if($stanzung != 0){
+ $bohraufschlag *= 2;
+ }
+ if(($bohren_lochen == 2) && ($bohraufschlag == 1)){$bohren_lochen = 1;} //für DIN A4 2-fach Sonderpreis
+ $kosten_bohren_lochen = $bohraufschlag * ($Pplano_fa_fixpreis_bohren + 1/$grammaturfaktor_geschw_wtv * $auflage/1000*$bohren_lochen*$Pplano_fa_tsdpreis_bohren);
+ }
+ $zeit_bohren_lochen = $kosten_bohren_lochen / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_bohren_lochen;
+
+
+ //verschluss Digitaldruck
+ $kosten_verschluss = 0;
+ $zeit_verschluss = 0;
+ $kosten_haftstreifen_material_gesamt = $haftstreifen_material_pro_cm * min($hoehe_offen, $breite_offen) * $auflage;
+
+ if($verschluss == 1){
+ $kosten_verschluss = $Pklebepunkte_lose_pro_tausend/1000*$auflage+$Pklebepunkte_lose_fix;
+ $zeit_verschluss = 1;
+ }
+ if($verschluss == 2){
+ $kosten_verschluss = $Pklebepunkte_vorkonf_pro_tausend/1000*$auflage+$Pklebepunkte_vorkonf_fix;
+ $zeit_verschluss = $auflage / 600;
+ }
+ if($verschluss == 3){
+ $kosten_verschluss = $Phaftstreifen_lose_pro_tausend/1000*$auflage+$Phaftstreifen_lose_fix+$kosten_haftstreifen_material_gesamt;
+ $zeit_verschluss = 1;
+ }
+ if($verschluss == 4){
+ $kosten_verschluss = $Phaftstreifen_vorkonf_pro_tausend/1000*$auflage+$Phaftstreifen_vorkonf_fix+$kosten_haftstreifen_material_gesamt;
+ $zeit_verschluss = $auflage / 400;
+ }
+
+ if($verschluss == 6){
+ $kosten_verschluss = 0.42*$auflage+95;
+ $zeit_verschluss = $auflage / 300;
+ }
+
+ if($verschluss != 0){
+ $wtvzuschusspapier += ($auflage * 0.01 + 30) / $drucknutzen;
+ }
+ $wtvfremdkosten += $kosten_verschluss;
+
+
+ //nummerierung, codierung Digitaldruck
+ $kosten_personalisierung = 0;
+
+ if($personalisierung != 0){
+ $kosten_personalisierung = 50 + ($personalisierung * 20 * $auflage / 1000);
+ $wtvzuschusspapier += ($auflage * 0.01 + 50) / $drucknutzen;
+ }
+ $wtvfremdkosten += $kosten_personalisierung;
+
+
+ //oesen Digitaldruck
+ $kosten_oesen = 0;
+ if($oesen != 0){
+ $kosten_oesen = $Poesen_fixpreis + $auflage * $Poesen_stkpreis;
+ $wtvzuschusspapier += ($auflage * 0.005 + 30) / $drucknutzen;
+ }
+ $wtveigenkosten += $kosten_oesen;
+
+
+ //stanzung Digitaldruck
+ $kosten_stanzung = 0;
+ $kosten_werkzeug_stanzung_1N = 0;
+ $kosten_werkzeug_stanzung = 0;
+ $nutzen_stanzung = 1;
+ $stanzmaschine = 'keine';
+ if($stanzung != 0 && $stanzung != 99){
+ $maxnutzenanzTiegel = max(floor(33/($breite_offen+1)) * floor(23/($hoehe_offen+1)), floor(23/($breite_offen+1)) * floor(33/($hoehe_offen+1))); //Nutzenberechnung
+ $maxnutzenanzZylinder = max(floor(98/($breite_offen+1)) * floor(68/($hoehe_offen+1)), floor(68/($breite_offen+1)) * floor(98/($hoehe_offen+1))); //Nutzenberechnung
+ $wtvzuschusspapier += ($auflage * 0.01 + 50) / $drucknutzen;
+ $kosten_werkzeug_stanzung_1N = sqrt($breite_offen*$hoehe_offen)*2+85;
+ if(($breite_offen > 33 || $hoehe_offen > 33) || ($breite_offen > 23 && $hoehe_offen > 23)){
+ $kosten_stanzung = $Pplano_stanzen_fix2 + $auflage * $Pplano_stanzen_var2 / 1000;
+ $stanzmaschine = "zylinder";
+ if($stanzung == 2){
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }
+ }else{
+ $kosten_stanzung = $Pplano_stanzen_fix1 + $auflage * $Pplano_stanzen_var1 / 1000;
+ $stanzmaschine = "tiegel";
+ if($stanzung == 2){
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix2;
+ $kosten_stanzen_var = $Pplano_stanzen_var2;
+ $stanzmaschine_temp = "zylinder";
+ for ($ntz = 1; $ntz <= $maxnutzenanzZylinder; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix1;
+ $kosten_stanzen_var = $Pplano_stanzen_var1;
+ $stanzmaschine_temp = "tiegel";
+ for ($ntz = 1; $ntz <= $maxnutzenanzTiegel; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ }
+
+ //Sonderfall Banderolen korrigieren
+ if($stanzmaschine = 'zylinder' && $stanzung == 1 && ($nutzen_stanzung * $breite_offen < 20 || $nutzen_stanzung * $hoehe_offen < 20)){
+ $kosten_stanzung += 35;
+ }
+
+ $wtvfremdkosten += $kosten_stanzung;
+
+
+ //bündeln Digitaldruck
+ $kosten_buendeln = 0;
+ $buendelfaktor = 1;
+ if($hoehe_geschl > 29.7 || $breite_geschl > 29.7 || $hoehe_offen > 29.7 || $breite_offen > 29.7){
+ $buendelfaktor = 2;
+ }
+
+ if($falzung == 'nein' || $falzung == 0){
+ $buendelfaktor *= 2;
+ }
+
+ if($buendeln != 0){
+ $kosten_buendeln = $Pplano_fa_fixpreis_buendeln + $auflage / $buendeln * $Pplano_fa_preis_je_buendel * $buendelfaktor;
+ }
+ $wtveigenkosten += $kosten_buendeln;
+
+
+ //freie Positionen
+ $kosten_freipos10 = $frei10fixpreis + $frei10tsdpreis / 1000 * $auflage;
+ $kosten_freipos20 = $frei20fixpreis + $frei20tsdpreis / 1000 * $auflage;
+ $wtvfremdkosten += $kosten_freipos10 + $kosten_freipos20;
+
+
+ //Musterversand
+ $kosten_musterversand = $musterversand * 8;
+ $wtvfremdkosten += $kosten_musterversand;
+
+
+ //Neutralversand, Absender
+ $kosten_absender = $absender * 0;
+ $wtvfremdkosten += $kosten_absender;
+
+
+ //Endabrechnung
+ $wtvzuschusspapier = ceil($wtvzuschusspapier);
+ $wtvzuschusspapier_kosten = ($Druckbogenbreite * $Druckbogenhoehe * $papiersorte_grammatur * $papiersorte_value * $wtvzuschusspapier) / 1000000000;
+
+
+ //Werte ausgeben
+ if($what=='debug'){
+ echo('-------------------- Digitaldruck WTV Plano-Fa --------------------'."\n");
+ echo('$kosten_endschneiden: '.round($kosten_endschneiden,2).' | $zeit_endschneiden: '.round($zeit_endschneiden,2)."\n");
+ if($kosten_falzung != 0){echo('$kosten_falzung: '.round($kosten_falzung,2).' | $zeit_falzung: '.round($zeit_falzung,2)."\n");
+ echo('$fakt_falzung: '.$fakt_falzung."\n");
+ }
+ if($kosten_nuten != 0){echo('$kosten_nuten: '.round($kosten_nuten,2).' | '.'$zeit_nuten: '.round($zeit_nuten,2)."\n");}
+
+ if($kosten_personalisierung != 0){echo('$kosten_personalisierung: '.round($kosten_personalisierung,2)."\n");}
+ if($kosten_eckenrunden != 0){echo('$kosten_eckenrunden: '.round($kosten_eckenrunden,2).' | '.'$zeit_eckenrunden: '.round($zeit_eckenrunden,2)."\n");}
+ if($kosten_bohren_lochen != 0){echo('$kosten_bohren_lochen: '.round($kosten_bohren_lochen,2).' | '.'$zeit_bohren_lochen: '.round($zeit_bohren_lochen,2)."\n");}
+ if($kosten_loseblatt != 0){echo('$kosten_loseblatt: '.round($kosten_loseblatt,2).' | '.'$zeit_loseblatt: '."\n");}
+ echo('$wtvzuschusspapier_kosten: '.round($wtvzuschusspapier_kosten,2).' | $wtvzuschusspapier: '.round($wtvzuschusspapier,2)."\n");
+ echo('----------------------------------------'."\n");
+ echo('$wtvfrachtkosten: '.round($wtvfrachtkosten,2)."\n");
+ echo('$wtveigenkosten: '.round($wtveigenkosten,2)."\n");
+ echo('$wtvfremdkosten: '.round($wtvfremdkosten,2)."\n\n");
+ }
+
+ return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung];
+
+}
+
+function getZUABPlanoDigiFA22($what, $auflage, $eigenkosten_total, $fremdkosten_total, $papiersorte_sammelform, $druckfarben_inhalt, $produktionszeit, $qualitaet, $sortenzahl, $breite_offen, $hoehe_offen, $provisionsart, $provisionswert, $aktionsrabatt, $kundengruppenrabatt, $onlinerabatt){
+ $preisaend = 0;
+ $provisions_betrag = 0;
+ $aktionsrabatt_betrag = 0;
+ $onlinerabatt_betrag = 0;
+ $kundengruppenrabatt_betrag = 0;
+ $produktionszeit_betrag = 0;
+ $qualitaet_betrag = 0;
+
+ if($onlinerabatt == 1){$onlinerabatt_betrag = -10;}
+ if($kundengruppenrabatt == 1){$kundengruppenrabatt_betrag = $eigenkosten_total* -0.03;}
+ if($aktionsrabatt == 1){$aktionsrabatt_betrag = $eigenkosten_total * 0.04;}
+ if($papiersorte_sammelform == 1){$preisaend += -10;}
+ if($provisionsart == 1){$provisions_betrag = $provisionswert / 100 * ($eigenkosten_total+$fremdkosten_total);}
+ if($produktionszeit == 1){}
+ if($produktionszeit == 2){}
+ if($produktionszeit == 3){}
+ if($qualitaet == 1){}
+ if($qualitaet == 2){}
+ if($qualitaet == 3){}
+
+ $preisaend = $onlinerabatt_betrag + $aktionsrabatt_betrag + $kundengruppenrabatt_betrag + $provisions_betrag + $produktionszeit_betrag + $qualitaet_betrag;
+
+ return [$preisaend, $onlinerabatt_betrag, $aktionsrabatt_betrag, $kundengruppenrabatt_betrag, $provisions_betrag, $produktionszeit_betrag, $qualitaet_betrag];
+}
+
+function getPrintDIGIBRO22(){
+ return 0;
+}
+
+function getDigitALLPlanoFa22($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $personalisierung, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $breite_geschl, $hoehe_geschl, $loseblatt, $anzblattjeblock, $papiersorte_grammatur, $papiersorte_value, $papiersorte_sammelform, $falzung, $falzart, $bohren_lochen, $verschluss, $klebepunkte_durchmesser, $ecken_runden, $buendeln, $stanzung, $stanzart, $nutlinien, $oesen, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $musterversand, $absender, $produktionszeit, $qualitaet, $provisionsart, $provisionswert, $aktionsrabatt, $kundengruppenrabatt, $onlinerabatt){
+
+ $eigenkosten_prepress = getPrePressDIGIPlanoFa22($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $loseblatt, $personalisierung);
+
+ [$drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender] = getDruckNutzenDIGI($breite_offen, $hoehe_offen);
+
+ [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung] = getWTVDIGIPlanoFa22($what, $auflage, $drucknutzen, $hoehe_offen, $breite_offen, $hoehe_geschl, $breite_geschl, $papiersorte_grammatur, $papiersorte_value, $sortenzahl, $falzung, $falzart, $loseblatt, $bohren_lochen, $verschluss, $klebepunkte_durchmesser, $ecken_runden, $personalisierung, $buendeln, $stanzung, $stanzart, $nutlinien, $oesen, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $musterversand, $absender);
+
+ [$eigenkosten_digitaldruck, $fremdkosten_digitaldruck, $drucknutzen, $nettobg, $zuschuss_digitaldruck, $wtvzuschusspapier, $papierkosten] = getPrintDIGIPlanoFa22($what, $papiersorte_grammatur, $papiersorte_value, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $sortenzahl, $papiersorte_sammelform, $anzblattjeblock, $wtvzuschusspapier);
+
+ [$preisaend, $onlinerabatt_betrag, $aktionsrabatt_betrag, $kundengruppenrabatt_betrag, $provisions_betrag, $produktionszeit_betrag, $qualitaet_betrag] = getZUABPlanoDigiFA22($what, $auflage, $eigenkosten_digitaldruck+$eigenkosten_prepress+$wtveigenkosten, $fremdkosten_digitaldruck+$wtvfremdkosten, $papiersorte_sammelform, $druckfarben_inhalt, $produktionszeit, $qualitaet, $sortenzahl, $breite_offen, $hoehe_offen, $provisionsart, $provisionswert, $aktionsrabatt, $kundengruppenrabatt, $onlinerabatt);
+
+ $endpreisnetto = $eigenkosten_prepress + $eigenkosten_digitaldruck + $papierkosten + $fremdkosten_digitaldruck + $wtveigenkosten + $wtvfremdkosten + $wtvfrachtkosten;
+
+ $versandgewicht = 1.1 * $breite_offen * $hoehe_offen / 10000 * $auflage * $papiersorte_grammatur;
+
+ return [$endpreisnetto, $onlinerabatt_betrag, $kundengruppenrabatt_betrag, $aktionsrabatt_betrag, $versandgewicht, $nettobg, $zuschuss_digitaldruck, $drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender, $preisaend, $provisions_betrag, $produktionszeit_betrag, $qualitaet_betrag];
+
+}
+
+function getAnzDruckfarbenBedruckteSeiten21($farbauswahl){
+ $farbanz_liste = array(4,4,4,5,5,6,1,1,2,2,2,2,3,3,3,1,1,4,4,6,7,8,4);
+ $bedruckteseiten_liste = array(1,2,2,1,2,2,1,2,1,1,2,2,1,2,2,1,2,1,2,1,1,1,1);
+ return [$farbanz_liste[$farbauswahl-1],$bedruckteseiten_liste[$farbauswahl-1]];
+}
+
+function getMaschine($breite_offen, $hoehe_offen) {
+ if($breite_offen > 49 || $hoehe_offen > 49) {
+ return 'man';
+ }
+ return 'gto';
+}
+
+function getGreiferRand($format) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+ if($maschine == 'man') {
+ return 2.3;
+ }
+ return 1.4;
+}
+
+function getBogenRaender($format) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+ if($maschine == 'man') {
+ return 1.5;
+ }
+ return 0.8;
+}
+
+function getAnzFarbwechselMAN($farbauswahl) {
+ if($farbauswahl == 1) {
+ return 0;
+ }
+ if($farbauswahl == 2) {
+ return 0;
+ }
+ if($farbauswahl == 3) {
+ return 0;
+ }
+ if($farbauswahl == 4) {
+ return 1;
+ }
+ if($farbauswahl == 5) {
+ return 1;
+ }
+ if($farbauswahl == 6) {
+ return 2;
+ }
+ if($farbauswahl == 7) {
+ return 0;
+ }
+ if($farbauswahl == 8) {
+ return 0;
+ }
+ if($farbauswahl == 9) {
+ return 1;
+ }
+ if($farbauswahl == 10) {
+ return 2;
+ }
+ if($farbauswahl == 11) {
+ return 1;
+ }
+ if($farbauswahl == 12) {
+ return 2;
+ }
+ if($farbauswahl == 13) {
+ return 3;
+ }
+ if($farbauswahl == 14) {
+ return 2;
+ }
+ if($farbauswahl == 15) {
+ return 3;
+ }
+ if($farbauswahl == 16) {
+ return 1;
+ }
+ if($farbauswahl == 17) {
+ return 1;
+ }
+ if($farbauswahl == 18) {
+ return 0.5;
+ }
+ if($farbauswahl == 19) {
+ return 2;
+ }
+ if($farbauswahl == 20) {
+ return 2;
+ }
+ if($farbauswahl == 21) {
+ return 3;
+ }
+ if($farbauswahl == 22) {
+ return 4;
+ }
+ if($farbauswahl == 23) {
+ return 4;
+ }
+
+ return 10;
+}
+
+function getAnzFarbwechselGTO($farbauswahl) {
+ if($farbauswahl == 1) {
+ return 3;
+ }
+ if($farbauswahl == 2) {
+ return 3;
+ }
+ if($farbauswahl == 3) {
+ return 3;
+ }
+ if($farbauswahl == 4) {
+ return 4;
+ }
+ if($farbauswahl == 5) {
+ return 4;
+ }
+ if($farbauswahl == 6) {
+ return 5;
+ }
+ if($farbauswahl == 7) {
+ return 0;
+ }
+ if($farbauswahl == 8) {
+ return 0;
+ }
+ if($farbauswahl == 9) {
+ return 1;
+ }
+ if($farbauswahl == 10) {
+ return 2;
+ }
+ if($farbauswahl == 11) {
+ return 1;
+ }
+ if($farbauswahl == 12) {
+ return 2;
+ }
+ if($farbauswahl == 13) {
+ return 3;
+ }
+ if($farbauswahl == 14) {
+ return 2;
+ }
+ if($farbauswahl == 15) {
+ return 3;
+ }
+ if($farbauswahl == 16) {
+ return 1;
+ }
+ if($farbauswahl == 17) {
+ return 1;
+ }
+ if($farbauswahl == 18) {
+ return 4;
+ }
+ if($farbauswahl == 19) {
+ return 6;
+ }
+ if($farbauswahl == 20) {
+ return 6;
+ }
+ if($farbauswahl == 21) {
+ return 7;
+ }
+ if($farbauswahl == 22) {
+ return 8;
+ }
+ if($farbauswahl == 23) {
+ return 4;
+ }
+
+ return 10;
+}
+
+function getPrePressPlanoFa21($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen) {
+
+ //Parameter
+ $Pstundensatz_vorstufe = 70;
+ $Pplano_fa_aufpreis_anderes_dateiformat = 25;
+ $Pumweltzeichen_fsc = 15;
+ $Pumweltzeichen_blauerengel = 335;
+ $Psortenzeit_vorstufe = 3;
+ $Pgrundzeit_vorstufe = 20;
+ $Pplano_digitalproof_minimal = 15;
+
+ $bedruckteSeiten = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt)[1];
+
+ $datenuebernahme_kosten = ($Pgrundzeit_vorstufe+$sortenzahl*$bedruckteSeiten*$Psortenzeit_vorstufe)/60*$Pstundensatz_vorstufe;
+
+ $dateiformat_kosten = 0;
+ if($dateiformat_geliefert != 1){
+ $dateiformat_kosten = $Pplano_fa_aufpreis_anderes_dateiformat;
+ }
+
+ $korrekturabzug_kosten = 0;
+ if($korrekturabzug == 3){
+ $korrekturabzug_kosten = max($Pplano_digitalproof_minimal, (($breite_offen*$hoehe_offen)/62*$sortenzahl*$bedruckteSeiten));
+ }
+
+ $umweltzeichen_kosten = 0;
+ if($umweltzeichen == 2){
+ $umweltzeichen_kosten = $Pumweltzeichen_fsc;
+ }
+ if($umweltzeichen == 3){
+ $umweltzeichen_kosten = $Pumweltzeichen_blauerengel;
+ }
+
+ $eigenkosten = $datenuebernahme_kosten + $dateiformat_kosten + $korrekturabzug_kosten + $umweltzeichen_kosten;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- PrePress Plano-Fa --------------------'."\n");
+ echo('$datenuebernahme_kosten: '.round($datenuebernahme_kosten,2)."\n");
+ echo('$dateiformat_kosten: '.$dateiformat_kosten."\n");
+ echo('$umweltzeichen_kosten: '.$umweltzeichen_kosten."\n");
+ echo('$korrekturabzug_kosten: '.round($korrekturabzug_kosten,2)."\n\n");
+ }
+
+ return $eigenkosten;
+}
+
+function getPrintPlanoFa21($what, $papierType1, $papierType2, $papierType3, $papierType4, $papierType5, $papierType6, $papierType7, $papierType8, $papierType9, $papierType10, $papierType11, $papierType12, $papierType13, $papierType14, $papiersorte_grammatur, $papiersorte_value, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $drucklack, $papier_vs_rs_unterschiedlich, $sortenzahl, $anzblattjeblock, $zusdruckplatten, $zusfarbwechsel, $lackart, $papiersorte_sammelform) {
+
+ if($anzblattjeblock == 0){
+ $anzblattjeblock=1;
+ }
+ $auflage *= $anzblattjeblock;
+ $price = 9999999999;
+ $nutzen = 9999999999;
+ $nettobg = 9999999999;
+ $zuschuss = 9999999999;
+ $bogen_hoehe = 1000;
+ $bogen_breite = 1000;
+ $ctp = 999999999;
+ $druckgaenge = 99999999;
+ $stundensatz = 99999999;
+ $maschine = 'man';
+ $anzahlFarbw = 999;
+ $druckgeschwindigkeit = 999;
+ $passtdrauf = 0;
+ $sortenaufschlag = 999999;
+ $zuschussfaktor = 9;
+ $druckkosten = 999999;
+ $papierkosten = 999999;
+ $druckzeittotal = 999999;
+ $druckzeitruesten = 999999;
+ $druckzeitfortdruck = 999;
+ $Druckfarbenpreis = 1.2; // Preisfaktor für Fremdkosten
+ $rabattierfaehigekosten = 0;
+ // war + 0.4 - evtl. nur +0.3 für nicht gestanzt/perf./ ... sonst +1.2 ??? !!!
+ $hoehe_offen += 0.3;
+ $breite_offen += 0.3;
+ $kostenDruckplatte = 18;
+ $Paufpreis_drucklack_matt_voll = 10;
+ $Paufpreis_drucklack_matt_partiell = 30;
+ $Paufpreis_drucklack_glzd_voll = 55;
+ $Paufpreis_drucklack_glzd_partiell = 95;
+ $farbarray = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt);
+ $anzahlDruckfarben = $farbarray[0];
+ $bedruckteSeiten = $farbarray[1];
+
+ $sammelarray = getSammelformWertePlanoFa21($auflage, $hoehe_offen, $breite_offen, $papiersorte_sammelform, $bedruckteSeiten, $sortenzahl);
+ $sammelfaktor_papier = $sammelarray[2];
+ $sammelwahrscheinlichkeit_menge = $sammelarray[1];
+ $sammelwahrscheinlichkeit_format_sorten = $sammelarray[0];
+
+ $formate=array();
+
+ if($papierType1) {
+ $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0);
+ }
+ if($papierType1 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1);
+ }
+
+ if($papierType2) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0);
+ }
+ if($papierType2 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1);
+ }
+
+ if($papierType3) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0);
+ }
+ if($papierType3 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1);
+ }
+
+ if($papierType4) {
+ $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0);
+ }
+ if($papierType4 && $papier_vs_rs_unterschiedlich == 0) {
+ $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 && $papier_vs_rs_unterschiedlich == 0) {
+ $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 && $papier_vs_rs_unterschiedlich == 0) {
+ $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 && $papier_vs_rs_unterschiedlich == 0) {
+ $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 && $papier_vs_rs_unterschiedlich == 0) {
+ $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 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1);
+ }
+
+ if($papierType10) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0);
+ }
+ if($papierType10 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1);
+ }
+
+ if($papierType11) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0);
+ }
+ if($papierType11 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1);
+ }
+
+ if($papierType12) {
+ $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0);
+ }
+ if($papierType12 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1);
+ }
+
+ if($papierType13) { //wenn 31.5 x 44 dann auch 22 x 31.5 mgl.
+ $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0);
+ $formate[] = array('type' => 7, 'breite' => 31.5, 'hoehe' => 22, 'umschlagen' => 0);
+ }
+ if($papierType13 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1);
+ $formate[] = array('type' => 7, 'breite' => 31.5, 'hoehe' => 22, 'umschlagen' => 1);
+ }
+
+ if($papierType14) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0);
+ }
+ if($papierType14 && $papier_vs_rs_unterschiedlich == 0) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1);
+ }
+
+
+ foreach($formate as $key => $format) {
+ $greiferRand = getGreiferRand($format);
+ $bogenRaender = getBogenRaender($format);
+
+ if($format['umschlagen'] == 0) {
+
+ $nutzen_calc = max(
+ ((floor(($format['breite']-$bogenRaender)/$breite_offen))*(floor(($format['hoehe']-$greiferRand)/$hoehe_offen))),
+ ((floor(($format['breite']-$bogenRaender)/$hoehe_offen)*(floor(($format['hoehe']-$greiferRand)/$breite_offen))))
+ );
+
+ }else{
+ $nutzen_calc= 2*floor((max(
+ ((floor(($format['breite']-$bogenRaender)/$breite_offen))*(floor(($format['hoehe']-$greiferRand)/$hoehe_offen))),
+ ((floor(($format['breite']-$bogenRaender)/$hoehe_offen)*(floor(($format['hoehe']-$greiferRand)/$breite_offen))))
+ ))/2);
+
+ }
+
+ if($nutzen_calc < 1){
+ $nutzen_calc = 0.001; // division by zero vermeiden, hohen Preis künstl. errechnen
+ }
+
+ if($bedruckteSeiten==2 && $papier_vs_rs_unterschiedlich==0 && $nutzen_calc > 1 && $format['umschlagen'] == 1){
+ $ctp1 = ($anzahlDruckfarben+$drucklack)*$bedruckteSeiten/2;
+ }else{
+ $ctp1 = ($anzahlDruckfarben+$drucklack)*$bedruckteSeiten;
+ if($druckfarben_inhalt == 2){
+ $ctp1 = 5 + $drucklack; // für den Fall "4/1 Euroskala" ohne Umschlagen wichtig
+ }
+ }
+
+
+ $maschine1 = getMaschine($format['breite'], $format['hoehe']);
+
+ if($maschine1 == "gto") {
+ $druckgaenge1 = $bedruckteSeiten*($anzahlDruckfarben+$drucklack);
+ $fortdruckmaschine1 = 0;
+ $anzahlFarbw1 = getAnzFarbwechselGTO($druckfarben_inhalt);
+ $stundensatz1 = 40 + $anzahlFarbw1*5;
+ $grundzuschuss = 50;
+ $sammelfaktor_druckmaschine = 0.3;
+ if($papiersorte_grammatur > 300){$stundensatz1 *= 4;}
+ }else{
+ $druckgaenge1 = ceil(($anzahlDruckfarben+$drucklack)/5)*$bedruckteSeiten;
+ $fortdruckmaschine1 = 2500;
+ $anzahlFarbw1 = getAnzFarbwechselMAN($druckfarben_inhalt);
+ $stundensatz1 = getMaschineKosten21($format, $anzahlFarbw1);
+ $grundzuschuss = 100;
+ $sammelfaktor_druckmaschine = 1.0;
+ }
+
+ if($nutzen_calc/$sortenzahl < $bedruckteSeiten) {
+ $passtdrauf1 = FALSE;
+ $sortenaufschlag1 = ($sortenzahl-1)*4;
+ $zuschussfaktor1 = 1;
+ if($bedruckteSeiten==2 && $papier_vs_rs_unterschiedlich==0 && $nutzen_calc > 1 && $format['umschlagen'] == 1) {
+ $ctp1 = ceil($sortenzahl / $nutzen_calc * $bedruckteSeiten) * $anzahlDruckfarben + $drucklack;
+ }else{
+ $ctp1 = ceil($sortenzahl / $nutzen_calc) * $bedruckteSeiten * $anzahlDruckfarben + $drucklack;
+ if($druckfarben_inhalt == 2){
+ $ctp1 = (5 + $drucklack) * ceil($sortenzahl / $nutzen_calc); // für den Fall "4/1 Euroskala" ohne Umschlagen wichtig
+ }
+ }
+ }else{
+ $passtdrauf1 = TRUE;
+ $sortenaufschlag1 = ($sortenzahl-1)*(10+$breite_offen*$hoehe_offen/30);
+ $zuschussfaktor1 = 1;
+ }
+
+ $zuschuss1 = ceil(max($grundzuschuss*2,$grundzuschuss + (($druckgaenge1-1)*$grundzuschuss/4) + $ctp1*$grundzuschuss*0.75 + ceil($auflage/$nutzen_calc*0.02*$druckgaenge1)*$zuschussfaktor1 + ($zusfarbwechsel+$zusdruckplatten)*$grundzuschuss));
+
+ $wtvgeschwindigkeit1 = (log10($auflage*$auflage)*900)*(100-sqrt((150-$papiersorte_grammatur)*(150-$papiersorte_grammatur))/3.6)/100;
+ $druckgeschwindigkeit1 = $wtvgeschwindigkeit1 + $fortdruckmaschine1;
+
+ $nettobg1 = ceil($auflage/$nutzen_calc);
+
+ $druckzeit_farbw1 = ($anzahlFarbw1*45/60);
+ $druckzeitruesten1 = (20*$druckgaenge1/60)+($ctp1*5/60)+$druckzeit_farbw1;
+ $druckzeitfortdruck1 = (($zuschuss1+$nettobg1)/$druckgeschwindigkeit1*$druckgaenge1);
+ $druckzeittotal1 = $druckzeitruesten1 + $druckzeitfortdruck1;
+
+ $druckkosten1 = $druckzeittotal1 * $stundensatz1;
+
+ $papierwert1 = ($format['hoehe'] * $format['breite'] * $papiersorte_grammatur * $papiersorte_value / 1000000000);
+ $nettobgkosten1 = $papierwert1 * $nettobg1;
+ $zuschusskosten1 = $papierwert1 * $zuschuss1;
+ $papierkosten1 = $nettobgkosten1 + $zuschusskosten1;
+
+ if((in_array($druckfarben_inhalt,array(1,2,3,18,19))) && ($papiersorte_sammelform != 1)){
+ $sammelfaktor = (($sammelwahrscheinlichkeit_format_sorten*75)*($sammelwahrscheinlichkeit_menge*25)/(75*25))*$sammelfaktor_papier*$sammelfaktor_druckmaschine;
+ $rabattierfaehigekosten1 = ($sammelfaktor) * (($ctp1 * $kostenDruckplatte) + (($druckzeitruesten1 - $druckzeit_farbw1 * 0.75) * $stundensatz1));
+ }else{
+ $sammelfaktor = 0;
+ $rabattierfaehigekosten1 = 0;
+ }
+
+ $price_calc = ($papierkosten1)+($kostenDruckplatte*$ctp1)+($druckkosten1)+($sortenaufschlag1);
+
+
+ if($what=='debug'){
+ echo('Umschlagen: '.$format['umschlagen'].' | ');
+ echo($format['hoehe'].' x '.$format['breite'].' >>> '.round($price_calc,2).' - '.round($rabattierfaehigekosten1,2).' = '.round(($price_calc-$rabattierfaehigekosten1),2)."\n");
+ echo(' mit Nettobg.: '.$nettobg1.' = ('.round($nettobgkosten1,2).' €) + Zuschuss: '.$zuschuss1.' = ('.round($zuschusskosten1,2)." €)\n");
+ echo(' mit CTP: '.$ctp1.' | Ntz: '.$nutzen_calc.' | Sammelfak.: '.round($sammelfaktor,2)."\n");
+ if(($price_calc - $rabattierfaehigekosten1) < ($price - $rabattierfaehigekosten) && $nettobg1 != 0){
+ echo(' >>> günstiger als Vorgänger'."\n\n");
+ }
+ }
+
+ if(($price_calc - $rabattierfaehigekosten1) < ($price - $rabattierfaehigekosten) && $nettobg1 != 0) {
+ $price = $price_calc;
+ $nutzen = $nutzen_calc;
+ $ctp = $ctp1;
+ $zuschuss = $zuschuss1;
+ $nettobg = $nettobg1;
+ $bogen_hoehe = $format['hoehe'];
+ $bogen_breite = $format['breite'];
+ $druckgaenge = $druckgaenge1;
+ $druckgeschwindigkeit = $druckgeschwindigkeit1;
+ $stundensatz = $stundensatz1;
+ $maschine = $maschine1;
+ $anzahlFarbw = $anzahlFarbw1;
+ $passtdrauf = $passtdrauf1;
+ $sortenaufschlag = $sortenaufschlag1;
+ $zuschussfaktor = $zuschussfaktor1;
+ $druckkosten = $druckkosten1;
+ $papierkosten = $papierkosten1;
+ $druckzeittotal = $druckzeittotal1;
+ $druckzeitruesten = $druckzeitruesten1;
+ $druckzeit_farbw = $druckzeit_farbw1;
+ $druckzeitfortdruck = $druckzeitfortdruck1;
+ $rabattierfaehigekosten = $rabattierfaehigekosten1;
+ }
+ }
+
+ // zurückkorrigieren für ZUAB-Formel
+ $rabattierfaehigekosten = ($ctp * $kostenDruckplatte) + (($druckzeitruesten - $druckzeit_farbw * 0.75) * $stundensatz) + ($zuschuss * $bogen_hoehe * $bogen_breite * $papiersorte_grammatur * $papiersorte_value / 1000000000);
+
+ $lackart_kosten = 0;
+ if($drucklack != '0'){
+ if($lackart == '2'){
+ $lackart_kosten = $Paufpreis_drucklack_matt_voll;
+ }
+ if($lackart == '3'){
+ $lackart_kosten = $Paufpreis_drucklack_matt_partiell;
+ }
+ if($lackart == '4'){
+ $lackart_kosten = $Paufpreis_drucklack_glzd_voll;
+ }
+ if($lackart == '5'){
+ $lackart_kosten = $Paufpreis_drucklack_glzd_partiell;
+ }
+ }
+
+ $zusdruckplatten_kosten = $zusdruckplatten*($stundensatz/60*5+$kostenDruckplatte+20);
+
+ $papieraufschlagfaktor = 1.35-(MIN(($papierkosten/$papiersorte_value*100)/5000,0.2));
+ $price -= $papierkosten;
+ $papierkosten *= $papieraufschlagfaktor;
+ $price += $papierkosten;
+ $farbkosten = ($nettobg + $zuschuss) * ($anzahlDruckfarben+$drucklack*6+$anzahlFarbw) * $Druckfarbenpreis * $bedruckteSeiten / 1000;
+
+ $zusfarbwechsel_kosten = $zusfarbwechsel*45*$stundensatz/60;
+ $price += $farbkosten + $lackart_kosten + $zusfarbwechsel_kosten + $zusdruckplatten_kosten;
+ $eigenkosten = $price - $farbkosten - $papierkosten;
+ $fremdkosten = $price - $eigenkosten;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- PRINT Plano-Fa --------------------'."\n");
+ echo($maschine.' = '.$stundensatz.' Euro Std.Satz'."\n");
+ echo('Papier: '.$bogen_hoehe.' x '.$bogen_breite.' mit '.$nettobg.' + '.$zuschuss.' = '.($zuschuss+$nettobg).' in '.$nutzen.' Nutzen | ');
+ echo("Umschlagen: ".($format['umschlagen'])."\n");
+ echo('Geschw.: '.round($druckgeschwindigkeit,2).' | Druckgänge: '.$druckgaenge.' | CTP: '.$ctp.' | Farbw.: '.$anzahlFarbw.' '."\n");
+ echo('Druckzeit rüsten: '.round($druckzeitruesten,1).' | Druckzeit Fortdruck: '.round($druckzeitfortdruck,1)."\n");
+ if($sortenzahl > 1){echo('Sorten: '.$sortenzahl.' | Sortenaufschlag: '.(round($sortenaufschlag,2)).' | Passt drauf: ');
+ echo (int)$passtdrauf;
+ echo("\n");};
+ if($zusdruckplatten_kosten != 0){echo('$zusdruckplatten_kosten: '.$zusdruckplatten_kosten."\n");}
+ if($zusfarbwechsel_kosten != 0){echo('$zusfarbwechsel_kosten: '.$zusfarbwechsel_kosten."\n");}
+ if($lackart_kosten != 0){echo('$lackart_kosten: '.$lackart_kosten."\n");}
+ echo('Kosten CTP: '.$ctp*$kostenDruckplatte."\n");
+ echo('Druck: '.(round($druckkosten,2))." Euro\n");
+ echo('Papier: '.round($papierkosten,2).' Euro | PapierFaktor: '.round($papieraufschlagfaktor,2)."\n");
+ echo('$farbkosten: '.round($farbkosten,2)." Euro\n");
+ echo('$rabattierfaehigekosten: '.round($rabattierfaehigekosten,2)."\n");
+ echo('Gesamte Eigenkosten Print: '.round($eigenkosten,2)."\n");
+ echo('Gesamte Fremdkosten Print: '.round($fremdkosten,2)."\n");
+ echo('Gesamtkosten Print: '.(round($price,2))." Euro\n\n");
+ }
+
+ if($what == 'allarray' || $what == 'debug') {
+ return [$eigenkosten, $maschine, $stundensatz, $ctp, $anzahlFarbw, $druckgeschwindigkeit, $druckgaenge, $bogen_hoehe, $bogen_breite, $nutzen, $nettobg, $zuschuss, $sortenaufschlag, $zuschussfaktor, $passtdrauf, $druckkosten, $papierkosten, $druckzeittotal, $druckzeitruesten, $druckzeitfortdruck, $farbkosten, $zusdruckplatten_kosten, $zusfarbwechsel_kosten, $lackart_kosten, $fremdkosten, $rabattierfaehigekosten];
+ }
+
+ return FALSE;
+}
+
+function getWTVPlanoFa21($what, $auflage, $hoehe_offen, $breite_offen, $hoehe_geschl, $breite_geschl, $papiersorte_grammatur, $papiersorte_value, $drucknutzen, $sortenzahl, $loseblatt, $druckbogen_breite, $druckbogen_hoehe, $druckbogen_nettomenge, $druckbogen_zuschussmenge, $falzung, $falzart, $leimung, $anzblattjeblock, $buendeln, $perforation, $duftdruck, $oesen, $praegung, $stanzung, $cito_anstanzung, $verschluss, $durchmesser_klebepkt, $beilage, $nummerierung, $laserstanzung, $ecken_runden, $bohren_lochen, $kaschierung, $kaschierung_anzahl, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $musterversand, $absender) {
+
+ //Parameter
+ $Pplano_fa_mindpreis_kaschierung = 135;
+ $Pplano_fa_kaschierung_mk = 0.8;
+ $Pplano_fa_kaschierung_gl = 0.6;
+ $Pplano_fa_kaschierung_legl = 0.9;
+ $Pplano_fa_fixpreis_bohren = 25;
+ $Pplano_fa_tsdpreis_bohren = 5;
+ $Pplano_fa_fixpreis_ecken_runden = 15;
+ $Pplano_fa_tsdpreis_ecken_runden = 16;
+ $Pplano_fa_tsdpreis_ecken_runden_nassleimetik = 1.50;
+ $Pplano_fa_stckpreis_laserstanzung = 0.50;
+ $Pplano_fa_fixpreis_laserstanzung = 150;
+ $Pplano_fa_fixpreis_nummerierung = 40;
+ $Pplano_fa_tsdpreis_nr_schwarz_inkjet = 15;
+ $Pplano_fa_tsdpreis_nr_farbig_laser = 80;
+ $Pplano_fa_tsdpreis_nr_schwarz_laser = 40;
+ $Pbeilage_einlegen_unbestimmte = 35;
+ $Pbeilage_einlegen_bestimmte = 45;
+ $Pklebepunkte_lose_fix = 15;
+ $Pklebepunkte_lose_pro_tausend = 12;
+ $Pklebepunkte_vorkonf_fix = 15;
+ $Pklebepunkte_vorkonf_pro_tausend = 47;
+ $Phaftstreifen_lose_fix = 15;
+ $Phaftstreifen_lose_pro_tausend = 7;
+ $Phaftstreifen_vorkonf_fix = 45;
+ $Phaftstreifen_vorkonf_pro_tausend = 77;
+ $haftstreifen_material_pro_cm = 0.002;
+ $Pplano_fa_fixpreis_cito = 360;
+ $Pplano_fa_tsdpreis_cito = 35;
+ $Pplano_fa_fixpreis_cito_nassleimetik = 130;
+ $Pplano_fa_tsdpreis_cito_nassleimetik = 30;
+ $Pplano_stanzen_fix1 = 35;
+ $Pplano_stanzen_fix2 = 97.5;
+ $Pplano_stanzen_var1 = 14;
+ $Pplano_stanzen_var2 = 37.5;
+ $Pplano_praegen_fix1 = 60;
+ $Pplano_praegen_fix2 = 110;
+ $Pplano_praegen_var1 = 25;
+ $Pplano_praegen_var2 = 45;
+ $Poesen_fixpreis= 45;
+ $Poesen_stkpreis = 0.20;
+ $Pplano_fa_tsdpreis_duftdruck = 20;
+ $Pplano_fa_fixpreis_duftdruck = 300;
+ $Pplano_fa_fixpreis_buendeln = 15;
+ $Pplano_fa_preis_je_buendel = 0.09;
+ $Pfixkosten_blockleimung = 25;
+ $Pstundensatz_wtv = 30;
+ $Pstundensatz_wtv_maschinen = 50;
+ $Pfaktor_klein_gross_falzung = 2.1;
+ $Paufpreis_falzen_altarfalz = 50;
+ $Pfalzbruch_ruesten = 10;
+
+ $wtveigenkosten = 0;
+ $wtvfremdkosten = 0;
+ $rabattierkosten = 0;
+ $wtvzuschusspapier = 0;
+ $wtvfrachtkosten = 0;
+ $wtvfrachtgewicht = $auflage * $papiersorte_grammatur * $hoehe_offen * $breite_offen / 10000000 * 1.1;
+ $wtvfrachtpreis = 50 + $wtvfrachtgewicht/500*15;
+ $grammaturfaktor_geschw_wtv = (100-sqrt((150-$papiersorte_grammatur)*(150-$papiersorte_grammatur))/3.6)/100;
+ $wtvgeschwindigkeit = (log10($auflage*$auflage)*900)*(100-sqrt((150-$papiersorte_grammatur)*(150-$papiersorte_grammatur))/3.6)/100;
+
+ if($anzblattjeblock == 0){
+ $anzblattjeblock = 1;
+ $leimung = 0;
+ }
+
+ if($anzblattjeblock != 1){
+ $leimung = 1;
+ }
+
+ //endschneiden + verpacken
+ $zeit_endschneiden = (15+(sqrt($auflage*$anzblattjeblock/2)))/60;
+ if(($buendeln != 0) && ($falzung == 'nein' || $falzung == 0)){
+ $absteckenaufschlag = ceil($auflage / $buendeln) * 0.001;
+ $zeit_endschneiden += $absteckenaufschlag;
+ }
+
+ $kosten_endschneiden = $zeit_endschneiden*$Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_endschneiden;
+ $wtvzuschusspapier += (10 + $auflage * 0.002) / $drucknutzen;
+
+ //falzung
+ $zeit_falzung = 0;
+ $falz_komplex = 1;
+ $fakt_falzung = 1;
+ if(!($falzung == 'nein' || $falzung == 0)){
+ if($falzung > 4 || $stanzung != 0){
+ $falz_komplex = 1.5;
+ }
+ $zeit_falzung = (15+$falzung*$falz_komplex*$Pfalzbruch_ruesten)/60+($auflage/$wtvgeschwindigkeit);
+ if (($breite_offen > 14.7 && $hoehe_offen > 14.7 && $breite_offen < 85 && $hoehe_offen < 55 && $breite_geschl > 3.6 && $hoehe_geschl > 3.6 && $falzung < 6) ||
+ ($breite_offen > 14.7 && $hoehe_offen > 14.7 && $breite_offen < 55 && $hoehe_offen < 85 && $breite_geschl > 3.6 && $hoehe_geschl > 3.6 && $falzung < 6)) {
+ $fakt_falzung = 1 * $falz_komplex;
+ }else{
+ $fakt_falzung = $Pfaktor_klein_gross_falzung;
+ if($falzung > 5){
+ $fakt_falzung *= 1.5;
+ }
+ if($falzung > 6){
+ $fakt_falzung *= 1.9;
+ }
+ if($falzung > 1 && $papiersorte_grammatur > 169){ //wenn Fischer nötig ist
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ }
+ }
+ if($falzart==5 || $falzart==6){
+ $zeit_falzung += 1 + $auflage/$wtvgeschwindigkeit*0.3;
+ }
+ if($falzart==99){
+ $zeit_falzung += 1 + $auflage/$wtvgeschwindigkeit*0.3;
+ }
+ $wtvzuschusspapier += ($auflage * 0.005 + $falzung * 30) / $drucknutzen;
+ if($falzung == 1 && $papiersorte_grammatur > 169){ //wenn nur Morgana nötig ist
+ $zeit_falzung = 0;
+
+ }
+ }
+ $kosten_falzung = $zeit_falzung * $fakt_falzung * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_falzung;
+
+ //nuten
+ $zeit_nuten = 0;
+ if($papiersorte_grammatur > 169 && (!($falzung == 'nein' || $falzung == 0))){
+ $zeit_nuten = ( $auflage / 3000 + 0.5 );
+ $wtvzuschusspapier += ($auflage * 0.005 + 30) / $drucknutzen;
+ }
+ $kosten_nuten = $zeit_nuten * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_nuten;
+
+ //leimen
+ $kosten_leimen = 0;
+ if($leimung != 0){
+ $kosten_leimen = $Pfixkosten_blockleimung + $auflage * (1/pow(2,log10($auflage/3)));
+ $wtvzuschusspapier += ($auflage * 0.005 + 30) / $drucknutzen;
+ }
+ $zeit_leimen = $kosten_leimen / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_leimen;
+
+ //bündeln
+ $kosten_buendeln = 0;
+ $buendelfaktor = 1;
+ if($hoehe_geschl > 29.7 || $breite_geschl > 29.7 || $hoehe_offen > 29.7 || $breite_offen > 29.7){
+ $buendelfaktor = 2;
+ }
+ if($falzung == 'nein' || $falzung == 0){
+ $buendelfaktor *= 2;
+ }
+ if($buendeln != 0){
+ $kosten_buendeln = $Pplano_fa_fixpreis_buendeln + $auflage / $buendeln * $Pplano_fa_preis_je_buendel * $buendelfaktor;
+ }
+ $zeit_buendeln = $kosten_buendeln / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_buendeln;
+
+ //perforation
+ $kosten_perforation = 0;
+ $zeit_perforation = 0;
+ $kosten_werkzeug_perforation_1N = 15;
+ $kosten_werkzeug_perforation = 0;
+ $nutzen_perforation = 0;
+ $perfmaschine = 'keine';
+ if($perforation != 0){
+ $maxnutzenanzTiegel = max(floor(33/($breite_offen+1)) * floor(23/($hoehe_offen+1)), floor(23/($breite_offen+1)) * floor(33/($hoehe_offen+1))); //Nutzenberechnung
+ $maxnutzenanzZylinder = max(floor(98/($breite_offen+1)) * floor(68/($hoehe_offen+1)), floor(68/($breite_offen+1)) * floor(98/($hoehe_offen+1))); //Nutzenberechnung
+ $wtvzuschusspapier += ($auflage * 0.01 + 50) / $drucknutzen;
+ if(($breite_offen > 33 || $hoehe_offen > 33) || ($breite_offen > 23 && $hoehe_offen > 23)){
+ $kosten_perforation = $Pplano_stanzen_fix2 + $auflage * $Pplano_stanzen_var2 / 1000;
+ $perfmaschine = "zylinder";
+ }else{
+ $kosten_perforation = $Pplano_stanzen_fix1 + $auflage * $Pplano_stanzen_var1 / 1000;
+ $perfmaschine = "tiegel";
+ }
+ $kosten_perforieren_fix = $Pplano_stanzen_fix2;
+ $kosten_perforieren_var = $Pplano_stanzen_var2;
+ $perfmaschine_temp = "zylinder";
+ for ($ntz = 1; $ntz <= $maxnutzenanzZylinder; $ntz++){
+ $kosten_perf_temp = $kosten_perforieren_fix + $auflage * $kosten_perforieren_var / 1000 / $ntz + $kosten_werkzeug_perforation_1N * $ntz;
+ if($kosten_perf_temp < $kosten_perforation){
+ $kosten_perforation = $kosten_perf_temp;
+ $nutzen_perforation = $ntz;
+ $kosten_werkzeug_perforation = $kosten_werkzeug_perforation_1N * $ntz;
+ $perfmaschine = $perfmaschine_temp;
+ }
+ }
+ $kosten_perforieren_fix = $Pplano_stanzen_fix1;
+ $kosten_perforieren_var = $Pplano_stanzen_var1;
+ $perfmaschine_temp = "tiegel";
+ for ($ntz = 1; $ntz <= $maxnutzenanzTiegel; $ntz++){
+ $kosten_perf_temp = $kosten_perforieren_fix + $auflage * $kosten_perforieren_var / 1000 / $ntz + $kosten_werkzeug_perforation_1N * $ntz;
+ if($kosten_perf_temp < $kosten_perforation){
+ $kosten_perforation = $kosten_perf_temp;
+ $nutzen_perforation = $ntz;
+ $kosten_werkzeug_perforation = $kosten_werkzeug_perforation_1N * $ntz;
+ $perfmaschine = $perfmaschine_temp;
+ }
+ }
+ }
+ $zeit_perforation = $kosten_perforation / $Pstundensatz_wtv_maschinen;
+ $wtvfremdkosten += $kosten_perforation;
+
+
+ //duftdruck
+ $kosten_duftdruck = 0;
+ $zeit_duftdruck = 0;
+ if($duftdruck != 0){
+ $kosten_duftdruck = $duftdruck*$Pplano_fa_tsdpreis_duftdruck*$auflage/1000+$Pplano_fa_fixpreis_duftdruck;
+ $zeit_duftdruck = 480;
+ $wtvzuschusspapier += ($auflage * 0.01 + 100) / $drucknutzen;
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ }
+ $wtvfremdkosten += $kosten_duftdruck;
+
+ //oesen
+ $kosten_oesen = 0;
+ $zeit_oesen = 0;
+ if($oesen != 0){
+ $kosten_oesen = $Poesen_fixpreis + $auflage * $Poesen_stkpreis;
+ $zeit_oesen = $auflage / 1000 * 240;
+ $wtvzuschusspapier += ($auflage * 0.005 + 30) / $drucknutzen;
+ }
+ $wtveigenkosten += $kosten_oesen;
+
+ //praegung
+ $kosten_praegung = 0;
+ $zeit_praegung = 0;
+ $kosten_werkzeug_praegung = 0;
+ if($praegung != 0){
+ $zeit_praegung = $auflage / 1000 + 1;
+ if($breite_offen > 23 || $hoehe_offen > 23){
+ $kosten_praegung = $Pplano_praegen_fix2 + $auflage * $Pplano_praegen_var2 / 1000;
+ }else{
+ $kosten_praegung = $Pplano_praegen_fix1 + $auflage * $Pplano_praegen_var1 / 1000;
+ }
+ if($praegung == 2){
+ $kosten_werkzeug_praegung = sqrt($breite_offen*$hoehe_offen)*2+95*$sortenzahl;
+ }
+ $wtvzuschusspapier += ($auflage * 0.01 + 100) / $drucknutzen;
+ }
+ $wtvfremdkosten += $kosten_praegung + $kosten_werkzeug_praegung;
+
+ //stanzung
+ $kosten_stanzung = 0;
+ $zeit_stanzung = 0;
+ $kosten_werkzeug_stanzung_1N = 0;
+ $kosten_werkzeug_stanzung = 0;
+ $nutzen_stanzung = 1;
+ $stanzmaschine = 'keine';
+ if($stanzung != 0 && $stanzung != 99){
+ $maxnutzenanzTiegel = max(floor(33/($breite_offen+1)) * floor(23/($hoehe_offen+1)), floor(23/($breite_offen+1)) * floor(33/($hoehe_offen+1))); //Nutzenberechnung
+ $maxnutzenanzZylinder = max(floor(98/($breite_offen+1)) * floor(68/($hoehe_offen+1)), floor(68/($breite_offen+1)) * floor(98/($hoehe_offen+1))); //Nutzenberechnung
+ $wtvzuschusspapier += ($auflage * 0.01 + 50) / $drucknutzen;
+ $kosten_werkzeug_stanzung_1N = sqrt($breite_offen*$hoehe_offen)*2+85;
+ if(($breite_offen > 33 || $hoehe_offen > 33) || ($breite_offen > 23 && $hoehe_offen > 23)){
+ $kosten_stanzung = $Pplano_stanzen_fix2 + $auflage * $Pplano_stanzen_var2 / 1000;
+ $stanzmaschine = "zylinder";
+ if($stanzung == 2){
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }
+ }else{
+ $kosten_stanzung = $Pplano_stanzen_fix1 + $auflage * $Pplano_stanzen_var1 / 1000;
+ $stanzmaschine = "tiegel";
+ if($stanzung == 2){
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix2;
+ $kosten_stanzen_var = $Pplano_stanzen_var2;
+ $stanzmaschine_temp = "zylinder";
+ for ($ntz = 1; $ntz <= $maxnutzenanzZylinder; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix1;
+ $kosten_stanzen_var = $Pplano_stanzen_var1;
+ $stanzmaschine_temp = "tiegel";
+ for ($ntz = 1; $ntz <= $maxnutzenanzTiegel; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ }
+
+ //Sonderfall Banderolen korrigieren
+ if($stanzmaschine = 'zylinder' && $stanzung == 1 && ($nutzen_stanzung * $breite_offen < 20 || $nutzen_stanzung * $hoehe_offen < 20)){
+ $kosten_stanzung += 35;
+ }
+
+ $zeit_stanzung = $kosten_stanzung / $Pstundensatz_wtv_maschinen;
+ $wtvfremdkosten += $kosten_stanzung;
+
+ //cito-anstanzung (opt. Laserstanzung falls günstiger)
+ $kosten_cito = 0;
+ $zeit_cito = 0;
+ $aufpreis_tsd_cito = 0;
+ $ntz_cito = max(floor(40/$hoehe_offen)*floor(28/$breite_offen),floor(28/$hoehe_offen)*floor(40/$breite_offen));
+ if($ntz_cito<1){
+ $ntz_cito = 1;
+ $aufpreis_tsd_cito = 100;
+ }
+ if($cito_anstanzung == 1){
+ $kosten_cito = min(($Pplano_fa_stckpreis_laserstanzung*$auflage+$Pplano_fa_fixpreis_laserstanzung),($sortenzahl*($Pplano_fa_fixpreis_cito+($breite_offen*$hoehe_offen/4))+(($Pplano_fa_tsdpreis_cito+$aufpreis_tsd_cito)/1000*$auflage/$ntz_cito)));
+ $zeit_cito = $kosten_cito / $Pstundensatz_wtv_maschinen;
+ $wtvzuschusspapier += ($auflage * 0.03 + 100) / $drucknutzen;
+ }
+ if($cito_anstanzung == 2){
+ $kosten_cito = $Pplano_fa_fixpreis_cito_nassleimetik+($Pplano_fa_tsdpreis_cito_nassleimetik+$aufpreis_tsd_cito)/1000*$auflage/$ntz_cito;
+ $zeit_cito = $kosten_cito / $Pstundensatz_wtv_maschinen;
+ $wtvzuschusspapier += ($auflage * 0.03 + 100) / $drucknutzen;
+ }
+ $wtvfremdkosten = $wtvfremdkosten + $kosten_cito;
+
+
+ //verschluss
+ $kosten_verschluss = 0;
+ $zeit_verschluss = 0;
+ $kosten_haftstreifen_material_gesamt = $haftstreifen_material_pro_cm * min($hoehe_offen, $breite_offen) * $auflage;
+ if($verschluss == 1){
+ $kosten_verschluss = $Pklebepunkte_lose_pro_tausend/1000*$auflage+$Pklebepunkte_lose_fix;
+ $zeit_verschluss = 1;
+ }
+ if($verschluss == 2){
+ $kosten_verschluss = $Pklebepunkte_vorkonf_pro_tausend/1000*$auflage+$Pklebepunkte_vorkonf_fix;
+ $zeit_verschluss = $auflage / 600;
+ }
+ if($verschluss == 3){
+ $kosten_verschluss = $Phaftstreifen_lose_pro_tausend/1000*$auflage+$Phaftstreifen_lose_fix+$kosten_haftstreifen_material_gesamt;
+ $zeit_verschluss = 1;
+ }
+ if($verschluss == 4){
+ $kosten_verschluss = $Phaftstreifen_vorkonf_pro_tausend/1000*$auflage+$Phaftstreifen_vorkonf_fix+$kosten_haftstreifen_material_gesamt;
+ $zeit_verschluss = $auflage / 400;
+ }
+ if($verschluss ==5){
+ $maxnutzenanzTiegel = max(floor(33/($breite_offen+1)) * floor(23/($hoehe_offen+1)), floor(23/($breite_offen+1)) * floor(33/($hoehe_offen+1))); //Nutzenberechnung
+ $maxnutzenanzZylinder = max(floor(98/($breite_offen+1)) * floor(68/($hoehe_offen+1)), floor(68/($breite_offen+1)) * floor(98/($hoehe_offen+1))); //Nutzenberechnung
+ $kosten_werkzeug_stanzung_1N = sqrt($breite_offen*$hoehe_offen)*2+85;
+ if($breite_offen > 23 || $hoehe_offen > 23){
+ $kosten_stanzung = $Pplano_stanzen_fix2 + $auflage * $Pplano_stanzen_var2 / 1000;
+ $stanzmaschine = "zylinder";
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }else{
+ $kosten_stanzung = $Pplano_stanzen_fix1 + $auflage * $Pplano_stanzen_var1 / 1000;
+ $stanzmaschine = "tiegel";
+ $kosten_stanzung += $kosten_werkzeug_stanzung_1N;
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix2;
+ $kosten_stanzen_var = $Pplano_stanzen_var2;
+ $stanzmaschine_temp = "zylinder";
+ for ($ntz = 1; $ntz <= $maxnutzenanzZylinder; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ $kosten_stanzen_fix = $Pplano_stanzen_fix1;
+ $kosten_stanzen_var = $Pplano_stanzen_var1;
+ $stanzmaschine_temp = "tiegel";
+ for ($ntz = 1; $ntz <= $maxnutzenanzTiegel; $ntz++){
+ $kosten_sta_temp = $kosten_stanzen_fix + $auflage * $kosten_stanzen_var / 1000 / $ntz + $kosten_werkzeug_stanzung_1N * $ntz;
+ if($kosten_sta_temp < $kosten_stanzung){
+ $kosten_stanzung = $kosten_sta_temp;
+ $nutzen_stanzung = $ntz;
+ $kosten_werkzeug_stanzung = $kosten_werkzeug_stanzung_1N * $ntz;
+ $stanzmaschine = $stanzmaschine_temp;
+ }
+ }
+ $kosten_verschluss = $kosten_stanzung;
+ $zeit_verschluss = $kosten_verschluss / $Pstundensatz_wtv_maschinen;
+ }
+
+ if($verschluss == 6){
+ $kosten_verschluss = 0.42*$auflage+95;
+ $zeit_verschluss = $auflage / 300;
+ }
+
+ if($verschluss != 0){
+ $wtvzuschusspapier += ($auflage * 0.01 + 30) / $drucknutzen;
+ }
+ $wtvfremdkosten += $kosten_verschluss;
+
+ //beilage
+ $kosten_beilage = 0;
+ if($beilage == 1){
+ $kosten_beilage = $Pbeilage_einlegen_unbestimmte*$auflage/1000;
+ }
+ if($beilage == 2){
+ $kosten_beilage = $Pbeilage_einlegen_bestimmte*$auflage/1000;
+ }
+ $zeit_beilage = $kosten_beilage / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_beilage;
+
+ //nummerierung, codierung
+ $kosten_nummerierung = 0;
+ if($nummerierung == 1){
+ $kosten_nummerierung = $Pplano_fa_fixpreis_nummerierung+($falzung*15)+$Pplano_fa_tsdpreis_nr_schwarz_inkjet*$auflage/1000;
+ }
+ if($nummerierung == 2){
+ $kosten_nummerierung = $Pplano_fa_fixpreis_nummerierung+($falzung*15)+$Pplano_fa_tsdpreis_nr_farbig_laser*$auflage/1000;
+ }
+ if($nummerierung == 3){
+ $kosten_nummerierung = $Pplano_fa_fixpreis_nummerierung+($falzung*15)+$Pplano_fa_tsdpreis_nr_schwarz_laser*$auflage/1000;
+ }
+ if($nummerierung != 0){
+ $wtvzuschusspapier += ($auflage * 0.01 + 50) / $drucknutzen;
+ }
+ $zeit_nummerierung = $kosten_nummerierung / $Pstundensatz_wtv_maschinen;
+ $wtvfremdkosten += $kosten_nummerierung;
+
+ //laserstanzung
+ $kosten_laserstanzung = 0;
+ $zeit_laserstanzung = 0;
+ if($laserstanzung != 0){
+ $kosten_laserstanzung = $laserstanzung*$Pplano_fa_stckpreis_laserstanzung*$auflage+$Pplano_fa_fixpreis_laserstanzung;
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvzuschusspapier += ($auflage * 0.01 + 100) / $drucknutzen;
+ $zeit_laserstanzung = 240;
+ }
+ $wtvfremdkosten += $kosten_laserstanzung;
+
+
+ //ecken runden
+ $kosten_eckenrunden = 0;
+ if($ecken_runden == 3 || $ecken_runden == 5){
+ $kosten_eckenrunden = 1/$grammaturfaktor_geschw_wtv * $auflage*$anzblattjeblock*$Pplano_fa_tsdpreis_ecken_runden/1000+$Pplano_fa_fixpreis_ecken_runden;
+ }
+ if($ecken_runden == 99){
+ $kosten_eckenrunden = 1/$grammaturfaktor_geschw_wtv * $auflage*$Pplano_fa_tsdpreis_ecken_runden_nassleimetik/1000+$Pplano_fa_fixpreis_ecken_runden;
+ }
+ $zeit_eckenrunden = $kosten_eckenrunden / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_eckenrunden;
+
+ //bohren, lochen
+ $kosten_bohren_lochen = 0;
+ if($bohren_lochen != 0){
+ $bohrformatliste = array(array(0.1,2),array(5,1.5),array(10,1.2),array(20,1),array(650,1.2),array(1300,1.4));
+ foreach($bohrformatliste as $n){
+ if($breite_offen*$hoehe_offen >= $n[0]){
+ $bohraufschlag = $n[1];
+ }
+ }
+ if($stanzung != 0 && $stanzung != 99){
+ $bohraufschlag *= 2;
+ }
+ if(!($falzung == 'nein' || $falzung == 0)){
+ $bohraufschlag *= 2;
+ }
+ if(($bohren_lochen == 2) && ($bohraufschlag == 1)){$bohren_lochen = 1;} //für DIN A4 2-fach Sonderpreis
+ $kosten_bohren_lochen = $bohraufschlag * ($Pplano_fa_fixpreis_bohren + 1/$grammaturfaktor_geschw_wtv * $auflage*$anzblattjeblock/1000*$bohren_lochen*$Pplano_fa_tsdpreis_bohren);
+ }
+ $zeit_bohren_lochen = $kosten_bohren_lochen / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_bohren_lochen;
+
+
+ //folien kaschierung
+ $kosten_kaschierung = 0;
+ $zeit_kaschierung = 0;
+ $flaechekaschierung = ($breite_offen+2)*($hoehe_offen+2);
+ if($kaschierung == 1){
+ $kosten_kaschierung = $kaschierung_anzahl*max($Pplano_fa_mindpreis_kaschierung,$Pplano_fa_kaschierung_mk*$flaechekaschierung/10000*$auflage);
+ }
+ if($kaschierung == 2){
+ $kosten_kaschierung = $kaschierung_anzahl*max($Pplano_fa_mindpreis_kaschierung,$Pplano_fa_kaschierung_gl*$flaechekaschierung/10000*$auflage);
+ }
+ if($kaschierung == 3){
+ $kosten_kaschierung = $kaschierung_anzahl*max($Pplano_fa_mindpreis_kaschierung,$Pplano_fa_kaschierung_legl*$flaechekaschierung/10000*$auflage);
+ }
+ if($kaschierung != 0){
+ $wtvzuschusspapier +=($auflage * 0.005 + 30) / $drucknutzen;
+ $zeit_kaschierung = 240;
+ $wtvfrachtkosten += 25;
+ $wtvfremdkosten += $kosten_kaschierung;
+ }
+
+ //loseblatt, zusammentragen von Sorten, in Abh. von Grammatur und Format > manuell oder HFS
+ $kosten_loseblatt = 0;
+ $zeit_loseblatt = 0;
+ if($sortenzahl > 1 && $loseblatt==1){
+ if($papiersorte_grammatur <= 300 && $hoehe_geschl >= 14.8 && $breite_geschl >= 14.8 && $breite_offen <= 42 && $hoehe_geschl <= 42){
+ $hfs_durchlaeufe = ceil($sortenzahl/23);
+ $hfs_ruestzeit = $sortenzahl * 2 / 60 + 0.5;
+ $hfs_zeit_zu = $auflage * $hfs_durchlaeufe / $wtvgeschwindigkeit;
+ $hfs_zeit_stapeln = $hfs_durchlaeufe * 2;
+ $hfs_zeit_loseblatt = $hfs_ruestzeit + $hfs_zeit_zu + $hfs_zeit_stapeln;
+ $hfs_kosten_loseblatt = $hfs_zeit_loseblatt * $Pstundensatz_wtv_maschinen;
+ }else{
+ $hfs_kosten_loseblatt = 999999999;
+ $hfs_zeit_loseblatt = 999999999;
+ }
+ $man_kosten_loseblatt = $sortenzahl * 5 + $auflage * 0.015;
+ $man_zeit_loseblatt = $man_kosten_loseblatt / $Pstundensatz_wtv;
+
+ $kosten_loseblatt = min($hfs_kosten_loseblatt, $man_kosten_loseblatt);
+ if($kosten_loseblatt == $hfs_kosten_loseblatt){
+ $zeit_loseblatt = $hfs_zeit_loseblatt;
+ }else{
+ $zeit_loseblatt = $man_zeit_loseblatt;
+ }
+ $wtvzuschusspapier += ($auflage*0.005 + $sortenzahl*10) / $drucknutzen;
+ $wtveigenkosten += $kosten_loseblatt;
+ }
+
+
+ //freie Positionen
+ $kosten_freipos10 = $frei10fixpreis + $frei10tsdpreis / 1000 * $auflage;
+ $kosten_freipos20 = $frei20fixpreis + $frei20tsdpreis / 1000 * $auflage;
+ $wtvfremdkosten += $kosten_freipos10 + $kosten_freipos20;
+
+ //Musterversand
+ $kosten_musterversand = $musterversand * 8;
+ $wtvfremdkosten += $kosten_musterversand;
+
+ //Neutralversand, Absender
+ $kosten_absender = $absender * 0;
+ $wtvfremdkosten += $kosten_absender;
+
+ //Endabrechnung
+ $wtvzuschusspapier = ceil($wtvzuschusspapier);
+ $wtvzuschusspapier_kosten = ($druckbogen_breite * $druckbogen_hoehe * $papiersorte_grammatur * $papiersorte_value * $wtvzuschusspapier) / 1000000000;
+
+ //Werte ausgeben
+ if($what=='debug'){
+ echo('-------------------- WTV Plano-Fa --------------------'."\n");
+ echo('$kosten_endschneiden: '.round($kosten_endschneiden,2).' | $zeit_endschneiden: '.round($zeit_endschneiden,2)."\n");
+ if($kosten_falzung != 0){echo('$kosten_falzung: '.round($kosten_falzung,2).' | $zeit_falzung: '.round($zeit_falzung,2)."\n");
+ echo('$fakt_falzung: '.$fakt_falzung.' | $falz_komplex : '.$falz_komplex ."\n");
+ }
+ if($kosten_nuten != 0){echo('$kosten_nuten: '.round($kosten_nuten,2).' | '.'$zeit_nuten: '.round($zeit_nuten,2)."\n");}
+ if($kosten_leimen != 0){echo('$kosten_leimen: '.round($kosten_leimen,2).' | '.'$zeit_leimen: '.round($zeit_leimen,2)."\n");}
+ if($kosten_buendeln != 0){echo('$kosten_bündeln: '.round($kosten_buendeln,2).' | '.'$zeit_bündeln: '.round($zeit_buendeln,2)."\n");}
+ if($kosten_perforation != 0){echo('$kosten_perforation: '.round($kosten_perforation,2).' | '.'$zeit_perforation: '.round($zeit_perforation,2)."\n".'$kosten_werkzeug_perfo: '.round($kosten_werkzeug_perforation,2)."\n".'Nutzen Perfo: '.round($nutzen_perforation,2).' | '.'$zeit_perfo: '.round($zeit_perforation,2).' | '.'Perfo.maschine: '.$perfmaschine."\n");}
+ if($kosten_duftdruck != 0){echo('$kosten_duftdruck: '.round($kosten_duftdruck,2).' | '.'$zeit_duftdruck: '.round($zeit_duftdruck,2)."\n");}
+ if($kosten_oesen != 0){echo('$kosten_oesen: '.round($kosten_oesen,2).' | '.'$zeit_oesen: '.round($zeit_oesen,2)."\n");}
+ if($kosten_praegung != 0){echo('$kosten_praegung: '.round($kosten_praegung,2).' | '.'$kosten_werkzeug_praegung: '.round($kosten_werkzeug_praegung,2).' | '.'Gesamtosten_praegung: '.round(($kosten_praegung+$kosten_werkzeug_praegung),2).' | '.'$zeit_praegung: '.round($zeit_praegung,2)."\n");}
+ if($kosten_stanzung != 0){echo('$kosten_stanzung (ggf. inkl. Werkzeug): '.round($kosten_stanzung,2).' | '.'$kosten_werkzeug_stanzung: '.round($kosten_werkzeug_stanzung,2)."\n".'Nutzen Stanzung: '.round($nutzen_stanzung,2).' | '.'$zeit_stanzung: '.round($zeit_stanzung,2).' | '.'Stanzmaschine: '.$stanzmaschine."\n");}
+ if($kosten_cito != 0){echo('$kosten_cito: '.round($kosten_cito,2).' | '.'$zeit_cito: '.round($zeit_cito,2).' | '.'$ntz_cito: '.round($ntz_cito,2)."\n");}
+ if($kosten_verschluss != 0){echo('$kosten_verschluss: '.round($kosten_verschluss,2).' | '.'$zeit_verschluss: '.round($zeit_verschluss,2)."\n");}
+ if($kosten_beilage != 0){echo('$kosten_beilage: '.round($kosten_beilage,2).' | '.'$zeit_beilage: '.round($zeit_beilage,2)."\n");}
+ if($kosten_nummerierung != 0){echo('$kosten_nummerierung: '.round($kosten_nummerierung,2).' | '.'$zeit_nummerierung: '.round($zeit_nummerierung,2)."\n");}
+ if($kosten_laserstanzung != 0){echo('$kosten_laserstanzung: '.round($kosten_laserstanzung,2).' | '.'$zeit_laserstanzung: '.round($zeit_laserstanzung,2)."\n");}
+ if($kosten_eckenrunden != 0){echo('$kosten_eckenrunden: '.round($kosten_eckenrunden,2).' | '.'$zeit_eckenrunden: '.round($zeit_eckenrunden,2)."\n");}
+ if($kosten_bohren_lochen != 0){echo('$kosten_bohren_lochen: '.round($kosten_bohren_lochen,2).' | '.'$zeit_bohren_lochen: '.round($zeit_bohren_lochen,2).' | $bohraufschlag: '.$bohraufschlag."\n");}
+ if($kosten_kaschierung != 0){echo('$kosten_kaschierung: '.round($kosten_kaschierung,2).' | '.'$zeit_kaschierung: '.round($zeit_kaschierung,2)."\n");}
+ if($kosten_loseblatt != 0){echo('$kosten_loseblatt: '.round($kosten_loseblatt,2).' | '.'$zeit_loseblatt: '.round($zeit_loseblatt,2)."\n");}
+ echo('$wtvzuschusspapier_kosten: '.round($wtvzuschusspapier_kosten,2).' | $wtvzuschusspapier: '.round($wtvzuschusspapier,2)."\n");
+ echo('----------------------------------------'."\n");
+ echo('$wtvfrachtkosten: '.round($wtvfrachtkosten,2)."\n");
+ echo('$wtveigenkosten: '.round($wtveigenkosten,2)."\n");
+ echo('$wtvfremdkosten: '.round($wtvfremdkosten,2)."\n\n");
+ }
+
+ if($what == 'allarray' || $what == 'debug') {
+ return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung];
+ }
+
+ return FALSE;
+
+}
+
+function getZUABPlanoFa21($what, $auflage, $rabattierfaehigekosten, $zuab_eigenkosten, $zuab_fremdkosten, $papiersorte_sammelform, $druckfarben_inhalt, $druckmaschine, $qualitaet, $produktionszeit, $sortenzahl, $breite_offen, $hoehe_offen, $provisionsart, $provisionswert, $anzblattjeblock) {
+
+ if($anzblattjeblock == 0){
+ $anzblattjeblock=1;
+ }
+ $auflage *= $anzblattjeblock;
+
+ //Sammelform
+ $bedruckteSeiten = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt)[1];
+ $zuab_gesamtkosten = $zuab_eigenkosten + $zuab_fremdkosten;
+
+ $sammelarray = getSammelformWertePlanoFa21($auflage, $hoehe_offen, $breite_offen, $papiersorte_sammelform, $bedruckteSeiten, $sortenzahl);
+ $sammelfaktor_papier = $sammelarray[2];
+ $sammelwahrscheinlichkeit_menge = $sammelarray[1];
+ $sammelwahrscheinlichkeit_format_sorten = $sammelarray[0];
+
+
+ if(strtolower($druckmaschine) == 'gto'){
+ $sammelfaktor_druckmaschine = 0.5;
+ }else{
+ $sammelfaktor_druckmaschine = 1.0;
+ }
+
+ if($produktionszeit == 3){
+ $sammelfaktor_druckmaschine *= 0.8;
+ }
+
+ $sammelfaktor = (($sammelwahrscheinlichkeit_format_sorten*75)*($sammelwahrscheinlichkeit_menge*25)/(75*25))*$sammelfaktor_papier*$sammelfaktor_druckmaschine;
+
+ if((in_array($druckfarben_inhalt,array(1,2,3,18,19))) && ($papiersorte_sammelform != 1)){
+ $sammelformreduktion = $rabattierfaehigekosten * $sammelfaktor * -1;
+ }else{
+ $sammelformreduktion = 0;
+ }
+ $preisaenderung = $sammelformreduktion;
+
+
+ //Qualität 1 = easyValue, 2 = ISO-Std., 3 = MaxHighEnd, Pos. in Liste (0=Fixwert,1=Prozwert)
+ $qualitaetswerte = array(array(0,-5),array(0,0),array(30,8));
+ $qualitaet_fix = $qualitaetswerte[$qualitaet-1][0];
+ $qualitaet_proz = $qualitaetswerte[$qualitaet-1][1];
+ if($qualitaet_proz <= 0){
+ $qualkost = $zuab_eigenkosten;
+ }else{
+ $qualkost = $zuab_gesamtkosten + $sammelformreduktion/2;
+ }
+ $qualitaet_zuab = $qualitaet_fix + ($qualkost/100*$qualitaet_proz);
+ $preisaenderung += $qualitaet_zuab;
+
+
+ //Produktionszeit 1 = relaX, 2 = normal, 3 = eXpress | Pos. in Liste (0=Fixwert,1=Prozwert)
+ $zeitwerte = array(array(0,-8),array(0,0),array(35,13));
+ $zeitwert_fix = $zeitwerte[$produktionszeit-1][0];
+ $zeitwert_proz = $zeitwerte[$produktionszeit-1][1];
+ if($zeitwert_proz <= 0){
+ $zeitkosten = $zuab_eigenkosten;
+ }else{
+ $zeitkosten = $zuab_gesamtkosten + $sammelformreduktion/2;
+ }
+
+ $zeit_zuab = $zeitwert_fix + ($zeitkosten/100*$zeitwert_proz);
+ $preisaenderung += $zeit_zuab;
+
+
+ //Schrottpreise vermeiden, Mindestauftragswert beachten
+ if($zuab_gesamtkosten+$preisaenderung < 65){
+ $preisaenderung = (-1 * $zuab_gesamtkosten) + 65 + ($preisaenderung / 100);
+ }
+
+
+ //Provision (1 = Prozentual, 5, 10, 15, 20%)
+ $provision_zuschlag = 0;
+ if($provisionsart != 0){
+ $provision_zuschlag = ($zuab_gesamtkosten+$preisaenderung)/100*$provisionswert;
+ }
+ $preisaenderung += $provision_zuschlag;
+
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- Zu-/Abschläge Plano-Fa --------------------'."\n");
+ echo('$zuab_gesamtkosten: '.round($zuab_gesamtkosten,2)."\n");
+ echo('$rabattierfaehigekosten:. '.round($rabattierfaehigekosten,2)."\n");
+ echo('$sammelfaktor_papier: '.round($sammelfaktor_papier,2)."\n");
+ echo('$sammelwahrscheinlichkeit_format_sorten: '.round($sammelwahrscheinlichkeit_format_sorten,4)."\n");
+ echo('$sammelwahrscheinlichkeit_menge: '.round($sammelwahrscheinlichkeit_menge,4)."\n");
+ echo('$sammelfaktor: '.round($sammelfaktor,4)."\n");
+ echo('$sammelformreduktion: '.round($sammelformreduktion,2)."\n");
+ echo("Qualität: ". $qualitaet_fix.' | '.$qualitaet_proz." = ".round($qualitaet_zuab,2)."\n");
+ echo("Produktionszeit: ".$zeitwert_fix.' | '.$zeitwert_proz." = ".round($zeit_zuab,2)."\n");
+ echo('Provision: '.round($provisionswert,2).' | '.round($provision_zuschlag,2)."\n");
+ echo('Gesamtpreis: '.round($zuab_gesamtkosten+$preisaenderung,2)."\n");
+ echo('$preisaenderung total: '.round($preisaenderung,2)."\n\n");
+ }
+
+ return $preisaenderung;
+}
+
+function getSammelformWertePlanoFa21($auflage, $hoehe_offen, $breite_offen, $papiersorte_sammelform, $anzahlSeiten, $sortenzahl){
+ // (Index unten -1), daher 0 = ohne, 1 = happy, 2 = eq, 3 = sense, 4 = sky, 5 = glam, 6 = post
+ $papierliste = array(0,99,96,90,75,50,50);
+
+ $sammelfaktor_papier = $papierliste[$papiersorte_sammelform-1]/100;
+
+ // bis 14.10.22 $mengenliste = array(array(1,99),array(500,96),array(1250,93),array(2500,90),array(7500,80),array(10000,70),array(15000,60),array(20000,50),array(30000,40),array(40000,30),array(50000,20),array(60000,10),array(70000,5));
+ $mengenliste = array(array(1,99.9),array(500,98),array(1250,96),array(2500,93),array(5000,88),array(7500,80),array(10000,70),array(15000,60),array(20000,50),array(30000,40),array(40000,30),array(50000,20),array(60000,10),array(70000,5));
+ foreach($mengenliste as $n){
+ if($auflage >= $n[0]){
+ $sammelwahrscheinlichkeit_menge = $n[1]/100;
+ }
+ }
+
+ // bis 14.10.22 $formatliste = array(array(1,99),array(155,97),array(310,95),array(623,90),array(900,80),array(1247,75),array(1400,65),array(1600,60),array(1800,55),array(2494,50),array(3100,35),array(3300,27),array(3600,20),array(4989,10),array(5100,0));
+ $formatliste = array(array(1,99.9),array(155,99),array(310,98),array(623,92),array(900,85),array(1247,75),array(1400,65),array(1600,60),array(1800,55),array(2494,50),array(3100,35),array(3300,30),array(3600,25),array(4100,20),array(4500,15),array(4989,10),array(5100,0));
+ foreach($formatliste as $n){
+ if($anzahlSeiten*$sortenzahl*$breite_offen*$hoehe_offen >= $n[0]){
+ $sammelwahrscheinlichkeit_format_sorten = $n[1]/100;
+ }
+ }
+
+ return [$sammelwahrscheinlichkeit_format_sorten, $sammelwahrscheinlichkeit_menge, $sammelfaktor_papier];
+}
+
+function getPrePressBRO21($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $seiten_inhalt, $druckfarben_inhalt, $seiten_umschlag, $druckfarben_umschlag, $breite_offen, $hoehe_offen) {
+
+ //Parameter
+ $Pstundensatz_vorstufe = 70;
+ $Pbro_aufpreis_anderes_dateiformat = 30;
+ $Pumweltzeichen_fsc = 15;
+ $Pumweltzeichen_blauerengel = 335;
+ $Pgrundzeit_vorstufe = 30;
+ $Pbro_digitalproof_minimal = 15;
+
+ $anzahlSeiten = $seiten_umschlag + $seiten_inhalt;
+
+ $datenuebernahme_kosten = ($Pgrundzeit_vorstufe+$anzahlSeiten/1.5)/60*$Pstundensatz_vorstufe;
+
+ $dateiformat_kosten = 0;
+ if($dateiformat_geliefert != 1){
+ $dateiformat_kosten = $Pbro_aufpreis_anderes_dateiformat + $anzahlSeiten*2/60*$Pstundensatz_vorstufe;
+ }
+
+ $korrekturabzug_kosten = 0;
+ if($korrekturabzug == 3){
+ $korrekturabzug_kosten = max($Pbro_digitalproof_minimal, (($breite_offen*$hoehe_offen)/62 * $anzahlSeiten));
+ }
+
+ $umweltzeichen_kosten = 0;
+ if($umweltzeichen == 2){
+ $umweltzeichen_kosten = $Pumweltzeichen_fsc;
+ }
+ if($umweltzeichen == 3){
+ $umweltzeichen_kosten = $Pumweltzeichen_blauerengel;
+ }
+
+ $eigenkosten = $datenuebernahme_kosten + $dateiformat_kosten + $korrekturabzug_kosten + $umweltzeichen_kosten;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- PrePress BRO --------------------'."\n");
+ echo('$datenuebernahme_kosten: '.round($datenuebernahme_kosten,2)."\n");
+ echo('$dateiformat_kosten: '.round($dateiformat_kosten,2)."\n");
+ echo('$umweltzeichen_kosten: '.round($umweltzeichen_kosten,2)."\n");
+ echo('$korrekturabzug_kosten: '.round($korrekturabzug_kosten,2)."\n\n");
+ }
+
+ return $eigenkosten;
+}
+
+function getPrintBRO21($what, $auflage, $breite_geschlossen, $hoehe_geschlossen, $weiterverarbeitung, $ausfuehrung, $papier_inhalt_papiertyp1, $papier_inhalt_papiertyp2, $papier_inhalt_papiertyp3, $papier_inhalt_papiertyp4, $papier_inhalt_papiertyp5, $papier_inhalt_papiertyp6, $papier_inhalt_papiertyp7, $papier_inhalt_papiertyp8, $papier_inhalt_papiertyp9, $papier_inhalt_papiertyp10, $papier_inhalt_papiertyp11, $papier_inhalt_papiertyp12, $papier_inhalt_papiertyp13, $papier_inhalt_papiertyp14, $papier_inhalt_grammatur, $papier_inhalt_value, $papier_inhalt_vs_rs_unterschiedlich, $seiten_inhalt, $druckfarben_inhalt, $drucklack_inhalt, $lackart_inhalt, $papier_inhalt_sammelform, $inhaltidentisch, $papier_umschlag_papiertyp1, $papier_umschlag_papiertyp2, $papier_umschlag_papiertyp3, $papier_umschlag_papiertyp4, $papier_umschlag_papiertyp5, $papier_umschlag_papiertyp6, $papier_umschlag_papiertyp7, $papier_umschlag_papiertyp8, $papier_umschlag_papiertyp9, $papier_umschlag_papiertyp10, $papier_umschlag_papiertyp11, $papier_umschlag_papiertyp12, $papier_umschlag_papiertyp13, $papier_umschlag_papiertyp14, $papier_umschlag_grammatur, $papier_umschlag_value, $papier_umschlag_vs_rs_unterschiedlich, $seiten_umschlag, $druckfarben_umschlag, $veredelung_umschlag, $papier_umschlag_sammelform, $zusfarbwechsel, $zusdruckplatten, $zussorten_umschlag){
+ //$papier_inhalt_art_nr, $papier_umschlag_art_nr)
+
+ $price_inhalt = 9999999999;
+ $nutzen_inhalt = 9999999999;
+ $nettobg_inhalt = 9999999999;
+ $zuschuss_inhalt = 9999999999;
+ $druckbogen_hoehe_inhalt = 1000;
+ $druckbogen_breite_inhalt = 1000;
+ $ctp_inhalt = 999999999;
+
+ $stundensatz = 99999999;
+ $maschine = 'man';
+ $anzahlFarbw = 999;
+ $passtdrauf = 0;
+ $sortenaufschlag = 999999;
+ $zuschussfaktor = 9;
+ $druckkosten = 999999;
+ $papierkosten = 999999;
+ $druckzeittotal = 999999;
+ $druckzeitruesten = 999999;
+ $druckzeitfortdruck = 999;
+ $wtvgeschwindigkeit = 999;
+ $Druckfarbenpreis = 1.2; // Preisfaktor für Fremdkosten
+ $rabattierfaehigekosten = 0;
+
+ $kostenDruckplatte = 18;
+ $Paufpreis_drucklack_matt_voll = 10;
+ $Paufpreis_drucklack_matt_partiell = 30;
+ $Paufpreis_drucklack_glzd_voll = 55;
+ $Paufpreis_drucklack_glzd_partiell = 95;
+
+ $DruckbogenRaender_horiz = 1.5; //über Formel in Schleife holen sinnvoll?
+ $DruckbogenRaender_vert = 2.3; //über Formel in Schleife holen sinnvoll?
+
+ // $weiterverarbeitung: 1=RDH, 2=PUR, 3=Wire-O, 4=HDCOVER, 5=HDCOVER LEINEN, 6=WAKAL
+ // $ausfuehrung: 1=ohne Umschlag, 2=Umschlag 4 Seiten, 3=Front+Rückkarton, 4=Überzug auf Pappe, 5=Umschlag 6 Seiten, 6=Kapitalband, Leseband, Prägung, VNS
+ // Liste x,y,buchruecken ja/nein, BuBi-Pappe = ja/nein
+ $beschnittliste_hor_vert = array(array(0.6,0.2,FALSE,FALSE),array(1.2,0.6,TRUE,FALSE),array(0.1,0.1,TRUE,FALSE),array(0.6,0.6,TRUE,TRUE),array(0.6,0.6,TRUE,TRUE),array(0.2,0.2,TRUE,FALSE));
+ $beschnitt_horiz = $beschnittliste_hor_vert[$weiterverarbeitung-1][0];
+ $beschnitt_vert = $beschnittliste_hor_vert[$weiterverarbeitung-1][1];
+ $format_offen_breite = $breite_geschlossen * 2 + $beschnitt_horiz;
+ $format_offen_hoehe = $hoehe_geschlossen + $beschnitt_vert;
+
+ if($beschnittliste_hor_vert[$weiterverarbeitung-1][3] == FALSE){
+ $bubipappe = 0;
+ }else{
+ $bubipappe = 0.4;
+ }
+
+ if($beschnittliste_hor_vert[$weiterverarbeitung-1][2] == FALSE){
+ $buchruecken = 0;
+ }else{
+ $buchruecken = $papier_inhalt_grammatur * $seiten_inhalt / 2 / 10000 + $papier_umschlag_grammatur * $seiten_umschlag / 2 / 10000 + $bubipappe;
+ }
+
+ /*
+ // Test ob UM = INH
+ if ($papier_inhalt_art_nr == $papier_umschlag_art_nr && $druckfarben_inhalt == $druckfarben_umschlag && $seiten_umschlag == 4 && $weiterverarbeitung == 1){
+ $seiten_inhalt += 4;
+ $seiten_umschlag = 0;
+ $ausfuehrung = 1;
+ }
+ */
+
+
+ // Inhalt
+ $farbarray = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt);
+ $anzahlDruckfarben_inhalt = $farbarray[0];
+ $bedruckteSeiten_inhalt = $farbarray[1];
+ $anzahlFarbwechsel_inhalt = getAnzFarbwechselMAN($druckfarben_inhalt);
+ $anzahlDruckJeForm_inhalt = ceil(($anzahlDruckfarben_inhalt+$drucklack_inhalt)/5);
+
+ $druckgeschwindigkeit_inhalt = (2500+(log10($auflage*$auflage)*900)*(100-sqrt((150-$papier_inhalt_grammatur)*(150-$papier_inhalt_grammatur))/3.6)/100);
+
+ $formate=array();
+ if($papier_inhalt_papiertyp1) {
+ $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'seiten' => 4);
+ }
+ if($papier_inhalt_papiertyp1 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
+ $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'seiten' => 2);
+ }
+
+ if($papier_inhalt_papiertyp2) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 4);
+ }
+ if($papier_inhalt_papiertyp2 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 2);
+ }
+
+ if($papier_inhalt_papiertyp3) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 4);
+ }
+ if($papier_inhalt_papiertyp3 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 2);
+ }
+
+ if($papier_inhalt_papiertyp4) {
+ $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 4);
+ }
+ if($papier_inhalt_papiertyp4 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
+ $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 2);
+ }
+
+ if($papier_inhalt_papiertyp14) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 4);
+ }
+ if($papier_inhalt_papiertyp14 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 2);
+ }
+
+ foreach($formate as $key => $format) {
+
+ if($format['seiten'] == 4) {
+ $calc1=floor(($format['breite']-$DruckbogenRaender_horiz)/$format_offen_breite)*floor(($format['hoehe']-$DruckbogenRaender_vert)/$format_offen_hoehe)*2;
+ $calc2=floor(($format['breite']-$DruckbogenRaender_horiz)/$format_offen_hoehe)*floor(($format['hoehe']-$DruckbogenRaender_vert)/$format_offen_breite)*2;
+ }else{
+ $calc1=floor((($format['breite']-$DruckbogenRaender_horiz)/($format_offen_breite/2)))*floor((($format['hoehe']-$DruckbogenRaender_vert))/$format_offen_hoehe);
+ $calc2=floor((($format['breite']-$DruckbogenRaender_horiz)/($format_offen_hoehe/2)))*floor((($format['hoehe']-$DruckbogenRaender_vert))/$format_offen_breite);
+ }
+
+ $stundensatz_druckmaschine1 = getMaschineKosten21($format, $anzahlFarbwechsel_inhalt);
+
+ $nutzen_inhalt_calc = ($calc1 > $calc2)? $calc1: $calc2;
+
+ $PapierkostenJeFalzbg = $format_offen_breite * $format_offen_hoehe * $papier_inhalt_grammatur * $papier_inhalt_value / 1000000000 * $auflage;
+ $RuestkostenJeDruckform = $anzahlDruckfarben_inhalt * ($kostenDruckplatte + ($stundensatz_druckmaschine1 * 4.5 / 60));
+ $PapierkostenZuschuss = $anzahlDruckfarben_inhalt * (80 * $format['hoehe']*$format['breite']*$papier_inhalt_grammatur*$papier_inhalt_value/1000000000);
+
+ if($inhaltidentisch == '0'){
+ if($what=='debug'){
+ echo('Berechnung CTP für '.$format['breite'].' x '.$format['hoehe'].": \n");
+ echo('PapierkostenJeFalzbg: '.round($PapierkostenJeFalzbg,2).' | RüstkostenJeDruckform: '.round($RuestkostenJeDruckform,2).' | PapierkostenZuschuss: '.round($PapierkostenZuschuss,2)."\n");
+ echo('Nutzen_Inhalt/2 = Falzbg. je Druckoberfläche: '.($nutzen_inhalt_calc/2)."\n");
+ }
+ $ctparray1 = getCTPBRO21($what, $nutzen_inhalt_calc/2, $seiten_inhalt/$format['seiten'], $bedruckteSeiten_inhalt, $PapierkostenJeFalzbg, $RuestkostenJeDruckform, $PapierkostenZuschuss);
+ $ctp_inhalt1 = ($ctparray1[0]+$ctparray1[1])*$anzahlDruckfarben_inhalt+$drucklack_inhalt;
+ }else{
+ $ctp_inhalt1 = $bedruckteSeiten_inhalt*$anzahlDruckfarben_inhalt+$drucklack_inhalt;
+ }
+
+ $rabattierfaehigeKostenLeerFalzBogen1 = $ctparray1[3] * $PapierkostenJeFalzbg;
+
+ $zuschuss_inhalt1 = max(200,100+($ctp_inhalt1*80)+($anzahlFarbwechsel_inhalt*100)+(($seiten_inhalt/($nutzen_inhalt_calc*2)*$anzahlDruckJeForm_inhalt)*$auflage*0.03));
+
+ $nettobg_inhalt1 = ($seiten_inhalt + $ctparray1[3]*4) / $nutzen_inhalt_calc * $auflage/2;
+
+ $druckzeitruesten1 = ((30*$anzahlDruckJeForm_inhalt)+($ctp_inhalt1*4.5)+($anzahlFarbwechsel_inhalt*45))/60;
+
+ $druckzeitfortdruck1 = ($zuschuss_inhalt1+$nettobg_inhalt1)/$druckgeschwindigkeit_inhalt*$anzahlDruckJeForm_inhalt*$bedruckteSeiten_inhalt + $ctparray1[1]*0.15;
+
+ $papierkosten_inhalt1 = (($nettobg_inhalt1+$zuschuss_inhalt1)*$format['hoehe']*$format['breite']*$papier_inhalt_grammatur*$papier_inhalt_value/1000000000);
+
+ $price_inhalt_calc = ($kostenDruckplatte*$ctp_inhalt1) + $papierkosten_inhalt1 + ($druckzeitruesten1+$druckzeitfortdruck1) * $stundensatz_druckmaschine1;
+
+ if($price_inhalt_calc < $price_inhalt && $nutzen_inhalt > 0) {
+ $price_inhalt = $price_inhalt_calc;
+ $nutzen_inhalt = $nutzen_inhalt_calc;
+ $ctp_inhalt = $ctp_inhalt1;
+ $zuschuss_inhalt = ceil($zuschuss_inhalt1);
+ $nettobg_inhalt = ceil($nettobg_inhalt1);
+ $druckbogen_hoehe_inhalt = $format['hoehe'];
+ $druckbogen_breite_inhalt = $format['breite'];
+ $druckzeitruesten_inhalt = $druckzeitruesten1;
+ $druckzeitfortdruck_inhalt = $druckzeitfortdruck1;
+ $druckzeittotal_inhalt = $druckzeitruesten + $druckzeitfortdruck;
+ $papierkosten_inhalt = $papierkosten_inhalt1;
+ $stundensatz_druckmaschine_inhalt = $stundensatz_druckmaschine1;
+ $maschine_inhalt = "man";
+ $rabattierfaehigeKostenLeerFalzBogen = $rabattierfaehigeKostenLeerFalzBogen1;
+ }
+ }
+
+ $lackart_kosten_inhalt = 0;
+ if($drucklack_inhalt != '0'){
+ if($lackart_inhalt == '2'){
+ $lackart_kosten_inhalt = $Paufpreis_drucklack_matt_voll;
+ }
+ if($lackart_inhalt == '3'){
+ $lackart_kosten_inhalt = $Paufpreis_drucklack_matt_partiell;
+ }
+ if($lackart_inhalt == '4'){
+ $lackart_kosten_inhalt = $Paufpreis_drucklack_glzd_voll;
+ }
+ if($lackart_inhalt == '5'){
+ $lackart_kosten_inhalt = $Paufpreis_drucklack_glzd_partiell;
+ }
+ }
+
+ $papieraufschlagfaktor_inhalt = 1.35-(MIN(($papierkosten_inhalt/$papier_inhalt_value*100)/5000,0.2));
+ $price_inhalt -= $papierkosten_inhalt;
+ $papierkosten_inhalt *= $papieraufschlagfaktor_inhalt;
+ $price_inhalt += $papierkosten_inhalt;
+
+ $farbkosten_inhalt = ($nettobg_inhalt + $zuschuss_inhalt) * ($anzahlDruckfarben_inhalt+$drucklack_inhalt*6+$anzahlFarbwechsel_inhalt) * $Druckfarbenpreis * $bedruckteSeiten_inhalt / 1000;
+
+ $price_inhalt += $farbkosten_inhalt + $lackart_kosten_inhalt;
+ $eigenkosten_inhalt = $price_inhalt - $farbkosten_inhalt - $papierkosten_inhalt;
+ $fremdkosten_inhalt = $price_inhalt - $eigenkosten_inhalt;
+ $rabattierfaehigekosten_inhalt = $rabattierfaehigeKostenLeerFalzBogen; // ??? Besser mit Restbogenwerten + Zuschpapierkosten?
+
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- PRINT BRO INHALT --------------------'."\n");
+ echo('Papier: '.$druckbogen_hoehe_inhalt.' x '.$druckbogen_breite_inhalt.' mit '.$nettobg_inhalt.' + '.$zuschuss_inhalt.' = '.($zuschuss_inhalt+$nettobg_inhalt).' Bogen zu '.$nutzen_inhalt." Nutzen \n");
+ echo('offenes Format: '.round($format_offen_breite,2).' x '.round($format_offen_hoehe,2)." cm \n");
+ echo('Geschw.: '.round($druckgeschwindigkeit_inhalt,0).' | Druckgänge: '.$anzahlDruckJeForm_inhalt.' | CTP: '.$ctp_inhalt.' | Farbw.: '.$anzahlFarbwechsel_inhalt.' '."\n");
+ echo('Zeit Rüsten: '.round($druckzeitruesten_inhalt,1).' | Fortdruck: '.round($druckzeitfortdruck_inhalt,1)."\n");
+ echo('$lackart_kosten: '.round($lackart_kosten_inhalt,2)."\n");
+ echo('Papier: '.round($papierkosten_inhalt,2).' Euro | PapierFaktor: '.round($papieraufschlagfaktor_inhalt,2)."\n");
+ echo('$farbkosten: '.round($farbkosten_inhalt,2)." Euro\n");
+ echo('$rabattierfaehigekosten_inhalt: '.round($rabattierfaehigekosten_inhalt,2)."\n");
+ echo('$rabattierfaehigeKostenLeerFalzBogen: '.round($rabattierfaehigeKostenLeerFalzBogen,2)."\n");
+ echo('Eigenkosten: '.round($eigenkosten_inhalt,2)."\n");
+ echo('Fremdkosten: '.round($fremdkosten_inhalt,2)."\n\n");
+ }
+
+ // Umschlag
+
+ if($veredelung_umschlag == 0 || $veredelung_umschlag == 6 || $veredelung_umschlag == 7){
+ $drucklack_umschlag = $lackart_umschlag = 0;
+ }else{
+ $drucklack_umschlag = 1;
+ $lackart_umschlag = $veredelung_umschlag;
+ }
+
+ if($seiten_umschlag > 0){
+ $printarray_umschlag = getPrintPlanoFa21('allarray', $papier_umschlag_papiertyp1, $papier_umschlag_papiertyp2, $papier_umschlag_papiertyp3, $papier_umschlag_papiertyp4, $papier_umschlag_papiertyp5, $papier_umschlag_papiertyp6, $papier_umschlag_papiertyp7, $papier_umschlag_papiertyp8, $papier_umschlag_papiertyp9, $papier_umschlag_papiertyp10, $papier_umschlag_papiertyp11, $papier_umschlag_papiertyp12, $papier_umschlag_papiertyp13, $papier_umschlag_papiertyp14, $papier_umschlag_grammatur, $papier_umschlag_value, $auflage, $druckfarben_umschlag, $format_offen_breite + $buchruecken - 0.4, $format_offen_hoehe - 0.4, $drucklack_umschlag, $papier_umschlag_vs_rs_unterschiedlich, $zussorten_umschlag+1, 1, $zusdruckplatten, $zusfarbwechsel, $lackart_umschlag, $papier_umschlag_sammelform);
+
+ $eigenkosten_umschlag = $printarray_umschlag[0];
+ $maschine_umschlag = $printarray_umschlag[1];
+ $stundensatz_umschlag = $printarray_umschlag[2];
+ $ctp_umschlag = $printarray_umschlag[3];
+ $anzahlFarbw_umschlag = $printarray_umschlag[4];
+ $druckgeschwindigkeit_umschlag = $printarray_umschlag[5];
+ $druckgaenge_umschlag = $printarray_umschlag[6];
+ $druckbogen_hoehe_umschlag = $printarray_umschlag[7];
+ $druckbogen_breite_umschlag = $printarray_umschlag[8];
+ $nutzen_umschlag = $printarray_umschlag[9];
+ $druckbogen_nettomenge_umschlag = $printarray_umschlag[10];
+ $druckbogen_zuschussmenge_umschlag = $printarray_umschlag[11];
+ $sortenaufschlag_umschlag = $printarray_umschlag[12];
+ $zuschussfaktor_umschlag = $printarray_umschlag[13];
+ $passtdrauf_umschlag = $printarray_umschlag[14];
+ $druckkosten_umschlag = $printarray_umschlag[15];
+ $papierkosten_umschlag = $printarray_umschlag[16];
+ $druckzeittotal_umschlag = $printarray_umschlag[17];
+ $druckzeitruesten_umschlag = $printarray_umschlag[18];
+ $druckzeitfortdruck_umschlag = $printarray_umschlag[19];
+ $farbkosten_umschlag = $printarray_umschlag[20];
+ $zusdruckplatten_kosten_umschlag = $printarray_umschlag[21];
+ $zusfarbwechsel_kosten_umschlag = $printarray_umschlag[22];
+ $lackart_kosten_umschlag = $printarray_umschlag[23];
+ $fremdkosten_umschlag = $printarray_umschlag[24];
+ $rabattierfaehigekosten_umschlag = $printarray_umschlag[25];
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- PRINT BRO Umschlag --------------------'."\n");
+ echo('Papier: '.$druckbogen_hoehe_umschlag.' x '.$druckbogen_breite_umschlag.' mit '.$druckbogen_nettomenge_umschlag.' + '.$druckbogen_zuschussmenge_umschlag.' = '.($druckbogen_zuschussmenge_umschlag+$druckbogen_nettomenge_umschlag).' Bogen zu '.$nutzen_umschlag." Nutzen \n");
+ echo('offenes Format: '.round($format_offen_breite+$buchruecken,2).' x '.round($format_offen_hoehe,2)."\n");
+ echo('Geschw.: '.round($druckgeschwindigkeit_umschlag,0).' | CTP: '.$ctp_umschlag.' | Farbw.: '.$anzahlFarbw_umschlag.' '."\n");
+ echo('Zeit Rüsten: '.round($druckzeitruesten_umschlag,1).' | Fortdruck: '.round($druckzeitfortdruck_umschlag,1)."\n");
+ echo('Druckmaschine Umschlag: '.$maschine_umschlag."\n");
+ echo('$lackart_kosten: '.round($lackart_kosten_umschlag,2)."\n");
+ echo('Papier: '.round($papierkosten_umschlag,2)." Euro\n");
+ echo('$farbkosten_umschlag: '.round($farbkosten_umschlag,2)." Euro\n");
+ echo('$rabattierfaehigekosten_umschlag: '.round($rabattierfaehigekosten_umschlag,2)."\n");
+ echo('Eigenkosten: '.round($eigenkosten_umschlag,2)."\n");
+ echo('Fremdkosten: '.round($fremdkosten_umschlag,2)."\n\n");
+ }
+
+ }else{
+ $eigenkosten_umschlag = $fremdkosten_umschlag = $rabattierfaehigekosten_umschlag = $maschine_umschlag = $ctp_umschlag = $anzahlFarbw_umschlag = $druckgeschwindigkeit_umschlag = $druckbogen_hoehe_umschlag = $druckbogen_breite_umschlag = $nutzen_umschlag = $druckbogen_nettomenge_umschlag = $druckbogen_zuschussmenge_umschlag = $papierkosten_umschlag = $druckzeitruesten_umschlag = $druckzeitfortdruck_umschlag = $farbkosten_umschlag = $lackart_kosten_umschlag = 0;
+ }
+
+ $eigenkosten = $eigenkosten_inhalt + $eigenkosten_umschlag;
+ $fremdkosten = $fremdkosten_inhalt + $fremdkosten_umschlag;
+ $rabattierfaehigekosten = $rabattierfaehigekosten_inhalt + $rabattierfaehigekosten_umschlag;
+
+ // Einzelwerte ausgeben
+ if($what=='debug'){
+ echo("\n".'-------------------- BRO PRINT Returnwerte --------------------'."\n");
+ echo('EK: '.round($eigenkosten,2)."\n");
+ echo('FK: '.round($fremdkosten, 2)."\n");
+ echo('Rabattierf. Kosten: '.round($rabattierfaehigekosten_inhalt,2).'+'.round($rabattierfaehigekosten_umschlag,2).'='.round($rabattierfaehigekosten,2)."\n");
+ echo('Format offen: '.$format_offen_breite.' x '.$format_offen_hoehe."\n");
+ echo('Pappe: '.$bubipappe.' mm | Buchrücken: '.$buchruecken." mm"."\n\n");
+ echo('-------------------- BRO PRINT INHALT Returnwerte --------------------'."\n");
+ echo('INH: '.$maschine_inhalt.' | CTP: '.$ctp_inhalt.' | Farbw.: '.$anzahlFarbwechsel_inhalt.' | Geschw.: '.round($druckgeschwindigkeit_inhalt,2)."\n");
+ echo($druckbogen_hoehe_inhalt.' x '.$druckbogen_breite_inhalt.' mit '.$nutzen_inhalt.' Ntz. = '.$nettobg_inhalt.' + '.$zuschuss_inhalt.' | '.round($papierkosten_inhalt,2).' €'."\n");
+ echo('Druckzeit: Rüsten = '.round($druckzeitruesten_inhalt,2).' | Fortdruck = '.round($druckzeitfortdruck_inhalt,2)."\n");
+ echo('Kosten Farbe+Lack '.round($farbkosten_inhalt,2). ' + Extra Kosten für Lackart '.round($lackart_kosten_inhalt,2)."\n\n");
+ echo('-------------------- BRO PRINT UMSCHLAG Returnwerte --------------------'."\n");
+ echo('UM: '.$maschine_umschlag.' | CTP: '.$ctp_umschlag.' | Farbw.: '.$anzahlFarbw_umschlag. ' | Geschw.:'.round($druckgeschwindigkeit_umschlag,2)."\n");
+ echo($druckbogen_hoehe_umschlag.' x '.$druckbogen_breite_umschlag.' mit '.$nutzen_umschlag.' Ntz. = '.$druckbogen_nettomenge_umschlag.' + '.$druckbogen_zuschussmenge_umschlag.' | '.round($papierkosten_umschlag,2).' €'."\n");
+ echo('Druckzeit: Rüsten = '.round($druckzeitruesten_umschlag,2).' | Fortdruck: '.round($druckzeitfortdruck_umschlag,2)."\n");
+ echo('Kosten Farbe+Lack: '.round($farbkosten_umschlag,2).' + Extra Kosten für Lackart: '.round($lackart_kosten_umschlag,2)."\n\n");
+ }
+
+ if($what == 'allarray' || $what == 'debug') {
+ return [$eigenkosten, $fremdkosten, $rabattierfaehigekosten, $format_offen_breite, $format_offen_hoehe, $bubipappe, $buchruecken,
+ $maschine_inhalt, $ctp_inhalt, $anzahlFarbwechsel_inhalt, $druckgeschwindigkeit_inhalt, $druckbogen_hoehe_inhalt, $druckbogen_breite_inhalt, $nutzen_inhalt, $nettobg_inhalt, $zuschuss_inhalt, $papierkosten_inhalt, $druckzeitruesten_inhalt, $druckzeitfortdruck_inhalt, $farbkosten_inhalt, $lackart_kosten_inhalt,
+ $maschine_umschlag, $ctp_umschlag, $anzahlFarbw_umschlag, $druckgeschwindigkeit_umschlag, $druckbogen_hoehe_umschlag, $druckbogen_breite_umschlag, $nutzen_umschlag, $druckbogen_nettomenge_umschlag, $druckbogen_zuschussmenge_umschlag, $papierkosten_umschlag, $druckzeitruesten_umschlag, $druckzeitfortdruck_umschlag, $farbkosten_umschlag, $lackart_kosten_umschlag, $rabattierfaehigekosten_inhalt, $rabattierfaehigekosten_umschlag];
+ }
+
+ return FALSE;
+
+}
+
+// Eingabewerte beziehen sich hier immer auf Anz. Falzbogen je Druckoberfläche, nicht auf Seiten o.a.!
+function getCTPBRO21($what, $NtzAufDruckbg, $FalzbgAnz, $bedruckteSeiten, $PapierkostenJeFalzbg, $RuestkostenJeDruckform, $PapierkostenZuschuss) {
+ $ctp_ganzeBogen = 2*floor(($FalzbgAnz*$bedruckteSeiten/2)/($NtzAufDruckbg));
+ $restfalzbg = $FalzbgAnz - ($ctp_ganzeBogen/2*$NtzAufDruckbg);
+ $leere_falzbg = 0;
+ $ctp_restseiten = 0;
+ $maxdurchlaeufe = 5;
+
+ // Prüfen ob Freifläche mit Umschlagen/Umstülpen günstiger wäre
+ if(($restfalzbg > 0) && ((floor($NtzAufDruckbg/2) - $restfalzbg) * $PapierkostenJeFalzbg < ($RuestkostenJeDruckform+$PapierkostenZuschuss)) && ($NtzAufDruckbg > $restfalzbg*2) && (floor($NtzAufDruckbg/2) % ($restfalzbg*2) != 0)){
+ if($what == 'debug'){
+ echo('>>> Freifläche für '.$restfalzbg.' Restfalzbg. als Umschlager/Umstülper günstiger. Papierrest: '.round((floor($NtzAufDruckbg/2) - $restfalzbg) * $PapierkostenJeFalzbg,2)." €\n");
+ }
+ $leere_falzbg = (floor($NtzAufDruckbg/2) - $restfalzbg);
+ $restfalzbg = 0;
+ $ctp_restseiten = 1;
+ }
+
+ // Prüfen ob Freifläche bei SD+WD günstiger wäre
+ if(($restfalzbg > 0) && (($NtzAufDruckbg - $restfalzbg) * $PapierkostenJeFalzbg < ($RuestkostenJeDruckform+$PapierkostenZuschuss)) && ($NtzAufDruckbg > $restfalzbg) && ($NtzAufDruckbg % ($restfalzbg*2) != 0)){
+ if($what == 'debug'){
+ echo('>>> Freifläche für '.$restfalzbg.' Restfalzbg. im SD+WD günstiger. Papierrest: '.round(($NtzAufDruckbg - $restfalzbg) * $PapierkostenJeFalzbg,2)." €\n");
+ }
+ $leere_falzbg = $NtzAufDruckbg - $restfalzbg;
+ $restfalzbg = 0;
+ $ctp_ganzeBogen += 2;
+ $ctp_restseiten = 0;
+ }
+
+ while(($restfalzbg > 0) && ($maxdurchlaeufe > 0)){
+ for($n=$restfalzbg; $n>0; $n--){
+ //echo('Schleife: '.$n.' mit '.$restfalzbg.' Restfalzbg.'."\n");
+ /*if($NtzAufDruckbg >= $n*2){
+ // prüfen ob Freifläche günstiger als weitere Druckform Umschlager / Umstülper wäre
+
+ if(($n - $restfalzbg) * $PapierkostenJeFalzbg < $RuestkostenJeDruckform){
+ if($what == 'debug'){
+ echo($maxdurchlaeufe.' | '.$n.' >>> Leerlassen von '.$restfalzbg.' Falzbg. ist günstiger als neue Druckform für Umschlager/Umstülper: '.$restfalzbg * $PapierkostenJeFalzbg." €\n");
+ }
+ $ctp_restseiten += 1;
+ $leere_falzbg = $n - $restfalzbg;
+ $restfalzbg -= $n;
+ break 2;
+ }elseif*/
+ if($NtzAufDruckbg % $n == 0){
+ // prüfen, ob Umschlager möglich
+ $ctp_restseiten += 1;
+ $restfalzbg -= $n;
+ if($what == 'debug'){
+ echo($maxdurchlaeufe.' | '.$n.' : Umschlager/Umstülper gefunden: Rest-CTP = '.$ctp_restseiten.' mit '.$n.' Falzgb. | Noch '.$restfalzbg." Restfalzbg.\n");
+ }
+ break;
+ }elseif(($NtzAufDruckbg % 3 == 0) && ($NtzAufDruckbg % $n == 0)){
+ // prüfen ob SD+WD möglich
+ $ctp_restseiten += $bedruckteSeiten;
+ $restfalzbg -= $n;
+ if($what == 'debug'){
+ echo($maxdurchlaeufe.' | '.$n.': SD/WD gefunden: Rest-CTP = '.$ctp_restseiten.' bei '.$n.' | Noch '.$restfalzbg." Restfalzbg.\n");
+ }
+ break;
+ }
+
+ }
+ $maxdurchlaeufe--;
+
+ if(($maxdurchlaeufe == 0) && ($restfalzbg > 0) && ($what == 'debug')){
+ echo("\n".'OOOoops: noch '.$ctp_restseiten.' offene Restseiten!'."\n");
+ $ctp_restseiten = 999;
+ }
+ }
+
+ if($what == 'debug'){
+ echo('Eingabewerte: '.$NtzAufDruckbg.' Falzbogen auf Druckbogen und '.$FalzbgAnz.' benötigte Falzbogen'."\n");
+ echo('Restfalzbogen: '.$restfalzbg."\n");
+ echo('Leere Falzbg.: '.$leere_falzbg."\n");
+ echo('CTP Ganze Bogen: '.$ctp_ganzeBogen.' + CTP Restbogen = '.$ctp_restseiten."\n".'CTP Summe = '.($ctp_ganzeBogen+$ctp_restseiten)."\n\n");
+ }
+
+ return [$ctp_ganzeBogen, $ctp_restseiten, $restfalzbg, $leere_falzbg];
+
+}
+
+function getMaschineKosten21($format, $anzahlFarbwechsel_inhalt) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+
+ if($maschine == 'man') {
+ return 165 + ($anzahlFarbwechsel_inhalt * 20);
+ }
+
+ return 40;
+}
+
+function getWTVBRO21($what, $auflage, $breite_geschlossen, $hoehe_geschlossen, $format_offen_breite, $format_offen_hoehe, $bubipappe, $buchruecken, $weiterverarbeitung, $ausfuehrung, $klammerung, $papier_inhalt_grammatur, $papier_inhalt_value, $seiten_inhalt, $druckbogen_breite_inhalt, $druckbogen_hoehe_inhalt, $drucknutzen_inhalt, $drucknutzen_umschlag, $papier_umschlag_grammatur, $papier_umschlag_value, $seiten_umschlag, $druckbogen_breite_umschlag, $druckbogen_hoehe_umschlag, $buendeln, $perforation, $duftdruck, $praegung_umschlag, $beilage, $veredelung_umschlag, $registerstanzung, $einschweissen, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $blankomuster, $musterversand, $absender){
+
+ //Parameter
+ $Pplano_fa_mindpreis_kaschierung = 135;
+ $Pplano_fa_kaschierung_mk = 0.8;
+ $Pplano_fa_kaschierung_gl = 0.6;
+ $Pplano_fa_kaschierung_legl = 0.9;
+ $Pbeilage_einlegen_unbestimmte = 35;
+ $Pbeilage_einlegen_bestimmte = 45;
+ $Pplano_praegen_fix1 = 60;
+ $Pplano_praegen_fix2 = 110;
+ $Pplano_praegen_var1 = 25;
+ $Pplano_praegen_var2 = 45;
+ $Pplano_fa_tsdpreis_duftdruck = 20;
+ $Pplano_fa_fixpreis_duftdruck = 300;
+ $Pplano_fa_fixpreis_perforation = 35;
+ $Pplano_fa_tsdpreis_perforation = 35;
+ $Pplano_fa_fixpreis_buendeln = 15;
+ $Pbro_preis_je_buendel = 0.09;
+ $Pstundensatz_wtv = 30;
+ $Pstundensatz_wtv_maschinen = 50;
+
+ $wtveigenkosten = 0;
+ $wtvfremdkosten = 0;
+ $rabattierkosten = 0;
+ $wtvzuschusspapier_inhalt = 0;
+ $wtvzuschusspapier_umschlag = 0;
+ $wtvfrachtkosten = 0;
+ $wtvfrachtgewicht = $auflage * $hoehe_geschlossen * $breite_geschlossen * ($seiten_inhalt / 2 * $papier_inhalt_grammatur + $seiten_umschlag / 2 * $papier_umschlag_grammatur) / 10000000 * 1.1;
+
+ $wtvfrachtpreis = 50 + $wtvfrachtgewicht/500*15;
+
+ if($hoehe_geschlossen < 14 || $hoehe_geschlossen < $breite_geschlossen || $seiten_umschlag > 4){
+ $wtvgeschwindigkeit_hfs = 1200;
+ }else{
+ $wtvgeschwindigkeit_hfs = 2200-($seiten_inhalt+$seiten_umschlag)*15;
+ }
+ if($drucknutzen_inhalt < 1){
+ $drucknutzen_inhalt = 1;
+ }
+ if($drucknutzen_umschlag < 1){
+ $drucknutzen_umschlag = 1;
+ }
+ $anzDruckbg_inhalt = ceil(($seiten_inhalt / 2) / $drucknutzen_inhalt);
+ $anzDruckbg_umschlag = ceil(($seiten_umschlag / 2) / $drucknutzen_umschlag);
+
+ // $weiterverarbeitung: 1=RDH, 2=PUR, 3=Wire-O, 4=HDCOVER, 5=HDCOVER LEINEN, 6=WAKAL
+ // $ausfuehrung: 1=ohne Umschlag, 2=Umschlag 4 Seiten, 3=Front+Rückkarton, 4=Überzug auf Pappe, 5=Umschlag 6 Seiten, 6=Kapitalband, Leseband, Prägung, VNS
+
+
+ // endschneiden + verpacken
+ $zeit_endschneiden_inhalt = $zeit_endschneiden_umschlag = 0;
+ $kosten_endschneiden_inhalt = $kosten_endschneiden_umschlag = 0;
+ if($weiterverarbeitung == '1' || $weiterverarbeitung == '3' || $weiterverarbeitung == '6'){
+ $zeit_endschneiden_inhalt = max(20,15 + $seiten_inhalt + $seiten_inhalt * $auflage / 1900) / 60;
+ if($seiten_umschlag > 0){
+ $zeit_endschneiden_umschlag = (15 + $anzDruckbg_umschlag * $auflage / 600)/60;
+ }
+ $kosten_endschneiden_inhalt = $zeit_endschneiden_inhalt * $Pstundensatz_wtv_maschinen;
+ $kosten_endschneiden_umschlag = $zeit_endschneiden_umschlag * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_endschneiden_inhalt + $kosten_endschneiden_umschlag;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (30 + $auflage * 0.005);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.005);
+ }elseif($weiterverarbeitung == '2' || $weiterverarbeitung == '4'){
+ if($seiten_umschlag > 0){
+ $zeit_endschneiden_umschlag = (15 + $anzDruckbg_umschlag * $auflage / 600)/60;
+ }
+ $kosten_endschneiden_umschlag = $zeit_endschneiden_umschlag * $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_endschneiden_umschlag;
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.005);
+ }
+
+ // RDH
+ $zeit_rdh = $kosten_rdh = 0;
+ if($weiterverarbeitung == '1'){
+ if($breite_geschlossen < 25 && $breite_geschlossen >= 9.0 && $hoehe_geschlossen >= 10.5){
+ $zeit_rdh = 0.25 + ($seiten_inhalt + $seiten_umschlag)/60 + ($auflage/$wtvgeschwindigkeit_hfs);
+ }else{
+ $zeit_rdh = (2 + ($seiten_inhalt + $seiten_umschlag)/60 + ($auflage/$wtvgeschwindigkeit_hfs)) * 1.7;
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ }
+
+ $kosten_ringoesen = $klammerung * 60;
+
+ $kosten_umschlag_nuten = 0;
+ if($papier_umschlag_grammatur >= 170 && $ausfuehrung != 1){
+ $kosten_umschlag_nuten = min(($auflage/3000+0.5)*$Pstundensatz_wtv_maschinen, $auflage/$drucknutzen_umschlag/1000*33+110);
+ }
+
+ $kosten_rdh = $zeit_rdh * $Pstundensatz_wtv_maschinen + $kosten_ringoesen + $kosten_umschlag_nuten;
+ $wtveigenkosten += $kosten_rdh;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (30 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.02);
+ }
+
+ // PUR (Einflussgrößen = Seitenanz. INH, Ntz. INH, Auflage, Format HF / QF)
+ $zeit_pur = $kosten_pur = 0;
+ if($weiterverarbeitung == '2'){
+
+ $pur_purarray = array(array(1,292,92),array(7,292,92),array(12,306,105),array(16,320,117),array(32,479,231)); // bis bogenteile, fixpur, varpur
+ $pur_seiten = ceil($seiten_inhalt / $drucknutzen_inhalt / 2);
+ foreach($pur_purarray as $n){
+ if($pur_seiten > $n[0]){
+ $pur_kosten_kleb = $n[1] + $auflage * $n[2] / 1000;
+ }
+ }
+
+ $pur_falzarray = array(array(4,11.15,7.25),array(6,16.65,8.45),array(8,16.65,8.65),array(12,22.15,9.95),array(16,34,9.75),array(24,44.3,11),array(32,55.3,12.2),array(48,110.5,13.3)); // bogenanz, fixfalz, varfalz
+ $pur_falzb = ceil($seiten_inhalt/$drucknutzen_inhalt/2);
+ foreach($pur_falzarray as $n){
+ if($drucknutzen_inhalt*2 >= $n[0]){
+ $pur_kosten_falzbg = $n[1] + $auflage * $n[2] * $pur_falzb / 1000;
+ }
+ }
+
+ if($breite_geschlossen < $hoehe_geschlossen){
+ $formatfaktor_pur = 1.0;
+ }else{
+ $formatfaktor_pur = 1.6;
+ }
+
+ $kosten_pur = 1.3 * ($pur_kosten_kleb + $pur_kosten_falzbg ) * $formatfaktor_pur;
+ $zeit_pur = 24 * 5;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.02);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvfremdkosten += $kosten_pur;
+ }
+
+ // Wire-O
+ $zeit_wireo = $kosten_wireo = 0;
+ if($weiterverarbeitung == '3'){
+ //analog Plano-FA loseblatt, zusammentragen von Sorten, in Abh. von Grammatur und Format > manuell oder HFS
+
+ if($papier_inhalt_grammatur <= 300 && $papier_umschlag_grammatur <= 300 && $hoehe_geschlossen >= 14.8 && $breite_geschlossen >= 14.8 && $format_offen_breite <= 42 && $format_offen_hoehe <= 42){
+ $hfs_durchlaeufe = ceil(($seiten_inhalt+$seiten_umschlag)/23/2);
+ $hfs_ruestzeit = ceil(($seiten_inhalt+$seiten_umschlag)/2) * 2 / 60 + 0.5;
+ $hfs_zeit_zu = $auflage * $hfs_durchlaeufe / $wtvgeschwindigkeit_hfs;
+ $hfs_zeit_stapeln = $hfs_durchlaeufe * 2;
+ $hfs_zeit_loseblatt = $hfs_ruestzeit + $hfs_zeit_zu + $hfs_zeit_stapeln;
+ $hfs_kosten_loseblatt = $hfs_zeit_loseblatt * $Pstundensatz_wtv_maschinen;
+ }else{
+ $hfs_kosten_loseblatt = 999999999;
+ $hfs_zeit_loseblatt = 999999999;
+ }
+ $man_kosten_loseblatt = ceil(($seiten_inhalt+$seiten_umschlag)/2) * 5 + $auflage * 0.015;
+ $man_zeit_loseblatt = $man_kosten_loseblatt / $Pstundensatz_wtv;
+
+ $kosten_loseblatt = min($hfs_kosten_loseblatt, $man_kosten_loseblatt);
+
+ if($kosten_loseblatt == $hfs_kosten_loseblatt){
+ $zeit_loseblatt = $hfs_zeit_loseblatt;
+ }else{
+ $zeit_loseblatt = $man_zeit_loseblatt;
+ }
+ $wtveigenkosten += $kosten_loseblatt;
+
+ //Wire-O stanzen + binden + Spirale
+ $fk_wireo_fix = 150;
+ $fk_wireo_spirale = 0.05 + ceil($hoehe_geschlossen/15)*0.06;
+ $fk_wireo_sta = ceil($buchruecken/1.8)*0.15;
+ $fk_wireo_binden = 0.20;
+ $fk_wireo = ($fk_wireo_fix + $auflage * ($fk_wireo_spirale + $fk_wireo_sta + $fk_wireo_binden));
+
+ $kosten_wireo = $fk_wireo + $kosten_loseblatt;
+ $zeit_wireo = 24 * 5;
+
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.02);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvfremdkosten += $fk_wireo;
+
+ }
+
+ // HDCOVER (Einflussgrößen = Seitenanz. INH, Ntz. INH, Auflage, Format HF / QF, Breite, Höhe)
+ $zeit_hdcover = $kosten_hdcover = 0;
+ if($weiterverarbeitung == '4'){
+ $kosten_hdcover = (((0.5+(1/pow(2,log10($auflage/20)))+($breite_geschlossen*$hoehe_geschlossen/10000)+($seiten_inhalt/$drucknutzen_inhalt/30))*$auflage)+800)*1.4;
+ $zeit_hdcover = 24 * 12;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.02);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvfremdkosten += $kosten_hdcover;
+ }
+
+ // HDCOVER Leinen
+ $zeit_hdcover_leinen = $kosten_hdcover_leinen = 0;
+ if($weiterverarbeitung == '5'){
+ $kosten_hdcover_leinen_fix = 0;
+ $kosten_hdcover_leinen_var = (1/log(($auflage+650)/450)*4)+0.4;
+ $zeit_hdcover_leinen = 24 * 15;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.02);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $kosten_hdcover_leinen = ($kosten_hdcover_leinen_fix + $auflage * $kosten_hdcover_leinen_var) * 1.2;
+ $wtvfremdkosten += $kosten_hdcover_leinen;
+ }
+
+ // WAKAL = Wandkalender
+ $zeit_wakal = $kosten_wkal = 0;
+ if($weiterverarbeitung == '6'){
+ if($breite_geschlossen < 12 || $breite_geschlossen > 43 || $hoehe_geschlossen < 12 || $hoehe_geschlossen > 43){
+ $wireo_faktor = 2;
+ }else{
+ $wireo_faktor = 1;
+ }
+ $ek_wireo_zu = $wireo_faktor * ((0.5+(ceil((($seiten_inhalt+$seiten_umschlag)/2)/23)* $auflage)/2000)*$Pstundensatz_wtv_maschinen)+(($seiten_inhalt*$auflage/600)/60*$Pstundensatz_wtv_maschinen);
+ $fk_wireo_sta_bind = ((1/pow(2,log10($auflage/20)))+((max([$breite_geschlossen,$hoehe_geschlossen])+15)/300)+0.03*(ceil(($buchruecken/0.4))-1))*($auflage)*1.4;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.02);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvfremdkosten += $fk_wireo_sta_bind;
+ $wtveigenkosten += $ek_wireo_zu;
+ $kosten_wakal = $fk_wireo_sta_bind + $ek_wireo_zu;
+ $zeit_wakal = 24 * 5;
+ }
+
+ // Registerstanzung
+ $kosten_registerstanzung = 0;
+ $zeit_registerstanzung = 0;
+ if($registerstanzung != '0'){
+ $kosten_registerstanzung = 250+((120+($registerstanzung*13))/1000*$auflage);
+ $zeit_registerstanzung = 4 * 24 + ceil($auflage/5000);
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (30 + $auflage * 0.02);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.02);
+ $wtvfremdkosten += $kosten_registerstanzung;
+ }
+
+ // einschweissen
+ $kosten_einschweissen = $einschweissen * 0.13 * $auflage;
+ $zeit_einschweissen = $kosten_einschweissen / $Pstundensatz_wtv_maschinen;
+ if($einschweissen != '0'){
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (10 + $auflage * 0.002);
+ $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (10 + $auflage * 0.002);
+ $wtvfremdkosten += $kosten_einschweissen;
+ }
+
+ // Beilage
+ $kosten_beilage = 0;
+ if($beilage == 1){
+ $kosten_beilage = $Pbeilage_einlegen_unbestimmte*$auflage/1000;
+ }
+ if($beilage == 2){
+ $kosten_beilage = $Pbeilage_einlegen_bestimmte*$auflage/1000;
+ }
+ $zeit_beilage = $kosten_beilage / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_beilage;
+
+ //bündeln
+ $kosten_buendeln = 0;
+ if($buendeln != 0){
+ $kosten_buendeln = $Pplano_fa_fixpreis_buendeln + $auflage / $buendeln * $Pbro_preis_je_buendel;
+ }
+ $zeit_buendeln = $kosten_buendeln / $Pstundensatz_wtv;
+ $wtveigenkosten += $kosten_buendeln;
+
+ //perforation
+ $kosten_perforation = 0;
+ if($perforation != 0){
+ $kosten_perforation = $Pplano_fa_fixpreis_perforation + $auflage/1000*$Pplano_fa_tsdpreis_perforation + $perforation*15;
+ $wtvzuschusspapier_inhalt += ($auflage * 0.005 + 30) / $drucknutzen_inhalt;
+ }
+ $zeit_perforation = $kosten_perforation / $Pstundensatz_wtv_maschinen;
+ $wtveigenkosten += $kosten_perforation;
+
+ //praegung UM
+ $kosten_praegung = 0;
+ $zeit_praegung = 0;
+ $kosten_werkzeug_praegung = 0;
+ if($praegung_umschlag == 1 || $praegung_umschlag == 2){
+ $zeit_praegung = $auflage / 1000 + 1;
+ if($format_offen_breite > 23 || $format_offen_hoehe > 23){
+ $kosten_praegung = $Pplano_praegen_fix2 + $auflage * $Pplano_praegen_var2 / 1000;
+ }else{
+ $kosten_praegung = $Pplano_praegen_fix1 + $auflage * $Pplano_praegen_var1 / 1000;
+ }
+ if($praegung_umschlag == 2){
+ $kosten_werkzeug_praegung = sqrt($format_offen_hoehe*$format_offen_breite)*2+95;
+ }
+ $wtvzuschusspapier_umschlag += ($auflage * 0.01 + 150) / $drucknutzen_umschlag;
+ }
+ if($praegung_umschlag == 3){
+ $zeit_praegung = 5 * 24;
+ $kosten_werkzeug_praegung = 135 + $format_offen_breite * $format_offen_hoehe / 2;
+ $kosten_praegung = 380 + 45 * $auflage / 1000;
+ }
+
+ $wtvfremdkosten += $kosten_praegung + $kosten_werkzeug_praegung;
+
+ //Verdelung Umschlag = folien kaschierung oder lack UM
+ $kosten_kaschierung = 0;
+ $zeit_kaschierung = 0;
+ $flaechekaschierung = ($format_offen_breite+2)*($format_offen_hoehe+2);
+ if($veredelung_umschlag == 6){
+ $kosten_kaschierung = max($Pplano_fa_mindpreis_kaschierung,$Pplano_fa_kaschierung_mk*$flaechekaschierung/10000*$auflage);
+ }
+ if($veredelung_umschlag == 7){
+ $kosten_kaschierung = max($Pplano_fa_mindpreis_kaschierung,$Pplano_fa_kaschierung_gl*$flaechekaschierung/10000*$auflage);
+ }
+
+ if($veredelung_umschlag != 0){
+ $wtvzuschusspapier_umschlag +=($auflage * 0.005 + 30) / $drucknutzen_umschlag;
+ $zeit_kaschierung = 240;
+ $wtvfrachtkosten += 25;
+ $wtvfremdkosten += $kosten_kaschierung;
+ }
+
+ //duftdruck UM
+ $kosten_duftdruck = 0;
+ $zeit_duftdruck = 0;
+ if($duftdruck != 0){
+ $kosten_duftdruck = $duftdruck*$Pplano_fa_tsdpreis_duftdruck*$auflage/1000+$Pplano_fa_fixpreis_duftdruck;
+ $zeit_duftdruck = 480;
+ $wtvzuschusspapier_umschlag += ($auflage * 0.01 + 100) / $drucknutzen_umschlag;
+ $wtvfrachtkosten += $wtvfrachtpreis;
+ }
+ $wtvfremdkosten += $kosten_duftdruck;
+
+ // Blankomuster vorab
+ $kosten_blankomuster = 115 * $blankomuster;
+ $wtveigenkosten += $kosten_blankomuster;
+
+ //freie Positionen
+ $kosten_freipos10 = $frei10fixpreis + $frei10tsdpreis / 1000 * $auflage;
+ $kosten_freipos20 = $frei20fixpreis + $frei20tsdpreis / 1000 * $auflage;
+ $wtvfremdkosten += $kosten_freipos10 + $kosten_freipos20;
+
+ //Musterversand
+ $kosten_musterversand = $musterversand * 8;
+ $wtvfremdkosten += $kosten_musterversand;
+
+ //Neutralversand, Absender
+ $kosten_absender = $absender * 0;
+ $wtvfremdkosten += $kosten_absender;
+
+ //Endabrechnung
+ $wtvzuschusspapier_inhalt = ceil($wtvzuschusspapier_inhalt);
+ $wtvzuschusspapier_umschlag = ceil($wtvzuschusspapier_umschlag);
+ $wtvzuschusspapier_kosten_inhalt = ($druckbogen_breite_inhalt * $druckbogen_hoehe_inhalt * $papier_inhalt_grammatur * $papier_inhalt_value * $wtvzuschusspapier_inhalt) / 1000000000;
+ $wtvzuschusspapier_kosten_umschlag = ($druckbogen_breite_umschlag * $druckbogen_hoehe_umschlag * $papier_umschlag_grammatur * $papier_umschlag_value * $wtvzuschusspapier_umschlag) / 1000000000;
+
+ //Einzelwerte ausgeben
+ if($what=='debug'){
+ echo('-------------------- WTV BRO --------------------'."\n");
+ echo('$kosten_endschneiden_inhalt: '.round($kosten_endschneiden_inhalt,2).' | $zeit_endschneiden: '.round($zeit_endschneiden_inhalt,2)."\n");
+ echo('$kosten_endschneiden_umschlag: '.round($kosten_endschneiden_umschlag,2).' | $zeit_endschneiden: '.round($zeit_endschneiden_umschlag,2)."\n");
+ if($kosten_rdh > 0){
+ echo('$kosten_rdh (ggf. inkl nuten Umschlag): '.round($kosten_rdh,2).' | $zeit_rdh: '.round($zeit_rdh,2)."\n");
+ echo('$wtvgeschwindigkeit_hfs: '.$wtvgeschwindigkeit_hfs."\n");
+ }
+ if($kosten_pur > 0){
+ echo('$kosten_pur: '.round($kosten_pur,2)."\n");
+ echo('$pur_kosten_kleb: '.$pur_kosten_kleb.' | $pur_seiten: '.$pur_seiten."\n");
+ echo('$pur_falzbg: '.round($pur_falzb,3).' | Falzmenge: '.$auflage * $pur_falzb."\n");
+ echo('$pur_kosten_falzbg: '.$pur_kosten_falzbg."\n");
+ }
+ if($kosten_wireo > 0){
+ echo('$kosten_wireo: '.round($kosten_wireo,2)."\n");
+ echo('$zeit_loseblatt: '.round($zeit_loseblatt,2).' | $fk_wireo_fix: '.round($fk_wireo_fix,2).' | $fk_wireo_spirale: '.round($fk_wireo_spirale,2).' | $fk_wireo_sta: '.round($fk_wireo_sta,2).' | $fk_wireo_binden: '.round($fk_wireo_binden,2).' | Buchrücken: '.$buchruecken."\n");
+ }
+ if($kosten_hdcover > 0){
+ echo('$kosten_hdcover: '.round($kosten_hdcover,2)."\n");
+ }
+ if($kosten_hdcover_leinen > 0){
+ echo('LEINEN: ('.$kosten_hdcover_leinen_fix.' + '.$auflage.' x '.round($kosten_hdcover_leinen_var,2).') x 1.2 = '.round($kosten_hdcover_leinen,2)."\n");
+ }
+ echo("\n");
+ if($kosten_registerstanzung > 0){echo('$kosten_registerstanzung: '.round($kosten_registerstanzung,2)."\n");}
+ if($kosten_beilage > 0){echo('$kosten_beilage: '.round($kosten_beilage,2)."\n");}
+ if($kosten_einschweissen > 0){echo('$kosten_einschweissen: '.round($kosten_einschweissen,2)."\n");}
+ if($kosten_buendeln > 0){echo('$kosten_bündeln: '.round($kosten_buendeln,2).' | '.'$zeit_bündeln: '.round($zeit_buendeln,2)."\n");}
+ if($kosten_praegung > 0){echo('$kosten_praegung: '.round($kosten_praegung,2).' | $zeit_praegung: '.round($zeit_praegung,2).' | anteilg. Werkzeug: '.round($kosten_werkzeug_praegung,2)."\n");}
+ if($kosten_duftdruck > 0){echo('$kosten_duftdruck: '.round($kosten_duftdruck,2)."\n");}
+ if($kosten_kaschierung > 0){echo('$kosten_kaschierung: '.round($kosten_kaschierung,2)."\n");}
+ if($kosten_perforation > 0){echo('$kosten_perforation: '.round($kosten_perforation,2)."\n");}
+ if($kosten_blankomuster > 0){echo('$kosten_blankomuster: '.round($kosten_blankomuster,2)."\n");}
+ if($kosten_musterversand > 0){echo('$kosten_musterversand: '.round($kosten_musterversand,2)."\n");}
+ if($kosten_absender > 0){echo('$kosten_absender: '.round($kosten_absender,2)."\n");}
+ if($kosten_freipos10 > 0){echo('$kosten_freipos10: '.round($kosten_freipos10,2)."\n");}
+ if($kosten_freipos20 > 0){echo('$kosten_freipos20: '.round($kosten_freipos20,2)."\n");}
+ echo('$wtvzuschusspapier_kosten_inhalt: '.round($wtvzuschusspapier_kosten_inhalt,2).' | $wtvzuschusspapier_inh: '.round($wtvzuschusspapier_inhalt,2)."\n");
+ echo('$wtvzuschusspapier_kosten_umschlag: '.round($wtvzuschusspapier_kosten_umschlag,2).' | $wtvzuschusspapier_um: '.round($wtvzuschusspapier_umschlag,2)."\n");
+ echo('----------------------------------------'."\n");
+ echo('$wtvfrachtkosten: '.round($wtvfrachtkosten,2)."\n");
+ echo('$wtveigenkosten: '.round($wtveigenkosten,2)."\n");
+ echo('$wtvfremdkosten: '.round($wtvfremdkosten,2)."\n");
+ }
+
+ return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten_inhalt, $wtvzuschusspapier_kosten_umschlag];
+
+}
+
+function getZUABBRO21($what, $auflage, $rabattierfaehigekosten, $zuab_eigenkosten, $zuab_fremdkosten, $papiersorte_sammelform_inhalt, $druckfarben_inhalt, $druckmaschine_inhalt, $papiersorte_sammelform_umschlag, $druckfarben_umschlag, $druckmaschine_umschlag, $qualitaet, $produktionszeit, $breite_offen, $hoehe_offen, $provisionsart, $provisionswert, $rabattierfaehigekosten_inhalt, $rabattierfaehigekosten_umschlag, $zussorten_umschlag, $seiten_inhalt, $seiten_umschlag, $nutzen_inhalt, $nutzen_umschlag){
+
+ $preisaenderung = 0;
+ $sammelformreduktion_inhalt = $sammelformreduktion_umschlag = $sammelfaktor_papier = $sammelwahrscheinlichkeit_format_sorten = $sammelfaktor = $sammelwahrscheinlichkeit_menge = 0;
+ $zuab_gesamtkosten = $zuab_eigenkosten + $zuab_fremdkosten;
+
+ //Sammelform UM
+ if($seiten_umschlag != 0){
+ $bedruckteSeiten = getAnzDruckfarbenBedruckteSeiten21($druckfarben_umschlag)[1];
+
+ $sammelarray = getSammelformWertePlanoFa21($auflage, $hoehe_offen, $breite_offen, $papiersorte_sammelform_umschlag, $bedruckteSeiten, $zussorten_umschlag+1);
+ $sammelfaktor_papier = $sammelarray[2];
+ $sammelwahrscheinlichkeit_menge = $sammelarray[1];
+ $sammelwahrscheinlichkeit_format_sorten = $sammelarray[0];
+
+
+ if(strtolower($druckmaschine_umschlag) == 'gto'){
+ $sammelfaktor_druckmaschine = 0.5;
+ }else{
+ $sammelfaktor_druckmaschine = 1.0;
+ }
+
+ if($produktionszeit == 3){
+ $sammelfaktor_druckmaschine *= 0.8;
+ }
+
+ $sammelfaktor = (($sammelwahrscheinlichkeit_format_sorten*75)*($sammelwahrscheinlichkeit_menge*25)/(75*25))*$sammelfaktor_papier*$sammelfaktor_druckmaschine;
+
+ if((in_array($druckfarben_umschlag,array(1,2,3,18,19))) && ($papiersorte_sammelform_umschlag != 1)){
+ $sammelformreduktion_umschlag = $rabattierfaehigekosten_umschlag * $sammelfaktor * -1;
+ }
+ $preisaenderung += $sammelformreduktion_umschlag;
+ }
+
+ //Sammelform INH // 1 = ohne, 2 = happy, 3 = eq, 4 = sense, 5 = sky, 6 = glam, 7 = post
+ if((in_array($druckfarben_inhalt,array(1,2,3,18,19))) && ($papiersorte_sammelform_inhalt != 1)){
+ $papierliste_sammelf_inhalt = array(0,-90,-120,-60,-60,-25,-25);
+ $sammelformreduktion_inhalt = $papierliste_sammelf_inhalt[$papiersorte_sammelform_inhalt-1]; // + $rabattierfaehigekosten_inhalt; (NICHT verwenden, teils fehlerhafter Abschlag!!!)
+ $preisaenderung += $sammelformreduktion_inhalt;
+ }
+
+ $sammelformreduktion = $sammelformreduktion_inhalt + $sammelformreduktion_umschlag;
+
+
+ //Qualität 1 = easyValue, 2 = ISO-Std., 3 = MaxHighEnd, Pos. in Liste (0=Fixwert,1=Prozwert)
+ $qualitaetswerte = array(array(-25,-8),array(0,0),array(35,7));
+ $qualitaet_fix = $qualitaetswerte[$qualitaet-1][0];
+ $qualitaet_proz = $qualitaetswerte[$qualitaet-1][1];
+ if($qualitaet_proz <= 0){
+ $qualkost = $zuab_eigenkosten;
+ }else{
+ $qualkost = $zuab_gesamtkosten + $sammelformreduktion/2;
+ }
+ $qualitaet_zuab = $qualitaet_fix + ($qualkost/100*$qualitaet_proz);
+ $preisaenderung += $qualitaet_zuab;
+
+
+ //Produktionszeit 1 = relaX, 2 = normal, 3 = eXpress | Pos. in Liste (0=Fixwert,1=Prozwert)
+ $zeitwerte = array(array(-20,-14),array(0,0),array(35,11)); // bis 6.7.2022 relax (-20,-11) danach geändert !!!???
+ $zeitwert_fix = $zeitwerte[$produktionszeit-1][0];
+ $zeitwert_proz = $zeitwerte[$produktionszeit-1][1];
+ if($zeitwert_proz <= 0){
+ $zeitkosten = $zuab_eigenkosten;
+ }else{
+ $zeitkosten = $zuab_gesamtkosten + $sammelformreduktion/2;
+ }
+ $zeit_zuab = $zeitwert_fix + ($zeitkosten/100*$zeitwert_proz);
+ $preisaenderung += $zeit_zuab;
+
+ //Provision (1 = Prozentual, 5, 10, 15, 20%)
+ $provision_zuschlag = 0;
+ if($provisionsart != '0'){
+ $provision_zuschlag = ($zuab_gesamtkosten+$preisaenderung)/100*$provisionswert;
+ }
+ $preisaenderung += $provision_zuschlag;
+
+
+ //Einzelwerte ausgeben
+ if($what=='debug'){
+ echo("\n".'-------------------- ZUAB BRO --------------------'."\n");
+ echo('Eingangswert EK+FK: '.round($zuab_gesamtkosten,2)."\n");
+ echo('$sammelfaktor_papier: '.round($sammelfaktor_papier,2)."\n");
+ echo('$sammelwahrscheinlichkeit_format_sorten: '.round($sammelwahrscheinlichkeit_format_sorten,4)."\n");
+ echo('$sammelwahrscheinlichkeit_menge: '.round($sammelwahrscheinlichkeit_menge,4)."\n");
+ echo('$sammelfaktor: '.round($sammelfaktor,4)."\n");
+ echo('$sammelformreduktion: '.round($sammelformreduktion_inhalt,2).' + '.round($sammelformreduktion_umschlag,2).' = '.round($sammelformreduktion,2)."\n");
+ echo("Qualität: ". $qualitaet_fix.' | '.$qualitaet_proz." = ".round($qualitaet_zuab,2)."\n");
+ echo("Produktionszeit: ".$zeitwert_fix.' | '.$zeitwert_proz." = ".round($zeit_zuab,2)."\n");
+ echo('Provision: '.round($provisionswert,2).' | '.round($provision_zuschlag,2)."\n");
+ echo('$preisaenderung total: '.round($preisaenderung,2)."\n\n");
+ }
+
+ return $preisaenderung;
+ }
+
+
+
+
+
+// ####### ENDE KOPIERSEKTION PSC #######
+
+
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/tests/Customer/V/papierContainer.xml b/tests/Customer/V/papierContainer.xml
new file mode 100644
index 0000000..0826816
--- /dev/null
+++ b/tests/Customer/V/papierContainer.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Customer/V/parameters.txt b/tests/Customer/V/parameters.txt
new file mode 100644
index 0000000..bec6f9e
--- /dev/null
+++ b/tests/Customer/V/parameters.txt
@@ -0,0 +1,252 @@
+$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 = 9;
+$aktionsrabatt_broschuere_f = 0;
+
+$onlinerabatt_plano_p = 0;
+$onlinerabatt_plano_f = 10;
+$onlinerabatt_plano_fa_digital_p = 0;
+$onlinerabatt_plano_fa_digital_f = 5;
+
+$onlinerabatt_privatdrucksachen_p = 0;
+$onlinerabatt_privatdrucksachen_f = 5;
+
+$aktionsrabatt_plano_p = 6;
+$aktionsrabatt_plano_p_vk = 3;
+$aktionsrabatt_plano_f = 0;
+$aktionsrabatt_plano_f_vk = 0;
+
+$aktionsrabatt_plano_fa_digital_p = 0;
+$aktionsrabatt_plano_fa_digital_f = 0;
+
+$papierzuschlag_broschuere = 1.35;
+$papierzuschlag_plano = 1.35;
+
+$onlinerabatt_20 = -20;
+$onlinerabatt_10 = -10;
+
+$onlinerabatt_etikett = -10;
+
+$kostenProDruckplatte = 17;
+$stundenSatzDruck = 140;
+$stundenSatzDruckGTO = 40;
+$ruestZeitJeDruckplatte = 5;
+$ruestZeitJeDruckplatteGTO = 15;
+$kostenProZusatzdruckplatteGTO = 35;
+
+$farbwechselZeit = 45;
+$farbwechselZeitGTO = 20;
+
+$stundensatz_wtv_maschinen = 50;
+$stundensatz_wtv = 30;
+$stundensatz_vorstufe = 70;
+$sortenzeit_vorstufe = 3;
+$grundzeit_vorstufe = 20;
+$stundensatz_vorstufe_daten_huellen = 70;
+$vorstufe_fixkosten = 20;
+
+$papieraufschlag_huellen = 1.35;
+
+$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;
+
+$umweltzeichen_fsc = 15;
+$umweltzeichen_blauerengel = 35;
+
+// WTV
+$bro_fixzeit_schneiden = 15;
+$bro_schneidewert = 1900;
+$ringoesen = 60;
+$oesen_stkpreis = 0.20;
+$oesen_fixpreis = 45;
+$beilage_einlegen_bestimmte = 45;
+$beilage_einlegen_unbestimmte = 35;
+$buendeln = 0.25; // = für BRO
+$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;
+
+$bro_mindpreis_kaschierung = 155;
+$plano_fa_mindpreis_kaschierung = 135;
+$plano_fa_kaschierung_mk = 0.8;
+$plano_fa_kaschierung_gl = 0.6;
+$plano_fa_kaschierung_legl = 0.9;
+$plano_fa_fixpreis_duftdruck = 300;
+$plano_fa_tsdpreis_duftdruck = 20;
+$plano_fa_fixpreis_nummerierung = 40;
+$plano_fa_tsdpreis_nr_schwarz_inkjet = 15;
+$plano_fa_tsdpreis_nr_farbig_laser = 80;
+$plano_fa_tsdpreis_nr_schwarz_laser = 40;
+$plano_fa_aufpreis_anderes_dateiformat = 25;
+$plano_fa_fixpreis_buendeln = 15;
+$plano_fa_preis_je_buendel = 0.09;
+$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 = 360;
+$plano_fa_tsdpreis_cito = 35;
+$plano_fa_fixpreis_cito_nassleimetik = 80;
+$plano_fa_tsdpreis_cito_nassleimetik = 2;
+$plano_fa_max_nutzenflaeche = 4489;
+
+// 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;
+
+$sammelform_plano_fa_faktor_happy = 90;
+$sammelform_plano_fa_faktor_eq = 80;
+$sammelform_plano_fa_faktor_sense = 65;
+$sammelform_plano_fa_faktor_sky = 60;
+$sammelform_plano_fa_faktor_glam = 45;
+$sammelform_plano_fa_faktor_post = 45;
+
+$sammelformfaktor_plano_fa_gto = 0.5;
+$sammelformfaktor_plano_fa_kba = 1.0;
+
+// 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
+$digitaldruck_sortenkosten = 20;
+$standard_bogenbreite = 45;
+$standard_bogenhoehe = 32;
+$stundensatz_vorstufe_digitaldruck = 60;
+$stundensatz_nuten_digitaldruck = 15;
+$stundensatz_klebebinder = 200;
+$papierzuschlag_digitaldruck = 1.7;
+$klick_digitaldruck_a4fbg = 0.23;
+$klick_digitaldruck_a4sw = 0.11;
+$kaldig_varkosten_wireo = 0.8;
+$kaldig_fixkosten_wireo = 60;
+
+$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;
+$digitaldruck_stanzen_fix1 = 65;
+$digitaldruck_stanzen_fix2 = 135;
+
+
+$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.45;
+$bro_aufschlag_wire_o = 1.40;
+$bro_aufschlag_hdcover = 1.20;
+$bro_rdh_max_heftdicke = 0.45;
+
+$bro_aufschlag_fix_hdcover = 800;
+$bro_aufschlag_fix_leinen = 375;
+$bro_aufschlag_var_leinen = 1.65;
+
+$bro_weight_faktor = 1.05;
+$bro_wtv_weight_zuschlag_fix = 50;
+
+$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;
\ No newline at end of file
diff --git a/tests/Mock/PaperRepostory.php b/tests/Mock/PaperRepostory.php
index 617d0a5..642cdc3 100644
--- a/tests/Mock/PaperRepostory.php
+++ b/tests/Mock/PaperRepostory.php
@@ -237,6 +237,21 @@ class PaperRepostory implements ObjectRepository
$papier['sm150g']->setUmschlagen(1);
$papier['sm150g']->setHappy(1);
+ $papier['sm300g'] = new Paper();
+ $papier['sm300g']->setArtNr('sm300g');
+ $papier['sm300g']->setGrammatur('300');
+ $papier['sm300g']->setPreis('175');
+ $papier['sm300g']->setDescription1('Bilderdruck seidenmatt 300g *');
+ $papier['sm300g']->setDescription2('Bilderdruck seidenmatt, aus zert. nachhaltiger Forstwirtschaft');
+ $papier['sm300g']->setPapierTyp1(1);
+ $papier['sm300g']->setPapierTyp2(1);
+ $papier['sm300g']->setPapierTyp3(1);
+ $papier['sm300g']->setPapierTyp11(1);
+ $papier['sm300g']->setPapierTyp14(1);
+ $papier['sm300g']->setPapierTyp13(1);
+ $papier['sm300g']->setUmschlagen(1);
+ $papier['sm300g']->setHappy(1);
+
$papier['lwc65'] = new Paper();
$papier['lwc65']->setArtNr('lwc65');
$papier['lwc65']->setGrammatur('65');