From ddf83e822c11739ca6a7009dfc41b19fc9f8ea83 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 14:58:57 -0300 Subject: [PATCH 01/11] fix/observations-msg auto-commit --- src/WSFE/Wsfe.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index 983b508..8af2e3e 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -18,6 +18,7 @@ use Multinexo\Exceptions\WsException; use Multinexo\Models\AfipConfig; use Multinexo\Models\InvoiceWebService; +use Multinexo\Models\Log; use Multinexo\Models\Validaciones; use Multinexo\Objects\AssociatedDocumentObject; use Multinexo\Objects\InvoiceObject; @@ -70,6 +71,9 @@ private function parseResult(stdClass $response): InvoiceResultObject $result->cae = $response->CAE; $result->cae_expiration_date = $response->CAEFchVto; if (isset($response->Observaciones)) { + Log::debug('OBSERVATIONS: '. print_r($response->Observaciones->Obs, true) ); + } + if (!empty($response->Observaciones->Obs->Msg ?? '')) { $result->observation = $response->Observaciones->Obs->Msg . ' (' . $response->Observaciones->Obs->Code . ')'; } From 6d0dc7141afeff37aede519133ce186d37c0b433 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 15:57:41 -0300 Subject: [PATCH 02/11] fix/observations-msg auto-commit --- src/Objects/InvoiceObject.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Objects/InvoiceObject.php b/src/Objects/InvoiceObject.php index 279d2cb..344aab3 100644 --- a/src/Objects/InvoiceObject.php +++ b/src/Objects/InvoiceObject.php @@ -24,6 +24,8 @@ class InvoiceObject extends FiscalDocumentDto /** @var ?int */ public $codigoComprobante; /** @var ?int */ + public $codigoConcepto; + /** @var ?int */ public $codigoDocumento; /** @var ?int */ public $numeroDocumento; From 9893540c4bce5fdc40a6f9bc9b9ea8a341772d35 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:04:50 -0300 Subject: [PATCH 03/11] fix/observations-msg auto-commit --- src/Objects/Invoices/ConceptEnum.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/Objects/Invoices/ConceptEnum.php diff --git a/src/Objects/Invoices/ConceptEnum.php b/src/Objects/Invoices/ConceptEnum.php new file mode 100644 index 0000000..28528cf --- /dev/null +++ b/src/Objects/Invoices/ConceptEnum.php @@ -0,0 +1,13 @@ + Date: Mon, 28 Apr 2025 16:05:10 -0300 Subject: [PATCH 04/11] fix/observations-msg auto-commit --- src/Objects/Invoices/ConceptEnum.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Objects/Invoices/ConceptEnum.php b/src/Objects/Invoices/ConceptEnum.php index 28528cf..6aa92c0 100644 --- a/src/Objects/Invoices/ConceptEnum.php +++ b/src/Objects/Invoices/ConceptEnum.php @@ -5,7 +5,7 @@ /** * https://www.arca.gob.ar/ws/documentacion/manuales/manual-desarrollador-ARCA-COMPG-v4-0.pdf */ -class ConceptoEnum +class ConceptEnum { public const PRODUCTOS = 1; public const SERVICIOS = 2; From daa714021929605fa59e7fc115b32817c6ddd262 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:14:15 -0300 Subject: [PATCH 05/11] fix/observations-msg auto-commit --- src/Objects/InvoiceObject.php | 2 ++ src/WSFE/Wsfe.php | 1 + 2 files changed, 3 insertions(+) diff --git a/src/Objects/InvoiceObject.php b/src/Objects/InvoiceObject.php index 344aab3..cd737cc 100644 --- a/src/Objects/InvoiceObject.php +++ b/src/Objects/InvoiceObject.php @@ -49,6 +49,8 @@ class InvoiceObject extends FiscalDocumentDto public $codigoMoneda = 'PES'; /** @var int */ public $cotizacionMoneda = 1; + /** @var ?int */ + public $condicionIVAReceptorId = null; /** @var string */ public $fechaServicioDesde; /** @var string */ diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index 8af2e3e..a69e714 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -289,6 +289,7 @@ private function parseFacturaArray(): void 'ImpIVA' => $factura->importeIVA, 'MonId' => $factura->codigoMoneda, 'MonCotiz' => $factura->cotizacionMoneda, + 'CondicionIVAReceptorId' => $factura->condicionIVAReceptorId, ], ], ]; From 15f7dea813fbcfe747528b19ace3f88cb44e4fa9 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:39:59 -0300 Subject: [PATCH 06/11] fix/observations-msg auto-commit --- src/WSFE/Wsfe.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index a69e714..bb3e0a6 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -73,8 +73,14 @@ private function parseResult(stdClass $response): InvoiceResultObject if (isset($response->Observaciones)) { Log::debug('OBSERVATIONS: '. print_r($response->Observaciones->Obs, true) ); } - if (!empty($response->Observaciones->Obs->Msg ?? '')) { - $result->observation = $response->Observaciones->Obs->Msg . ' (' . $response->Observaciones->Obs->Code . ')'; + if (!empty($response->Observaciones->Obs)) { + $messages = is_array($response->Observaciones->Obs) + ? $response->Observaciones->Obs + : [$response->Observaciones->Obs]; + $result->observation =array_map( + function ($obs) { return $obs->Msg . ' (' . $obs->Code . ')'; }, + $messages + ); } return $result; From d3d541cb2ee47bffb56c2951a649c29d61db7bd4 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:41:10 -0300 Subject: [PATCH 07/11] fix/observations-msg auto-commit --- src/Objects/InvoiceObject.php | 2 +- src/Objects/Invoices/ConceptEnum.php | 10 +++++++++- src/WSFE/Wsfe.php | 13 ++++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/Objects/InvoiceObject.php b/src/Objects/InvoiceObject.php index cd737cc..7e9d33b 100644 --- a/src/Objects/InvoiceObject.php +++ b/src/Objects/InvoiceObject.php @@ -50,7 +50,7 @@ class InvoiceObject extends FiscalDocumentDto /** @var int */ public $cotizacionMoneda = 1; /** @var ?int */ - public $condicionIVAReceptorId = null; + public $condicionIVAReceptorId; /** @var string */ public $fechaServicioDesde; /** @var string */ diff --git a/src/Objects/Invoices/ConceptEnum.php b/src/Objects/Invoices/ConceptEnum.php index 6aa92c0..ea60a38 100644 --- a/src/Objects/Invoices/ConceptEnum.php +++ b/src/Objects/Invoices/ConceptEnum.php @@ -1,9 +1,17 @@ . + * + * This file is part of php-afip-ws. php-afip-ws can not be copied and/or + * distributed without the express permission of Reyesoft + */ + +declare(strict_types=1); namespace Multinexo\Objects\Invoices; /** - * https://www.arca.gob.ar/ws/documentacion/manuales/manual-desarrollador-ARCA-COMPG-v4-0.pdf + * https://www.arca.gob.ar/ws/documentacion/manuales/manual-desarrollador-ARCA-COMPG-v4-0.pdf. */ class ConceptEnum { diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index bb3e0a6..4a94070 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -71,16 +71,19 @@ private function parseResult(stdClass $response): InvoiceResultObject $result->cae = $response->CAE; $result->cae_expiration_date = $response->CAEFchVto; if (isset($response->Observaciones)) { - Log::debug('OBSERVATIONS: '. print_r($response->Observaciones->Obs, true) ); + Log::debug('OBSERVATIONS: ' . print_r($response->Observaciones->Obs, true)); } if (!empty($response->Observaciones->Obs)) { $messages = is_array($response->Observaciones->Obs) ? $response->Observaciones->Obs - : [$response->Observaciones->Obs]; - $result->observation =array_map( - function ($obs) { return $obs->Msg . ' (' . $obs->Code . ')'; }, + : [$response->Observaciones->Obs]; + $result->observation = implode( + array_map( + function ($obs) { + return $obs->Msg . ' (' . $obs->Code . ').'; + }, $messages - ); + ), PHP_EOL); } return $result; From c5f3079603c725a55ff230063ff37ba56ac61e90 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:42:23 -0300 Subject: [PATCH 08/11] fix/observations-msg auto-commit --- src/WSFE/Wsfe.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index 4a94070..6ec3d0a 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -70,9 +70,6 @@ private function parseResult(stdClass $response): InvoiceResultObject $result->cae = $response->CAE; $result->cae_expiration_date = $response->CAEFchVto; - if (isset($response->Observaciones)) { - Log::debug('OBSERVATIONS: ' . print_r($response->Observaciones->Obs, true)); - } if (!empty($response->Observaciones->Obs)) { $messages = is_array($response->Observaciones->Obs) ? $response->Observaciones->Obs From 6692b7797569c5f4aa85bc4628211a874a7a69fd Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:42:52 -0300 Subject: [PATCH 09/11] fix/observations-msg auto-commit --- src/WSFE/Wsfe.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index 6ec3d0a..31e5f71 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -70,6 +70,7 @@ private function parseResult(stdClass $response): InvoiceResultObject $result->cae = $response->CAE; $result->cae_expiration_date = $response->CAEFchVto; + if (!empty($response->Observaciones->Obs)) { $messages = is_array($response->Observaciones->Obs) ? $response->Observaciones->Obs From 22a989c2ed860aaed3bc5db248f0003f18c29077 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:47:31 -0300 Subject: [PATCH 10/11] fix/observations-msg auto-commit --- src/WSFE/Wsfe.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/WSFE/Wsfe.php b/src/WSFE/Wsfe.php index 31e5f71..5aab1c2 100644 --- a/src/WSFE/Wsfe.php +++ b/src/WSFE/Wsfe.php @@ -18,7 +18,6 @@ use Multinexo\Exceptions\WsException; use Multinexo\Models\AfipConfig; use Multinexo\Models\InvoiceWebService; -use Multinexo\Models\Log; use Multinexo\Models\Validaciones; use Multinexo\Objects\AssociatedDocumentObject; use Multinexo\Objects\InvoiceObject; @@ -75,13 +74,13 @@ private function parseResult(stdClass $response): InvoiceResultObject $messages = is_array($response->Observaciones->Obs) ? $response->Observaciones->Obs : [$response->Observaciones->Obs]; - $result->observation = implode( + $result->observation = implode(PHP_EOL, array_map( function ($obs) { return $obs->Msg . ' (' . $obs->Code . ').'; }, $messages - ), PHP_EOL); + )); } return $result; From 9d7187e539468b5a510f21370824d4ae49c06659 Mon Sep 17 00:00:00 2001 From: Pablo Reyes Date: Mon, 28 Apr 2025 16:57:18 -0300 Subject: [PATCH 11/11] fix/observations-msg auto-commit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b0a8a4..f9ad8ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] + +## [2.0.11] - 2025-04-28 + ### Changed - Some enums removed. +### Added +- condicionIVAReceptorId and codigoConcepto on InvoiceObject. +- Support for multiple observations on Invoice result. + ## [2.0.10] - 2025-01-18 ### Added - Some enums changed based on AFIP/ARCA.