// --------------------------------------------------------
//
// Offsetdruck wie Keyline
// 
// --------------------------------------------------------

// --------------------
// Allgemeine Hilffunktionen
if(!function_exists('rangeSwitch')) {
    function rangeSwitch($value, ...$args) {
        $count = count($args);
        for ($i = 0; $i < $count - 2; $i += 3) {
            $start = $args[$i];
            $end = $args[$i + 1];
            $result = $args[$i + 2];
            if ($value >= $start && $value <= $end) {
                return $result;
            }
        }
        // Optionaler Standardwert, falls überzähliges Argument vorhanden
        if ($count % 3 === 1) {
            return $args[$count - 1];
        }
        return null; // oder throw Exception, je nachdem
    }
}


// Allgemeine Hilfsformeln

//Gesamtanzahl der Sonderfarben                    
$helper_sonderfarben_count = 
    '(
        (($CVfarbe_1_v_valid$CV && ($Vfarbe_1_v$V == 2 || $Vfarbe_1_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_2_v_valid$CV && ($Vfarbe_2_v$V == 2 || $Vfarbe_2_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_3_v_valid$CV && ($Vfarbe_3_v$V == 2 || $Vfarbe_3_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_4_v_valid$CV && ($Vfarbe_4_v$V == 2 || $Vfarbe_4_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_1_r_valid$CV && ($Vfarbe_1_r$V == 2 || $Vfarbe_1_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_2_r_valid$CV && ($Vfarbe_2_r$V == 2 || $Vfarbe_2_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_3_r_valid$CV && ($Vfarbe_3_r$V == 2 || $Vfarbe_3_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 2 || $Vfarbe_4_r$V == 3))? 1 : 0 )
    )';

//Gesamtanzahl der Farben                    
$helper_farben_count = 
    '(
        (($CVfarbe_1_v_valid$CV)? 1 : 0 ) +
        (($CVfarbe_2_v_valid$CV)? 1 : 0 ) +
        (($CVfarbe_3_v_valid$CV)? 1 : 0 ) +
        (($CVfarbe_4_v_valid$CV)? 1 : 0 ) +
        (($CVfarbe_1_r_valid$CV)? 1 : 0 ) +
        (($CVfarbe_2_r_valid$CV)? 1 : 0 ) +
        (($CVfarbe_3_r_valid$CV)? 1 : 0 ) +
        (($CVfarbe_4_r_valid$CV)? 1 : 0 )
    )';

// Hilfsformel zu verarbeitende Güter
$helper_zu_verarbeitende_gueter = 
    '(ceil(
        $Fhelper_anzahl_druckboegen$F 
        + (($Vdruckverfahren$V == 2)? $Fhelper_ausschuss_offset$F : 0) 
        + (($Vdruckverfahren$V == 1)? $Fhelper_ausschuss_digital$F : 0)
        + (($Vvorschneiden$V == 1)? ($Pvorschneiden_fixer_ausschuss$P / $CVformat_1$CV): 0)
        + (($Vschneiden$V == 1)? ($Pschneiden_fixer_ausschuss$P / $CVformat_1$CV) : 0)
        + (($Vrillen$V == 1)? ($Prillen_und_falzen_fixer_ausschuss$P / $CVformat_1$CV) : 0)
    ))';

// Hilfsformel Druckgänge
$helper_anzahl_druckgaenge =
    '(
        ($CVdruckfarben_2$CV > 0)? 2 : 1
    )';

// Hilfsformel Druckbogen (Anzahl der Plattenwechsel die notwendig sind, nicht zu verwechseln mit helper_anzahl_druckboegen)
// Formel funkioniert derzeit nur für einfache Briefbögen, für komplexere Produkte müsste man herausfinden wie die Druckbogen richtig berechnet werden können.
// Faustregel für alles was keine Broschüre ist = 1
// Faustregel für Broschüre ceil( Seitenzahl / (Nutzen * 2))
// Erklärung hierzu: Bei A4 z.B. 2 Nutzen pro Druckbogen, die *2 sind für die Beidseitigkeit. Seitenzahl der Broschüre, durch den beidseitigen Nutzen aufgerundet sollte für Broschüren hier den richtigen wert geben. Für den offset-bbg wird derzeit einfach der Wert 1 für die Berechnung übergeben

$helper_anzahl_druckbogen = 
    '(
        ceil($Vseitenanzahl$V / ($CVformat_1$CV * 2))
    )';


// --------------------
// MEDIENGESTALTER Druckdatenvorbereitung und Prüfung

$mediengestalter = 
    '((
        (180 / 60)
        + ((3600 / $Pmediengestalter_komponenten_pro_stunde$P) / 60)
        + (60 / 60)
    ) * ($Pmediengestalter_stundenpreis$P / 60))';

$mediengestalter_reduziert = 
    '((
        (60 / 60)
        + ((3600 / $Pmediengestalter_reduziert_komponenten_pro_stunde$P) / 60)
        + (60 / 60)
    ) * ($Pmediengestalter_stundenpreis$P / 60))';


// --------------------
// DRUCKPLATTENBELICHTUNG

// Hilfsformel Druckplatten-Anzahl
$helper_anzahl_druckplatten = 
    '(
        ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV)
        * ((($Vfarberueck_valid$V? $Vfarberueck$V : 2) == 1)? 1 : 0.5)
    )';

// Druckplatten belichten
$offset_druckplatten_belichten = 
    '(
        (($Fhelper_anzahl_druckplatten$F * $Pdruckplattenkosten$P) / 100)
        + ((($Fhelper_anzahl_druckplatten$F * (3600 / $Pdruckplattenbelichtung_pro_stunde$P)) / 60 ) * ($Psuprasetter_stundenpreis$P / 60))
        + (($Fhelper_anzahl_druckplatten$F * $Pdruckplattenkosten_extern$P) / 100)
    )';


// --------------------
// PAPIERBEDARF

