calc/tests/Customer/JJ/formels.txt
2025-06-05 11:23:31 +02:00

872 lines
37 KiB
Plaintext

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