Modelos y validación
Verifactu-PHP proporciona una serie de clases llamadas modelos que representan los distintos elementos de un registro VERI*FACTU. Todos los modelos de la librería heredan de la clase Model . Algunos de los ejemplos más reprensentativos de modelos de esta librería son:
- RegistrationRecord : Clase principal para un registro de alta.
- FiscalIdentifier : Identificación fiscal de una entidad (nombre y NIF). Se usa principalmente para identificar al responsable tributario en el envío.
- BreakdownDetails : Detalle de desglose fiscal por cada tipo impositivo aplicado.
- ComputerSystem : Datos del sistema informático emisor (SIF). Este objeto se usa para informar a AEAT sobre el software que genera los registros.
- AeatResponse : Datos parseados de una respuesta recibida de una comunicación con el servidor de la AEAT.
Validación
Todos los modelos disponen del método Model::validate() , que revisa las reglas de formato y presencia de datos obligatorios según la normativa. Si algún campo tiene un valor incorrecto, este método lanzará una excepción del tipo InvalidModelException .
A continuación se muestra un ejemplo de uso:
use josemmo\Verifactu\Exceptions\InvalidModelException;
use josemmo\Verifactu\Models\Records\BreakdownDetails;
$details = new BreakdownDetails();
$details->taxType = TaxType::IVA;
$details->regimeType = RegimeType::C01;
$details->operationType = OperationType::Subject;
$details->baseAmount = '100.00';
$details->taxRate = '10.00';
$details->taxAmount = '12.34'; // <-- Debería ser 10.00
try {
$details->validate();
} catch (InvalidModelException $e) {
echo "Not a valid model: $e\n";
}