This commit is contained in:
Thomas Peterson 2025-02-25 11:00:24 +01:00
parent 31014bc855
commit 502bbaa780
8 changed files with 87 additions and 15 deletions

File diff suppressed because one or more lines are too long

View File

@ -34,6 +34,7 @@ class PaperDbSelect extends Select
$paper->setOffsetVar($this->savedCalcValues[$this->getId()]['offset_var']); $paper->setOffsetVar($this->savedCalcValues[$this->getId()]['offset_var']);
$paper->setDigitalFix($this->savedCalcValues[$this->getId()]['digital_fix']); $paper->setDigitalFix($this->savedCalcValues[$this->getId()]['digital_fix']);
$paper->setDigitalVar($this->savedCalcValues[$this->getId()]['digital_var']); $paper->setDigitalVar($this->savedCalcValues[$this->getId()]['digital_var']);
$paper->setVolume($this->savedCalcValues[$this->getId()]['volume']); $paper->setVolume($this->savedCalcValues[$this->getId()]['volume']);
$opt->setPaper($paper); $opt->setPaper($paper);
@ -76,6 +77,23 @@ class PaperDbSelect extends Select
$variables[$this->getId() . '_papiertyp14'] = 0; $variables[$this->getId() . '_papiertyp14'] = 0;
$variables[$this->getId() . '_umschlagen'] = 0; $variables[$this->getId() . '_umschlagen'] = 0;
$variables[$this->getId() . '_staffelmenge_1'] = 0;
$variables[$this->getId() . '_staffelpreis_1'] = 0;
$variables[$this->getId() . '_staffelmenge_2'] = 0;
$variables[$this->getId() . '_staffelpreis_2'] = 0;
$variables[$this->getId() . '_staffelmenge_3'] = 0;
$variables[$this->getId() . '_staffelpreis_3'] = 0;
$variables[$this->getId() . '_staffelmenge_4'] = 0;
$variables[$this->getId() . '_staffelpreis_4'] = 0;
$variables[$this->getId() . '_staffelmenge_5'] = 0;
$variables[$this->getId() . '_staffelpreis_5'] = 0;
$variables[$this->getId() . '_mengeneinheit'] = 0;
$variables[$this->getId() . '_staerke'] = 0;
$variables[$this->getId() . '_breite'] = 0;
$variables[$this->getId() . '_laenge'] = 0;
$variables[$this->getId() . '_etiketten_je_blatt'] = 0;
$variables[$this->getId() . '_kleber'] = 0;
$variables[$this->getId() . '_happy'] = 0; $variables[$this->getId() . '_happy'] = 0;
$variables[$this->getId() . '_eq'] = 0; $variables[$this->getId() . '_eq'] = 0;
$variables[$this->getId() . '_sense'] = 0; $variables[$this->getId() . '_sense'] = 0;
@ -117,6 +135,23 @@ class PaperDbSelect extends Select
$variables[$this->getId() . '_papiertyp14'] = $paper->getPapierTyp14(); $variables[$this->getId() . '_papiertyp14'] = $paper->getPapierTyp14();
$variables[$this->getId() . '_umschlagen'] = $paper->getUmschlagen(); $variables[$this->getId() . '_umschlagen'] = $paper->getUmschlagen();
$variables[$this->getId() . '_staffelmenge_1'] = $paper->getStaffelmenge1();
$variables[$this->getId() . '_staffelpreis_1'] = $paper->getStaffelpreis1();
$variables[$this->getId() . '_staffelmenge_2'] = $paper->getStaffelmenge2();
$variables[$this->getId() . '_staffelpreis_2'] = $paper->getStaffelpreis2();
$variables[$this->getId() . '_staffelmenge_3'] = $paper->getStaffelmenge3();
$variables[$this->getId() . '_staffelpreis_3'] = $paper->getStaffelpreis3();
$variables[$this->getId() . '_staffelmenge_4'] = $paper->getStaffelmenge4();
$variables[$this->getId() . '_staffelpreis_4'] = $paper->getStaffelpreis4();
$variables[$this->getId() . '_staffelmenge_5'] = $paper->getStaffelmenge5();
$variables[$this->getId() . '_staffelpreis_5'] = $paper->getStaffelpreis5();
$variables[$this->getId() . '_mengeneinheit'] = $paper->getMengeneinheit();
$variables[$this->getId() . '_staerke'] = $paper->getStaerke();
$variables[$this->getId() . '_breite'] = $paper->getBreite();
$variables[$this->getId() . '_laenge'] = $paper->getLaenge();
$variables[$this->getId() . '_etiketten_je_blatt'] = $paper->getEtikettenJeBlatt();
$variables[$this->getId() . '_kleber'] = $paper->getKleber();
$variables[$this->getId() . '_happy'] = $paper->getHappy(); $variables[$this->getId() . '_happy'] = $paper->getHappy();
$variables[$this->getId() . '_eq'] = $paper->getEq(); $variables[$this->getId() . '_eq'] = $paper->getEq();
$variables[$this->getId() . '_sense'] = $paper->getSense(); $variables[$this->getId() . '_sense'] = $paper->getSense();

