if(!function_exists('getSammelformMengenAbschlagPlano')) {
function getSammelformMengenAbschlagPlano($menge) {
       return 1;
    }// ####### BEGINN KOPIERSEKTION PSC #######


// Test
function getTest23($auflage){
    $internarr = array('$parameter 1' => '250', '$parameter2' => 'test2', '$parameter3' => 'ja');
    $intern = Array2String($internarr);
    $ergebnis = array('$eigenkosten' => $auflage, '$fremdkosten' => 650, '$preisaend' => -100, '$versandgewicht' => 7250, '$intern' => $intern);
    return $ergebnis;
}

// Arrays für Ausgabe umwandeln
function Array2String($array) {
	$glue = ' ### ';
	$symbol = ' = ';
    return implode($glue, array_map(
            function($k, $v) use($symbol) {
                return $k . $symbol . $v;
            },
            array_keys($array),
            array_values($array)
            )
        );
}

// DIGITALDRUCK
function getPrePressDIGI23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $loseblatt, $personalisierung, $seiten_inhalt, $seiten_umschlag){
    //Parameter
    $Pstundensatz_vorstufe = 70;
    $Pplano_fa_aufpreis_anderes_dateiformat = 30;
    $Pumweltzeichen_fsc = 25;
    $Pumweltzeichen_blauerengel = 50;
    $Psortenzeit_vorstufe = 3;
    $Pgrundzeit_vorstufe = 10;
    $Pgrundzeit_loseblatt = 10;

    $bedruckteSeiten = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt)[1];

    $anzahlSeiten = $seiten_umschlag + $seiten_inhalt;
    if($anzahlSeiten == 0){$anzahlSeiten = $bedruckteSeiten;}

    $datenuebernahme_kosten = ($Pgrundzeit_loseblatt * $loseblatt + $Pgrundzeit_vorstufe + $sortenzahl*$bedruckteSeiten*$Psortenzeit_vorstufe + $anzahlSeiten/4)/60*$Pstundensatz_vorstufe;

    $dateiformat_kosten = 0;
    if($dateiformat_geliefert != 1){
        $dateiformat_kosten = $Pplano_fa_aufpreis_anderes_dateiformat + $anzahlSeiten *1;
    }

    $korrekturabzug_kosten = 0;
    if($korrekturabzug == 2){
        $korrekturabzug_kosten = max(8, 0.3 * ($sortenzahl*$bedruckteSeiten + $anzahlSeiten));
    }

    $umweltzeichen_kosten = 0;
    if($umweltzeichen == 2){
        $umweltzeichen_kosten = $Pumweltzeichen_fsc;
    }
    if($umweltzeichen == 3){
        $umweltzeichen_kosten = $Pumweltzeichen_blauerengel;
    }

    $eigenkosten_prepress = $datenuebernahme_kosten + $dateiformat_kosten + $korrekturabzug_kosten + $umweltzeichen_kosten;

    return $eigenkosten_prepress;
}

function getDruckNutzenDIGI($breite_offen, $hoehe_offen){
    $Druckbogenbreite = 48.7;
    $Druckbogenhoehe = 33;
    $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];
}

// Klickkosten EK basieren auf DIN A4, $klickkosten werden in Kalkuaktion aber auf DIN A3 verwendet/gerechnet !
function getKlickKostenDigitaldruck(){
    $KlickKosten_4C = 0.042 * 5;    //= EK Dewart DIN A4 Klick 4/2022 x Faktor Farbe >>> VK DIN A3 4C
    $KlickKosten_SW = 0.012 * 8;    //= EK Dewart DIN A4 Klick 4/2022 x Faktor SW >>> VK DIN A3 SW
    return [$KlickKosten_SW, $KlickKosten_4C];
}

function getPrintDIGIPlanoFa23($what, $papiersorte_grammatur, $papiersorte_value, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $sortenzahl, $papiersorte_sammelform, $anzblattjeblock, $wtvzuschusspapier){

    [$KlickKosten_SW, $KlickKosten_4C] = getKlickKostenDigitaldruck();
    if($druckfarben_inhalt == 1 || $druckfarben_inhalt == 3){
        $klickkosten = $KlickKosten_4C;
    }else{
        $klickkosten = $KlickKosten_SW;
    }

    [$anzahlDruckfarben, $bedruckteSeiten] = getAnzDruckfarbenBedruckteSeiten21($druckfarben_inhalt);

    [$drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender] = getDruckNutzenDIGI($breite_offen, $hoehe_offen);

    $nettobg = ceil($auflage/$drucknutzen);
    $zuschuss_digitaldruck = ceil(7 * $bedruckteSeiten + (($sortenzahl-1) * 3) + $nettobg * 0.03);
    $bruttobg = $nettobg + $wtvzuschusspapier + $zuschuss_digitaldruck;
    $papierkosten = ($Druckbogenbreite * $Druckbogenhoehe * $papiersorte_grammatur * $papiersorte_value / 1000000000 * $bruttobg) * 1.3;

    $mengenabschlagDruck = 1 - log10($auflage*$auflage)/50/$drucknutzen*$bedruckteSeiten;

    $druckkosten = $bruttobg * $klickkosten * $bedruckteSeiten * $mengenabschlagDruck;

    if($papiersorte_sammelform == 0){
        $ruestkosten = 20 + ($sortenzahl-1) * 3;
    }else{
        $ruestkosten = 5 + ($sortenzahl-1) * 3;
    }

    $eigenkosten_digitaldruck = $ruestkosten + $druckkosten;
    $fremdkosten_digitaldruck = $papierkosten;

    return [$eigenkosten_digitaldruck, $fremdkosten_digitaldruck, $nettobg, $zuschuss_digitaldruck, $papierkosten, $bruttobg, $ruestkosten, $druckkosten, $klickkosten, $mengenabschlagDruck];

}

function getWTVDIGIPlanoFa23($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 / 10000 * 1.1;
    $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_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 * 20) / $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
    $EinsatzFaktor = 1;
    if($stanzung != 0){$EinsatzFaktor = 2;}
    if($falzung != 0){$EinsatzFaktor = $falzung * 2;}
    $ExplJeEinsatz = 40 / $papiersorte_grammatur * 1000 / $EinsatzFaktor;
    $zeit_eckenrunden = 0;
    $kosten_eckenrunden = 0;
    if($ecken_runden == 3 || $ecken_runden == 5) {
        $zeit_eckenrunden = 0.5 + 4 * $auflage / $ExplJeEinsatz * 25 / 3600;
        $kosten_eckenrunden = $zeit_eckenrunden * $Pstundensatz_wtv;
    }
    $wtveigenkosten += $kosten_eckenrunden;


    //bohren, lochen Digitaldruck
    $zeit_bohren_lochen = 0;
    if($bohren_lochen != 0){
        $bohrformatliste = array(array(0.1,2),array(5,1.6),array(10,1.3),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 *= 1.7;
        }
        if(!($falzung == 'nein' || $falzung == 0)){
            $bohraufschlag *= 2;
        }
        if(($bohren_lochen == 2) && ($bohraufschlag == 1)){$bohren_lochen = 1;}  //für DIN A4 2-fach Sonderpreis

        $bohreinsaetzeJeExpl = ceil($bohren_lochen / 2);
        $maxbohrhoehe = 40;         //mm
        $zeitjebohreinsatz = 1.5;   //Minuten je Bohreinsatz
        $dicke = $papiersorte_grammatur / 1000 * $auflage * $anzblattjeblock;
        $anzahlbohreinsaetze = $bohreinsaetzeJeExpl * ($dicke / $maxbohrhoehe);
        $zeit_bohren_lochen = ((5 * $bohren_lochen + $anzahlbohreinsaetze * $zeitjebohreinsatz) / 60)* $bohraufschlag;
    }
    $kosten_bohren_lochen = $zeit_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;

    return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung, $kosten_endschneiden, $zeit_endschneiden, $kosten_falzung, $zeit_falzung, $fakt_falzung, $kosten_nuten, $zeit_nuten, $kosten_personalisierung, $kosten_eckenrunden, $zeit_eckenrunden, $kosten_bohren_lochen, $zeit_bohren_lochen, $kosten_loseblatt];

}

function getDigiWTVFormate($breite_offen, $hoehe_offen, $stanzung, $stanzart, $nutlinien){
    if($stanzung != 0){
        $breite_offen += 0.6;
        $hoehe_offen += 0.6;
    }
    return [$breite_offen, $hoehe_offen];
}

function getZUABPlanoDigiFA23($what, $auflage, $eigenkosten, $fremdkosten, $papiersorte_sammelform, $produktionszeit, $qualitaet, $sortenzahl, $provisionsart, $provisionswert){
    $preisaend = 0;
    $provisions_betrag = 0;
    $produktionszeit_betrag = 0;
    $qualitaet_betrag = 0;

    if($papiersorte_sammelform != 1){$preisaend += -10;}

    if ($provisionsart == "1") {
        $provisions_betrag = $provisionswert / 100 * ($eigenkosten + $fremdkosten);
    }

    if ($produktionszeit == 1) {
        $produktionszeit_betrag = $eigenkosten * -0.05;}
    if ($produktionszeit == 3) {
        $produktionszeit_betrag = ($eigenkosten + $fremdkosten) * 0.1 + 15;}

    $preisaend += $provisions_betrag + $produktionszeit_betrag + $qualitaet_betrag;

    return $preisaend;
}

function getZUABBRODigiFA23($what, $auflage, $eigenkosten, $fremdkosten, $papier_inhalt_sammelform, $papier_umschlag_sammelform, $produktionszeit, $qualitaet, $sortenzahl, $provisionsart, $provisionswert){
    $preisaend = 0;
    $provisions_betrag = 0;
    $produktionszeit_betrag = 0;
    $qualitaet_betrag = 0;

    if($papier_inhalt_sammelform != 1){$preisaend += -10;}
    if($papier_umschlag_sammelform != 1){$preisaend += -10;}

    if ($provisionsart == "1") {
        $provisions_betrag = $provisionswert / 100 * ($eigenkosten + $fremdkosten);
    }

    if ($produktionszeit == "1") {
        $produktionszeit_betrag = $eigenkosten * -0.05;}
    if ($produktionszeit == "3") {
        $produktionszeit_betrag = ($eigenkosten + $fremdkosten) * 0.1 + 15;}

    $preisaend += $provisions_betrag + $produktionszeit_betrag + $qualitaet_betrag;

    return $preisaend;
}