// Hilfsformel Druckbögen
$helper_anzahl_druckboegen =
    '(
        $Vauflage$V / $CVformat_1$CV
    )';

// Hiflsformel Ausschuss

$helper_ausschuss_offset =
    '(
        ($Fhelper_anzahl_druckboegen$F * ($Pspeedmaster_ausschussrate$P / 100)) + $Fhelper_anzahl_druckbogen$F * $Pspeedmaster_fixer_ausschuss$P
        + (($Fhelper_sonderfarben_count$F > 0)? $Pspeedmaster_fixer_ausschuss$P : 0 )
    )';

$helper_ausschuss_digital =
    '(
        ($Fhelper_anzahl_druckboegen$F * ($Pversafire_ausschussrate$P / 100)) + ($Pversafire_fixer_ausschuss$P / $CVformat_1$CV)
    )';

$helper_ausschuss_horizon =
    '(
        ($Fhelper_anzahl_druckboegen$F * ($Prillen_und_falzen_ausschussrate$P / 100)) + ($Prillen_und_falzen_fixer_ausschuss$P / $CVformat_1$CV)
    )';

// Druckbogen-Kosten
$offset_druckbogen_preis = 
    '(
        $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_value$V / 1000)
    )';

// Druckbogen-Kosten (digital)
$digital_druckbogen_preis = 
    '(
        $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_value$V / 1000)
    )';


// --------------------
// OFFSETDRUCK

$offset_ruest = 
    '((
        (($Vdruckfarben$V > 10 || $Vdruckfarben$V == 1 || $Vdruckfarben$V == 0)? 1 : 0.75)
        * $Peinrichten_farbe_und_passer$P
        * $Fhelper_anzahl_druckgaenge$F
        + ($Pruestzeit_pro_platte$P * $Fhelper_anzahl_druckplatten$F)
        + ($Pruestzeit_pro_sonderfarbe$P * $Fhelper_sonderfarben_count$F)
    )
    * ($Pspeedmaster_stundenpreis$P / 60))';

$offset = 
    '(((
        (3600 / $Pspeedmaster_bogen_pro_stunde$P)
        * ($Fhelper_zu_verarbeitende_gueter$F * $Fhelper_anzahl_druckgaenge$F)
        * ( (($Fhelper_zu_verarbeitende_gueter$F > 1 && $Fhelper_zu_verarbeitende_gueter$F < 501)? 1.7 : 0 ) 
          + (($Fhelper_zu_verarbeitende_gueter$F > 500 && $Fhelper_zu_verarbeitende_gueter$F < 1001)? 1.4 : 0 ) 
          + (($Fhelper_zu_verarbeitende_gueter$F > 1000 && $Fhelper_zu_verarbeitende_gueter$F < 1501)? 1.1 : 0 ) 
          + (($Fhelper_zu_verarbeitende_gueter$F > 1500 && $Fhelper_zu_verarbeitende_gueter$F < 2000001)? 1 : 0 ) )
        * (
           ($Vpapier_eigenschaften$V == "coated")?
            ( (($Vpapier_grammatur$V > 49 && $Vpapier_grammatur$V < 61)? 2.9 : 0 )
            + (($Vpapier_grammatur$V > 60 && $Vpapier_grammatur$V < 71)? 2.3 : 0 ) 
            + (($Vpapier_grammatur$V > 70 && $Vpapier_grammatur$V < 81)? 2 : 0 )
            + (($Vpapier_grammatur$V > 80 && $Vpapier_grammatur$V < 101)? 1.7 : 0 )
            + (($Vpapier_grammatur$V > 100 && $Vpapier_grammatur$V < 161)? 1 : 0 )
            + (($Vpapier_grammatur$V > 160 && $Vpapier_grammatur$V < 241)? 1.1 : 0 )
            + (($Vpapier_grammatur$V > 240 && $Vpapier_grammatur$V < 251)? 1.6 : 0 )
            + (($Vpapier_grammatur$V > 250 && $Vpapier_grammatur$V < 451)? 2 : 0 )
            )
          : ( (($Vpapier_grammatur$V > 49 && $Vpapier_grammatur$V < 161)? 1 : 0 )
            + (($Vpapier_grammatur$V > 160 && $Vpapier_grammatur$V < 251)? 1.1 : 0 )
            + (($Vpapier_grammatur$V > 250 && $Vpapier_grammatur$V < 301)? 1.4 : 0 )
            + (($Vpapier_grammatur$V > 300 && $Vpapier_grammatur$V < 451)? 1.5 : 0 )
            )
          )
    ) + (
        ($Fhelper_zu_verarbeitende_gueter$F < 5000)?
        ( 
            ((($Vfarberueck_valid$V? $Vfarberueck$V : 2) == 1)? 0 : 300) + (($Fhelper_anzahl_druckgaenge$F < 2)? 0 : 300) 
        ) : 0
    ) + (  (($Fhelper_zu_verarbeitende_gueter$F > 0 && $Fhelper_zu_verarbeitende_gueter$F < 5001)? (1 * $Poffset_gummituch_waschen$P) : 0 ) 
         + (($Fhelper_zu_verarbeitende_gueter$F > 5000 && $Fhelper_zu_verarbeitende_gueter$F < 20001)? (2 * $Poffset_gummituch_waschen$P) : 0 ) 
         + (($Fhelper_zu_verarbeitende_gueter$F > 20000 && $Fhelper_zu_verarbeitende_gueter$F < 40001)? (3 * $Poffset_gummituch_waschen$P) : 0 ) 
         + (($Fhelper_zu_verarbeitende_gueter$F > 40000 && $Fhelper_zu_verarbeitende_gueter$F < 100001)? (4 * $Poffset_gummituch_waschen$P) : 0 ) 
        + ($Fhelper_anzahl_druckbogen$F * $Fhelper_anzahl_druckgaenge$F * $Poffset_gummituch_waschen$P)
    )) / 60 
    ) * ($Pspeedmaster_stundenpreis$P / 60)';

