LibreDTE

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
throws
DispatcherException

Si algún dato del sobre no es válido.

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
throws
DispatcherException

Si no es una fecha válida en el formato.

Return values
DateTimeImmutable

validateResolutionDate()

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
throws
DispatcherException

validateRuts()

Valida que los RUT de la carátula tengan dígito verificador válido.

private validateRuts(XPathReader $reader) : void
Parameters
$reader : XPathReader
Tags
throws
DispatcherException

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
Tags
throws
DispatcherException
On this page

Search results