View File

@ -41,7 +41,19 @@ class CalcTest extends TestCase
public function testPrice(): void public function testPrice(): void
{ {
$this->engine->calc(); $this->engine->calc();
$this->assertSame(179.38, $this->engine->getPrice()); $this->assertSame(163.75, $this->engine->getPrice());
}
public function testColorSelect(): void
{
$this->engine->setVariable('farbe_1_v', '3');
$this->engine->setVariable('farbe_1_v_wert_pantone', '128');
$this->engine->setVariable('farbe_2_v', '3');
$this->engine->setVariable('farbe_2_v_wert_pantone', '7555');
$this->engine->calc();
$this->assertSame(175.75, $this->engine->getPrice());
$this->assertSame($this->engine->getArticle()->getOptionById('farbe_1_v_wert_pantone')->getRawValue(), '128');
$this->assertSame($this->engine->getArticle()->getOptionById('farbe_2_v_wert_pantone')->getRawValue(), '7555');
} }
} }

View File

@ -31,10 +31,10 @@
<opt id="5" name="5"></opt> <opt id="5" name="5"></opt>
</option> </option>
<option id="blatt_o" name="Oberblatt" type="Select" default="bdm135" require="true" mode="papierdb" container="test"> <option id="blatt_o" name="Oberblatt" type="Select" default="bdm135" require="true" mode="papierdb" container="einleger">
</option> </option>
<option id="blatt_2" name="2. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="test"> <option id="blatt_2" name="2. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="einleger">
<grenzen> <grenzen>
<blatt> <blatt>
<grenze>3,4,5</grenze> <grenze>3,4,5</grenze>
@ -42,7 +42,7 @@
</grenzen> </grenzen>
</option> </option>
<option id="blatt_3" name="3. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="test"> <option id="blatt_3" name="3. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="einleger">
<grenzen> <grenzen>
<blatt> <blatt>
<grenze>4,5</grenze> <grenze>4,5</grenze>
@ -50,7 +50,7 @@
</grenzen> </grenzen>
</option> </option>
<option id="blatt_4" name="4. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="test"> <option id="blatt_4" name="4. Blatt" type="Select" default="bdm135" require="true" mode="papierdb" container="einleger">
<grenzen> <grenzen>
<blatt> <blatt>
<grenze>5</grenze> <grenze>5</grenze>
@ -58,7 +58,7 @@
</grenzen> </grenzen>
</option> </option>
<option id="blatt_s" name="Schlussblatt" type="Select" default="bdm135" require="true" mode="papierdb" container="test"> <option id="blatt_s" name="Schlussblatt" type="Select" default="bdm135" require="true" mode="papierdb" container="einleger">
</option> </option>
<option id="verleimung" name="Verleimung" type="Select" default="1" require="true"> <option id="verleimung" name="Verleimung" type="Select" default="1" require="true">
@ -847,10 +847,9 @@
<grenze formel="$Fprofidaten_check$F">1-</grenze> <grenze formel="$Fprofidaten_check$F">1-</grenze>
</auflage> </auflage>
</option> </option>
<option type="Hidden" name="weight" id="weight">
<option type="Hidden" id="weight">
<auflage> <auflage>
<grenze formel="$Fweight$F">1-</grenze> <grenze formel="$Fweight_SD_Satz$F">1-</grenze>
</auflage> </auflage>
</option> </option>
</artikel> </artikel>

View File