$zwischensumme = '$Vpapier_grammatur$V';

$offset_aufraeum = 
    '((
        $Pspeedmaster_aufraeumgrundzeit$P
        + ($Pspeedmaster_aufraeumzeit_pro_sonderfarbe$P * $Fhelper_sonderfarben_count$F)
    )
    * ($Pspeedmaster_stundenpreis$P / 60))';


// --------------------
// DIGITALDRUCK

$digital_ruest = 
    '(
        $Pversafire_ruest_grundzeit$P * ($Pversafire_stundenpreis$P / 60))';

$digital = 
    '(
        3600 / rangeSwitch($CVformat_5$CV,
            1, 230, $Pversafire_seiten_pro_stunde$P,
            231, 420, $Pversafire_seiten_pro_stunde$P / 1.86,
            421, 450, $Pversafire_seiten_pro_stunde$P / 1.98,
            451, 460, $Pversafire_seiten_pro_stunde$P / 2.02,
            461, 480, $Pversafire_seiten_pro_stunde$P / 2.12,
            481, 700, $Pversafire_seiten_pro_stunde$P / 3.63,
            701, 1000, $Pversafire_seiten_pro_stunde$P / 4.6) * ((($Fhelper_zu_verarbeitende_gueter$F - ($Pvorschneiden_fixer_ausschuss$P / $CVformat_1$CV)) * $CVformat_1$CV) * $Fhelper_anzahl_druckgaenge$F)
    ) * ($Pversafire_stundenpreis$P / 3600)';

$digital_fremd = 
    '(
        ((($CVdruckfarben_1$CV > 1)? (
            rangeSwitch($CVformat_4$CV,
                100, 480, $Pversafire_farbklick_bis_480$P,
                481, 700, $Pversafire_farbklick_bis_700$P,
                701, 1000, $Pversafire_farbklick_bis_1000$P)
            ):(
            rangeSwitch($CVformat_4$CV,
                100, 480, $Pversafire_swklick_bis_480$P,
                481, 700, $Pversafire_swklick_bis_700$P,
                701, 1000, $Pversafire_swklick_bis_1000$P)
            ))
        * ($Fhelper_zu_verarbeitende_gueter$F - ($Pvorschneiden_fixer_ausschuss$P / $CVformat_1$CV)) * $CVformat_1$CV  * (($CVdruckfarben_1$CV == 0)?0:1))
        + ((($CVdruckfarben_2$CV > 1)?(
            rangeSwitch($CVformat_4$CV,
                100, 480, $Pversafire_farbklick_bis_480$P,
                481, 700, $Pversafire_farbklick_bis_700$P,
                701, 1000, $Pversafire_farbklick_bis_1000$P)
            ):(
            rangeSwitch($CVformat_4$CV,
                100, 480, $Pversafire_swklick_bis_480$P,
                481, 700, $Pversafire_swklick_bis_700$P,
                701, 1000, $Pversafire_swklick_bis_1000$P)
            ))
        * ($Fhelper_zu_verarbeitende_gueter$F - ($Pvorschneiden_fixer_ausschuss$P / $CVformat_1$CV)) * $CVformat_1$CV * (($CVdruckfarben_2$CV == 0)?0:1))
    )';

$digital_aufraeum = 
    '(
        $Pversafire_aufraeum_grundzeit$P * ($Pversafire_stundenpreis$P / 60))';

// --------------------
// FARBENVERBRAUCH

// Bedruckte Oberflächen (seitigkeit)
$helper_anzahl_der_bedruckten_oberflaechen = 
    '(
        ($CVdruckfarben_2$CV > 0)? 2 : 1
    )';

// Offset-Farbverbrauch
$offset_farbverbrauch = 
    '(
        ceil(($Vpapier_eigenschaften$V == "coated")? 
            (
                ((( $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_laenge$V * $Vpapier_breite$V/1000000)) * 0.15) * 1.6)
            ):(
                ((( $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_laenge$V * $Vpapier_breite$V/1000000)) * 0.15) * 1.8)
            )
        ) * $Fhelper_sonderfarben_count$F * 0.04
        ) + (
        ceil(($Vpapier_eigenschaften$V == "coated")? 
            (
                ((( $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_laenge$V * $Vpapier_breite$V/1000000)) * 0.15) * 1.6)
            ):(
                ((( $Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_laenge$V * $Vpapier_breite$V/1000000)) * 0.15) * 1.8)
            )
        ) *
        (
            (($CVfarbe_1_v_valid$CV && ($Vfarbe_1_v$V == 1))? 1 : 0 ) +
            (($CVfarbe_2_v_valid$CV && ($Vfarbe_2_v$V == 1))? 1 : 0 ) +
            (($CVfarbe_3_v_valid$CV && ($Vfarbe_3_v$V == 1))? 1 : 0 ) +
            (($CVfarbe_4_v_valid$CV && ($Vfarbe_4_v$V == 1))? 1 : 0 ) +
            (($CVfarbe_1_r_valid$CV && ($Vfarbe_1_r$V == 1))? 1 : 0 ) +
            (($CVfarbe_2_r_valid$CV && ($Vfarbe_2_r$V == 1))? 1 : 0 ) +
            (($CVfarbe_3_r_valid$CV && ($Vfarbe_3_r$V == 1))? 1 : 0 ) +
            (($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 1))? 1 : 0 )
        ) * 0.008464
    )';

