Fix Calc Papedruck
This commit is contained in:
parent
84a989ed60
commit
70eaae087e
@ -216,6 +216,11 @@ class Engine
|
|||||||
|
|
||||||
$this->article = $this->getArticleByName($this->activeArticle);
|
$this->article = $this->getArticleByName($this->activeArticle);
|
||||||
|
|
||||||
|
if($this->article === null) {
|
||||||
|
$this->dirty = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Prefill with defaults
|
// Prefill with defaults
|
||||||
/** @var Base $option */
|
/** @var Base $option */
|
||||||
foreach($this->article->getOptions() as $option) {
|
foreach($this->article->getOptions() as $option) {
|
||||||
|
|||||||
42
tests/Customer/G/CalcTest.php
Normal file
42
tests/Customer/G/CalcTest.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
namespace PSC\Library\Calc\Tests\Customer\G;
|
||||||
|
|
||||||
|
use PSC\Library\Calc\Article;
|
||||||
|
use PSC\Library\Calc\Engine;
|
||||||
|
use PSC\Library\Calc\PaperContainer;
|
||||||
|
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
|
||||||
|
|
||||||
|
class CalcTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
/** @var Engine */
|
||||||
|
protected $engine = null;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
$repository = new PaperRepostory();
|
||||||
|
|
||||||
|
$paperContainer = new PaperContainer();
|
||||||
|
$paperContainer->parse(simplexml_load_string(file_get_contents(__DIR__ . '/papierContainer.xml')));
|
||||||
|
|
||||||
|
$this->engine = new Engine();
|
||||||
|
$this->engine->setPaperContainer($paperContainer);
|
||||||
|
$this->engine->setPaperRepository($repository);
|
||||||
|
$this->engine->setFormulas(file_get_contents(__DIR__ . '/formels.txt'));
|
||||||
|
$this->engine->setParameters(file_get_contents(__DIR__ . '/parameters.txt'));
|
||||||
|
$this->engine->setTemplates(file_get_contents(__DIR__ . '/calcTemplates.xml'));
|
||||||
|
|
||||||
|
$this->engine->loadString(file_get_contents(__DIR__ . '/calc.xml'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
$this->engine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIfDefaultPriceIsOk()
|
||||||
|
{
|
||||||
|
$this->assertEquals(10.49 , $this->engine->getPrice());
|
||||||
|
}
|
||||||
|
}
|
||||||
60
tests/Customer/G/calc.xml
Normal file
60
tests/Customer/G/calc.xml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<kalkulation>
|
||||||
|
<artikel>
|
||||||
|
<name>Zubehör</name>
|
||||||
|
<kommentar></kommentar>
|
||||||
|
|
||||||
|
<option id="auflage" name="Menge" type="Input" step="100" default="100" min="100" max="10000" help="Geben Sie die gewünschte Menge in 100 Stückschritten ein"/>
|
||||||
|
|
||||||
|
|
||||||
|
<option id="variante" name="Kettenlänge" type="Select" default="10">
|
||||||
|
<opt id="10" name="50 mm"></opt>
|
||||||
|
<opt id="20" name="100 mm"></opt>
|
||||||
|
<opt id="30" name="150 mm"></opt>
|
||||||
|
<opt id="40" name="200 mm"></opt>
|
||||||
|
<opt id="50" name="250 mm"></opt>
|
||||||
|
<opt id="60" name="300 mm"></opt>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<!-- Einzelpreisermittlung -->
|
||||||
|
<option id="preisstaffel" name="preisstaffel" type="Hidden" default="10">
|
||||||
|
<variante>
|
||||||
|
<grenze formel="(0.41*(pow($Vauflage$V,-0.296))*$Vauflage$V)">10</grenze>
|
||||||
|
<grenze formel="(0.36*(pow($Vauflage$V,-0.264))*$Vauflage$V)">20</grenze>
|
||||||
|
<grenze formel="(0.46*(pow($Vauflage$V,-0.246))*$Vauflage$V)">30</grenze>
|
||||||
|
<grenze formel="(0.51*(pow($Vauflage$V,-0.229))*$Vauflage$V)">40</grenze>
|
||||||
|
<grenze formel="(0.59*(pow($Vauflage$V,-0.226))*$Vauflage$V)">50</grenze>
|
||||||
|
<grenze formel="(0.63*(pow($Vauflage$V,-0.218))*$Vauflage$V)">60</grenze>
|
||||||
|
</variante>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Preisberechung Basis Sprintis Online Staffel-->
|
||||||
|
<option id="kosten_kugelkette" name="kosten_kugelkette" type="Hidden" default="1">
|
||||||
|
<auflage>
|
||||||
|
<grenze formel="($CVpreisstaffel$CV*($Pzuschlag_zubehoer_extern$P))">1-</grenze>
|
||||||
|
</auflage>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<!-- Lieferzeit Gesamt DISPLAY -->
|
||||||
|
<option id="lieferzeit_gesamt_display" name="lieferzeit_gesamt_display" type="Hidden" default="1" displayOnly="1">
|
||||||
|
<auflage>
|
||||||
|
<grenze formel="5">-1</grenze>
|
||||||
|
</auflage>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Gesamtgewicht -->
|
||||||
|
<option id="weight" name="weight" type="Hidden" default="1">
|
||||||
|
<variante>
|
||||||
|
<grenze formel="($Vauflage$V*2)">10</grenze>
|
||||||
|
<grenze formel="($Vauflage$V*3)">20</grenze>
|
||||||
|
<grenze formel="($Vauflage$V*4)">30</grenze>
|
||||||
|
<grenze formel="($Vauflage$V*5)">40</grenze>
|
||||||
|
<grenze formel="($Vauflage$V*6)">50</grenze>
|
||||||
|
<grenze formel="($Vauflage$V*7)">60</grenze>
|
||||||
|
</variante>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
</artikel>
|
||||||
|
</kalkulation>
|
||||||
4
tests/Customer/G/calcTemplates.xml
Normal file
4
tests/Customer/G/calcTemplates.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<root>
|
||||||
|
|
||||||
|
|
||||||
|
</root>
|
||||||
0
tests/Customer/G/formels.txt
Normal file
0
tests/Customer/G/formels.txt
Normal file
4
tests/Customer/G/papierContainer.xml
Normal file
4
tests/Customer/G/papierContainer.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<container>
|
||||||
|
|
||||||
|
</container>
|
||||||
0
tests/Customer/G/parameters.txt
Normal file
0
tests/Customer/G/parameters.txt
Normal file
Loading…
Reference in New Issue
Block a user