Fix Calc
This commit is contained in:
parent
5c4045b62f
commit
79a15727ac
File diff suppressed because one or more lines are too long
@ -92,6 +92,11 @@ class Valid
|
|||||||
$opt->setIsValid(true);
|
$opt->setIsValid(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($option->getDefault() === null && $opt->isValid()) {
|
||||||
|
$option->setDefault($opt->getId());
|
||||||
|
$this->engine->setVariable($option->getId(), $opt->getId());
|
||||||
|
}
|
||||||
|
|
||||||
if($option instanceof Checkbox) {
|
if($option instanceof Checkbox) {
|
||||||
if (isset($this->engine->getVariables()[$option->getId()]) && is_array($this->engine->getVariables()[$option->getId()]) && in_array($opt->getId(), $this->engine->getVariables()[$option->getId()])) {
|
if (isset($this->engine->getVariables()[$option->getId()]) && is_array($this->engine->getVariables()[$option->getId()]) && in_array($opt->getId(), $this->engine->getVariables()[$option->getId()])) {
|
||||||
$opt->setIsSelected(true);
|
$opt->setIsSelected(true);
|
||||||
|
|||||||
55
tests/Customer/CC/CalcTest.php
Normal file
55
tests/Customer/CC/CalcTest.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
namespace PSC\Library\Calc\Tests\Customer\CC;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use PSC\Library\Calc\Article;
|
||||||
|
use PSC\Library\Calc\Engine;
|
||||||
|
use PSC\Library\Calc\Option\Type\Select;
|
||||||
|
use PSC\Library\Calc\PaperContainer;
|
||||||
|
use PSC\Library\Calc\Tests\Mock\PaperRepostory;
|
||||||
|
|
||||||
|
class CalcTest extends TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
/** @var Engine */
|
||||||
|
protected $engine = null;
|
||||||
|
|
||||||
|
public function setUp(): void
|
||||||
|
{
|
||||||
|
$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(): void
|
||||||
|
{
|
||||||
|
$this->engine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testContainerSelectFalse(): void
|
||||||
|
{
|
||||||
|
$this->engine->calc();
|
||||||
|
$this->assertFalse($this->engine->getArticle()->getOptionById('dd')->isValid());
|
||||||
|
$this->assertFalse($this->engine->getArticle()->getOptionById('defa')->isValid());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testContainerSelectBinden(): void
|
||||||
|
{
|
||||||
|
$this->engine->setVariable('binden', 'leimes');
|
||||||
|
$this->engine->calc();
|
||||||
|
$this->assertTrue($this->engine->getArticle()->getOptionById('dd')->isValid());
|
||||||
|
$this->assertTrue($this->engine->getArticle()->getOptionById('defa')->isValid());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
55
tests/Customer/CC/calc.xml
Normal file
55
tests/Customer/CC/calc.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<kalkulation>
|
||||||
|
<artikel>
|
||||||
|
<name>Drahtspiralbindung</name>
|
||||||
|
<kommentar></kommentar>
|
||||||
|
|
||||||
|
<option id="auflage" name="Auflage" type="Input" default="100"></option>
|
||||||
|
|
||||||
|
<option id="binden" name="Binden" type="Select" default="ohne" help="Wie soll die Arbeit gebunden werden?">
|
||||||
|
<opt id="ohne" name="nur Drucken"/>
|
||||||
|
<opt id="leimes" name="Kaltleimbindung einseitiger Druck">
|
||||||
|
<auflage>
|
||||||
|
<grenze formel="($Vauflage$V*3.5/1)">0-</grenze>
|
||||||
|
</auflage>
|
||||||
|
</opt>
|
||||||
|
<opt id="leimdps" name="Kaltleimbindung doppelseitiger Druck">
|
||||||
|
<auflage>
|
||||||
|
<grenze formel="($Vauflage$V*3.571)">0-</grenze>
|
||||||
|
</auflage>
|
||||||
|
</opt>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option id="dd" name="Titeldruck" type="Select" help="Wie soll Ihr Bindedeckel bedruckt werden werden?">
|
||||||
|
<opt id="ddohne" name="Titel unbedruckt">
|
||||||
|
<binden>
|
||||||
|
<grenze formel="0">leimes</grenze>
|
||||||
|
<grenze formel="0">leimdps</grenze>
|
||||||
|
<grenze formel="0">tb</grenze>
|
||||||
|
</binden>
|
||||||
|
</opt>
|
||||||
|
<opt id="ddleim" name="Titeldruck Leimbindung">
|
||||||
|
<binden>
|
||||||
|
<grenze formel="2.5+($Vauflage$V*0.6/1)">leimes</grenze>
|
||||||
|
<grenze formel="2.5+($Vauflage$V*0.6/1)">leimdps</grenze>
|
||||||
|
</binden>
|
||||||
|
</opt>
|
||||||
|
<opt id="ddhcohne" name="Hardcover Klemmbindung ohne Prägung">
|
||||||
|
<binden>
|
||||||
|
<grenze formel="0">hc</grenze>
|
||||||
|
</binden>
|
||||||
|
</opt>
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option id="defa" name="Bindekarton Farbe:" type="Select" mode="papierdb" container="defa" default="INM115" help="Aus welchem Papier soll Ihr Buch bestehen?">
|
||||||
|
<grenzen>
|
||||||
|
<dd>
|
||||||
|
<grenze formel="0">ddleim</grenze>
|
||||||
|
<grenze formel="0">ddweiss</grenze>
|
||||||
|
<grenze formel="0">fol</grenze>
|
||||||
|
<grenze formel="0">ddohne</grenze>
|
||||||
|
</dd>
|
||||||
|
</grenzen>
|
||||||
|
</option>
|
||||||
|
</artikel>
|
||||||
|
</kalkulation>
|
||||||
3
tests/Customer/CC/calcTemplates.xml
Normal file
3
tests/Customer/CC/calcTemplates.xml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<root>
|
||||||
|
|
||||||
|
</root>
|
||||||
0
tests/Customer/CC/formels.txt
Normal file
0
tests/Customer/CC/formels.txt
Normal file
12
tests/Customer/CC/papierContainer.xml
Normal file
12
tests/Customer/CC/papierContainer.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<container>
|
||||||
|
<papiercontainer id="defa">
|
||||||
|
<papier id="INM115"></papier>
|
||||||
|
<papier id="INM13522"></papier>
|
||||||
|
<papier id="INM170"></papier>
|
||||||
|
<papier id="INM200"></papier>
|
||||||
|
<papier id="INM250"></papier>
|
||||||
|
<papier id="INM300"></papier>
|
||||||
|
<papier id="KEIN"></papier>
|
||||||
|
</papiercontainer>
|
||||||
|
</container>
|
||||||
0
tests/Customer/CC/parameters.txt
Normal file
0
tests/Customer/CC/parameters.txt
Normal file
Loading…
Reference in New Issue
Block a user