// Aufpreis Pantone
$pantone_aufpreis = 
    '(
        (($CVfarbe_1_v_valid$CV && ($Vfarbe_1_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_2_v_valid$CV && ($Vfarbe_2_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_3_v_valid$CV && ($Vfarbe_3_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_4_v_valid$CV && ($Vfarbe_4_v$V == 3))? 1 : 0 ) +
        (($CVfarbe_1_r_valid$CV && ($Vfarbe_1_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_2_r_valid$CV && ($Vfarbe_2_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_3_r_valid$CV && ($Vfarbe_3_r$V == 3))? 1 : 0 ) +
        (($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 3))? 1 : 0 )
    ) * 25';


// --------------------
// SCHNEIDEN

$schneiden_ruest = 
    '(
        ($Ppolar78_ruest_grundzeit$P + ( $Ppolar78_ruest_pro_schnitt$P * $CVformat_2$CV )) 
        * ($Ppolar78_stundenlohn$P / 60)
    )';

$schneiden = 
    '(
        (ceil(
                ($Fhelper_anzahl_druckboegen$F * ($Vpapier_staerke$V / 1000)) / $Peinlegehoehe_schneidemaschine$P)
            ) 
        * ($CVformat_2$CV * (3600 / $Pschnitte_pro_stunde$P))
        / 60 * ($Ppolar78_stundenlohn$P / 60)
    )';

$schneiden_aufraeum = 
    '(
        $Ppolar78_aufraeum_grundzeit$P * ($Ppolar78_stundenlohn$P / 60)
    )';

$vorschneiden_ruest =
    '(
        ($Ppolar78_ruest_pro_schnitt$P * $CVformat_3$CV) * ($Ppolar78_stundenlohn$P / 60)
    )';

$vorschneiden =
    '((
        (ceil(
                ($Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_staerke$V / 1000)) / $Peinlegehoehe_schneidemaschine$P)
            ) 
        * ($CVformat_3$CV * (3600 / $Pschnitte_pro_stunde$P))
        / 60 
    ) * 2.1) * ($Ppolar78_stundenlohn$P / 60)';

$vorschneiden_aufraeum =
    '(
        $Ppolar78_aufraeum_grundzeit$P * ($Ppolar78_stundenlohn$P / 60)
    )';

$debug = '(ceil(
                ($Fhelper_zu_verarbeitende_gueter$F * ($Vpapier_staerke$V / 1000)) / $Peinlegehoehe_schneidemaschine$P)
            )';


// --------------------
// VERPACKEN / könnte sein, dass dies auch überholt ist, da es verpacken2 gibt

$helper_anzahl_verpackungen = 
    'ceil(
        $Vauflage$V / 1000
    )';

$helper_anzahl_umverpackungen = 
    '(
        ceil($Fhelper_anzahl_verpackungen$F / 4)
    )';

$verpacken = 
    '(
        ((60 / $Pverpackungen_pro_stunde$P) * $Fhelper_anzahl_verpackungen$F) * ($Pversandmitarbeiter_pro_stunde$P / 60)
    )';

$verpacken_kartons = '$Fhelper_anzahl_verpackungen$F * $Pkarton_preis$P';

$umverpacken = 
    '(
        ((60 / $Pverpackungen_pro_stunde$P) * $Fhelper_anzahl_umverpackungen$F) * ($Pversandmitarbeiter_pro_stunde$P / 60)
    )';

$umverpacken_kartons = '$Fhelper_anzahl_umverpackungen$F * $Pumkarton_preis$P';


// --------------------
// BOHREN

$bohren_ruest = 
    '((
        $Pbohren_ruestgrundzeit$P * ceil($Vabheftlochung$V / 2)
    ) * ($Pbohren_stundenlohn$P / 60))';

$bohren = 
    '(
      ((
        (ceil(
                (($Vseitenanzahl$V / 2) * ($Vauflage$V * ($Vpapier_staerke$V / 1000))) / $Peinlegehoehe_bohrmaschine$P)
            ) * (3600 / $Pbohrungen_pro_stunde$P) * (($Vabheftlochung$V > 2)? 1.3 : 1) 
    ) / 60) * ($Pbohren_stundenlohn$P / 60)
    )';

$bohren_aufraeum = 
    '(
        $Pbohren_aufraeumgrundzeit$P * ($Pbohren_stundenlohn$P / 60)
    )';

// --------------------
// RILLEN

$rillen_und_falzen_ruest = 
    '(
        ( $Phorizon_ruestgrundzeit$P * 1.5 * $CVseiten_1$CV )
    ) * ($Phorizon_stundenlohn$P / 60)';

$rillen_und_falzen = 
    '((
        $Vauflage$V * (3600 / $Phorizon_boegen_pro_stunde$P) 
        * (($CVseiten_1$CV == 1)? 1.2 : 1.5)
        * rangeSwitch( (($CVformat_8$CV == $CVformat_5$CV)? $CVformat_7$CV : $CVformat_8$CV),
            1, 200, 1,
            201, 250, 1.1,
            251, 300, 1.15,
            301, 350, 1.2,
            351, 400, 1.3,
            401, 450, 1.35,
            451, 600, 1.4) 
        * (($Vauflage$V > 2500)? 0.8 : 1)
    ) / 60) * ($Phorizon_stundenlohn$P / 60)';

$rillen_und_falzen_aufraeum = 
    '(
        $Phorizon_aufraeumgrundzeit$P * ($Phorizon_stundenlohn$P / 60)
    )';

// --------------------
// BANDAROLIEREN

$bandarolieren_ruest = 
    '(
        $Pbandarolieren_ruestgrundzeit$P * ($Pbandarolieren_stundenlohn$P / 60)
    )';

$bandarolieren = 
    '(
        (($Fhelper_notwendige_kartons$F * (3600 / $Pbandarolieren_pro_stunde$P)) / 60) * ($Pbandarolieren_stundenlohn$P / 60)
    )';

$bandarolieren_aufraeum =  
    '(
        $Fbandarolieren_aufraeumgrundzeit$F * ($Pbandarolieren_stundenlohn$P / 60)
    )';

$verpacken2 = 
    '(
        ((60 / $Pverpackungen_pro_stunde$P) * $Fhelper_notwendige_kartons$F) * ($Pversandmitarbeiter_pro_stunde$P / 60)
    )';

// --------------------
// Profi-Datencheck
$profidaten_check = '(($Vdatencheck$V == 2)? 7: 0)';

// VERSANDHELPER