function getDigitALLBRO23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $auflage, $breite_geschl, $hoehe_geschl, $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, $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, $seiten_umschlag, $zussorten_umschlag, $papier_umschlag_vs_rs_unterschiedlich, $druckfarben_umschlag, $papier_umschlag_sammelform, $zusatz_sorten_umschlag, $veredelung_umschlag, $papier_inhalt_art_nr, $papier_umschlag_art_nr, $weiterverarbeitung, $ausfuehrung, $klammerung, $buendeln, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $blankomuster, $musterversand, $absender, $qualitaet, $produktionszeit, $provisionsart, $provisionswert)
{

    // $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

    //Parameter
    $Pplano_fa_mindpreis_kaschierung = 135;
    $Pplano_fa_kaschierung_mk = 0.8;
    $Pplano_fa_kaschierung_gl = 0.6;

    $druckgeschwindigkeit_inhalt = 300;

    $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];
    $breite_offen_inhalt = $breite_geschl * 2 + $beschnitt_horiz;
    $hoehe_offen_inhalt = $hoehe_geschl + $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;
    }

    $breite_offen_umschlag = $breite_geschl * 2 + $beschnitt_horiz + $bubipappe + $buchruecken;
    $hoehe_offen_umschlag = $hoehe_geschl + $beschnitt_vert;

    $eigenkosten_prepress = getPrePressDIGI23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen_inhalt, $hoehe_offen_inhalt, 0, 0, $seiten_inhalt, $seiten_umschlag);

    [$drucknutzen_inhalt, $druckbogen_breite_inhalt, $druckbogen_hoehe_inhalt, $DruckbgRaender_inhalt] = getDruckNutzenDIGI($breite_offen_inhalt, $hoehe_offen_inhalt);


    // WTV DIGI BRO

    $Pstundensatz_wtv = 30;
    $Pstundensatz_wtv_maschinen = 50;
    $wtveigenkosten = 0;
    $wtvfremdkosten = 0;
    $wtvzuschusspapier_inhalt = 0;
    $wtvzuschusspapier_umschlag = 0;
    $wtvfrachtkosten = 0;
    $wtvfrachtgewicht = $auflage * $hoehe_geschl * $breite_geschl * ($seiten_inhalt / 2 * $papier_inhalt_grammatur + $seiten_umschlag / 2 * $papier_umschlag_grammatur) / 10000 * 1.1;
    $wtvfrachtpreis = 50 + $wtvfrachtgewicht / 400000 * 15;

    $wtvgeschwindigkeit_hfs_digitaldrucke = 300; //???
    $Pplano_fa_fixpreis_buendeln = 15;
    $Pbro_preis_je_buendel = 0.09;

    $druckbogen_breite_umschlag = $druckbogen_breite_inhalt;
    $druckbogen_hoehe_umschlag = $druckbogen_hoehe_inhalt;

    if ($drucknutzen_inhalt < 1) {
        $drucknutzen_inhalt = 1;
    }
    $drucknutzen_umschlag = $drucknutzen_inhalt;
        if ($drucknutzen_umschlag < 1) {
        $drucknutzen_umschlag = 1;
    }
    $anzDruckbg_inhalt = ceil(($seiten_inhalt / 2) / $drucknutzen_inhalt);
    $anzDruckbg_umschlag = ceil(($seiten_umschlag / 2) / $drucknutzen_umschlag);


    // endschneiden + verpacken DIGI
    $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 / 3000) / 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 * (2 + $auflage * 0.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (2 + $auflage * 0.005);
    } elseif ($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 * (2 + $auflage * 0.005);
    }

    // RDH DIGI

    $zeit_rdh = $kosten_rdh = 0;
    if ($weiterverarbeitung == '1') {
        if ($breite_geschl < 25 && $breite_geschl >= 9.0 && $hoehe_geschl >= 10.5) {
            $zeit_rdh = 0.25 + ($seiten_inhalt/2 + $seiten_umschlag) / 60 + ($auflage / $wtvgeschwindigkeit_hfs_digitaldrucke);
        } else {
            $zeit_rdh = (2 + ($seiten_inhalt/2 + $seiten_umschlag) / 60 + ($auflage / $wtvgeschwindigkeit_hfs_digitaldrucke)) * 3;
            $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 * (10 + $auflage * 0.02);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (10 + $auflage * 0.02);
    }


    // PUR DIGI
    $zeit_pur = $kosten_pur = 0;
    $fixkosten_pur_digitaldruck = 280;
    $kosten_pur_expl_digitaldruck = 0.40;

    if ($weiterverarbeitung == '2') {

        $kosten_pur = 1.3 * ($fixkosten_pur_digitaldruck + $auflage * $kosten_pur_expl_digitaldruck);
        $zeit_pur = 24 * 4;
        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (10 + $auflage * 0.02);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (10 + $auflage * 0.02);
        $wtvfrachtkosten += $wtvfrachtpreis;
        $wtvfremdkosten += $kosten_pur;
    }

    // Wire-O DIGI
    $zeit_wireo = $kosten_wireo = 0;
    $kosten_loseblatt_digitaldruck = 15 + $auflage * 0.2;

    if ($weiterverarbeitung == '3') {

        //Wire-O stanzen + binden + Spirale DIGI
        $fk_wireo_fix = 150;
        $fk_wireo_spirale = 0.05 + ceil($hoehe_geschl / 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_digitaldruck;
        $zeit_wireo = 24 * 4;

        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (20 + $auflage * 0.02);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (20 + $auflage * 0.02);
        $wtvfrachtkosten += $wtvfrachtpreis;
        $wtvfremdkosten += $fk_wireo;
    }


    // HDCOVER DIGI
    $zeit_hdcover = $kosten_hdcover = 0;
    if ($weiterverarbeitung == '4') {
        $kosten_hdcover = 999999;
        $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 DIGI
    $zeit_hdcover_leinen = $kosten_hdcover_leinen = 0;
    if ($weiterverarbeitung == '5') {
        $kosten_hdcover_leinen_fix = 999999999;
        $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_wakal = 0;
    if ($weiterverarbeitung == '6') {
        if ($breite_geschl < 12 || $breite_geschl > 43 || $hoehe_geschl < 12 || $hoehe_geschl > 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_geschl, $hoehe_geschl]) + 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;
    }

    //Verdelung Umschlag = folien kaschierung oder lack UM
    $kosten_kaschierung = 0;
    $zeit_kaschierung = 0;
    $flaechekaschierung = ($breite_offen_umschlag+2)*($hoehe_offen_umschlag+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 += $anzDruckbg_umschlag * (30 + $auflage * 0.002);
        $zeit_kaschierung = 240;
        $wtvfrachtkosten += 25;
        $wtvfremdkosten += $kosten_kaschierung;
    }

    //bündeln DIGI
    $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;

    // Blankomuster vorab DIGI
    $kosten_blankomuster = 115 * $blankomuster;
    $wtveigenkosten += $kosten_blankomuster;

    //freie Positionen DIGI
    $kosten_freipos10 = $frei10fixpreis + $frei10tsdpreis / 1000 * $auflage;
    $kosten_freipos20 = $frei20fixpreis + $frei20tsdpreis / 1000 * $auflage;
    $wtvfremdkosten += $kosten_freipos10 + $kosten_freipos20;

    //Musterversand DIGI
    $kosten_musterversand = $musterversand * 8;
    $wtvfremdkosten += $kosten_musterversand;

    //Neutralversand, Absender DIGI
    $kosten_absender = $absender * 0;
    $wtvfremdkosten += $kosten_absender;

    // Digitaldruck BRO Umschlag

    if ($seiten_umschlag > 0) {
        [$drucknutzen_umschlag, $druckbogen_breite_umschlag, $druckbogen_hoehe_umschlag, $DruckbgRaender_umschlag] = getDruckNutzenDIGI($breite_offen_umschlag, $hoehe_offen_umschlag);

        [$eigenkosten_digitaldruck_umschlag, $fremdkosten_digitaldruck_umschlag, $nettobg_umschlag, $zuschuss_digitaldruck_umschlag, $papierkosten_umschlag, $bruttobg_umschlag, $ruestkosten_umschlag, $druckkosten_umschlag, $klickkosten_umschlag, $mengenabschlagDruck_umschlag] = getPrintDIGIPlanoFa23($what, $papier_umschlag_grammatur, $papier_umschlag_value, $auflage, $druckfarben_umschlag, $breite_offen_umschlag, $hoehe_offen_umschlag, $sortenzahl, $papier_umschlag_sammelform, 1, $wtvzuschusspapier_umschlag);
    } else {
        [$eigenkosten_digitaldruck_umschlag, $fremdkosten_digitaldruck_umschlag, $nettobg_umschlag, $zuschuss_digitaldruck_umschlag, $papierkosten_umschlag, $bruttobg_umschlag, $ruestkosten_umschlag, $druckkosten_umschlag, $klickkosten_umschlag, $mengenabschlagDruck_umschlag, $drucknutzen_umschlag, $druckbogen_breite_umschlag, $druckbogen_hoehe_umschlag, $DruckbgRaender_umschlag] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
    }


    // Digitaldruck BRO Inhalt

    [$KlickKosten_SW, $KlickKosten_4C] = getKlickKostenDigitaldruck();
    if ($druckfarben_inhalt == 1 || $druckfarben_inhalt == 3) {
        $klickkosten_inhalt = $KlickKosten_4C;
    } else {
        $klickkosten_inhalt = $KlickKosten_SW;
    }

    $price_inhalt = 9999999;

    $formate = array();

    if ($papier_inhalt_papiertyp1) {
        $formate[] = array('type' => 1, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 4, 'ntz_rohbg' => 4);
    }
    if ($papier_inhalt_papiertyp1 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
        $formate[] = array('type' => 2, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 2, 'ntz_rohbg' => 4);
    }

    if ($papier_inhalt_papiertyp2) {
        $formate[] = array('type' => 5, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 4, 'ntz_rohbg' => 4);
    }
    if ($papier_inhalt_papiertyp2 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
        $formate[] = array('type' => 5, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 2, 'ntz_rohbg' => 4);
    }

    if ($papier_inhalt_papiertyp3) {
        $formate[] = array('type' => 3, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 4, 'ntz_rohbg' => 2);
    }
    if ($papier_inhalt_papiertyp3 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
        $formate[] = array('type' => 3, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 2, 'ntz_rohbg' => 2);
    }

    if ($papier_inhalt_papiertyp4) {
        $formate[] = array('type' => 7, 'breite' => 30.5, 'hoehe' => 43, 'seiten' => 4, 'ntz_rohbg' => 2);
    }
    if ($papier_inhalt_papiertyp4 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
        $formate[] = array('type' => 7, 'breite' => 40.5, 'hoehe' => 43, 'seiten' => 2, 'ntz_rohbg' => 2);
    }

    if ($papier_inhalt_papiertyp14) {
        $formate[] = array('type' => 5, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 4, 'ntz_rohbg' => 4);
    }
    if ($papier_inhalt_papiertyp2 && ($weiterverarbeitung == 2 || $weiterverarbeitung == 3 || $weiterverarbeitung == 6)) {
        $formate[] = array('type' => 5, 'breite' => 48.7, 'hoehe' => 33, 'seiten' => 2, 'ntz_rohbg' => 4);
    }

    foreach ($formate as $key => $format) {

        // INH besser mit 45 x 32 kalkulieren???
        if ($format['seiten'] == 4) {
            $calc1 = floor(($format['breite'] - $DruckbgRaender_inhalt) / $breite_offen_inhalt) * floor(($format['hoehe'] - $DruckbgRaender_inhalt) / $hoehe_offen_inhalt) * 2;
            $calc2 = floor(($format['breite'] - $DruckbgRaender_inhalt) / $hoehe_offen_inhalt) * floor(($format['hoehe'] - $DruckbgRaender_inhalt) / $breite_offen_inhalt) * 2;
        } else {
            $calc1 = floor((($format['breite'] - $DruckbgRaender_inhalt) / ($breite_offen_inhalt / 2))) * floor((($format['hoehe'] - $DruckbgRaender_inhalt)) / $hoehe_offen_inhalt);
            $calc2 = floor((($format['breite'] - $DruckbgRaender_inhalt) / ($hoehe_offen_inhalt / 2))) * floor((($format['hoehe'] - $DruckbgRaender_inhalt)) / $breite_offen_inhalt);
        }

        $drucknutzen_inhalt1 = ($calc1 > $calc2) ? $calc1 : $calc2;

        if ($drucknutzen_inhalt1 >= 1) {

            $papiernutzen_inhalt1 = $format['ntz_rohbg'];
            $nettobg_inhalt1 = $seiten_inhalt / $drucknutzen_inhalt1 * $auflage / 2;
            $zuschuss_inhalt1 = 20 + ($seiten_inhalt / ($drucknutzen_inhalt1 * 2) * $auflage * 0.03) + $wtvzuschusspapier_inhalt;
            $druckkosten_inhalt1 = ($nettobg_inhalt1 + $zuschuss_inhalt1) * $klickkosten_inhalt * 2;
            $druckzeitfortdruck1 = ($zuschuss_inhalt1 + $nettobg_inhalt1) / $druckgeschwindigkeit_inhalt;
            $papierkosten_inhalt1 = (($nettobg_inhalt1 + $zuschuss_inhalt1) * $format['hoehe'] * $format['breite'] * $papier_inhalt_grammatur * $papier_inhalt_value / 1000000000);

            $price_inhalt_calc = $papierkosten_inhalt1 + $druckkosten_inhalt1;
        } else {
            $price_inhalt_calc = $price_inhalt;
        }

        if (($price_inhalt_calc < $price_inhalt) && ($drucknutzen_inhalt1 > 0)) {
            $price_inhalt = $price_inhalt_calc;
            $drucknutzen_inhalt = $drucknutzen_inhalt1;
            $zuschuss_inhalt = ceil($zuschuss_inhalt1);
            $nettobg_inhalt = ceil($nettobg_inhalt1);
            $druckbogen_hoehe_inhalt = $format['hoehe'];
            $druckbogen_breite_inhalt = $format['breite'];
            $papiernutzen_inhalt = $format['ntz_rohbg'];
            $druckzeitfortdruck_inhalt = $druckzeitfortdruck1;
            $papierkosten_inhalt = $papierkosten_inhalt1;
        }
    }

    $papieraufschlagfaktor_inhalt = 1.7;
    $price_inhalt -= $papierkosten_inhalt;
    $papierkosten_inhalt *= $papieraufschlagfaktor_inhalt;
    $price_inhalt += $papierkosten_inhalt;
    $eigenkosten_inhalt = $price_inhalt - $papierkosten_inhalt;
    $fremdkosten_inhalt = $price_inhalt - $eigenkosten_inhalt;

    //Endabrechnung DIGI
    $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;

    $versandgewicht = $auflage * $hoehe_geschl * $breite_geschl * ($seiten_inhalt / 2 * $papier_inhalt_grammatur + $seiten_umschlag / 2 * $papier_umschlag_grammatur) / 10000 * 1.2;

    $eigenkosten = $eigenkosten_prepress + $eigenkosten_digitaldruck_umschlag + $eigenkosten_inhalt + $wtveigenkosten;
    $fremdkosten = $fremdkosten_digitaldruck_umschlag + $fremdkosten_inhalt + $wtvfremdkosten + $wtvfrachtkosten + $wtvzuschusspapier_kosten_inhalt + $wtvzuschusspapier_kosten_umschlag;

    $preisaend = getZUABBRODigiFA23($what, $auflage, $eigenkosten, $fremdkosten, $papier_inhalt_sammelform, $papier_umschlag_sammelform, $produktionszeit, $qualitaet, $sortenzahl, $provisionsart, $provisionswert);

    $basispreisnetto = $eigenkosten + $fremdkosten + $preisaend;

    // Einzelwerte ausgeben
    if ($what == 'debug') {
        echo ('-------------------- Digitaldruck PrePress --------------------' . "\n<br />");
        $Ausgabeliste = array('Vorstufe: ' => $eigenkosten_prepress);
        foreach ($Ausgabeliste as $bez => $wert) {
            if ($wert != 0) {
                echo ($bez . number_format($wert, 2 , ',', '.') . " € \n<br />");
            }
        }
    }

    // Einzelwerte ausgeben
    if (($what == 'debug') && ($seiten_umschlag > 0)) {
        echo ('--------------------  Digitaldruck Print Umschlag -------------------- ' . "\n<br />");
        echo ('Format offen:' . $breite_offen_umschlag . ' x ' . $hoehe_offen_umschlag . ' cm' . "\n<br />");
        echo ('Papier: ' . $druckbogen_breite_umschlag . ' x ' . $druckbogen_hoehe_umschlag . ' cm mit ' . $nettobg_umschlag . ' Nettobg. + ' . $zuschuss_digitaldruck_umschlag . ' ZU Druck + ' . $wtvzuschusspapier_umschlag . ' ZU WTV = ' . number_format($bruttobg_umschlag + $wtvzuschusspapier_umschlag, 0) . ' Bg. zu ' . $drucknutzen_umschlag . ' Drucknutzen' . "\n<br />");
        echo ('Rüstkosten: ' . number_format($ruestkosten_umschlag, 2 , ',', '.') . " € | ");
        echo ('Druckkosten: ' . (number_format($druckkosten_umschlag, 2 , ',', '.')) . " €\n<br />");
        echo ('Papier: ' . number_format($papierkosten_umschlag, 2 , ',', '.') . " €\n<br />");
        echo ('VK Klick DIN A3 ohne Abschlag: ' . $klickkosten_umschlag . ' € | Mengenfaktor: ' . number_format($mengenabschlagDruck_umschlag, 2 , ',', '.') . " % \n<br />");
        echo ('Druck Eigenkosten: ' . number_format($eigenkosten_digitaldruck_umschlag, 2 , ',', '.') . " €\n<br />");
        echo ('Druck Fremdkosten: ' . number_format($fremdkosten_digitaldruck_umschlag, 2 , ',', '.') . " € \n<br />");
        echo ('Gesamtkosten Print Umschlag: ' . (number_format($eigenkosten_digitaldruck_umschlag + $fremdkosten_digitaldruck_umschlag, 2 , ',', '.')) . " €\n\n<br />");
    }

    // Einzelwerte ausgeben
    if ($what == 'debug') {
        echo ('-------------------- Digitaldruck Print INHALT --------------------' . "\n<br />");
        echo ('Format offen:' . $breite_offen_inhalt . ' x ' . $hoehe_offen_inhalt . ' cm' . "\n<br />");
        echo ('Papier: ' . $druckbogen_breite_inhalt . ' x ' . $druckbogen_hoehe_inhalt . ' mit ' . $nettobg_inhalt . ' + ' . $zuschuss_inhalt . ' = ' . ($zuschuss_inhalt + $nettobg_inhalt) . ' Bg. zu ' . $drucknutzen_inhalt . " Nutzen \n<br />");
        echo ('Rohbogen mit ' . $papiernutzen_inhalt . " Nutzen \n<br />");
        echo ('offenes Format: ' . number_format($breite_offen_inhalt, 2 , ',', '.') . ' x ' . number_format($hoehe_offen_inhalt, 2 , ',', '.') . " cm \n<br />");
        echo ('Papier: ' . number_format($papierkosten_inhalt, 2 , ',', '.') . ' €' . "\n<br />");
        echo ('Druck Eigenkosten: ' . number_format($eigenkosten_inhalt, 2 , ',', '.') . " €\n<br />");
        echo ('Druck Fremdkosten: ' . number_format($fremdkosten_inhalt, 2 , ',', '.') . " €\n<br />");
        echo ('Gesamtkosten Print Inhalt: ' . (number_format($eigenkosten_inhalt + $fremdkosten_inhalt, 2 , ',', '.')) . " €\n\n<br />");
        echo ('-------------------- WTV BRO DIGI --------------------' . "\n<br />");
        if ($seiten_umschlag > 0) {
            echo ('Kosten Endschneiden UM: ' . number_format($kosten_endschneiden_umschlag, 2 , ',', '.') . ' € |  Zeit: ' . number_format($zeit_endschneiden_umschlag, 2 , ',', '.') . " h\n<br />");
        }
        echo ('Kosten Endschneiden INH: ' . number_format($kosten_endschneiden_inhalt, 2 , ',', '.') . ' € |  Zeit: ' . number_format($zeit_endschneiden_inhalt, 2 , ',', '.') . " h\n<br />");

        if ($kosten_rdh > 0) {
            echo ('Kosten RDH (ggf. inkl. nuten): ' . number_format($kosten_rdh, 2 , ',', '.') . ' € |  Zeit: ' . number_format($zeit_rdh, 2 , ',', '.') . " h\n<br />");
            echo ('WTV Geschw. HFS: ' . $wtvgeschwindigkeit_hfs_digitaldrucke . " Expl./h \n<br />");
        }
        if ($kosten_pur > 0) {
            echo ('Kosten PUR: ' . number_format($kosten_pur, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_wireo > 0) {
            echo ('Kosten Wire-O: ' . number_format($kosten_wireo, 2 , ',', '.') . " € \n<br />");
        }
        if ($kosten_hdcover > 0) {
            echo ('Kosten HDCOVER: ' . number_format($kosten_hdcover, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_hdcover_leinen > 0) {
            echo ('Kosten HDCOVER-LEINEN: ' . number_format($kosten_hdcover_leinen, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_wakal > 0) {
            echo ('Kosten WaKal: ' . number_format($kosten_wakal, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_kaschierung > 0) {
            echo ('Kosten Kaschierung: ' . number_format($kosten_kaschierung, 2 , ',', '.') . ' | Zeit : ' . number_format($zeit_kaschierung, 2 , ',', '.') . " h\n<br />");
        }
        if ($kosten_buendeln > 0) {
            echo ('Kosten bündeln: ' . number_format($kosten_buendeln, 2 , ',', '.') . ' | Zeit : ' . number_format($zeit_buendeln, 2 , ',', '.') . " h\n<br />");
        }
        if ($kosten_blankomuster > 0) {
            echo ('Kosten Blankomuster: ' . number_format($kosten_blankomuster, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_musterversand > 0) {
            echo ('Kosten Musterversand: ' . number_format($kosten_musterversand, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_absender > 0) {
            echo ('Kosten Absender: ' . number_format($kosten_absender, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_freipos10 > 0) {
            echo ('Kosten freipos10: ' . number_format($kosten_freipos10, 2 , ',', '.') . " €\n<br />");
        }
        if ($kosten_freipos20 > 0) {
            echo ('Kosten freipos20: ' . number_format($kosten_freipos20, 2 , ',', '.') . " €\n<br />");
        }
        if ($seiten_umschlag > 0) {
            echo ('WTV Zuschuss Papier UM: ' . number_format($wtvzuschusspapier_kosten_umschlag, 2 , ',', '.') . ' € | ' . number_format($wtvzuschusspapier_umschlag, 0 , ',', '.') . " Bg. \n<br />");
        }
        echo ('WTV Zuschuss Papier INH: ' . number_format($wtvzuschusspapier_kosten_inhalt, 2 , ',', '.') . ' € | ' . number_format($wtvzuschusspapier_inhalt, 0 , ',', '.') . " Bg.\n<br />");
        echo ('Versandgewicht: ' . number_format($versandgewicht / 1000, 2 , ',', '.') . " kg \n<br />");
        echo ('  WTV Eigenkosten: ' . number_format($wtveigenkosten, 2 , ',', '.') . " €\n<br />");
        echo ('+ WTV Fremdkosten: ' . number_format($wtvfremdkosten + $wtvzuschusspapier_kosten_inhalt + $wtvzuschusspapier_kosten_umschlag, 2 , ',', '.') . " €\n<br />");
        echo ('+ WTV Frachtkosten: ' . number_format($wtvfrachtkosten, 2 , ',', '.') . " €\n<br />");
        echo ('= WTV Gesamtkosten: ' . number_format($wtvfremdkosten+$wtveigenkosten, 2 , ',', '.') . " €\n<br />");
        echo ('============== Gesamt ==============' . "\n<br />");
        echo ('  Eigenkosten: ' . number_format($eigenkosten, 2 , ',', '.') . " € \n<br />");
        echo ('+ Fremdkosten: ' . number_format($fremdkosten, 2 , ',', '.') . " € \n<br />");
        echo ('+ Preisänderung: ' . number_format($preisaend, 2 , ',', '.') . " € \n<br />");
        echo ('= Basispreis Netto: ' . number_format($basispreisnetto, 2 , ',', '.') . " €\n<br />");
    }

    $internarray = array('test' => 'testtext');
    $intern = Array2String($internarray);

    $ergebnis = array('eigenkosten' => $eigenkosten, 'fremdkosten' => $fremdkosten, 'preisaend' => $preisaend, 'versandgewicht' => $versandgewicht, 'intern' => $intern);

    return $ergebnis;

}

// Offsetdruck
function getOffsetALLPlanoFa23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $breite_geschl, $hoehe_geschl, $papierType1, $papierType2, $papierType3, $papierType4, $papierType5, $papierType6, $papierType7, $papierType8, $papierType9, $papierType10, $papierType11, $papierType12, $papierType13, $papierType14, $papiersorte_grammatur, $papiersorte_value, $auflage, $drucklack, $papier_vs_rs_unterschiedlich, $anzblattjeblock, $zusdruckplatten, $zusfarbwechsel, $lackart, $papiersorte_sammelform, $loseblatt, $falzung, $falzart, $leimung, $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, $qualitaet, $produktionszeit, $provisionsart, $provisionswert){

    if($drucklack=='0'){
        $lackart = 0;
    }

    $prepress_kosten = getPrePressPlanoFa23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen);

    $printarray = getPrintPlanoFa23($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);

    $druckbogen_breite = $printarray[8];
    $druckbogen_hoehe = $printarray[7];
    $druckbogen_nettomenge = $printarray[10];
    $druckbogen_zuschussmenge = $printarray[11];
    $drucknutzen = $printarray[9];

    $wtvarray = getWTVPlanoFa23($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);

    $wtveigenkosten = $wtvarray[0];
    $wtvfremdkosten = $wtvarray[1];
    $wtvfrachtkosten = $wtvarray[2];
    $wtvzuschusspapier_kosten = $wtvarray[3];
    $wtvzuschusspapier = $wtvarray[4];
    $nutzen_stanzung = $wtvarray[5];
    $versandgewicht = $wtvarray[6];

    $rabattierfaehigekosten = $printarray[25];
    $eigenkosten = $prepress_kosten + $printarray[0] + $wtvarray[0];
    $fremdkosten = $printarray[24] + $wtvarray[1] + $wtvarray[2] + $wtvarray [3];
    $druckmaschine = $printarray[1];

    $preisaend = getZUABPlanoFa23($what, $auflage, $rabattierfaehigekosten, $eigenkosten, $fremdkosten, $papiersorte_sammelform, $druckfarben_inhalt, $druckmaschine, $qualitaet, $produktionszeit, $sortenzahl, $breite_offen, $hoehe_offen, $provisionsart, $provisionswert, $anzblattjeblock);

    $basispreisnetto = $eigenkosten + $fremdkosten + $preisaend;

    if($what=='debug'){
    echo('-------------------- Preis PLANO-FA total --------------------'."\n</br >");
    echo('ohne Aktionsrabatt, Onlinerabatt, Kundengruppenrabatt, Endkundenversand'."\n</br >");
    echo('Eigenkosten: '.number_format($eigenkosten, 2 , ',', '.')." €\n</br >");
    echo('Fremdkosten: '.number_format($fremdkosten, 2 , ',', '.')." €\n</br >");
    echo('Zu-/Abschläge: '.number_format($preisaend, 2 , ',', '.')." €\n</br >");
    echo('Basispreis Netto: '.number_format($basispreisnetto, 2 , ',', '.')." € \n</br >");
    echo("\n</br >".'--------------------------------------'."\n</br >");
    }

    $internarray = array('$druckmaschine' => $druckmaschine, '$prepress_kosten' => $prepress_kosten, '$druckbogen_breite'=>$druckbogen_breite, '$druckbogen_hoehe'=>$druckbogen_hoehe, '$druckbogen_nettomenge'=>$druckbogen_nettomenge, '$druckbogen_zuschussmenge'=>$druckbogen_zuschussmenge, '$drucknutzen'=>$drucknutzen, '$wtveigenkosten'=>$wtveigenkosten, '$wtvfremdkosten'=>$wtvfrachtkosten, '$wtvfrachtkosten'=>$wtvfrachtkosten, '$wtvzuschusspapier_kosten'=>$wtvzuschusspapier_kosten, '$wtvzuschusspapier'=>$wtvzuschusspapier, '$nutzen_stanzung'=> $nutzen_stanzung);

    $intern = Array2String($internarray);

    $ergebnis = array('eigenkosten' => $eigenkosten, 'fremdkosten' => $fremdkosten, 'preisaend' => $preisaend, 'versandgewicht' => $versandgewicht, 'intern' => $intern);

    return $ergebnis;

}

function getOffsetALLBRO23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $breite_geschl, $hoehe_geschl, $auflage, $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, $weiterverarbeitung, $ausfuehrung, $klammerung, $buendeln, $perforation, $duftdruck, $praegung_umschlag, $beilage, $registerstanzung, $einschweissen, $frei10fixpreis, $frei10tsdpreis, $frei20fixpreis, $frei20tsdpreis, $blankomuster, $musterversand, $absender, $qualitaet, $produktionszeit, $provisionsart, $provisionswert)
{

    if($seiten_umschlag == 0){
        $papier_umschlag_art_nr = $papier_umschlag_grammatur = $papier_umschlag_value = $druckfarben_umschlag = 0;
    }

    $prepress_kosten = getPrePressBRO23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $seiten_inhalt, $druckfarben_inhalt, $seiten_umschlag, $druckfarben_umschlag, $breite_geschl, $hoehe_geschl);

    /*
    Vergleich ERZEUGT FEHLER !!!!! Vermutlich werden die art_nr Parameter nicht korrekt übergeben

    // Test ob UM = INH und für RDH ggf. kombinieren
    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;
        if ($what == 'debug') {
            echo('>>> UM = INH erkannt. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
        }
    }
    */


    $printarray = getPrintBRO23($what, $auflage, $breite_geschl, $hoehe_geschl, $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);

    $eigenkosten = $printarray[0];
    $fremdkosten = $printarray[1];
    $rabattierfaehigekosten = $printarray[2];
    $format_offen_breite = $printarray[3];
    $format_offen_hoehe = $printarray[4];
    $bubipappe = $printarray[5];
    $buchruecken = $printarray[6];
    $druckmaschine_inhalt = $printarray[7];
    $ctp_inhalt = $printarray[8];
    $anzahlFarbwechsel_inhalt = $printarray[9];
    $druckgeschwindigkeit_inhalt = $printarray[10];
    $druckbogen_hoehe_inhalt = $printarray[11];
    $druckbogen_breite_inhalt = $printarray[12];
    $drucknutzen_inhalt = $printarray[13];
    $nettobg_inhalt = $printarray[14];
    $zuschuss_inhalt = $printarray[15];
    $papierkosten_inhalt = $printarray[16];
    $druckzeitruesten_inhalt = $printarray[17];
    $druckzeitfortdruck_inhalt = $printarray[18];
    $farbkosten_inhalt = $printarray[19];
    $lackart_kosten_inhalt = $printarray[20];
    $druckmaschine_umschlag = $printarray[21];
    $ctp_umschlag = $printarray[22];
    $anzahlFarbw_umschlag = $printarray[23];
    $druckgeschwindigkeit_umschlag = $printarray[24];
    $druckbogen_hoehe_umschlag = $printarray[25];
    $druckbogen_breite_umschlag = $printarray[26];
    $drucknutzen_umschlag = $printarray[27];
    $druckbogen_nettomenge_umschlag = $printarray[28];
    $druckbogen_zuschussmenge_umschlag = $printarray[29];
    $papierkosten_umschlag = $printarray[30];
    $druckzeitruesten_umschlag = $printarray[31];
    $druckzeitfortdruck_umschlag = $printarray[32];
    $farbkosten_umschlag = $printarray[33];
    $lackart_kosten_umschlag = $printarray[34];
    $rabattierfaehigekosten_inhalt = $printarray[35];
    $rabattierfaehigekosten_umschlag = $printarray[36];
    $heftdicke = $printarray[37];
    $ctpstring = $printarray[38];

    if ($what == 'debug2') {
        echo ("\n</br >" . '-------------------- PREIS Debug --------------------' . "\n</br >");
        echo ('$rabattierfaehigekosten_umschlag: ' . number_format($rabattierfaehigekosten_umschlag, 2, ',', '.') . " €\n</br >");
        echo ('$rabattierfaehigekosten_inhalt: ' . number_format($rabattierfaehigekosten_inhalt, 2, ',', '.') . " €\n</br >");
        echo ('$rabattierfaehigekosten SUMME UM+INH: ' . number_format($rabattierfaehigekosten_umschlag+$rabattierfaehigekosten_inhalt, 2, ',', '.') . " €\n</br >");
        echo ('$rabattierfaehigekosten PARAMETER: ' . number_format($rabattierfaehigekosten, 2, ',', '.') . " €\n</br >");
    }


    $wtvarray = getWTVBRO23($what, $auflage, $breite_geschl, $hoehe_geschl, $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);

    $eigenkosten += $prepress_kosten + $wtvarray[0];
    $fremdkosten += $wtvarray[1] + $wtvarray[2] + $wtvarray[3] +$wtvarray[4];
    $versandgewicht = $wtvarray[5];

    $preisaend = getZUABBRO23($what, $auflage, $rabattierfaehigekosten, $eigenkosten, $fremdkosten, $papier_inhalt_sammelform, $druckfarben_inhalt, $druckmaschine_inhalt, $papier_umschlag_sammelform, $druckfarben_umschlag, $druckmaschine_umschlag, $qualitaet, $produktionszeit, $format_offen_breite, $format_offen_hoehe, $provisionsart, $provisionswert, $rabattierfaehigekosten_inhalt, $rabattierfaehigekosten_umschlag, $zussorten_umschlag, $seiten_inhalt, $seiten_umschlag, $drucknutzen_inhalt, $drucknutzen_umschlag);

    $basispreisnetto = $eigenkosten + $fremdkosten + $preisaend;

    $internarray = array('$format_offen_breite' => $format_offen_breite, '$format_offen_hoehe' => $format_offen_hoehe, '$bubipappe'=>$bubipappe, '$buchruecken'=>$buchruecken, '$druckmaschine_inhalt'=>$druckmaschine_inhalt, '$ctp_inhalt'=>$ctp_inhalt, '$druckbogen_hoehe_inhalt'=>$druckbogen_hoehe_inhalt, '$druckbogen_breite_inhalt'=>$druckbogen_breite_inhalt, ' $drucknutzen_inhalt'=> $drucknutzen_inhalt, '$nettobg_inhalt'=>$nettobg_inhalt, '$zuschuss_inhalt'=>$zuschuss_inhalt, '$papierkosten_inhalt'=>$papierkosten_inhalt, '$druckzeitruesten_inhalt'=>$druckzeitruesten_inhalt, '$druckzeitfortdruck_inhalt'=>$druckzeitfortdruck_inhalt, '$druckmaschine_umschlag'=>$druckmaschine_umschlag, '$ctp_umschlag'=>$ctp_umschlag, '$druckbogen_hoehe_umschlag'=>$druckbogen_hoehe_umschlag, '$druckbogen_breite_umschlag'=>$druckbogen_breite_umschlag, ' $drucknutzen_umschlag'=> $drucknutzen_umschlag, '$druckbogen_nettomenge_umschlag'=>$druckbogen_nettomenge_umschlag, '$druckbogen_zuschussmenge_umschlag'=>$druckbogen_zuschussmenge_umschlag, '$papierkosten_umschlag'=>$papierkosten_umschlag, '$druckzeitruesten_umschlag'=>$druckzeitruesten_umschlag, '$druckzeitfortdruck_umschlag'=>$druckzeitfortdruck_umschlag, '$papier_inhalt_art_nr'=> $papier_inhalt_art_nr, '$papier_umschlag_art_nr'=>$papier_umschlag_art_nr, '$ctpstring'=>$ctpstring);
    $intern = Array2String($internarray);

    if ($what == 'debug') {
        echo ("\n</br >" . '-------------------- PREIS BRO total --------------------' . "\n</br >");
        echo ('ohne Aktionsrabatt, Onlinerabatt, Kundengruppenrabatt, Endkundenversand' . "\n</br >");
        echo ('Eigenkosten: ' . number_format($eigenkosten, 2, ',', '.') . " €\n</br >");
        echo ('Fremdkosten: ' . number_format($fremdkosten, 2, ',', '.') . " €\n</br >");
        echo ('Zu-/Abschläge: ' . number_format($preisaend, 2, ',', '.') . " €\n</br >");
        echo ('Basispreis Netto: ' . number_format($basispreisnetto, 2, ',', '.') . " €\n</br >");
    }

    $ergebnis = array('eigenkosten' => $eigenkosten, 'fremdkosten' => $fremdkosten, 'preisaend' => $preisaend, 'versandgewicht' => $versandgewicht, 'intern' => $intern);

    return $ergebnis;
}

// Digitaldruck

function getDigitALLPlanoFa23($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){

    $eigenkosten_prepress = getPrePressDIGI23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $loseblatt, $personalisierung, 0, 0);

    [$breite_offen, $hoehe_offen] = getDigiWTVFormate($breite_offen, $hoehe_offen, $stanzung, $stanzart, $nutlinien);

    [$drucknutzen, $Druckbogenbreite, $Druckbogenhoehe, $DruckbgRaender] = getDruckNutzenDIGI($breite_offen, $hoehe_offen);

    [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung, $kosten_endschneiden, $zeit_endschneiden, $kosten_falzung, $zeit_falzung, $fakt_falzung, $kosten_nuten, $zeit_nuten, $kosten_personalisierung, $kosten_eckenrunden, $zeit_eckenrunden, $kosten_bohren_lochen, $zeit_bohren_lochen, $kosten_loseblatt] = getWTVDIGIPlanoFa23($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, $nettobg, $zuschuss_digitaldruck, $papierkosten, $bruttobg, $ruestkosten, $druckkosten, $klickkosten, $mengenabschlagDruck] = getPrintDIGIPlanoFa23($what, $papiersorte_grammatur, $papiersorte_value, $auflage, $druckfarben_inhalt, $breite_offen, $hoehe_offen, $sortenzahl, $papiersorte_sammelform, $anzblattjeblock, $wtvzuschusspapier);

    $eigenkosten = $eigenkosten_prepress + $eigenkosten_digitaldruck + $wtveigenkosten;
    $fremdkosten = $papierkosten + $fremdkosten_digitaldruck  + $wtvfremdkosten + $wtvfrachtkosten;

    $preisaend = getZUABPlanoDigiFA23($what, $auflage, $eigenkosten, $fremdkosten, $papiersorte_sammelform, $produktionszeit, $qualitaet, $sortenzahl, $provisionsart, $provisionswert);

    $basispreisnetto = $eigenkosten + $fremdkosten + $preisaend;

    $versandgewicht = 1.1 * $breite_offen * $hoehe_offen / 10000 * $auflage * $papiersorte_grammatur;


    // Einzelwerte ausgeben
    if($what=='debug'){
        echo('-------------------- Digitaldruck PrePress --------------------'."\n<br />");
        $Ausgabeliste = array('Vorstufe: ' => $eigenkosten_prepress);
        foreach($Ausgabeliste as $bez => $wert){
            if($wert != 0){echo($bez.number_format($wert, 2 , ',', '.')." € \n<br />");}
        }
    }

    // Einzelwerte ausgeben
    if($what=='debug'){
        echo('-------------------- Digitaldruck PRINT Plano-Fa --------------------'."\n<br />");
        echo('Druckbogen: '.$Druckbogenbreite.' x '.$Druckbogenhoehe.' cm'."\n<br />");
        echo($nettobg.' Nettobg. + '.$zuschuss_digitaldruck.' ZU Druck + '.$wtvzuschusspapier.' ZU WTV = '.$bruttobg.' Bg. zu '.$drucknutzen.' Ntz.'."\n<br />");
        echo('Rüstkosten: '.number_format($ruestkosten, 2 , ',', '.')." € | ");
        echo('Druckkosten: '.(number_format($druckkosten, 2 , ',', '.'))." €\n<br />");
        echo('Papier: '.number_format($papierkosten, 2 , ',', '.')." €\n<br />");
        echo('VK Klick DIN A3 ohne Abschlag: '.$klickkosten.' € | Mengenfaktor: '.number_format($mengenabschlagDruck, 2 , ',', '.')." % \n<br />");
        echo('Eigenkosten Print: '.number_format($eigenkosten_digitaldruck, 2 , ',', '.')." € \n<br />");
        echo('Fremdkosten Print: '.number_format($fremdkosten_digitaldruck, 2 , ',', '.')." € \n<br />");
        echo('Gesamtkosten Print: '.(number_format($eigenkosten_digitaldruck+$fremdkosten_digitaldruck, 2 , ',', '.'))." €\n\n<br />");
    }

    //Werte ausgeben
    if($what=='debug'){
        echo('-------------------- Digitaldruck WTV Plano-Fa --------------------'."\n<br />");
        echo('Kosten Endschneiden: '.number_format($kosten_endschneiden, 2 , ',', '.').' € |  Zeit: '.number_format($zeit_endschneiden, 2 , ',', '.')."\n<br />");
        if($kosten_falzung != 0){echo('Kosten Falzung: '.number_format($kosten_falzung, 2 , ',', '.').' € |  Zeit Falzung: '.number_format($zeit_falzung, 2 , ',', '.')."\n<br />");
        echo('$fakt_falzung: '.$fakt_falzung."\n<br />");
        }
        if($kosten_nuten != 0){echo('Kosten nuten: '.number_format($kosten_nuten, 2 , ',', '.').' | '.'Zeit nuten: '.number_format($zeit_nuten, 2 , ',', '.')."\n<br />");}

        if($kosten_personalisierung != 0){echo('Kosten personalisierung: '.number_format($kosten_personalisierung, 2 , ',', '.')."\n<br />");}
        if($kosten_eckenrunden != 0){echo('Kosten eckenrunden: '.number_format($kosten_eckenrunden, 2 , ',', '.').' | '.'Zeit eckenrunden: '.number_format($zeit_eckenrunden, 2 , ',', '.')."\n<br />");}
        if($kosten_bohren_lochen != 0){echo('Kosten bohren_lochen: '.number_format($kosten_bohren_lochen, 2 , ',', '.').' | '.'Zeit bohren_lochen: '.number_format($zeit_bohren_lochen, 2 , ',', '.')."\n<br />");}
        if($kosten_loseblatt != 0){echo('Kosten loseblatt: '.number_format($kosten_loseblatt, 2 , ',', '.').' | '.'Zeit loseblatt: '."\n<br />");}
        echo('WTV Zuschusspapier Kosten: '.number_format($wtvzuschusspapier_kosten, 2 , ',', '.').' € | '.number_format($wtvzuschusspapier, 2 , ',', '.')." Bg. \n<br />");
        echo('----------------------------------------'."\n<br />");
        echo('WTV Frachtkosten: '.number_format($wtvfrachtkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Eigenkosten: '.number_format($wtveigenkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Fremdkosten: '.number_format($wtvfremdkosten, 2 , ',', '.')." € \n\n<br />");
        echo('========================================'."\n<br />");
        echo(' Eigenkosten: '.number_format($eigenkosten, 2 , ',', '.')." € \n<br />");
        echo('+Fremdkosten: '.number_format($fremdkosten, 2 , ',', '.')." € \n<br />");
        echo('+Preisänderung: '.number_format($preisaend, 2 , ',', '.')." € \n<br />");
        echo('=Basispreis Netto: '.number_format($basispreisnetto, 2 , ',', '.')." €\n<br />");
        echo('Versandgewicht: '.number_format($versandgewicht/1000,1)." kg\n<br />");
    }


    $internarr = array('test' => 'Testtext2');
    $intern = Array2String($internarr);

    $ergebnis = array('eigenkosten'=> $eigenkosten, 'fremdkosten' => $fremdkosten, 'preisaend' => $preisaend, 'versandgewicht'=> $versandgewicht, 'intern' => $intern);

    return $ergebnis;

}

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 getPrePressPlanoFa23($what, $dateiformat_geliefert, $korrekturabzug, $umweltzeichen, $sortenzahl, $druckfarben_inhalt, $breite_offen, $hoehe_offen) {

    //Parameter
    $Pstundensatz_vorstufe = 70;
    $Pplano_fa_aufpreis_anderes_dateiformat = 25;
    $Pumweltzeichen_fsc = 25;
    $Pumweltzeichen_blauerengel = 50;
    $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<br />");
        $Ausgabeliste = array('Datenübernahme: ' => $datenuebernahme_kosten, 'Dateiformat: ' => $dateiformat_kosten, 'Umweltzeichen: ' => $umweltzeichen_kosten, 'Korrekturabzug: ' => $korrekturabzug_kosten);
        foreach($Ausgabeliste as $bez => $wert){
            if($wert != 0){echo($bez.number_format($wert, 2 , ',', '.')." € \n<br />");}
        }
    }

    return $eigenkosten;
}

function getPrintPlanoFa23($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 = 15;
    $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 = getSammelformWertePlanoFa23($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 = 3000;
            $anzahlFarbw1 = getAnzFarbwechselMAN($druckfarben_inhalt);
            $stundensatz1 = getMaschineKosten23($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;

            if ($papiersorte_sammelform == 1) {
                $sortenaufschlag1 = ($sortenzahl-1) * 5;
            }else{
                $sortenaufschlag1 = ($sortenzahl-1)*(10+$breite_offen*$hoehe_offen/35);
            }
            $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 = (15*$druckgaenge1/60)+($ctp1*4/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=='debug2'){
            echo('Umschlagen: '.$format['umschlagen'].' | ');
            echo($format['hoehe'].' x '.$format['breite'].' >>> '.number_format($price_calc, 2 , ',', '.').' - '.number_format($rabattierfaehigekosten1, 2 , ',', '.').' = '.number_format(($price_calc-$rabattierfaehigekosten1), 2 , ',', '.')."\n<br />");
            echo('     mit Nettobg.: '.$nettobg1.' = ('.number_format($nettobgkosten1, 2 , ',', '.').' €) + Zuschuss: '.$zuschuss1.' = ('.number_format($zuschusskosten1, 2 , ',', '.')." €)\n<br />");
            echo('     mit CTP: '.$ctp1.' | Ntz: '.$nutzen_calc.' | Sammelfak.: '.number_format($sammelfaktor, 2 , ',', '.')."\n<br />");
            if(($price_calc - $rabattierfaehigekosten1) < ($price - $rabattierfaehigekosten) && $nettobg1 != 0){
                echo('     >>> günstiger als Vorgänger'."\n\n<br />");
            }
        }

        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);

    if($drucklack != '0'){
        if($lackart == '2'){
            $lackart_kosten = $Paufpreis_drucklack_matt_voll;
        }
        else if($lackart == '3'){
            $lackart_kosten = $Paufpreis_drucklack_matt_partiell;
        }
        else if($lackart == '4'){
            $lackart_kosten = $Paufpreis_drucklack_glzd_voll;
        }
        else if($lackart == '5'){
            $lackart_kosten = $Paufpreis_drucklack_glzd_partiell;
        }else{
            $lackart_kosten = 0;
        }
    }else{
        $lackart_kosten = 0;
    }

    $papieraufschlagfaktor = 1.30 -(MIN(($papierkosten/$papiersorte_value*100)/5000,0.2));
    $price -= $papierkosten;
    $papierkosten *= $papieraufschlagfaktor;
    $price += $papierkosten;
    $farbkosten = ($nettobg + $zuschuss) * ($anzahlDruckfarben+$drucklack*6+$anzahlFarbw) * $Druckfarbenpreis * $bedruckteSeiten / 1000;
    $zusdruckplatten_kosten = $zusdruckplatten*($stundensatz/60*5+$kostenDruckplatte+20);
    $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<br />");
        echo($maschine.' = '.$stundensatz.' € Std.Satz'."\n<br />");
        echo('Papier: '.$bogen_hoehe.' x '.$bogen_breite.' cm mit '.number_format($nettobg, 0, ',', '.').' + '.number_format($zuschuss, 0, ',', '.').' = '.number_format($zuschuss+$nettobg, 0, ',', '.').' Druckbg. je '.$nutzen.' Ntz.'."\n<br />");
        echo('Geschw.: '.number_format($druckgeschwindigkeit, 0 , ',', '.').' | Druckgänge: '.$druckgaenge.' | CTP: '.$ctp.' | Farbw.: '.$anzahlFarbw.' '."\n<br />");
        echo('Druckzeit rüsten: '.number_format($druckzeitruesten,1).' | Druckzeit Fortdruck: '.number_format($druckzeitfortdruck,1)." h \n<br />");
        if($sortenzahl > 1){echo('Sorten: '.$sortenzahl.' | Sortenaufschlag: '.(number_format($sortenaufschlag, 2 , ',', '.')).' € |  Passt drauf: ');
            echo (int)$passtdrauf;
            echo("\n<br />");};
        if($zusdruckplatten_kosten != 0){echo('$zusdruckplatten_kosten: '.$zusdruckplatten_kosten." €\n<br />");}
        if($zusfarbwechsel_kosten != 0){echo('$zusfarbwechsel_kosten: '.$zusfarbwechsel_kosten." €\n<br />");}
        if($lackart_kosten != 0){echo('$lackart_kosten: '.$lackart_kosten." €\n<br />");}
        echo('Kosten CTP: '.$ctp*$kostenDruckplatte." € \n <br />");
        echo('Druck: '.(number_format($druckkosten, 2 , ',', '.'))." €\n<br />");
        echo('Kosten Papier ('.number_format($papiersorte_value, 0, ',', '.').'): '.number_format($papierkosten, 2 , ',', '.').' € | Papieraufschlag: '.number_format($papieraufschlagfaktor, 2 , ',', '.')."\n<br />");
        echo('Farbkosten: '.number_format($farbkosten, 2 , ',', '.')." €\n<br />");
        echo('Rabattierfaehige Kosten: '.number_format($rabattierfaehigekosten, 2 , ',', '.')." € \n<br />");
        echo('Eigenkosten Print: '.number_format($eigenkosten, 2 , ',', '.')." € \n<br />");
        echo('Fremdkosten Print: '.number_format($fremdkosten, 2 , ',', '.')." € \n<br />");
        echo('Gesamtkosten Print: '.(number_format($price, 2 , ',', '.'))." € \n\n<br />");
    }

    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];

}

function getWTVPlanoFa23($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_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;

    if($anzblattjeblock == 0){
        $anzblattjeblock = 1;
        $leimung = 0;
    }

    if($anzblattjeblock != 1){
        $leimung = 1;
    }

    $wtveigenkosten = 0;
    $wtvfremdkosten = 0;
    $rabattierkosten = 0;
    $wtvzuschusspapier = 0;
    $wtvfrachtkosten = 0;
    $wtvfrachtgewicht = ($anzblattjeblock * $auflage) * $papiersorte_grammatur * $hoehe_offen * $breite_offen / 10000 * 1.1;
    $wtvfrachtpreis = 50 + $wtvfrachtgewicht / 400000 * 15;
    $papierlogistikpauschale = $wtvfrachtgewicht / 100000 * 5;
    $wtvfremdkosten += $papierlogistikpauschale;


    $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;




    //endschneiden
    $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 += 3 + (10 + $auflage * 0.002) / $drucknutzen;


    //verpacken
    $kosten_verpacken = 0;
    if ($falzung == 'nein' || $falzung == 0){
        $kosten_verpacken += $wtvfrachtgewicht / 5000 * 0.6;
    }
    if ((($hoehe_geschl <= 21) && ($breite_geschl <= 29.7)) || (($hoehe_geschl <= 29.7) && ($breite_geschl <= 21))){
        $kosten_verpacken += 0;
    }else{
        $kosten_verpacken += $wtvfrachtgewicht / 5000 * 0.6;;
    }
    $wtveigenkosten += $kosten_verpacken;

    //falzung
    $zeit_falzung = 0;
    $falz_komplex = 1;
    $fakt_falzung = 1;
    if(!($falzung == 'nein' || $falzung == 0)){
        if($falzung > 4){
            $falz_komplex = 1.5;
        }
        if($stanzung != 0){
            $falz_komplex *= 3;
            $wtvfrachtkosten += $wtvfrachtpreis;
        }
        $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($hoehe_geschl*$breite_geschl < 155){         //kleiner DIN A6 = Probleme Auslage
            $zeit_falzung *= 2;
        }
        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 + $anzblattjeblock) / $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*$anzblattjeblock * 0.01 + 50) / $drucknutzen;
        if(($breite_offen > 33 || $hoehe_offen > 33) || ($breite_offen > 23 && $hoehe_offen > 23)){
            $kosten_perforation = $Pplano_stanzen_fix2 + ($auflage*$anzblattjeblock) * $Pplano_stanzen_var2 / 1000;
            $perfmaschine = "zylinder";
        }else{
            $kosten_perforation = $Pplano_stanzen_fix1 + ($auflage*$anzblattjeblock) * $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*$anzblattjeblock) * $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*$anzblattjeblock) * $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;
                $kosten_werkzeug_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_werkzeug_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
    $EinsatzFaktor = 1;
    if($stanzung != 0){$EinsatzFaktor = 2;}
    if($falzung != 0){$EinsatzFaktor = $falzung * 2;}
    $ExplJeEinsatz = 40 / $papiersorte_grammatur * 1000 / $EinsatzFaktor;
    $zeit_eckenrunden = 0;
    $kosten_eckenrunden = 0;
    if($ecken_runden == 3 || $ecken_runden == 5) {
        $zeit_eckenrunden = 0.5 + 4 * $auflage * $anzblattjeblock / $ExplJeEinsatz * 25 / 3600;
        $kosten_eckenrunden = $zeit_eckenrunden *  $Pstundensatz_wtv;
    }
    if($ecken_runden == 99) {
        $Pplano_fa_tsdpreis_ecken_runden_nassleimetik = 1.50;
        $kosten_eckenrunden = 1 / $grammaturfaktor_geschw_wtv * $auflage * $Pplano_fa_tsdpreis_ecken_runden_nassleimetik / 1000 + 15;
        $zeit_eckenrunden = $kosten_eckenrunden / $Pstundensatz_wtv;
    }
    $wtveigenkosten += $kosten_eckenrunden;


    //bohren, lochen
    $zeit_bohren_lochen = 0;
    if($bohren_lochen != 0){
        $bohrformatliste = array(array(0.1,2),array(5,1.6),array(10,1.3),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 *= 1.7;
        }
        if(!($falzung == 'nein' || $falzung == 0)){
            $bohraufschlag *= 2;
        }
        if(($bohren_lochen == 2) && ($bohraufschlag == 1)){$bohren_lochen = 1;}  //für DIN A4 2-fach Sonderpreis

        $bohreinsaetzeJeExpl = ceil($bohren_lochen / 2);
        $maxbohrhoehe = 40;         //mm
        $zeitjebohreinsatz = 1.5;   //Minuten je Bohreinsatz
        $dicke = $papiersorte_grammatur / 1000 * $auflage * $anzblattjeblock;
        $anzahlbohreinsaetze = $bohreinsaetzeJeExpl * ($dicke / $maxbohrhoehe);
        $zeit_bohren_lochen = ((5 * $bohren_lochen + $anzahlbohreinsaetze * $zeitjebohreinsatz) / 60)* $bohraufschlag;
    }
    $kosten_bohren_lochen = $zeit_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<br />");
        echo('Kosten Endschneiden: '.number_format($kosten_endschneiden, 2 , ',', '.').' € | Zeit: '.number_format($zeit_endschneiden,1)." h \n<br />");
        if($kosten_falzung != 0){echo('Kosten Falzung: '.number_format($kosten_falzung, 2 , ',', '.').' € | Zeit: '.number_format($zeit_falzung,1)." h\n<br />");
        echo('Faktor Falzung: '.$fakt_falzung.' | Falz-komplex : '.$falz_komplex ."\n<br />");
        }
        if ($kosten_verpacken != 0){
            echo ('Kosten verpacken: ' .number_format($kosten_verpacken, 2, ',', '.').' €'."\n<br />");
        }
        if($kosten_nuten != 0){echo('Kosten nuten: '.number_format($kosten_nuten, 2 , ',', '.').' € | '.'Zeit nuten: '.number_format($zeit_nuten,1)." h\n<br />");}
        if($kosten_leimen != 0){echo('Kosten zustr., leimen, trennen: '.number_format($kosten_leimen, 2 , ',', '.').' € | '.'Zeit: '.number_format($zeit_leimen,1)." h\n<br />");}
        if($kosten_buendeln != 0){echo('Kosten bündeln: '.number_format($kosten_buendeln, 2 , ',', '.').' € | '.'Zeit bündeln: '.number_format($zeit_buendeln,1)." h\n<br />");}
        if($kosten_perforation != 0){echo('Kosten perforation: '.number_format($kosten_perforation, 2 , ',', '.').' € | '.'Zeit Perforation: '.number_format($zeit_perforation,1)."h \n<br />".'Kosten Werkzeug Perfo.: '.number_format($kosten_werkzeug_perforation, 2 , ',', '.')." € \n<br />".'Nutzen Perfo.: '.number_format($nutzen_perforation,1).' | '.'Zeit Perfo.: '.number_format($zeit_perforation,1).' h | '.'Perfo.maschine: '.$perfmaschine."\n<br />");}
        if($kosten_duftdruck != 0){echo('Kosten Duftdruck: '.number_format($kosten_duftdruck, 2 , ',', '.').' € | '.'Zeit Duftdruck: '.number_format($zeit_duftdruck,1)."\n<br />");}
        if($kosten_oesen != 0){echo('Kosten Ösen: '.number_format($kosten_oesen, 2 , ',', '.').' € | '.'Zeit Ösen: '.number_format($zeit_oesen,1)." h\n<br />");}
        if($kosten_praegung != 0){echo('Kosten Prägung: '.number_format($kosten_praegung, 2 , ',', '.').' € | '.'Kosten Werkzeug Prägung: '.number_format($kosten_werkzeug_praegung, 2 , ',', '.').' € | '.'Gesamtosten Prägung: '.number_format(($kosten_praegung+$kosten_werkzeug_praegung), 2 , ',', '.').' € | '.'Zeit praegung: '.number_format($zeit_praegung,1)." h \n<br />");}
        if($kosten_stanzung != 0){echo('Kosten Stanzung (ggf. inkl. Werkzeug): '.number_format($kosten_stanzung, 2 , ',', '.').' € | '.'Werkzeug Stanzung: '.number_format($kosten_werkzeug_stanzung, 2 , ',', '.')." € \n<br />".'Nutzen Stanzung: '.number_format($nutzen_stanzung, 0).' | '.'Zeit Stanzung: '.number_format($zeit_stanzung,1).' h | '.'Stanzmaschine: '.$stanzmaschine."\n<br />");}
        if($kosten_cito != 0){echo('Kosten Cito: '.number_format($kosten_cito, 2 , ',', '.').' € | '.'Zeit Cito: '.number_format($zeit_cito,1).' h | '.'Ntz. Cito: '.number_format($ntz_cito, 0 , ',', '.')."\n<br />");}
        if($kosten_verschluss != 0){echo('Kosten Verschluss: '.number_format($kosten_verschluss, 2 , ',', '.').' € | '.'Zeit Verschluss: '.number_format($zeit_verschluss,1)." h\n<br />");}
        if($kosten_beilage != 0){echo('Kosten Beilage: '.number_format($kosten_beilage, 2 , ',', '.').' € | '.'Zeit beilage: '.number_format($zeit_beilage,1)." h\n<br />");}
        if($kosten_nummerierung != 0){echo('Kosten Nummerierung: '.number_format($kosten_nummerierung, 2 , ',', '.').' € | '.'Zeit Nummerierung: '.number_format($zeit_nummerierung,1)." h\n<br />");}
        if($kosten_laserstanzung != 0){echo('Kosten Laserstanzung: '.number_format($kosten_laserstanzung, 2 , ',', '.').' € | '.'Zeit Laserstanzung: '.number_format($zeit_laserstanzung,1)." h\n<br />");}
        if($kosten_eckenrunden != 0){echo('Kosten Eckenrunden: '.number_format($kosten_eckenrunden, 2 , ',', '.').' € | '.'Zeit eckenrunden: '.number_format($zeit_eckenrunden,1)." h \n<br />");}
        if($kosten_bohren_lochen != 0){echo('Kosten Bohren/Lochen: '.number_format($kosten_bohren_lochen, 2 , ',', '.').' € | '.'Zeit Bohren/Lochen: '.number_format($zeit_bohren_lochen,1).' h | Bohraufschlag: '.$bohraufschlag."\n<br />");}
        if($kosten_kaschierung != 0){echo('Kosten Kaschierung: '.number_format($kosten_kaschierung, 2 , ',', '.').' € | '.'Zeit kaschierung: '.number_format($zeit_kaschierung,1)." h\n<br />");}
        if($kosten_loseblatt != 0){echo('Kosten Loseblatt: '.number_format($kosten_loseblatt, 2 , ',', '.').' € | '.'Zeit loseblatt: '.number_format($zeit_loseblatt,1)." h\n<br />");}
        echo('WTV Zuschuss Papier: '.number_format($wtvzuschusspapier_kosten, 2 , ',', '.').' € | '.number_format($wtvzuschusspapier,0)." Bogen \n<br />");
        echo('Papierlogistikpauschale: '.number_format($papierlogistikpauschale, 2 , ',', '.')." €\n<br />");
        echo('----------------------------------------'."\n<br />");
        echo('WTV Frachtkosten: '.number_format($wtvfrachtkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Eigenkosten: '.number_format($wtveigenkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Fremdkosten: '.number_format($wtvfremdkosten, 2 , ',', '.')." €\n\n<br />");
    }

    if($what == 'allarray' || $what == 'debug') {
        return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten, $wtvzuschusspapier, $nutzen_stanzung, $wtvfrachtgewicht];
    }

    return FALSE;

}

function getZUABPlanoFa23($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 = getSammelformWertePlanoFa23($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 == "1"){
        $provision_zuschlag = ($zuab_gesamtkosten+$preisaenderung)/100*$provisionswert;
    }
    $preisaenderung += $provision_zuschlag;


    // Einzelwerte ausgeben
    if($what=='debug'){
        echo('-------------------- Zu-/Abschläge PLANO-FA --------------------'."\n<br />");
        echo('Gesamtkosten: '.number_format($zuab_gesamtkosten, 2 , ',', '.')." € \n<br />");
        echo('Rabattierfaehige Kosten:. '.number_format($rabattierfaehigekosten, 2 , ',', '.')." € \n<br />");
        echo('Sammelfaktor Papiersorte: '.number_format($sammelfaktor_papier, 2 , ',', '.')."\n<br />");
        echo('Sammelwahrscheinlichkeit Format/Sorten: '.number_format($sammelwahrscheinlichkeit_format_sorten, 2)."\n<br />");
        echo('Sammelwahrscheinlichkeit Menge: '.number_format($sammelwahrscheinlichkeit_menge, 2)."\n<br />");
        echo('Sammelfaktor total: '.number_format($sammelfaktor, 2)."\n<br />");
        echo('Preisänd. durch Sammelform: '.number_format($sammelformreduktion, 2 , ',', '.')." €\n<br />");
        echo("Qualität: ".  $qualitaet_fix. ' € | '.$qualitaet_proz." = ".number_format($qualitaet_zuab, 2 , ',', '.')." €\n<br />");
        echo("Produktionszeit: ".$zeitwert_fix.' € | '.$zeitwert_proz." = ".number_format($zeit_zuab, 2 , ',', '.')." €\n<br />");
        echo('Provision: '.number_format($provisionswert, 2 , ',', '.').' % | '.number_format($provision_zuschlag, 2 , ',', '.')." € \n<br />");
        echo('Zu-/Abschläge total: '.number_format($preisaenderung, 2 , ',', '.')." € \n\n<br />");
    }

    return $preisaenderung;
}

function getSammelformWertePlanoFa23($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(0,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 getPrePressBRO23($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<br />");
        $Ausgabeliste = array('Datenübernahme: ' => $datenuebernahme_kosten, 'Dateiformat: ' => $dateiformat_kosten, 'Umweltzeichen: ' => $umweltzeichen_kosten, 'Korrekturabzug: ' => $korrekturabzug_kosten);
        foreach($Ausgabeliste as $bez => $wert){
            if($wert != 0){echo($bez.number_format($wert, 2 , ',', '.')." € \n<br />");}
        }
    }

    return $eigenkosten;
}


function getPrintBRO23($what, $auflage, $breite_geschl, $hoehe_geschl, $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;
    $drucknutzen_inhalt = 9999999999;
    $nettobg_inhalt = 9999999999;
    $zuschuss_inhalt = 9999999999;
    $druckbogen_hoehe_inhalt = 1000;
    $druckbogen_breite_inhalt = 1000;
    $ctp_inhalt = 999999999;
    $druckmaschine_inhalt = 'man';
    $anzahlFarbwechsel_inhalt = 999;
    $druckzeitruesten1 = 999999;
    $druckzeitfortdruck1 = 999;
    $wtvgeschwindigkeit = 999;
    $Druckfarbenpreis = 1.2; // Preisfaktor für Fremdkosten
    $rabattierfaehigekosten = 0;

    $GrundRuestZeit = 25;
    $RuestZeitJePlatte = 4;
    $WarteZeitUU = 0.15;
    $kostenDruckplatte = 15;
    $FarbwechselZeit = 45;

    $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];

    if($beschnittliste_hor_vert[$weiterverarbeitung-1][3] == FALSE){
        $bubipappe = 0;
    }else{
        $bubipappe = 0.4;
    }

    if($beschnittliste_hor_vert[$weiterverarbeitung-1][2] == FALSE){
        $buchruecken = 0;
        $heftdicke = ($papier_inhalt_grammatur * $seiten_inhalt / 2 / 10000 + $papier_umschlag_grammatur * $seiten_umschlag / 2 / 10000) * 1.1;
    }else{
        $buchruecken = $papier_inhalt_grammatur * $seiten_inhalt / 2 / 10000 + $papier_umschlag_grammatur * $seiten_umschlag / 2 / 10000 + $bubipappe;
        $heftdicke = 0;
    }

    $format_offen_breite = $breite_geschl * 2 + $beschnitt_horiz;
    $format_offen_hoehe = $hoehe_geschl + $beschnitt_vert;
    $format_offen_breite_umschlag = $breite_geschl * $seiten_umschlag / 2 + $beschnitt_horiz + $buchruecken - 0.4;


    // 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 = (3000+(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 = getMaschineKosten23($format, $anzahlFarbwechsel_inhalt);

        $drucknutzen_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 / 60));

        $FalzbgAnz1 = $seiten_inhalt / $format['seiten'];
        $NtzFaBgJeDruckbg1 = floor($drucknutzen_inhalt_calc/2);


        // ehem. "getCTPBRO23" - Eingabewerte beziehen sich hier immer auf Anz. Falzbogen je Druckoberfläche, nicht auf Seiten o.a.!

        $NtzFaBgJeDruckbg1 = floor($NtzFaBgJeDruckbg1);
        $ctpString_SDWD = $ctpString_UU = '';
        $NettoPapierkostenJeDruckbg = $auflage * $format['breite'] * $format['hoehe'] * $papier_inhalt_grammatur * $papier_inhalt_value / 1000000000;
        $NettoPapierkostenZuschuss = $anzahlDruckfarben_inhalt * 75 * $format['breite'] * $format['hoehe'] * $papier_inhalt_grammatur*$papier_inhalt_value/1000000000;
        $nettobg_restBg_SDWD =  $papieraufschlagfaktor_inhalt_SDWD =  $nettobg_restBg_UU =  $papieraufschlagfaktor_inhalt_UU = $ntzAufLetzterUmschlager = $leere_falzbg = 0;

        // Ganze Bögen berechnen
        $ctp_ganzeBogen = 2*floor(($FalzbgAnz1*$bedruckteSeiten_inhalt/2)/($NtzFaBgJeDruckbg1)) * $anzahlDruckfarben_inhalt;
        if ($ctp_ganzeBogen > 0) {
            $ctpString1 = $ctp_ganzeBogen / 2 / $anzahlDruckfarben_inhalt. ' x '.$auflage.' Druckbogen SD/WD je ' . $NtzFaBgJeDruckbg1 . ' Falzbogen zu je 1 Nutzen';
        } else {
            $ctpString1 = '';}
        $nettobg_ganzeBogen = $auflage * $ctp_ganzeBogen / 2 / $anzahlDruckfarben_inhalt;

        // Restfalzbogen
        $ctp_RestFaBg = $Kosten_SDWD = $Kosten_UU = $ctp_SDWD = $ctp_UU = $nettobg_restseiten = $druckzeitruesten_SDWD = $druckzeitfortdruck_SDWD = $druckzeitruesten_UU = $druckzeitfortdruck_UU = $papierkosten_inhalt_SDWD = $papierkosten_inhalt_UU = $anz_UU = 0;
        $restfalzbg = ceil($FalzbgAnz1 - ($ctp_ganzeBogen/2/$anzahlDruckfarben_inhalt*$NtzFaBgJeDruckbg1));

        if ($restfalzbg != 0) {
        // Restbogen als SD/WD berechnen
            $ctp_SDWD = $anzahlDruckfarben_inhalt * $bedruckteSeiten_inhalt;
            $NtzFaBg_SDWD = floor($NtzFaBgJeDruckbg1 / $restfalzbg);
            $nettobg_restBg_SDWD = ceil($auflage / $NtzFaBg_SDWD);
            $zuschuss_restBg_SDWD = ceil(max(150,100+($ctp_SDWD*75)));
            $druckzeitruesten_SDWD = (($GrundRuestZeit * $anzahlDruckJeForm_inhalt) + ($ctp_SDWD * $RuestZeitJePlatte)) / 60;
            $druckzeitfortdruck_SDWD = ($nettobg_restBg_SDWD+$zuschuss_restBg_SDWD) / $druckgeschwindigkeit_inhalt * $anzahlDruckJeForm_inhalt * $bedruckteSeiten_inhalt;
            $papierkosten_inhalt_SDWD = $NettoPapierkostenJeDruckbg + $NettoPapierkostenZuschuss;
            $papieraufschlagfaktor_inhalt_SDWD = 1.30-(MIN(($papierkosten_inhalt_SDWD/$papier_inhalt_value*100)/5000,0.2));
            $papierkosten_inhalt_SDWD *= $papieraufschlagfaktor_inhalt_SDWD;
            $Kosten_SDWD = $ctp_SDWD * $kostenDruckplatte + (($druckzeitruesten_SDWD + $druckzeitfortdruck_SDWD) * $stundensatz_druckmaschine1) + ($papierkosten_inhalt_SDWD);
            if ($ctpString1 != '' && $ctpString_UU == '') {
                $ctpString_SDWD = ' + ';}
            $ctpString_SDWD .= '1 Druckbogen SD/WD mit ' . $restfalzbg . ' Falzbg. je ' . $NtzFaBg_SDWD . ' Nutzen';
            $restfalzbg_SDWD = 0;
            $leere_falzbg_SDWD = ($NtzFaBgJeDruckbg1 - $NtzFaBg_SDWD * $restfalzbg);


            // Array für Restbogen als Umschlager/Umstülper erstellen
            $UUarray = [];

            for ($f = 0; $f < 4; $f++) {
                // Restbogen als (evtl. mehrfache) Umschlager/Umstülper berechnen
                $ctp_UU = 0;
                $restfalzbg_UU = $restfalzbg;
                $nettobg_restBg_UU = 0;
                $maxdurchlaeufe = 5;
                $ctpString_UU = '';
                $MglNtzJeUU = floor($NtzFaBgJeDruckbg1 / 2);
                $KostenPapier_UU = $druckzeitfortdruck_UU = $papierkosten_inhalt_UU = $Kosten_UU = 0;


                while ($maxdurchlaeufe > 0) {
                    $NtzFaBg_UU = 0;

                    // wie viele Falzbogen / Nutzen platzieren auf UU?
                    for ($r = $restfalzbg_UU; $r > 0; $r--) {
                        //echo('#'.$maxdurchlaeufe.': $MglNtzJeUU % $r = '.$MglNtzJeUU % $r.' | $restfalzbg_UU = '.$restfalzbg_UU.' | $MglNtzJeUU = '.$MglNtzJeUU.' | $r = '.$r.' | $f = '.$f."\n");

                        if ($MglNtzJeUU % $r == 0) {
                            break;
                        }else if($MglNtzJeUU % $r == $f && $r == $restfalzbg_UU){
                            break;
                        }
                    }

                    $PlatzierteFaBg_UU = $r;
                    $NtzFaBg_UU = floor($MglNtzJeUU / $r);
                    $restfalzbg_UU -= $PlatzierteFaBg_UU;

                    if ($NtzFaBg_UU == 0) {
                        $NtzFaBg_UU = 0.01;}

                    $ctp_UU += $anzahlDruckfarben_inhalt;
                    $nettobg_dieser_UU = ceil($auflage / $NtzFaBg_UU / 2);
                    $zuschuss_dieser_UU = ceil(max(150,100*$anzahlDruckfarben_inhalt));
                    $NtzText_UU = $NtzFaBg_UU * 2;
                    $nettobg_restBg_UU += $nettobg_dieser_UU;
                    $KostenPapier_UU = $nettobg_dieser_UU * $format['breite'] * $format['hoehe'] * $papier_inhalt_grammatur * $papier_inhalt_value / 1000000000;
                    $druckzeitfortdruck_UU += ($nettobg_dieser_UU + $zuschuss_dieser_UU) / $druckgeschwindigkeit_inhalt * $anzahlDruckJeForm_inhalt * $bedruckteSeiten_inhalt + $WarteZeitUU;
                    $papierkosten_inhalt_UU += $KostenPapier_UU + $NettoPapierkostenZuschuss;

                    if(!($ctpString_UU == '' && $ctpString_SDWD == '' && $ctpString1 == '')){
                        $ctpString_UU .= ' + ';
                    }
                    $ctpString_UU .= $nettobg_dieser_UU . ' Druckbogen Umschlagen/Umstülpen mit ' . $PlatzierteFaBg_UU . ' Falzbg. je ' . $NtzText_UU . ' Nutzen';

                    $maxdurchlaeufe -= 1;

                    if ($restfalzbg_UU == 0) {
                        break;
                    }

                }

                $druckzeitruesten_UU = ($GrundRuestZeit * $anzahlDruckJeForm_inhalt + $ctp_UU * $RuestZeitJePlatte) / 60;

                $papieraufschlagfaktor_inhalt_UU = 1.30-(MIN(($KostenPapier_UU/$papier_inhalt_value*100)/5000,0.2));
                $KostenPapier_UU *= $papieraufschlagfaktor_inhalt_UU;

                $Kosten_UU += ($ctp_UU * $kostenDruckplatte) + (($druckzeitruesten_UU + $druckzeitfortdruck_UU) * $stundensatz_druckmaschine1) + $papierkosten_inhalt_UU;

                $UUarray[] = array('$ctpString_UU'=>$ctpString_UU, '$Kosten_UU'=>$Kosten_UU, '$KostenPapier_UU'=>$KostenPapier_UU, '$nettobg_restBg_UU'=>$nettobg_restBg_UU, '$restfalzbg_UU'=>$restfalzbg_UU, '$f'=>$f, '$maxdurchlaeufe'=>$maxdurchlaeufe, '$r'=>$r, '$NtzText_UU'=>$NtzText_UU, '$druckzeitruesten_UU'=>$druckzeitruesten_UU, '$druckzeitfortdruck_UU'=>$druckzeitfortdruck_UU, '$papierkosten_inhalt_UU'=>$papierkosten_inhalt_UU, '$ctp_UU'=>$ctp_UU, '$anz_UU'=>$ctp_UU/$anzahlDruckfarben_inhalt);

                if ($restfalzbg_UU == 0) {
                    // echo('$f = '.$f.' #'.$maxdurchlaeufe.': $r = '.$r.' | '.$ctpString_UU.' $restfalzbg_UU = '.$restfalzbg_UU.' | $NtzFaBg_UU = '.$NtzFaBg_UU.' | $ctp_UU = '.$ctp_UU.' | $MglNtzJeUU = '.$MglNtzJeUU."\n");
                    break;
                }

            }

            // günstigste UU Variante suchen
            $Kosten_UU = 999999999;
            foreach($UUarray as $u){
                if($u['$Kosten_UU'] < $Kosten_UU){
                    $Kosten_UU = $u['$Kosten_UU'];
                    $ctpString_UU = $u['$ctpString_UU'];
                    $KostenPapier_UU = $u['$KostenPapier_UU'];
                    $nettobg_restBg_UU = $u['$nettobg_restBg_UU'];
                    $restfalzbg_UU = $u['$restfalzbg_UU'];
                    $ntzAufLetzterUmschlager = $u['$NtzText_UU'];
                    $druckzeitruesten_UU = $u['$druckzeitruesten_UU'];
                    $druckzeitfortdruck_UU = $u['$druckzeitfortdruck_UU'];
                    $papierkosten_inhalt_UU = $u['$papierkosten_inhalt_UU'];
                    $ctp_UU = $u['$ctp_UU'];
                    $anz_UU = $u['$anz_UU'];
                }
            }

            // Entscheidung zwischen UU und SD für Restseiten
            if ($Kosten_SDWD >= $Kosten_UU && $restfalzbg_UU == 0) {
                $ctpString1 .= $ctpString_UU;
                $ctp_RestFaBg = $ctp_UU;
                $nettobg_restseiten = $nettobg_restBg_UU;
                $restfalzbg = $restfalzbg_UU;
            } else {
                $ctpString1 .= $ctpString_SDWD;
                $ctp_RestFaBg = $ctp_SDWD;
                $nettobg_restseiten = $nettobg_restBg_SDWD;
                $restfalzbg = $restfalzbg_SDWD;
                $ntzAufLetzterUmschlager = 0;
                $leere_falzbg = $leere_falzbg_SDWD;
                $anz_UU = 0;
            }
        }

        if(mb_substr($ctpString1, 0, 3) == ' + '){
            $ctpString1 = substr($ctpString1, 3, strlen($ctpString1));
        }

        $nettobg_inhalt1 = $nettobg_ganzeBogen + $nettobg_restseiten;
        $ctp_inhalt1 = $ctp_ganzeBogen + $ctp_RestFaBg;
        $zuschuss_inhalt1 = ceil(max(150,100+(($ctp_inhalt1)*75)+($anzahlFarbwechsel_inhalt*100)+(($seiten_inhalt/($drucknutzen_inhalt_calc*2)*$anzahlDruckJeForm_inhalt)*$auflage*0.03)));
        $druckzeitruesten1 = (($GrundRuestZeit*$anzahlDruckJeForm_inhalt)+($ctp_inhalt1*$RuestZeitJePlatte)+($anzahlFarbwechsel_inhalt*$FarbwechselZeit))/60;
        $druckzeitfortdruck1 = ($zuschuss_inhalt1 + $nettobg_inhalt1) / $druckgeschwindigkeit_inhalt * $anzahlDruckJeForm_inhalt * $bedruckteSeiten_inhalt + ($WarteZeitUU * $anz_UU);
        $papierkosten_inhalt1 = ($nettobg_inhalt1+$zuschuss_inhalt1)*$format['hoehe']*$format['breite']*$papier_inhalt_grammatur*$papier_inhalt_value/1000000000;

        if($restfalzbg != 0){
            if($what="debug"){
                echo("\n".'FEHLER: noch offene Restseiten!'."\n");
            }
            $ctp_ganzeBogen = 999;
            $ctp_RestFaBg = 0;
        }

        if($what == 'debug2'){
            echo ("\n<br />".'----- CTP Details für ' . $format['breite'] . 'x' . $format['hoehe'] . ' cm mit '.$NtzFaBgJeDruckbg1." Falzbogen auf Druckbogen -----"."\n<br />");
            echo('RK Druckform: '.number_format($RuestkostenJeDruckform, 2, ',' , '.').' € | Papierk. ZU: '.number_format($NettoPapierkostenZuschuss, 2, ',', '.').' € | Papierk. je Falzbg: '.number_format($PapierkostenJeFalzbg, 2, ',', '.').' € '."\n<br />");
            echo($FalzbgAnz1.' benötigte Falzbogen'.' | Restfalzbogen: '.$restfalzbg.' | Leere Falzbg.: '.$leere_falzbg."\n<br />");
            if ($ctp_RestFaBg > 0) {
                echo ('Restbogenvergl.:' . "\n<br />");
                echo ('Kosten SDWD: ' . round($Kosten_SDWD, 2) . ' = CTP ' . round($ctp_SDWD * $kostenDruckplatte, 2) . ' + MAN ' . round(($druckzeitruesten_SDWD + $druckzeitfortdruck_SDWD) * $stundensatz_druckmaschine1, 2) . ' + PA ' . round($papierkosten_inhalt_SDWD, 2) . "\n<br />");
                echo ('Druckzeit SDWD: ' . round($druckzeitruesten_SDWD, 2) . ' + ' . round($druckzeitfortdruck_SDWD, 2) . ' = ' . round($druckzeitruesten_SDWD + $druckzeitfortdruck_SDWD, 2) . "\n<br />");
                echo ('Papier SDWD: ' . $nettobg_restBg_SDWD . ' | PA-Aufschlag: ' . round($papieraufschlagfaktor_inhalt_SDWD, 2) . "\n<br />");
                echo ('Kosten UU: ' . round($Kosten_UU, 2) . ' = CTP ' . round($ctp_UU * $kostenDruckplatte, 2) . ' + MAN ' . round(($druckzeitruesten_UU + $druckzeitfortdruck_UU) * $stundensatz_druckmaschine1, 2) . ' + PA ' . round($papierkosten_inhalt_UU, 2) . "\n<br />");
                echo ('Druckzeit UU: ' . round($druckzeitruesten_UU, 2) . ' + ' . round($druckzeitfortdruck_UU, 2) . ' = ' . round($druckzeitruesten_UU + $druckzeitfortdruck_UU, 2) . "\n<br />");
                echo ('Papier UU: ' . $nettobg_restBg_UU . ' | PA-Aufschlag: ' . round($papieraufschlagfaktor_inhalt_UU, 2) . "\n<br />");
            }
            echo('CTP Ganze Bogen: '.$ctp_ganzeBogen.' + CTP Restbogen '.$ctp_RestFaBg.' = '.($ctp_ganzeBogen+$ctp_RestFaBg)."\n<br />");
            echo ('Ausgabetext: ' . $ctpString1 . "\n<br />");
        }


        if($inhaltidentisch == '0'){
            $ctp_inhalt1 = $ctp_ganzeBogen + $ctp_RestFaBg + $drucklack_inhalt;
        }else{
            $ctp_inhalt1 = $bedruckteSeiten_inhalt*$anzahlDruckfarben_inhalt+$drucklack_inhalt;
        }


        // falls $ctp_RestFaBg > 0: prüfen, wie viele Nutzen auf Umschlager/Umstülper zusätzlich platziert werden könnten um ggf. rabattierf. Kosten zu berechnen
        if(($ctp_RestFaBg>0 && $ntzAufLetzterUmschlager>=4) && (in_array($druckfarben_inhalt,array(1,2,3,18,19))) && ($papier_inhalt_sammelform != 1)) {
            // ??? hier müsste man eigtl. die $leere_falzb multiplizieren, aktuell wird nur ein Falzbg. rabattiert
            $leere_falzbg += 1;
            if ($what == 'debug2') {
                echo ('>>> Bei: ' . $format['hoehe'] . 'x' . $format['breite'] . ' $leere_falzbg erhöht = ' . $leere_falzbg . "\n<br />");
            }
        }

        // leere Bogenteile ggf. bewerten, Wert für Format/Sortenanz. muss negiert werden ?!
        if((in_array($druckfarben_inhalt,array(1,2,3,18,19))) && ($papier_inhalt_sammelform != 1) && ($leere_falzbg > 0)){
            $sammelarray = getSammelformWertePlanoFa23($auflage, $format_offen_hoehe, $format_offen_breite, $papier_inhalt_sammelform, $bedruckteSeiten_inhalt, $leere_falzbg);
            $sammelfaktor_papier = $sammelarray[2];
            $sammelwahrscheinlichkeit_menge = $sammelarray[1];
            $sammelwahrscheinlichkeit_format_sorten = 1 - $sammelarray[0];
            $sammelfaktor1 = (($sammelwahrscheinlichkeit_format_sorten*75)*($sammelwahrscheinlichkeit_menge*25)/(75*25))*$sammelfaktor_papier;
            $rabattierfaehigeKostenLeerFalzBogen1 = ($leere_falzbg * $PapierkostenJeFalzbg) + ($kostenDruckplatte * $anzahlDruckfarben_inhalt);
        }else{
            $rabattierfaehigeKostenLeerFalzBogen1 = 0;
            $sammelfaktor1 = 0;
        }

        $price_inhalt_calc = (($kostenDruckplatte * $ctp_inhalt1) + $papierkosten_inhalt1 + ($druckzeitruesten1 + $druckzeitfortdruck1) * $stundensatz_druckmaschine1) - ($rabattierfaehigeKostenLeerFalzBogen1*$sammelfaktor1);

        if($what=='debug2'){
            echo("\n<br />".'------- Berechnung CTP für '.$format['breite'].' x '.$format['hoehe'].' cm mit '.$ctp_inhalt1.' Druckplatten'." -------\n<br />");
            echo('Papierk. je Falzbg: '.number_format($PapierkostenJeFalzbg, 2 , ',', '.').' € | Rüstk. je Form: '.number_format($RuestkostenJeDruckform, 2 , ',', '.')." € \n<br />");
            echo('Falzbogen je Druckoberfläche: '.( $drucknutzen_inhalt_calc/2).' | leere Falzbg.: '.$leere_falzbg."\n<br />");
            echo ('Nettobg.: '.$nettobg_inhalt1.' + Zuschuss: '.$zuschuss_inhalt1."\n<br />");
            echo('Rüstzeit: '.number_format($druckzeitruesten1, 2, ',', '.').' + Fortdruckzeit: '.number_format($druckzeitfortdruck1, 2, ',', '.').' = '.number_format($druckzeitruesten1+$druckzeitfortdruck1, 2, ',', '.')." h \n<br />");
            echo('Kosten Druckmaschine: '.number_format(($druckzeitruesten1+$druckzeitfortdruck1) * $stundensatz_druckmaschine1, 2, ',', '.')." €\n<br />");
            echo('Papierkosten: '.number_format($papierkosten_inhalt1, 2, ',', '.')." €\n<br />");
            echo('Totalkosten: '.number_format($price_inhalt_calc, 2, ',', '.')." €\n<br />");
            echo('abzgl. rabattierf. Kosten: '.number_format($rabattierfaehigeKostenLeerFalzBogen1, 2, ',', '.').' x '.number_format($sammelfaktor1, 2).' = '.number_format($rabattierfaehigeKostenLeerFalzBogen1*$sammelfaktor1, 2)." € \n<br />");
            if ($rabattierfaehigeKostenLeerFalzBogen1 != 0) {
                echo ('Sammelfaktor Papiersorte: ' . number_format($sammelfaktor_papier, 2, ',', '.') . "\n<br />");
                echo ('Sammelwahrscheinlichkeit Format/Sorten: ' . number_format($sammelwahrscheinlichkeit_format_sorten, 2) . "\n<br />");
                echo ('Sammelwahrscheinlichkeit Menge: ' . number_format($sammelwahrscheinlichkeit_menge, 2) . "\n<br />");
            }
        }

        if(($price_inhalt_calc < $price_inhalt) && ( $drucknutzen_inhalt_calc > 0)) {
            $price_inhalt = $price_inhalt_calc;
            $drucknutzen_inhalt =  $drucknutzen_inhalt_calc;
            $ctp_inhalt = $ctp_inhalt1;
            $zuschuss_inhalt = $zuschuss_inhalt1;
            $nettobg_inhalt = $nettobg_inhalt1;
            $druckbogen_hoehe_inhalt = $format['hoehe'];
            $druckbogen_breite_inhalt = $format['breite'];
            $druckzeitruesten_inhalt = $druckzeitruesten1;
            $druckzeitfortdruck_inhalt = $druckzeitfortdruck1;
            $druckzeittotal_inhalt = $druckzeitruesten_inhalt + $druckzeitfortdruck_inhalt;
            $papierkosten_inhalt = $papierkosten_inhalt1;
            $stundensatz_druckmaschine_inhalt = $stundensatz_druckmaschine1;
            $druckmaschine_inhalt = "man";
            $rabattierfaehigeKostenLeerFalzBogen = $rabattierfaehigeKostenLeerFalzBogen1;
            $sammelfaktor = $sammelfaktor1;
            $ctpString = $ctpString1;
        }
    }

    $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.30-(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 * $sammelfaktor;


    // 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 = getPrintPlanoFa23('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_umschlag, $format_offen_hoehe - 0.4, $drucklack_umschlag, $papier_umschlag_vs_rs_unterschiedlich, $zussorten_umschlag+1, 1, $zusdruckplatten, $zusfarbwechsel, $lackart_umschlag, $papier_umschlag_sammelform);
    }else{
        $printarray_umschlag = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
    }

    $eigenkosten_umschlag = $printarray_umschlag[0];
    $druckmaschine_umschlag = $printarray_umschlag[1];
    $stundensatz_druckmaschine_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];

    $eigenkosten_umschlag += $sortenaufschlag_umschlag;

    $eigenkosten = $eigenkosten_inhalt + $eigenkosten_umschlag;
    $fremdkosten = $fremdkosten_inhalt + $fremdkosten_umschlag;
    $rabattierfaehigekosten = $rabattierfaehigekosten_inhalt + $rabattierfaehigekosten_umschlag;

    // Einzelwerte ausgeben
    if($what=='debug'){
        echo("\n<br />");
        if ($seiten_umschlag != 0) {
            echo ('-------------------- PRINT UMSCHLAG BRO --------------------' . "\n<br />");
            echo ('UM: ' . $druckmaschine_umschlag . ' | CTP: ' . $ctp_umschlag . ' | Farbw.: ' . $anzahlFarbw_umschlag . ' | Geschw.: ' . number_format($druckgeschwindigkeit_umschlag, 0 , ',', '.') . " Bg/h\n<br />");
            echo ('Druck: ' . number_format($druckzeitruesten_umschlag, 2 , ',', '.') . ' h + ' . number_format($druckzeitfortdruck_umschlag, 2 , ',', '.') .' h = ' . number_format($druckzeitfortdruck_umschlag+$druckzeitruesten_umschlag, 2 , ',', '.').' | '.number_format(($druckzeitruesten_umschlag+$druckzeitfortdruck_umschlag)*$stundensatz_druckmaschine_umschlag, 2 , ',', '.')." € \n<br />");
            echo ('Farbe+Lack: ' . number_format($farbkosten_umschlag, 2 , ',', '.') . " € \n<br />");
            if ($sortenaufschlag_umschlag != 0) {
                echo ('Sortenaufschlag: ' . $sortenaufschlag_umschlag . " €\n<br />");
            }
            if ($lackart_kosten_umschlag != 0) {
                echo('Lackart Kosten: ' . number_format($lackart_kosten_umschlag, 2 , ',', '.') . " €\n<br />");
            }
            echo ('EK: ' . round($eigenkosten_umschlag,2) . ' + FK ' . round($fremdkosten_umschlag,2) . ' = ' . round($eigenkosten_umschlag + $fremdkosten_umschlag, 2). " €\n<br />");
            echo ($druckbogen_hoehe_umschlag . ' x ' . $druckbogen_breite_umschlag . ' cm mit ' . $nutzen_umschlag . ' Ntz. = ' . number_format($druckbogen_nettomenge_umschlag, 0, ',', '.') . ' + ' . number_format($druckbogen_zuschussmenge_umschlag, 0, ',', '.'). ' Bg. | ' . number_format($papierkosten_umschlag, 2 , ',', '.') . ' €' . "\n<br />");
        }
        echo('-------------------- PRINT INHALT BRO --------------------'."\n<br />");

        echo('INH: '.$druckmaschine_inhalt.' | CTP: '.$ctp_inhalt.' | Farbw.: '.$anzahlFarbwechsel_inhalt.' | Geschw.: '.number_format($druckgeschwindigkeit_inhalt, 0 , ',', '.')." Bg/h\n<br />");
        echo($ctpString."\n<br />");
        echo('Druck: '.number_format($druckzeitruesten_inhalt, 2 , ',', '.').' h + '.number_format($druckzeitfortdruck_inhalt, 2 , ',', '.').' h = '.number_format($druckzeitfortdruck_inhalt+$druckzeitruesten_inhalt, 2 , ',', '.').' h | '.number_format(($druckzeitruesten_inhalt+$druckzeitfortdruck_inhalt)*$stundensatz_druckmaschine_inhalt, 2 , ',', '.')." € \n<br />");
        echo('Farbe+Lack: '.number_format($farbkosten_inhalt, 2 , ',', '.'). " €\n<br />");
        if ($lackart_kosten_inhalt != 0) {
            echo ('+ Extra Kosten für Lackart: ' . number_format($lackart_kosten_inhalt, 2 , ',', '.') . " €\n<br /><br />");
        }
        echo ('EK: ' . round($eigenkosten_inhalt,2) . ' + FK ' . round($fremdkosten_inhalt,2) . ' = ' . round($eigenkosten_inhalt + $fremdkosten_inhalt, 2). " €\n<br />");
        echo($druckbogen_hoehe_inhalt.' x '.$druckbogen_breite_inhalt.' cm mit '. $drucknutzen_inhalt.' Ntz. = '.number_format($nettobg_inhalt, 0, ',', '.').' + '.number_format($zuschuss_inhalt, 0, ',', '.').' = '.number_format($nettobg_inhalt+$zuschuss_inhalt, 0, ',', '.').' Bg. | '.number_format($papierkosten_inhalt, 2 , ',', '.').' €'."\n<br />");
        echo ('Papieraufschlag: '.number_format($papieraufschlagfaktor_inhalt, 2 , ',', '.')."\n<br />");
        echo('-------------------- BRO PRINT --------------------'."\n<br />");
        echo('Format offen: '.$format_offen_breite.' x '.$format_offen_hoehe." cm \n<br />");
        if($bubipappe != 0 || $buchruecken !=0){
            echo('Pappe: '.($bubipappe*10).' mm | Buchrücken ca. '.($buchruecken*10)." mm"."\n<br />");
        }else{
            echo ('Heftdicke ca. '.($heftdicke*10).' mm'."\n<br />");
        }
        echo('Rabattierf. Kosten: INH '.number_format($rabattierfaehigekosten_inhalt, 2 , ',', '.').' € + UM '.number_format($rabattierfaehigekosten_umschlag, 2 , ',', '.').' € = '.number_format($rabattierfaehigekosten, 2 , ',', '.')." €\n<br />");
        echo('Eigenkosten: '.number_format($eigenkosten, 2 , ',', '.')." €\n<br />");
        echo('Fremdkosten: '.number_format($fremdkosten, 2 , ',', '.')." € \n<br />");
        echo('Gesamtkosten: '.number_format($fremdkosten+$eigenkosten, 2 , ',', '.')." € \n<br />");
    }

    return [$eigenkosten, $fremdkosten, $rabattierfaehigekosten, $format_offen_breite, $format_offen_hoehe, $bubipappe, $buchruecken, $druckmaschine_inhalt, $ctp_inhalt, $anzahlFarbwechsel_inhalt, $druckgeschwindigkeit_inhalt, $druckbogen_hoehe_inhalt, $druckbogen_breite_inhalt, $drucknutzen_inhalt, $nettobg_inhalt, $zuschuss_inhalt, $papierkosten_inhalt, $druckzeitruesten_inhalt, $druckzeitfortdruck_inhalt, $farbkosten_inhalt, $lackart_kosten_inhalt, $druckmaschine_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, $heftdicke, $ctpString];

}


function getMaschineKosten23($format, $anzahlFarbwechsel_inhalt) {
    $maschine = getMaschine($format['breite'], $format['hoehe']);

    if($maschine == 'man') {
        return 165 + ($anzahlFarbwechsel_inhalt * 20);
    }

    return 40;
}

function getWTVBRO23($what, $auflage, $breite_geschl, $hoehe_geschl, $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;
    $wtvzuschusspapier_inhalt = 0;
    $wtvzuschusspapier_umschlag = 0;
    $wtvfrachtkosten = 0;
    $wtvfrachtgewicht = $auflage * $hoehe_geschl * $breite_geschl * ($seiten_inhalt / 2 * $papier_inhalt_grammatur + $seiten_umschlag / 2 * $papier_umschlag_grammatur) / 10000 * 1.1;
    $wtvfrachtpreis = 50 + $wtvfrachtgewicht / 400000 * 15;
    $papierlogistikpauschale = $wtvfrachtgewicht / 100000 * 5;
    $wtvfremdkosten += $papierlogistikpauschale;

    if($hoehe_geschl < 14 || $hoehe_geschl < $breite_geschl || $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 = 1 / $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 = $wtvkostenverpackung= 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;
        // Verpackungsmaterial
        $wtvkostenverpackung = $wtvfrachtgewicht / 5000 * 0.6;
        $wtvfremdkosten += $wtvkostenverpackung;
        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (20 + $auflage * 0.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (20 + $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 * (20 + $auflage * 0.005);
    }

    // RDH
    $zeit_rdh = $kosten_rdh = 0;
    if($weiterverarbeitung == '1'){
        if($breite_geschl < 25 && $breite_geschl >= 9.0 && $hoehe_geschl >= 10.5){
            $zeit_rdh = 0.25 + ($seiten_inhalt + $seiten_umschlag)/60 + ($auflage/$wtvgeschwindigkeit_hfs);
        }elseif($breite_geschl < 25 && $breite_geschl >= 9.0 && $hoehe_geschl >= 10){
            $zeit_rdh = (2 + ($seiten_inhalt + $seiten_umschlag)/60 + ($auflage/$wtvgeschwindigkeit_hfs)) * 1.4;
        }else{
            $zeit_rdh = (3 + ($seiten_inhalt + $seiten_umschlag)/60 + ($auflage/$wtvgeschwindigkeit_hfs)) * 1.8;
            $wtvfrachtkosten += $wtvfrachtpreis;
        }

        $kosten_ringoesen = $klammerung * 60;

        $kosten_umschlag_nuten = 0;
        if(($papier_umschlag_grammatur >= 170 && $ausfuehrung != 1) || ($ausfuehrung == 1 && $papier_inhalt_grammatur >= 170)){
            $kosten_umschlag_nuten = min(($auflage/3000+0.5)*$Pstundensatz_wtv_maschinen, $auflage/$drucknutzen_umschlag/1000*33+110);
            $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (20 + $auflage * 0.0025);
        }

        $kosten_rdh = $zeit_rdh * $Pstundensatz_wtv_maschinen + $kosten_ringoesen + $kosten_umschlag_nuten;
        $wtveigenkosten += $kosten_rdh;
        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (30 + $auflage * 0.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.005);
    }

    // PUR      (Einflussgrößen = Seitenanz. INH, Ntz. INH, Auflage, Format HF / QF)
    $zeit_pur = $kosten_pur = 0;
    if($weiterverarbeitung == '2'){

        $pur_purarray = array(array(0,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_geschl < $hoehe_geschl){
            $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.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.005);
        $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_geschl >= 14.8 && $breite_geschl >= 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_geschl/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.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.005);
        $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_geschl*$hoehe_geschl/10000)+($seiten_inhalt/$drucknutzen_inhalt/30))*$auflage)+800)*1.4;
        $zeit_hdcover = 24 * 12;
        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.01);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.01);
        $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.01);
        $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_geschl < 12 || $breite_geschl > 43 || $hoehe_geschl < 12 || $hoehe_geschl > 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_geschl,$hoehe_geschl])+15)/300)+0.03*(ceil(($buchruecken/0.4))-1))*($auflage)*1.4;
        $wtvzuschusspapier_inhalt += $anzDruckbg_inhalt * (50 + $auflage * 0.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (50 + $auflage * 0.005);
        $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.005);
        $wtvzuschusspapier_umschlag += $anzDruckbg_umschlag * (30 + $auflage * 0.005);
        $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 += $anzDruckbg_inhalt * (10 + $auflage * 0.002);
    }
    $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 += $anzDruckbg_umschlag * (100 + $auflage * 0.002);
    }
    if($praegung_umschlag == 3){
        $zeit_praegung = 5 * 24;
        $kosten_werkzeug_praegung = 135 + $format_offen_breite * $format_offen_hoehe / 2;
        $kosten_praegung = 200 + 200 * $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 += $anzDruckbg_umschlag * (30 + $auflage * 0.002);
        $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 += $anzDruckbg_umschlag * (100 + $auflage * 0.002);
        $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("\n<br />");
        echo('-------------------- WTV BRO --------------------'."\n<br />");
        echo('Endschneiden Inhalt: '.number_format($kosten_endschneiden_inhalt, 2 , ',', '.').' € | Zeit: '.number_format($zeit_endschneiden_inhalt, 2 , ',', '.')."\n<br />");
        echo('Endschneiden Umschlag: '.number_format($kosten_endschneiden_umschlag, 2 , ',', '.').' € | Zeit: '.number_format($zeit_endschneiden_umschlag, 2 , ',', '.')."\n<br />");
        if($kosten_rdh > 0){
            echo('RDH: '.number_format($kosten_rdh-$kosten_umschlag_nuten, 2 , ',', '.').' € | Zeit RDH: '.number_format($zeit_rdh, 2 , ',', '.')."\n<br />");
            if($kosten_umschlag_nuten>0){
                echo('nuten Umschlag: '.number_format($kosten_umschlag_nuten, 2 , ',', '.')." €\n<br />");
            }
            echo('WTV Geschwindigkeit HFS: '.$wtvgeschwindigkeit_hfs."\n<br />");
        }
        if($kosten_pur > 0){
            echo('PUR: '.number_format($kosten_pur, 2 , ',', '.')." €\n<br />");
            echo('___$pur_kosten_kleb: '.$pur_kosten_kleb.' € | $pur_seiten: '.$pur_seiten."\n<br />");
            echo('___$pur_falzbg: '.number_format($pur_falzb,3).' € | Falzmenge: '.$auflage * $pur_falzb."\n<br />");
            echo('___$pur_kosten_falzbg: '.$pur_kosten_falzbg." €\n<br />");
        }
        if($kosten_wireo > 0){
            echo('Wire-O: '.number_format($kosten_wireo, 2 , ',', '.')." €\n<br />");
            echo('___$zeit_loseblatt: '.number_format($zeit_loseblatt, 2 , ',', '.').' | $fk_wireo_fix: '.number_format($fk_wireo_fix, 2 , ',', '.').' € | $fk_wireo_spirale: '.number_format($fk_wireo_spirale, 2 , ',', '.').' € | $fk_wireo_sta: '.number_format($fk_wireo_sta, 2 , ',', '.').' € | $fk_wireo_binden: '.number_format($fk_wireo_binden, 2 , ',', '.').' € | Buchrücken: '.$buchruecken."\n<br />");
        }
        if($kosten_hdcover > 0){
            echo('HDCOVER: '.number_format($kosten_hdcover, 2 , ',', '.')." €\n<br />");
        }
        if($kosten_hdcover_leinen > 0){
            echo('HDCOVER LEINEN: ('.$kosten_hdcover_leinen_fix.' + '.$auflage.' x '.number_format($kosten_hdcover_leinen_var, 2 , ',', '.').') x 1.2 = '.number_format($kosten_hdcover_leinen, 2 , ',', '.')."€ \n<br />");
        }
        if($kosten_registerstanzung > 0){echo('Registerstanzung: '.number_format($kosten_registerstanzung, 2 , ',', '.')."€ \n<br />");}
        if($kosten_beilage > 0){echo('Beilage: '.number_format($kosten_beilage, 2 , ',', '.')." €\n<br />");}
        if($kosten_einschweissen > 0){echo('einschweissen: '.number_format($kosten_einschweissen, 2 , ',', '.')." €\n<br />");}
        if($kosten_buendeln > 0){echo('bündeln: '.number_format($kosten_buendeln, 2 , ',', '.').' € | '.'Zeit bündeln: '.number_format($zeit_buendeln, 2 , ',', '.')."\n<br />");}
        if($kosten_praegung > 0){echo('Prägung: '.number_format($kosten_praegung, 2 , ',', '.').' € | Zeit praegung: '.number_format($zeit_praegung, 2 , ',', '.').' | anteilg. Werkzeug: '.number_format($kosten_werkzeug_praegung, 2 , ',', '.')." € \n<br />");}
        if($kosten_duftdruck > 0){echo('Duftdruck: '.number_format($kosten_duftdruck, 2 , ',', '.')."€ \n<br />");}
        if($kosten_kaschierung > 0){echo('Kaschierung: '.number_format($kosten_kaschierung, 2 , ',', '.')." € \n<br />");}
        if($kosten_perforation > 0){echo('Perforation: '.number_format($kosten_perforation, 2 , ',', '.')." € \n<br />");}
        if($kosten_blankomuster > 0){echo('Blankomuster: '.number_format($kosten_blankomuster, 2 , ',', '.')." € \n<br />");}
        if($kosten_musterversand > 0){echo('Musterversand: '.number_format($kosten_musterversand, 2 , ',', '.')." € \n<br />");}
        if($kosten_absender > 0){echo('Absender: '.number_format($kosten_absender, 2 , ',', '.')." €\n<br />");}
        if($kosten_freipos10 > 0){echo('freipos10: '.number_format($kosten_freipos10, 2 , ',', '.')." €\n<br />");}
        if($kosten_freipos20 > 0){echo('freipos20: '.number_format($kosten_freipos20, 2 , ',', '.')." €\n<br />");}
        echo('Papierlogistikpauschale: '.number_format($papierlogistikpauschale, 2 , ',', '.')." €\n<br />");
        echo('Verpackung: '.number_format($wtvkostenverpackung, 2 , ',', '.')." €\n<br />");
        echo('----------------------------------------'."\n<br />");
        echo('WTV Zuschuss Papier Inhalt: '.number_format($wtvzuschusspapier_kosten_inhalt, 2 , ',', '.').' € | '.number_format($wtvzuschusspapier_inhalt, 0 , ',', '.')." Bg. \n<br />");
        echo('WTV Zuschuss Papier Umschlag: '.number_format($wtvzuschusspapier_kosten_umschlag, 2 , ',', '.').' € | '.number_format($wtvzuschusspapier_umschlag, 0 , ',', '.')." Bg. \n<br />");
        echo('WTV Frachtkosten: '.number_format($wtvfrachtkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Eigenkosten: '.number_format($wtveigenkosten, 2 , ',', '.')." €\n<br />");
        echo('WTV Fremdkosten: '.number_format($wtvfremdkosten, 2 , ',', '.')." € \n<br />");
    }

    return [$wtveigenkosten, $wtvfremdkosten, $wtvfrachtkosten, $wtvzuschusspapier_kosten_inhalt, $wtvzuschusspapier_kosten_umschlag, $wtvfrachtgewicht];

}

function getZUABBRO23($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,  $drucknutzen_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 = getSammelformWertePlanoFa23($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,-110,-60,-60,-25,-25);
        $sammelformreduktion_inhalt = -1 * ((-1 * $papierliste_sammelf_inhalt[$papiersorte_sammelform_inhalt-1]) + $rabattierfaehigekosten_inhalt);
        $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 == "1"){
        $provision_zuschlag = ($zuab_gesamtkosten+$preisaenderung)/100*$provisionswert;
    }
    $preisaenderung += $provision_zuschlag;


    //Einzelwerte ausgeben
    if($what=='debug'){
        echo("\n<br />".'-------------------- Zu-/Abschläge BRO --------------------'."\n<br />");
        if ($seiten_umschlag != 0) {
            echo ('UM Sammelfaktor Papiersorte: ' . number_format($sammelfaktor_papier, 2, ',', '.') . "\n<br />");
            echo ('UM Sammelwahrscheinlichkeit Format/Sorten: ' . number_format($sammelwahrscheinlichkeit_format_sorten, 2) . "\n<br />");
            echo ('UM Sammelwahrscheinlichkeit Menge: ' . number_format($sammelwahrscheinlichkeit_menge, ) . "\n<br />");
            echo ('UM Sammelfaktor: ' . number_format($sammelfaktor, 2) . "\n<br />");
        }
        echo('Sammelformreduktion: INH '.number_format($sammelformreduktion_inhalt, 2 , ',', '.').' + UM '.number_format($sammelformreduktion_umschlag, 2 , ',', '.').' = '.number_format($sammelformreduktion, 2 , ',', '.')." €\n<br />");
        echo("Qualität: ".  $qualitaet_fix.' | '.$qualitaet_proz." = ".number_format($qualitaet_zuab, 2 , ',', '.')." € \n<br />");
        echo("Produktionszeit: ".$zeitwert_fix.' | '.$zeitwert_proz." = ".number_format($zeit_zuab, 2 , ',', '.')." € \n<br />");
        echo('Provision: '.number_format($provisionswert, 2 , ',', '.').' % | '.number_format($provision_zuschlag, 2 , ',', '.')." € \n<br />");
        echo('Preisänderung total: '.number_format($preisaenderung, 2 , ',', '.')." €\n\n<br />");
    }

    return $preisaenderung;
    }



// ####### ENDE KOPIERSEKTION PSC #######
}