ValidateEnvelopeJob
extends AbstractJob
in package
implements
JobInterface
Valida los datos del sobre de documentos tributarios electrónicos.
Solo valida lo que no valida el esquema XSD del sobre, y solo respecto al sobre. La validación de los datos de cada documento corresponde al worker de validación de documentos.
Reglas:
- Los RUT de la carátula tienen dígito verificador válido.
- La fecha de la resolución no es posterior a la fecha de la firma del sobre.
- La cantidad de documentos de cada tipo declarada en la carátula coincide con la cantidad de documentos del sobre.
Attributes
- #[Job]
- $name: 'validate_envelope'
- $worker: 'dispatcher'
- $component: 'document'
- $package: 'billing'
Table of Contents
Interfaces
- JobInterface
Constants
- RUT_TAGS : array<int, string> = ['RutEmisor', 'RutEnvia', 'RutReceptor']
- Tags de la carátula que contienen un RUT.
Methods
- execute() : void
- Valida los datos del sobre.
- parseDate() : DateTimeImmutable
- Lee una fecha de la carátula, que debe estar escrita exactamente en el formato indicado (con todos sus dígitos).
- validateResolutionDate() : void
- Valida que la fecha de la resolución no sea posterior a la fecha de la firma del sobre.
- validateRuts() : void
- Valida que los RUT de la carátula tengan dígito verificador válido.
- validateSubTotals() : void
- Valida que la cantidad de documentos de cada tipo declarada en la carátula coincida con la cantidad de documentos del sobre.
Constants
RUT_TAGS
Tags de la carátula que contienen un RUT.
private
array<int, string>
RUT_TAGS
= ['RutEmisor', 'RutEnvia', 'RutReceptor']
Methods
execute()
Valida los datos del sobre.
public
execute(XmlDocumentInterface $xmlDocument) : void
Parameters
- $xmlDocument : XmlDocumentInterface
-
XML del sobre de documentos.
Tags
parseDate()
Lee una fecha de la carátula, que debe estar escrita exactamente en el formato indicado (con todos sus dígitos).
private
parseDate(string $value, string $format, string $tag) : DateTimeImmutable
Parameters
- $value : string
-
Texto de la fecha.
- $format : string
-
Formato en que debe estar escrita.
- $tag : string
-
Tag de la carátula, para el mensaje de error.
Tags
Return values
DateTimeImmutablevalidateResolutionDate()
Valida que la fecha de la resolución no sea posterior a la fecha de la firma del sobre.
private
validateResolutionDate(XPathReader $reader) : void
Se compara con la fecha de la firma y no con la fecha actual para que el resultado no dependa del momento en que se valida el sobre.
Parameters
- $reader : XPathReader
Tags
validateRuts()
Valida que los RUT de la carátula tengan dígito verificador válido.
private
validateRuts(XPathReader $reader) : void
Parameters
- $reader : XPathReader
Tags
validateSubTotals()
Valida que la cantidad de documentos de cada tipo declarada en la carátula coincida con la cantidad de documentos del sobre.
private
validateSubTotals(XPathReader $reader) : void
Parameters
- $reader : XPathReader