// CV6 von Format: die Stapelanzahl pro Box und Format mitgegeben, sonst wird von 1nem Stapel pro Karton ausgegangen
$helper_notwendige_kartons = 'ceil(($Vauflage$V / ($CVformat_6_valid$CV? $CVformat_6$CV : 1)) / floor($Pkarton_hoehe$P / ($Vpapier_staerke$V/1000)))';

$helper_gewicht_eines_kartons = 
    '(
        (($Vauflage$V < floor($Pkarton_hoehe$P / ($Vpapier_staerke$V/1000)))?$Vauflage$V:(floor($Pkarton_hoehe$P / ($Vpapier_staerke$V/1000)))) * ($CVformat_4$CV * $CVformat_5$CV / 1000000) * $Vpapier_grammatur$V
    )';

$helper_exemplare_pro_karton = 
    '(
        floor($Pkarton_hoehe$P / ($Vpapier_staerke$V/1000)) * ($CVformat_6_valid$CV? $CVformat_6$CV : 1)
    )';


// VERSAND

$versandgewicht = '($Fhelper_gewicht_eines_kartons$F * $Fhelper_notwendige_kartons$F + $Fhelper_notwendige_kartons$F * $Pkarton_gewicht$P) / 1000';
$versandpreisDPD = '(($Fversandgewicht$F < 3 && $Vcarrier$V == 2)? $Pdpd_bis_3kg$P : 0)
                +(($Fversandgewicht$F > 3 && $Fversandgewicht$F < 5 && $Vcarrier$V == 2)? $Pdpd_bis_5kg$P : 0)
                +(($Fversandgewicht$F > 5 && $Fversandgewicht$F < 10 && $Vcarrier$V == 2)? $Pdpd_bis_10kg$P : 0)
                +(($Fversandgewicht$F > 10 && $Fversandgewicht$F < 15 && $Vcarrier$V == 2)? $Pdpd_bis_15kg$P : 0)
                +(($Fversandgewicht$F > 15 && $Fversandgewicht$F < 20 && $Vcarrier$V == 2)? $Pdpd_bis_20kg$P : 0)
                +(($Fversandgewicht$F > 20 && $Fversandgewicht$F < 25 && $Vcarrier$V == 2)? $Pdpd_bis_25kg$P : 0)
                +(($Fversandgewicht$F > 25 && $Fversandgewicht$F < 31.5 && $Vcarrier$V == 2)? $Pdpd_bis_31kg$P : 0)
                +(($Fversandgewicht$F > 31.5 && $Fversandgewicht$F < 80 && $Vcarrier$V == 2)? (floor($Fversandgewicht$F / 20) * $Pdpd_bis_20kg$P)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 3)? $Pdpd_bis_3kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 3 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 5))? $Pdpd_bis_5kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 5 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 10))? $Pdpd_bis_10kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 10 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 15))? $Pdpd_bis_15kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 15 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 20))? $Pdpd_bis_20kg$P : 0)
                                                                                                : 0)
                +(($Fversandgewicht$F > 80 && $Vcarrier$V == 2)? $Pspeditionspreis_pro_kg$P * $Fversandgewicht$F : 0)';

$versandpreisDHL = '(($Fversandgewicht$F < 1 && $Vcarrier$V == 1)? $Ppaket_DHL_0_1_kg$P : 0)
                +(($Fversandgewicht$F > 1 && $Fversandgewicht$F < 3 && $Vcarrier$V == 1)? $Ppaket_DHL_1_3_kg$P : 0)
                +(($Fversandgewicht$F > 3 && $Fversandgewicht$F < 5 && $Vcarrier$V == 1)? $Ppaket_DHL_3_5_kg$P : 0)
                +(($Fversandgewicht$F > 5 && $Fversandgewicht$F < 10 && $Vcarrier$V == 1)? $Ppaket_DHL_5_10_kg$P : 0)
                +(($Fversandgewicht$F > 10 && $Fversandgewicht$F < 20 && $Vcarrier$V == 1)? $Ppaket_DHL_10_20_kg$P : 0)
                +(($Fversandgewicht$F > 20 && $Fversandgewicht$F < 31 && $Vcarrier$V == 1)? $Ppaket_DHL_20_31_kg$P : 0)
                +(($Fversandgewicht$F > 31 && $Fversandgewicht$F < 80 && $Vcarrier$V == 1)? (floor($Fversandgewicht$F / 20) * $Ppaket_DHL_10_20_kg$P)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 1)? $Ppaket_DHL_0_1_kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 1 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 3))? $Ppaket_DHL_1_3_kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 3 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 5))? $Ppaket_DHL_3_5_kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 5 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 10))? $Ppaket_DHL_5_10_kg$P : 0)
                                                                                                + ((($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) > 10 && (($Fversandgewicht$F - (20 * floor($Fversandgewicht$F / 20))) < 20))? $Ppaket_DHL_10_20_kg$P : 0)
                                                                                                : 0)
                +(($Fversandgewicht$F > 80 && $Vcarrier$V == 1)? $Pspeditionspreis_pro_kg$P * $Fversandgewicht$F : 0)';

$versand_selbstauslieferung_SOB = 
    '(
        $Fhelper_notwendige_kartons$F * $Pkarton_preis$P
        + 5
    )';


// ++++++++++++++ BBG(OFFSET) Kalkulation ++++++++++++++ 
$bbg_vollkalkulation =
    '(  
          $Fmediengestalter_reduziert$F
        + $Foffset_druckplatten_belichten$F
        + $Foffset_ruest$F
        + $Foffset$F
        + $Foffset_aufraeum$F
        + $Foffset_druckbogen_preis$F
        + $Foffset_farbverbrauch$F
        + $Fpantone_aufpreis$F
        + $Fschneiden_ruest$F
        + $Fschneiden$F
        + $Fschneiden_aufraeum$F
        + $Fverpacken$F
        + $Fverpacken_kartons$F
        + $Fumverpacken$F
        + $Fumverpacken_kartons$F
        + $Fbohren_ruest$F
        + $Fbohren$F
        + $Fbohren_aufraeum$F
        + $Fprofidaten_check$F
    ) * $Poffset_marge$P + $FversandpreisDHL$F + $FversandpreisDPD$F';

