From f7018214a3784eec4cdf18aba5baa539863b48c6 Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Wed, 18 Jan 2023 15:40:32 +0100 Subject: [PATCH] Fix Calc php 8 --- src/Calc/Calc.php | 11 +- tests/Customer/V/CalcTest.php | 44 + tests/Customer/V/calc.xml | 677 +++++++ tests/Customer/V/calcTemplates.xml | 163 ++ tests/Customer/V/formels.txt | 2685 ++++++++++++++++++++++++++ tests/Customer/V/papierContainer.xml | 6 + tests/Customer/V/parameters.txt | 252 +++ tests/Mock/PaperRepostory.php | 15 + 8 files changed, 3845 insertions(+), 8 deletions(-) create mode 100644 tests/Customer/V/CalcTest.php create mode 100644 tests/Customer/V/calc.xml create mode 100644 tests/Customer/V/calcTemplates.xml create mode 100644 tests/Customer/V/formels.txt create mode 100644 tests/Customer/V/papierContainer.xml create mode 100644 tests/Customer/V/parameters.txt 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');