@ -1,3 +1,5 @@
$gemeindeblatt = '$Vauflage$V * ($Pgemeindeblatt_basepreis$P + (($CVseiten_1$CV - 4) * $CVinhalt_1$CV * $CVinhalt_2$CV) * $Pgemeindeblatt_seite$P + (($CVumschlag_1$CV * $CVumschlag_2$CV * 4) * $Pgemeindeblatt_umschlag$P))';
$makulatur = '(($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) * 15)'; $makulatur = '(($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) * 15)';
$vorschneiden = '($CVblatt_o_valid$CV? ($Pkosten_pro_schnitt$P * ceil(($Vblatt_o_volume$V * ($Vauflage$V / 2)) / $Peinlegehoehe_schneidemaschine$P)): 0) + $vorschneiden = '($CVblatt_o_valid$CV? ($Pkosten_pro_schnitt$P * ceil(($Vblatt_o_volume$V * ($Vauflage$V / 2)) / $Peinlegehoehe_schneidemaschine$P)): 0) +
@ -20,7 +22,7 @@ $offset_drucken = '(
(($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 2 || $Vfarbe_4_r$V == 3))? $Pruestzeit_pro_sonderfarbe$P + $Pfarbwechsel_offset$P : 0 ) + (($CVfarbe_4_r_valid$CV && ($Vfarbe_4_r$V == 2 || $Vfarbe_4_r$V == 3))? $Pruestzeit_pro_sonderfarbe$P + $Pfarbwechsel_offset$P : 0 ) +
$Peinrichtezeit_fuer_farbe_und_passer$P + $Peinrichtezeit_fuer_farbe_und_passer$P +
( $Pruestzeit_pro_platte$P * ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) ) + ( $Pruestzeit_pro_platte$P * ($CVdruckfarben_1$CV + $CVdruckfarben_2$CV) ) +
(($CVdruckfarben_2$CV>0)? 1 * $Pgummituch_waschen$P : 0) (($CVdruckfarben_2$CV>0)? 1 * $Pgummituch_waschen$P: 0)
* ( $Pstundenpreis_offsetdruck$P / 60)'; * ( $Pstundenpreis_offsetdruck$P / 60)';
$zusammentragen = '((( $Vauflage$V / $CVformat_1$CV ) / $Pzusammentragen_pro_stunde$P) * $Pstundenpreis_zusammentragen$P) + $zusammentragen = '((( $Vauflage$V / $CVformat_1$CV ) / $Pzusammentragen_pro_stunde$P) * $Pstundenpreis_zusammentragen$P) +
@ -80,7 +82,7 @@ $platten_belichten = '($Ppreis_pro_belichten$P + $Ppreis_pro_druckplatte$P ) * (
$profidaten_check = '(($Vdatencheck$V == 2)? 7: 0)'; $profidaten_check = '(($Vdatencheck$V == 2)? 7: 0)';
$weight = '( $weight_SD_Satz = '(
( (
($CVblatt_o_valid$CV? $Vblatt_o_grammatur$V:0) + ($CVblatt_o_valid$CV? $Vblatt_o_grammatur$V:0) +
($CVblatt_2_valid$CV? $Vblatt_2_grammatur$V:0) + ($CVblatt_2_valid$CV? $Vblatt_2_grammatur$V:0) +
@ -90,3 +92,12 @@ $weight = '(
) )
* (($Vformat$V == 4)? ((210*297)/1000000) : ((148*210)/1000000 )) * (($Vformat$V == 4)? ((210*297)/1000000) : ((148*210)/1000000 ))
) * $Vauflage$V'; ) * $Vauflage$V';
$weight_boos_800 = '(((($Pboos_800_b$P * $Pboos_800_h$P) / 1000000) * $Vauflage$V) * $Pboos_paperweight$P) +
((($Vauflage$V == 5000)? 1 : 0) * $Pboos_karton$P) +
((($Vauflage$V == 10000)? 2 : 0) * $Pboos_karton$P) +
$Pboos_umkarton$P';
$weight_boos_300 = '(((($Pboos_300_b$P * $Pboos_300_h$P) / 1000000) * $Vauflage$V) * $Pboos_paperweight$P) +
((($Vauflage$V == 5000)? 1 : 0) * $Pboos_karton$P) +
((($Vauflage$V == 10000)? 2 : 0) * $Pboos_karton$P) +
$Pboos_umkarton$P';

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<container> <container>
<papiercontainer id="test"> <papiercontainer id="einleger">
<papier id="bdm135"/> <papier id="bdm135"/>
<papier id="bdg135"/> <papier id="bdg135"/>
<papier id="bdm170"/> <papier id="bdm170"/>

View File

@ -1,3 +1,16 @@
$gemeindeblatt_umschlag = 0.000582;
$gemeindeblatt_seite = 0.03296;
$gemeindeblatt_basepreis = 0.2169;
$boos_umkarton = 542; // in g, umfasst jeweils 2 normale Kartons
$boos_karton = 274; // in g, beinhaltet 5000x800g-Etikett oder 10000x300g
$boos_paperweight = 80; // in g/m²
$boos_800_b = 326; // in mm
$boos_800_h = 107; // in mm
$boos_300_b = 326; // in mm
$boos_300_h = 38; // in mm
$zusammentragen_pro_stunde = 4400; $zusammentragen_pro_stunde = 4400;
$zusammentragen_einlegen = 0.25; $zusammentragen_einlegen = 0.25;
$farbwechsel_offset = 6; $farbwechsel_offset = 6;
@ -30,3 +43,5 @@ $leimen_und_trennen_pro_sd_satz = (($stundenpreis_verarbeitung / 60) / 100);

View File

@ -71,8 +71,8 @@ class PaperRepostory implements ObjectRepository
$papier = array(); $papier = array();
$papier['bdm135'] = new Paper(); $papier['bdm135'] = new Paper();
$papier['bdm135']->setArtNr('bdm135'); $papier['bdm135']->setArtNr('bdm135');
$papier['bdm135']->setVolume(0.102); $papier['bdm135']->setVolume(0);
$papier['bdm135']->setPreis(0.12); $papier['bdm135']->setPreis(0.1);
$papier['bdm135']->setDescription1('Bilderdruck matt 135 gr'); $papier['bdm135']->setDescription1('Bilderdruck matt 135 gr');
$papier['bdg135'] = new Paper(); $papier['bdg135'] = new Paper();