$bbg_weight =
    '(  
        $Fhelper_gewicht_eines_kartons$F * $Fhelper_notwendige_kartons$F
        + $Fhelper_notwendige_kartons$F * $Pkarton_gewicht$P
    )';

// ++++++++++++++ Blöcke Kalkulation ++++++++++++++ 
$bloecke_vollkalkulation =
    '(  
          $Fmediengestalter_reduziert$F
        + $Fvorschneiden_ruest$F
        + $Fvorschneiden$F
        + $Fvorschneiden_aufraeum$F
        + (($Vdruckverfahren$V == 2)? $Foffset_druckplatten_belichten$F : 0)
        + (($Vdruckverfahren$V == 2)? $Foffset_ruest$F : $Fdigital_ruest$F)
        + (($Vdruckverfahren$V == 2)? $Foffset$F : $Fdigital$F)
        + (($Vdruckverfahren$V == 2)? $Foffset_aufraeum$F : $Fdigital_aufraeum$F)
        + (($Vdruckverfahren$V == 2)? $Foffset_druckbogen_preis$F : $Fdigital_druckbogen_preis$F)
        + (($Vdruckverfahren$V == 2)? $Foffset_farbverbrauch$F : 0)
        + (($Vdruckverfahren$V == 2)? $Fpantone_aufpreis$F : 0)
        + $Fzwischenschneiden_ruest$F
        + $Fzwischenschneiden$F
        + $Fzwischenschneiden_aufraeum$F
        + $Fleimen_ruest$F
        + $Fleimen$F
        + $Fleimen_aufraeum$F
        + $Fschneiden_ruest$F
        + $Fschneiden$F
        + $Fschneiden_aufraeum$F
        + $Fverpacken$F
        + $Fverpacken_kartons$F
        + $Fumverpacken$F
        + $Fumverpacken_kartons$F
        + $Fbohren_ruest$F
        + $Fbohren$F
        + $Fbohren_aufraeum$F
        + $Fprofidaten_check$F
    ) * $Poffset_marge$P + $FversandpreisDHL$F + $FversandpreisDPD$F';

$bloecke_weight =
    '(  
        $Fhelper_gewicht_eines_kartons$F * $Fhelper_notwendige_kartons$F
        + $Fhelper_notwendige_kartons$F * $Pkarton_gewicht$P
    )';



// ++++++++++++++ STADLER GUTSCHEIN Kalkulation ++++++++++++++ 
$stadler_gutschein_vollkalkulation =
    '(  
            $Fvorschneiden_ruest$F
          + $Fvorschneiden$F
          + $Fvorschneiden_aufraeum$F
          + $Fdigital_ruest$F
          + $Fdigital$F
          + $Fdigital_fremd$F
          + $Fdigital_aufraeum$F
          + $Fdigital_druckbogen_preis$F
          + $Fschneiden_ruest$F
          + $Fschneiden$F
          + $Fschneiden_aufraeum$F
          + $Fverpacken2$F
    ) * rangeSwitch($Vauflage$V,
            1, 1, 1.05,
            2, 2, 1.1,
            3, 3, 1.15,
            4, 4, 1.2,
            5, 5, 1.25,
            6, 6, 1.3,
            7, 7, 1.35,
            8, 8, 1.4,
            9, 9, 1.45,
            10, 10, 1.5,
            11, 13, 1.55,
            14, 17, 1.60,
            18, 20, 1.65,
            21, 26, 1.7,
            27, 32, 1.75,
            33, 36, 1.8,
            37, 41, 1.85,
            42, 45, 1.9,
            46, 50, 1.95,
            51, 53, 2.0,
            54, 56, 2.1,
            57, 59, 2.2,
            60, 63, 2.3,
            64, 66, 2.4,
            67, 69, 2.5,
            70, 72, 2.6,
            73, 100, 2.65
        ) + (($Vversandart$V == versand)? $Fversand_selbstauslieferung_SOB$F : 0)';

$stadler_gutschein_weight =
    '(  
        $Fhelper_gewicht_eines_kartons$F * $Fhelper_notwendige_kartons$F
        + $Fhelper_notwendige_kartons$F * $Pkarton_gewicht$P
    )';



// ++++++++++++++ STADLER SPEISEKARTE Kalkulation ++++++++++++++ 
$stadler_speisekarte_vollkalkulation =
    '(  
            $Fdigital_ruest$F
          + $Fdigital$F
          + $Fdigital_fremd$F
          + $Fdigital_aufraeum$F
          + $Fdigital_druckbogen_preis$F
          + $Fschneiden_ruest$F
          + $Fschneiden$F
          + $Fschneiden_aufraeum$F
          + $Frillen_und_falzen_ruest$F
          + $Frillen_und_falzen$F
          + $Frillen_und_falzen_aufraeum$F
          + $Fbandarolieren_ruest$F
          + $Fbandarolieren$F
          + $Fbandarolieren_aufraeum$F
          + $Fverpacken2$F
    ) * rangeSwitch($Vauflage$V,
            1, 1, 1.05,
            2, 2, 1.1,
            3, 3, 1.15,
            4, 4, 1.2,
            5, 5, 1.25,
            6, 6, 1.3,
            7, 7, 1.35,
            8, 8, 1.4,
            9, 9, 1.45,
            10, 10, 1.5,
            11, 13, 1.55,
            14, 17, 1.60,
            18, 20, 1.65,
            21, 26, 1.7,
            27, 32, 1.75,
            33, 36, 1.8,
            37, 41, 1.85,
            42, 45, 1.9,
            46, 50, 1.95,
            51, 53, 2.0,
            54, 56, 2.1,
            57, 59, 2.2,
            60, 63, 2.3,
            64, 66, 2.4,
            67, 69, 2.5,
            70, 72, 2.6,
            73, 100, 2.65
        ) + (($Vversandart$V == versand)? $Fversand_selbstauslieferung_SOB$F : 0)';

