From f528313aed0457c5c2a66dab53a92bcb31e7c4ea Mon Sep 17 00:00:00 2001 From: Daniel Lopez Date: Wed, 25 Feb 2026 13:32:38 -0500 Subject: [PATCH 1/2] feat: add optional porcentajeIgv (#266) --- .../src/Core/Model/Summary/SummaryDetail.php | 25 +++++++++++++++++++ .../data/src/Data/Generator/SummaryStore.php | 5 +++- .../xml/src/Xml/Templates/summary.xml.twig | 3 +++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/core/src/Core/Model/Summary/SummaryDetail.php b/packages/core/src/Core/Model/Summary/SummaryDetail.php index baf8926c..55bbf80a 100644 --- a/packages/core/src/Core/Model/Summary/SummaryDetail.php +++ b/packages/core/src/Core/Model/Summary/SummaryDetail.php @@ -62,6 +62,11 @@ class SummaryDetail */ private $total; + /** + * @var ?float + */ + private ?float $porcentajeIgv = null; + /** * @var float */ @@ -279,6 +284,26 @@ public function setTotal(?float $total): SummaryDetail return $this; } + /** + * @return float + */ + public function getPorcentajeIgv(): ?float + { + return $this->porcentajeIgv; + } + + /** + * @param float $porcentajeIgv + * + * @return SummaryDetail + */ + public function setPorcentajeIgv(?float $porcentajeIgv): SummaryDetail + { + $this->porcentajeIgv = $porcentajeIgv; + + return $this; + } + /** * @return float */ diff --git a/packages/data/src/Data/Generator/SummaryStore.php b/packages/data/src/Data/Generator/SummaryStore.php index 8d6cb3a1..eceb378e 100644 --- a/packages/data/src/Data/Generator/SummaryStore.php +++ b/packages/data/src/Data/Generator/SummaryStore.php @@ -45,6 +45,7 @@ public function create(): ?DocumentInterface ->setMtoOperExoneradas(50) ->setMtoOperExportacion(10) ->setMtoOtrosCargos(21) + ->setPorcentajeIgv(18.0) ->setMtoIGV(3.6); $detiail2 = new SummaryDetail(); @@ -62,6 +63,7 @@ public function create(): ?DocumentInterface ->setMtoOperInafectas(120) ->setMtoOperGratuitas(10) ->setMtoIGV(7.2) + ->setPorcentajeIgv(18.0) ->setMtoISC(2.8); $detiail3 = new SummaryDetail(); @@ -81,7 +83,8 @@ public function create(): ?DocumentInterface ->setMtoOperInafectas(24.4) ->setMtoOperExoneradas(50) ->setMtoOtrosCargos(21) - ->setMtoIGV(3.6); + ->setMtoIGV(3.6) + ->setPorcentajeIgv(18.0); $detiail4 = new SummaryDetail(); $detiail4->setTipoDoc('03') diff --git a/packages/xml/src/Xml/Templates/summary.xml.twig b/packages/xml/src/Xml/Templates/summary.xml.twig index ca8260f5..55915047 100644 --- a/packages/xml/src/Xml/Templates/summary.xml.twig +++ b/packages/xml/src/Xml/Templates/summary.xml.twig @@ -126,6 +126,9 @@ {{ igv }} + {% if det.porcentajeIgv is not null %} + {{ det.porcentajeIgv|n_format }} + {% endif %} 1000 IGV From 39cce4d6136076aeef112975f27b4cc443235122 Mon Sep 17 00:00:00 2001 From: Daniel Lopez Date: Wed, 25 Feb 2026 13:48:54 -0500 Subject: [PATCH 2/2] Fix summary validation after adding porcentajeIgv --- packages/lite/tests/Greenter/Factory/FeFactoryBase.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/lite/tests/Greenter/Factory/FeFactoryBase.php b/packages/lite/tests/Greenter/Factory/FeFactoryBase.php index 028d3477..51dbaa8b 100644 --- a/packages/lite/tests/Greenter/Factory/FeFactoryBase.php +++ b/packages/lite/tests/Greenter/Factory/FeFactoryBase.php @@ -351,7 +351,8 @@ protected function getSummary() ->setMtoOperGravadas(20) ->setMtoOperInafectas(12) ->setMtoOperExoneradas(15) - ->setMtoIGV(3.6); + ->setMtoIGV(3.6) + ->setPorcentajeIgv(18.0); $detiail2 = new SummaryDetail(); $detiail2->setTipoDoc('03') @@ -371,6 +372,7 @@ protected function getSummary() ->setMtoOperInafectas(20) ->setMtoOtrosCargos(10) ->setMtoIGV(42.12) + ->setPorcentajeIgv(18.0) ->setMtoISC(34); $sum = new Summary();