Updates for Verifactu
This commit is contained in:
parent
f155feb641
commit
b25a69a5be
|
|
@ -2,18 +2,24 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class Cabecera
|
class Cabecera
|
||||||
{
|
{
|
||||||
/** @var PersonaFisicaJuridicaES */
|
/** @var PersonaFisicaJuridicaES */
|
||||||
|
#[SerializedName('sum1:ObligadoEmision')]
|
||||||
protected $ObligadoEmision;
|
protected $ObligadoEmision;
|
||||||
|
|
||||||
/** @var PersonaFisicaJuridicaES|null */
|
/** @var PersonaFisicaJuridicaES|null */
|
||||||
|
#[SerializedName('sum1:Representante')]
|
||||||
protected $Representante;
|
protected $Representante;
|
||||||
|
|
||||||
/** @var array{FechaFinVeriFactu?: string}|null */
|
/** @var array{FechaFinVeriFactu?: string}|null */
|
||||||
|
#[SerializedName('sum1:RemisionVoluntaria')]
|
||||||
protected $RemisionVoluntaria;
|
protected $RemisionVoluntaria;
|
||||||
|
|
||||||
/** @var array{RefRequerimiento: string, FinRequerimiento?: string}|null */
|
/** @var array{RefRequerimiento: string, FinRequerimiento?: string}|null */
|
||||||
|
#[SerializedName('sum1:RemisionRequerimiento')]
|
||||||
protected $RemisionRequerimiento;
|
protected $RemisionRequerimiento;
|
||||||
|
|
||||||
public function getObligadoEmision(): PersonaFisicaJuridicaES
|
public function getObligadoEmision(): PersonaFisicaJuridicaES
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,20 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class DesgloseRectificacion
|
class DesgloseRectificacion
|
||||||
{
|
{
|
||||||
/** @var float */
|
/** @var float */
|
||||||
|
#[SerializedName('sum1:BaseRectificada')]
|
||||||
protected $BaseRectificada;
|
protected $BaseRectificada;
|
||||||
|
|
||||||
/** @var float */
|
/** @var float */
|
||||||
|
#[SerializedName('sum1:CuotaRectificada')]
|
||||||
protected $CuotaRectificada;
|
protected $CuotaRectificada;
|
||||||
|
|
||||||
/** @var float|null */
|
/** @var float|null */
|
||||||
|
#[SerializedName('sum1:CuotaRecargoRectificada')]
|
||||||
protected $CuotaRecargoRectificada;
|
protected $CuotaRecargoRectificada;
|
||||||
|
|
||||||
public function getBaseRectificada(): float
|
public function getBaseRectificada(): float
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,20 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class IDFacturaExpedida
|
class IDFacturaExpedida
|
||||||
{
|
{
|
||||||
/** @var string NIF format */
|
/** @var string NIF format */
|
||||||
|
#[SerializedName('sum1:IDEmisorFactura')]
|
||||||
protected $IDEmisorFactura;
|
protected $IDEmisorFactura;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NumSerieFactura')]
|
||||||
protected $NumSerieFactura;
|
protected $NumSerieFactura;
|
||||||
|
|
||||||
/** @var string Date format YYYY-MM-DD */
|
/** @var string Date format YYYY-MM-DD */
|
||||||
|
#[SerializedName('sum1:FechaExpedicionFactura')]
|
||||||
protected $FechaExpedicionFactura;
|
protected $FechaExpedicionFactura;
|
||||||
|
|
||||||
public function getIDEmisorFactura(): string
|
public function getIDEmisorFactura(): string
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,14 @@
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
use App\Services\EDocument\Standards\Verifactu\Types\Common\TextTypes;
|
use App\Services\EDocument\Standards\Verifactu\Types\Common\TextTypes;
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class ImporteSgn14_2
|
class ImporteSgn14_2
|
||||||
{
|
{
|
||||||
use TextTypes;
|
use TextTypes;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Value')]
|
||||||
protected $Value;
|
protected $Value;
|
||||||
|
|
||||||
public function __construct(string $value)
|
public function __construct(string $value)
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,28 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class Incidencia
|
class Incidencia
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Codigo')]
|
||||||
protected $Codigo;
|
protected $Codigo;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Descripcion')]
|
||||||
protected $Descripcion;
|
protected $Descripcion;
|
||||||
|
|
||||||
/** @var string|null Max length 120 characters */
|
/** @var string|null Max length 120 characters */
|
||||||
|
#[SerializedName('sum1:NombreRazon')]
|
||||||
protected $NombreRazon;
|
protected $NombreRazon;
|
||||||
|
|
||||||
/** @var string|null NIF format */
|
/** @var string|null NIF format */
|
||||||
|
#[SerializedName('sum1:NIF')]
|
||||||
protected $NIF;
|
protected $NIF;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:FechaHora')]
|
||||||
protected $FechaHora;
|
protected $FechaHora;
|
||||||
|
|
||||||
public function getCodigo(): string
|
public function getCodigo(): string
|
||||||
|
|
|
||||||
|
|
@ -2,39 +2,52 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class ObligadoEmision extends PersonaFisicaJuridicaES
|
class ObligadoEmision extends PersonaFisicaJuridicaES
|
||||||
{
|
{
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:TipoPersona')]
|
||||||
protected $TipoPersona;
|
protected $TipoPersona;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:RazonSocialCompleta')]
|
||||||
protected $RazonSocialCompleta;
|
protected $RazonSocialCompleta;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:NombreComercial')]
|
||||||
protected $NombreComercial;
|
protected $NombreComercial;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:CodigoPostal')]
|
||||||
protected $CodigoPostal;
|
protected $CodigoPostal;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Direccion')]
|
||||||
protected $Direccion;
|
protected $Direccion;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Poblacion')]
|
||||||
protected $Poblacion;
|
protected $Poblacion;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Provincia')]
|
||||||
protected $Provincia;
|
protected $Provincia;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Pais')]
|
||||||
protected $Pais;
|
protected $Pais;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Telefono')]
|
||||||
protected $Telefono;
|
protected $Telefono;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Email')]
|
||||||
protected $Email;
|
protected $Email;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Web')]
|
||||||
protected $Web;
|
protected $Web;
|
||||||
|
|
||||||
public function getTipoPersona(): ?string
|
public function getTipoPersona(): ?string
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class OperacionExenta
|
class OperacionExenta
|
||||||
{
|
{
|
||||||
public const E1 = 'E1'; // EXENTA por Art. 20
|
public const E1 = 'E1'; // EXENTA por Art. 20
|
||||||
|
|
@ -12,6 +14,7 @@ class OperacionExenta
|
||||||
public const E6 = 'E6'; // EXENTA por otros
|
public const E6 = 'E6'; // EXENTA por otros
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Value')]
|
||||||
protected $Value;
|
protected $Value;
|
||||||
|
|
||||||
public function __construct(string $value)
|
public function __construct(string $value)
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,20 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class RechazoPrevio
|
class RechazoPrevio
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NumRegistroAcuerdoFacturacion')]
|
||||||
protected $NumRegistroAcuerdoFacturacion;
|
protected $NumRegistroAcuerdoFacturacion;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:FechaRegistroAcuerdoFacturacion')]
|
||||||
protected $FechaRegistroAcuerdoFacturacion;
|
protected $FechaRegistroAcuerdoFacturacion;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:MotivoRechazo')]
|
||||||
protected $MotivoRechazo;
|
protected $MotivoRechazo;
|
||||||
|
|
||||||
public function getNumRegistroAcuerdoFacturacion(): string
|
public function getNumRegistroAcuerdoFacturacion(): string
|
||||||
|
|
|
||||||
|
|
@ -2,33 +2,37 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class RegFactuSistemaFacturacion
|
class RegFactuSistemaFacturacion
|
||||||
{
|
{
|
||||||
/** @var PersonaFisicaJuridicaES */
|
/** @var Cabecera */
|
||||||
protected $ObligadoEmision;
|
#[SerializedName('sum:Cabecera')]
|
||||||
|
protected $Cabecera;
|
||||||
|
|
||||||
/** @var RegistroAlta */
|
/** @var RegistroFactura */
|
||||||
protected $RegistroAlta;
|
#[SerializedName('sum:RegistroFactura')]
|
||||||
|
protected $RegistroFactura;
|
||||||
|
|
||||||
public function getObligadoEmision(): PersonaFisicaJuridicaES
|
public function getCabecera(): Cabecera
|
||||||
{
|
{
|
||||||
return $this->ObligadoEmision;
|
return $this->Cabecera;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setObligadoEmision(PersonaFisicaJuridicaES $obligadoEmision): self
|
public function setCabecera(Cabecera $cabecera): self
|
||||||
{
|
{
|
||||||
$this->ObligadoEmision = $obligadoEmision;
|
$this->Cabecera = $cabecera;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getRegistroAlta(): RegistroAlta
|
public function getRegistroFactura(): RegistroFactura
|
||||||
{
|
{
|
||||||
return $this->RegistroAlta;
|
return $this->RegistroFactura;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setRegistroAlta(RegistroAlta $registroAlta): self
|
public function setRegistroFactura(RegistroFactura $registroFactura): self
|
||||||
{
|
{
|
||||||
$this->RegistroAlta = $registroAlta;
|
$this->RegistroFactura = $registroFactura;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2,48 +2,64 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class RegistroAlta
|
class RegistroAlta
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:IDVersion')]
|
||||||
protected $IDVersion;
|
protected $IDVersion;
|
||||||
|
|
||||||
/** @var IDFactura */
|
/** @var IDFactura */
|
||||||
|
#[SerializedName('sum1:IDFactura')]
|
||||||
protected $IDFactura;
|
protected $IDFactura;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NombreRazonEmisor')]
|
||||||
protected $NombreRazonEmisor;
|
protected $NombreRazonEmisor;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:TipoFactura')]
|
||||||
protected $TipoFactura;
|
protected $TipoFactura;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:DescripcionOperacion')]
|
||||||
protected $DescripcionOperacion;
|
protected $DescripcionOperacion;
|
||||||
|
|
||||||
/** @var Destinatarios */
|
/** @var Destinatarios */
|
||||||
|
#[SerializedName('sum1:Destinatarios')]
|
||||||
protected $Destinatarios;
|
protected $Destinatarios;
|
||||||
|
|
||||||
/** @var Desglose */
|
/** @var Desglose */
|
||||||
|
#[SerializedName('sum1:Desglose')]
|
||||||
protected $Desglose;
|
protected $Desglose;
|
||||||
|
|
||||||
/** @var float */
|
/** @var float */
|
||||||
|
#[SerializedName('sum1:CuotaTotal')]
|
||||||
protected $CuotaTotal;
|
protected $CuotaTotal;
|
||||||
|
|
||||||
/** @var float */
|
/** @var float */
|
||||||
|
#[SerializedName('sum1:ImporteTotal')]
|
||||||
protected $ImporteTotal;
|
protected $ImporteTotal;
|
||||||
|
|
||||||
/** @var Encadenamiento|null */
|
/** @var Encadenamiento|null */
|
||||||
|
#[SerializedName('sum1:Encadenamiento')]
|
||||||
protected $Encadenamiento;
|
protected $Encadenamiento;
|
||||||
|
|
||||||
/** @var SistemaInformatico */
|
/** @var SistemaInformatico */
|
||||||
|
#[SerializedName('sum1:SistemaInformatico')]
|
||||||
protected $SistemaInformatico;
|
protected $SistemaInformatico;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:FechaHoraHusoGenRegistro')]
|
||||||
protected $FechaHoraHusoGenRegistro;
|
protected $FechaHoraHusoGenRegistro;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:TipoHuella')]
|
||||||
protected $TipoHuella;
|
protected $TipoHuella;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Huella')]
|
||||||
protected $Huella;
|
protected $Huella;
|
||||||
|
|
||||||
public function getIDVersion(): string
|
public function getIDVersion(): string
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,12 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class RegistroAnterior extends IDFactura
|
class RegistroAnterior extends IDFactura
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Huella')]
|
||||||
protected $Huella;
|
protected $Huella;
|
||||||
|
|
||||||
public function getHuella(): string
|
public function getHuella(): string
|
||||||
|
|
|
||||||
|
|
@ -2,42 +2,56 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class RegistroFacturacionAnulacion
|
class RegistroFacturacionAnulacion
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:IDVersion')]
|
||||||
protected $IDVersion;
|
protected $IDVersion;
|
||||||
|
|
||||||
/** @var IDFacturaAR */
|
/** @var IDFacturaAR */
|
||||||
|
#[SerializedName('sum1:IDFactura')]
|
||||||
protected $IDFactura;
|
protected $IDFactura;
|
||||||
|
|
||||||
/** @var string|null Max length 70 characters */
|
/** @var string|null Max length 70 characters */
|
||||||
|
#[SerializedName('sum1:RefExterna')]
|
||||||
protected $RefExterna;
|
protected $RefExterna;
|
||||||
|
|
||||||
/** @var string Max length 120 characters */
|
/** @var string Max length 120 characters */
|
||||||
|
#[SerializedName('sum1:NombreRazonEmisor')]
|
||||||
protected $NombreRazonEmisor;
|
protected $NombreRazonEmisor;
|
||||||
|
|
||||||
/** @var string|null Max length 2000 characters */
|
/** @var string|null Max length 2000 characters */
|
||||||
|
#[SerializedName('sum1:MotivoAnulacion')]
|
||||||
protected $MotivoAnulacion;
|
protected $MotivoAnulacion;
|
||||||
|
|
||||||
/** @var SistemaInformatico */
|
/** @var SistemaInformatico */
|
||||||
|
#[SerializedName('sum1:SistemaInformatico')]
|
||||||
protected $SistemaInformatico;
|
protected $SistemaInformatico;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Huella')]
|
||||||
protected $Huella;
|
protected $Huella;
|
||||||
|
|
||||||
/** @var string|null */
|
/** @var string|null */
|
||||||
|
#[SerializedName('sum1:Signature')]
|
||||||
protected $Signature;
|
protected $Signature;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:FechaHoraHusoGenRegistro')]
|
||||||
protected $FechaHoraHusoGenRegistro;
|
protected $FechaHoraHusoGenRegistro;
|
||||||
|
|
||||||
/** @var string|null Max length 15 characters */
|
/** @var string|null Max length 15 characters */
|
||||||
|
#[SerializedName('sum1:NumRegistroAcuerdoFacturacion')]
|
||||||
protected $NumRegistroAcuerdoFacturacion;
|
protected $NumRegistroAcuerdoFacturacion;
|
||||||
|
|
||||||
/** @var string|null Max length 16 characters */
|
/** @var string|null Max length 16 characters */
|
||||||
|
#[SerializedName('sum1:IDAcuerdoSistemaInformatico')]
|
||||||
protected $IDAcuerdoSistemaInformatico;
|
protected $IDAcuerdoSistemaInformatico;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:TipoHuella')]
|
||||||
protected $TipoHuella;
|
protected $TipoHuella;
|
||||||
|
|
||||||
public function getIDVersion(): string
|
public function getIDVersion(): string
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,36 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class SistemaInformatico extends PersonaFisicaJuridicaES
|
class SistemaInformatico extends PersonaFisicaJuridicaES
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NombreSistemaInformatico')]
|
||||||
protected $NombreSistemaInformatico;
|
protected $NombreSistemaInformatico;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:IdSistemaInformatico')]
|
||||||
protected $IdSistemaInformatico;
|
protected $IdSistemaInformatico;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:Version')]
|
||||||
protected $Version;
|
protected $Version;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NumeroInstalacion')]
|
||||||
protected $NumeroInstalacion;
|
protected $NumeroInstalacion;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:TipoUsoPosibleSoloVerifactu')]
|
||||||
protected $TipoUsoPosibleSoloVerifactu;
|
protected $TipoUsoPosibleSoloVerifactu;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:TipoUsoPosibleMultiOT')]
|
||||||
protected $TipoUsoPosibleMultiOT;
|
protected $TipoUsoPosibleMultiOT;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:IndicadorMultiplesOT')]
|
||||||
protected $IndicadorMultiplesOT;
|
protected $IndicadorMultiplesOT;
|
||||||
|
|
||||||
public function getNombreSistemaInformatico(): string
|
public function getNombreSistemaInformatico(): string
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
|
class SoapBody
|
||||||
|
{
|
||||||
|
/** @var RegFactuSistemaFacturacion */
|
||||||
|
#[SerializedName('sum:RegFactuSistemaFacturacion')]
|
||||||
|
protected $RegFactuSistemaFacturacion;
|
||||||
|
|
||||||
|
public function getRegFactuSistemaFacturacion(): RegFactuSistemaFacturacion
|
||||||
|
{
|
||||||
|
return $this->RegFactuSistemaFacturacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setRegFactuSistemaFacturacion(RegFactuSistemaFacturacion $regFactuSistemaFacturacion): self
|
||||||
|
{
|
||||||
|
$this->RegFactuSistemaFacturacion = $regFactuSistemaFacturacion;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
|
class SoapEnvelope
|
||||||
|
{
|
||||||
|
/** @var SoapHeader */
|
||||||
|
#[SerializedName('soapenv:Header')]
|
||||||
|
protected $Header;
|
||||||
|
|
||||||
|
/** @var SoapBody */
|
||||||
|
#[SerializedName('soapenv:Body')]
|
||||||
|
protected $Body;
|
||||||
|
|
||||||
|
public function getHeader(): SoapHeader
|
||||||
|
{
|
||||||
|
return $this->Header;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setHeader(SoapHeader $header): self
|
||||||
|
{
|
||||||
|
$this->Header = $header;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBody(): SoapBody
|
||||||
|
{
|
||||||
|
return $this->Body;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setBody(SoapBody $body): self
|
||||||
|
{
|
||||||
|
$this->Body = $body;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
|
class SoapHeader
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
namespace App\Services\EDocument\Standards\Verifactu\Types;
|
||||||
|
|
||||||
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
|
||||||
class Subsanacion
|
class Subsanacion
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:NumRegistroAcuerdoFacturacion')]
|
||||||
protected $NumRegistroAcuerdoFacturacion;
|
protected $NumRegistroAcuerdoFacturacion;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
#[SerializedName('sum1:FechaRegistroAcuerdoFacturacion')]
|
||||||
protected $FechaRegistroAcuerdoFacturacion;
|
protected $FechaRegistroAcuerdoFacturacion;
|
||||||
|
|
||||||
public function getNumRegistroAcuerdoFacturacion(): string
|
public function getNumRegistroAcuerdoFacturacion(): string
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Feature\Verifactu;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Symfony\Component\Serializer\Serializer;
|
||||||
|
use Symfony\Component\Serializer\Encoder\XmlEncoder;
|
||||||
|
use Symfony\Component\Serializer\Encoder\JsonEncoder;
|
||||||
|
use Symfony\Component\PropertyInfo\PropertyInfoExtractor;
|
||||||
|
use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
|
||||||
|
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
|
||||||
|
use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
|
||||||
|
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
||||||
|
use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
|
||||||
|
use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor;
|
||||||
|
use App\Services\EDocument\Standards\Verifactu\Types\SoapEnvelope;
|
||||||
|
use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
|
||||||
|
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
|
||||||
|
use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
|
||||||
|
use App\Services\EDocument\Standards\Verifactu\Types\RegFactuSistemaFacturacion;
|
||||||
|
|
||||||
|
class SerializerTest extends TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
public function testDeserialize()
|
||||||
|
{
|
||||||
|
|
||||||
|
$document = file_get_contents(__DIR__ . '/invoice.xml');
|
||||||
|
$phpDocExtractor = new PhpDocExtractor();
|
||||||
|
$reflectionExtractor = new ReflectionExtractor();
|
||||||
|
|
||||||
|
// list of PropertyTypeExtractorInterface (any iterable)
|
||||||
|
$typeExtractors = [$reflectionExtractor,$phpDocExtractor];
|
||||||
|
|
||||||
|
// list of PropertyDescriptionExtractorInterface (any iterable)
|
||||||
|
$descriptionExtractors = [$phpDocExtractor];
|
||||||
|
|
||||||
|
// list of PropertyInitializableExtractorInterface (any iterable)
|
||||||
|
$propertyInitializableExtractors = [$reflectionExtractor];
|
||||||
|
|
||||||
|
$propertyInfo = new PropertyInfoExtractor(
|
||||||
|
$propertyInitializableExtractors,
|
||||||
|
$descriptionExtractors,
|
||||||
|
$typeExtractors,
|
||||||
|
);
|
||||||
|
|
||||||
|
$classMetadataFactory = new ClassMetadataFactory(new AttributeLoader());
|
||||||
|
|
||||||
|
$metadataAwareNameConverter = new MetadataAwareNameConverter($classMetadataFactory);
|
||||||
|
|
||||||
|
$normalizer = new ObjectNormalizer($classMetadataFactory, $metadataAwareNameConverter, null, $propertyInfo);
|
||||||
|
|
||||||
|
$normalizers = [new DateTimeNormalizer(), $normalizer, new ArrayDenormalizer()];
|
||||||
|
|
||||||
|
$encoders = [new XmlEncoder(['xml_format_output' => true,\Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer::SKIP_NULL_VALUES => true]), new JsonEncoder()];
|
||||||
|
|
||||||
|
$serializer = new Serializer($normalizers, $encoders);
|
||||||
|
|
||||||
|
$parent_class = SoapEnvelope::class;
|
||||||
|
|
||||||
|
$invoice = $serializer->deserialize($document, $parent_class, 'xml', [\Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer::SKIP_NULL_VALUES => true]);
|
||||||
|
|
||||||
|
// nlog($invoice);
|
||||||
|
echo(print_r($invoice, true));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
|
||||||
|
xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"
|
||||||
|
xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"
|
||||||
|
xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
|
||||||
|
<soapenv:Header />
|
||||||
|
<soapenv:Body>
|
||||||
|
<sum:RegFactuSistemaFacturacion>
|
||||||
|
<sum:Cabecera>
|
||||||
|
<sum1:ObligadoEmision>
|
||||||
|
<sum1:NombreRazon>XXXXX</sum1:NombreRazon>
|
||||||
|
<sum1:NIF>AAAA</sum1:NIF>
|
||||||
|
</sum1:ObligadoEmision>
|
||||||
|
</sum:Cabecera>
|
||||||
|
<sum:RegistroFactura>
|
||||||
|
<sum1:RegistroAlta>
|
||||||
|
<sum1:IDVersion>1.0</sum1:IDVersion>
|
||||||
|
<sum1:IDFactura>
|
||||||
|
<sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
|
||||||
|
<sum1:NumSerieFactura>12345</sum1:NumSerieFactura>
|
||||||
|
<sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
|
||||||
|
</sum1:IDFactura>
|
||||||
|
<sum1:NombreRazonEmisor>XXXXX</sum1:NombreRazonEmisor>
|
||||||
|
<sum1:TipoFactura>F1</sum1:TipoFactura>
|
||||||
|
<sum1:DescripcionOperacion>Descripc</sum1:DescripcionOperacion>
|
||||||
|
<sum1:Destinatarios>
|
||||||
|
<sum1:IDDestinatario>
|
||||||
|
<sum1:NombreRazon>YYYY</sum1:NombreRazon>
|
||||||
|
<sum1:NIF>BBBB</sum1:NIF>
|
||||||
|
</sum1:IDDestinatario>
|
||||||
|
</sum1:Destinatarios>
|
||||||
|
<sum1:Desglose>
|
||||||
|
<sum1:DetalleDesglose>
|
||||||
|
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
|
||||||
|
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
|
||||||
|
<sum1:TipoImpositivo>4</sum1:TipoImpositivo>
|
||||||
|
<sum1:BaseImponibleOimporteNoSujeto>10</sum1:BaseImponibleOimporteNoSujeto>
|
||||||
|
<sum1:CuotaRepercutida>0.4</sum1:CuotaRepercutida>
|
||||||
|
</sum1:DetalleDesglose>
|
||||||
|
<sum1:DetalleDesglose>
|
||||||
|
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
|
||||||
|
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
|
||||||
|
<sum1:TipoImpositivo>21</sum1:TipoImpositivo>
|
||||||
|
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
|
||||||
|
<sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
|
||||||
|
</sum1:DetalleDesglose>
|
||||||
|
</sum1:Desglose>
|
||||||
|
<sum1:CuotaTotal>21.4</sum1:CuotaTotal>
|
||||||
|
<sum1:ImporteTotal>131.4</sum1:ImporteTotal>
|
||||||
|
<sum1:Encadenamiento>
|
||||||
|
<sum1:RegistroAnterior>
|
||||||
|
<sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
|
||||||
|
<sum1:NumSerieFactura>44</sum1:NumSerieFactura>
|
||||||
|
<sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
|
||||||
|
<sum1:Huella>HuellaRegistroAnterior</sum1:Huella>
|
||||||
|
</sum1:RegistroAnterior>
|
||||||
|
</sum1:Encadenamiento>
|
||||||
|
<sum1:SistemaInformatico>
|
||||||
|
<sum1:NombreRazon>SSSS</sum1:NombreRazon>
|
||||||
|
<sum1:NIF>NNNN</sum1:NIF>
|
||||||
|
<sum1:NombreSistemaInformatico>NombreSistemaInformatico</sum1:NombreSistemaInformatico>
|
||||||
|
<sum1:IdSistemaInformatico>77</sum1:IdSistemaInformatico>
|
||||||
|
<sum1:Version>1.0.03</sum1:Version>
|
||||||
|
<sum1:NumeroInstalacion>383</sum1:NumeroInstalacion>
|
||||||
|
<sum1:TipoUsoPosibleSoloVerifactu>N</sum1:TipoUsoPosibleSoloVerifactu>
|
||||||
|
<sum1:TipoUsoPosibleMultiOT>S</sum1:TipoUsoPosibleMultiOT>
|
||||||
|
<sum1:IndicadorMultiplesOT>S</sum1:IndicadorMultiplesOT>
|
||||||
|
</sum1:SistemaInformatico>
|
||||||
|
<sum1:FechaHoraHusoGenRegistro>2024-09-13T19:20:30+01:00</sum1:FechaHoraHusoGenRegistro>
|
||||||
|
<sum1:TipoHuella>01</sum1:TipoHuella>
|
||||||
|
<sum1:Huella>Huella</sum1:Huella>
|
||||||
|
</sum1:RegistroAlta>
|
||||||
|
</sum:RegistroFactura>
|
||||||
|
</sum:RegFactuSistemaFacturacion>
|
||||||
|
</soapenv:Body>
|
||||||
|
</soapenv:Envelope>
|
||||||
Loading…
Reference in New Issue