$stadler_speisekarte_weight =
    '(  
        $Fhelper_gewicht_eines_kartons$F * $Fhelper_notwendige_kartons$F
        + $Fhelper_notwendige_kartons$F * $Pkarton_gewicht$P
    )';



//Gemeindeblatt Weichering
$gemeindeblatt_weichering = '($CVseiten_1$CV + $CVumschlag_1$CV) ';

$gemeindeblatt_weichering_weight =
    '(  
        (($Vseiten$V * $Vauflage$V * 210 * 297) / 1000000) * 80
        + 9 * $Pkarton_gewicht$P
    )';

//SD-Sätze HELPER
//Papierpreis eines SD-Satzes in EUR
$sd_satz_helper_paper_price = 
                    '(
                     ($CVblatt_o_valid$CV? ($Vblatt_o_value$V / 1000):0) +
                     ($CVblatt_2_valid$CV? ($Vblatt_2_value$V / 1000):0) +
                     ($CVblatt_3_valid$CV? ($Vblatt_3_value$V / 1000):0) +
                     ($CVblatt_4_valid$CV? ($Vblatt_4_value$V / 1000):0) +
                     ($CVblatt_s_valid$CV? ($Vblatt_s_value$V / 1000):0)
                     )';

//Die Höhe eines SD-Satzes in mm                     
$sd_satz_helper_paper_height = 
                    '(
                     ($CVblatt_o_valid$CV? ($Vblatt_o_staerke$V / 1000):0) +
                     ($CVblatt_2_valid$CV? ($Vblatt_2_staerke$V / 1000):0) +
                     ($CVblatt_3_valid$CV? ($Vblatt_3_staerke$V / 1000):0) +
                     ($CVblatt_4_valid$CV? ($Vblatt_4_staerke$V / 1000):0) +
                     ($CVblatt_s_valid$CV? ($Vblatt_s_staerke$V / 1000):0)
                     )';

//Grammatur alles Blätter eines SD-Satzes (nicht das Gewicht eines Satzes)
$sd_satz_helper_paper_grammature = 
                    '(
                     ($CVblatt_o_valid$CV? $Vblatt_o_grammatur$V:0) +
                     ($CVblatt_2_valid$CV? $Vblatt_2_grammatur$V:0) +
                     ($CVblatt_3_valid$CV? $Vblatt_3_grammatur$V:0) +
                     ($CVblatt_4_valid$CV? $Vblatt_4_grammatur$V:0) +
                     ($CVblatt_s_valid$CV? $Vblatt_s_grammatur$V:0)
                     )';

//Gesamtanzahl der Sonderfarben                    
$sd_satz_helper_sonderfarben_count = 
                    '(
                    (($CVfarbe_1_v_valid$CV && ($Vfarbe_1_v$V == 2 || $Vfarbe_1_v$V == 3))? 1 : 0 ) +
                    (($CVfarbe_2_v_valid$CV && ($Vfarbe_2_v$V == 2 || $Vfarbe_2_v$V == 3))? 1 : 0 ) +
                    (($CVfarbe_3_v_valid$CV && ($Vfarbe_3_v$V == 2 || $Vfarbe_3_v$V == 3))? 1 : 0 ) +
                    (($CVfarbe_4_v_valid$CV && ($Vfarbe_4_v$V == 2 || $Vfarbe_4_v$V == 3))? 1 : 0 ) +
                    (($CVfarbe_1_r_valid$CV && ($Vfarbe_1_r$V == 2 || $Vfarbe_1_r$V == 3))? 1 : 0 ) +
                    (($CVfarbe_2_r_valid$CV && ($Vfarbe_2_r$V == 2 || $Vfarbe_2_r$V == 3))? 1 : 0 ) +
                    (($CVfarbe_3_r_valid$CV && ($Vfarbe_3_r$V == 2 || $Vfarbe_3_r$V == 3))? 1 : 0 ) +
                    (($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 2 || $Vfarbe_4_r$V == 3))? 1 : 0 )
                    )';
                     
//Makulatur beim einstellen der Maschine berechnen
$sd_satz_makulatur ='( ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) 
                        * $Pmakulatur_pro_farbe$P 
                        * $Vblatt$V
                     )  * ($Fsd_satz_helper_paper_price$F / $Vblatt$V)';

//
//SD-Sätze Kalkulation
// format_1 = Nutzen, format_2 = Endschnitte, format_3 = Zwischenschnitte

$sd_satz_vorschneiden = 
                    '(ceil(($Fsd_satz_helper_paper_height$F) 
                    * ($Vauflage$V / $CVformat_1$CV) 
                    / $Peinlegehoehe_schneidemaschine$P))
                    + $Pvor_und_nachbereitung_schneiden$P';

// 
$sd_satz_offset_drucken = '(
                            ( ($CVdruckfarben_2$CV > 0) ? 2:1 ) 
                            * ($Vauflage$V * $Vblatt$V / $CVformat_1$CV) 
                            / ($Pbogen_pro_stunde_offset_sd$P / 60)
                           ) 
                           + ( $Fsd_satz_helper_sonderfarben_count$F * ($Pruestzeit_pro_sonderfarbe$P + $Pfarbwechsel_offset$P) ) 
                           + $Peinrichtezeit_fuer_farbe_und_passer$P 
                           + ( $Pruestzeit_pro_platte$P * ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) ) 
                           + ( ($CVdruckfarben_2$CV > 0)? $Pgummituch_waschen$P: 0)
                           * ($Pstundenpreis_offsetdruck$P / 60)';

// Da einzelne Einlagefächer beim Zusammentragen befüllt werden, wird hier nicht die Satz-Höhe berechnet, sondern jedes Blatt einzeln.
$sd_satz_zusammentragen = '(( ($Vauflage$V / $CVformat_1$CV) / $Pzusammentragen_pro_stunde$P) * $Pstundenpreis_zusammentragen$P) +
                   ((
                   ($CVblatt_o_valid$CV? ceil((($Vblatt_o_staerke$V / 1000) * $Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_zusammentragen$P ) : 0)+
                   ($CVblatt_2_valid$CV? ceil((($Vblatt_2_staerke$V / 1000) * $Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_zusammentragen$P ) : 0)+
                   ($CVblatt_3_valid$CV? ceil((($Vblatt_3_staerke$V / 1000) * $Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_zusammentragen$P ) : 0)+
                   ($CVblatt_4_valid$CV? ceil((($Vblatt_4_staerke$V / 1000) * $Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_zusammentragen$P ) : 0)+
                   ($CVblatt_s_valid$CV? ceil((($Vblatt_s_staerke$V / 1000) * $Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_zusammentragen$P ) : 0)
                   ) * $Pzusammentragen_einlegen$P)
                    * ( $Pstundenpreis_zusammentragen$P / 60 )
                   + $Pvor_und_nachbereitung_zusammentragen$P';

// ((($Vverleimung$V == 3 || $Vverleimung$V == 4) && ($Vformat$V == 4))? 2 : $CVformat_3$CV ) -- Bei Verleimung links/rechts bei Format DINA4 ändert sich die Anzahl der Zwischen- und Endschnitte
$sd_satz_zwischenschneiden = 
                    '((($Vverleimung$V == 3 || $Vverleimung$V == 4) && ($Vformat$V == 4))? 2 : $CVformat_3$CV ) 
                        * $Pkosten_pro_schnitt$P 
                        * (ceil(($Fsd_satz_helper_paper_height$F) * ($Vauflage$V / $CVformat_1$CV) / $Peinlegehoehe_schneidemaschine$P)) + $Pvor_und_nachbereitung_schneiden$P';

$sd_satz_verleimen = '$Vauflage$V * $Pleimen_und_trennen_pro_sd_satz$P + $Pvor_und_nachbereitung_verarbeitung$P';

// ((($Vverleimung$V == 3 || $Vverleimung$V == 4) && ($Vformat$V == 4))? 1 : 2 ) -- Bei Verleimung links/rechts bei Format DINA4 ändert sich die Anzahl der Zwischen- und Endschnitte
$sd_satz_endschneiden = 
                    '((($Vverleimung$V == 3 || $Vverleimung$V == 4) && ($Vformat$V == 4))? 3 : $CVformat_2$CV ) 
                    * $Pkosten_pro_schnitt$P
                    * (ceil
                        ($Fsd_satz_helper_paper_height$F * ($Vauflage$V / ((($Vverleimung$V == 3 || $Vverleimung$V == 4) && ($Vformat$V == 4))? 1 : 2 ) ) / $Peinlegehoehe_schneidemaschine$P)
                      ) 
                    + $Pvor_und_nachbereitung_schneiden$P';

// Geteilt durch 96, weil 96 Hübe die Stunde möglich sind.
$sd_satz_bohren = '(($Pstundenpreis_verarbeitung$P * ($Vabheftlochung$V / 2)) / 96) 
                   * (ceil( $Fsd_satz_helper_paper_height$F * ($Vauflage$V * $Vblatt$V ) / $Peinlegehoehe_bohrmaschine$P)) 
                   + $Pvor_und_nachbereitung_bohrmaschine$P';

// Aus einem Bogen erhält man zwei Druckbögen, daher *2
$sd_satz_papierpreis = '$Fsd_satz_helper_paper_price$F
                        * ($Vauflage$V / ($CVformat_1$CV * 2)) 
                        + $Fsd_satz_makulatur$F';

$sd_satz_platten_belichten = '($Ppreis_pro_belichten$P + $Ppreis_pro_druckplatte$P ) 
                              * ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV)';

$sd_satz_profidaten_check = '(($Vdatencheck$V == 2)? 7: 0)';

$sd_satz_vollkalkulation = ' ($Fsd_satz_vorschneiden$F
                            + $Fsd_satz_offset_drucken$F
                            + $Fsd_satz_zusammentragen$F
                            + $Fsd_satz_zwischenschneiden$F
                            + $Fsd_satz_verleimen$F
                            + $Fsd_satz_endschneiden$F
                            + $Fsd_satz_bohren$F
                            + $Fsd_satz_papierpreis$F
                            + $Fsd_satz_platten_belichten$F
                            + $Fsd_satz_profidaten_check$F) * $Psd_satz_marge$P';

$weight_SD_Satz = '$Fsd_satz_helper_paper_grammature$F * (($Vformat$V == 4)? ((210*297)/1000000) : ((148*210)/1000000)) * $Vauflage$V';

//BOOS
$weight_boos_800 = '(((($Pboos_800_b$P * $Pboos_800_h$P) / 1000000) * $Vauflage$V) * $Vpaper_grammatur$V) +
                    ((($Vauflage$V == 5000)? 1 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 10000)? 2 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 20000)? 4 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 5000)? 1 : 0) * $Pboos_umkarton$P) +
                    ((($Vauflage$V == 10000)? 1 : 0) * $Pboos_umkarton$P) +
                    ((($Vauflage$V == 20000)? 2 : 0) * $Pboos_umkarton$P)';
                    
$weight_boos_300 = '(((($Pboos_300_b$P * $Pboos_300_h$P) / 1000000) * $Vauflage$V) * $Vpaper_grammatur$V) +
                    ((($Vauflage$V == 5000)? 1 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 10000)? 2 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 20000)? 4 : 0) * $Pboos_karton$P) +
                    ((($Vauflage$V == 5000)? 1 : 0) * $Pboos_umkarton$P) +
                    ((($Vauflage$V == 10000)? 1 : 0) * $Pboos_umkarton$P) +
                    ((($Vauflage$V == 20000)? 2 : 0) * $Pboos_umkarton$P)';    

