New changes:

- Adapt facutrae template (from 3.2 to 3.2.2)
- Add fields in company
- Adapt tests to 6.8

Task #159227
This commit is contained in:
Juanjo Garcia 2023-10-04 11:24:12 +02:00
parent 74f0c2dd1b
commit 52a573fcc3
10 changed files with 523 additions and 269 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.facturae.es/Facturae/2009/v3.2/Facturae" targetNamespace="http://www.facturae.es/Facturae/2009/v3.2/Facturae" version="3.2">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
<xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.facturae.gob.es/formato/Versiones/Facturaev3_2_2.xml" targetNamespace="http://www.facturae.gob.es/formato/Versiones/Facturaev3_2_2.xml" version="3.2.2">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
<xs:element name="Facturae">
<xs:annotation>
<xs:documentation xml:lang="en"> Element ORIGIN of Facturae Invoices File.</xs:documentation>
@ -45,10 +45,10 @@
<!--XMLFacturae -->
<xs:complexType name="FileHeaderType">
<xs:sequence>
<xs:element name="SchemaVersion" type="SchemaVersionType" default="3.2">
<xs:element name="SchemaVersion" type="SchemaVersionType" default="3.2.2">
<xs:annotation>
<xs:documentation xml:lang="en"> Code indicating the XSD version used. There will be compatibility of versions. </xs:documentation>
<xs:documentation xml:lang="es"> Código que indica versión utilizada. Existirá compatibilidad de versiones. </xs:documentation>
<xs:documentation xml:lang="en"> Code indicating the XSD version used.</xs:documentation>
<xs:documentation xml:lang="es"> Código que indica versión utilizada.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Modality" type="ModalityType">
@ -60,7 +60,7 @@
<xs:element name="InvoiceIssuerType" type="InvoiceIssuerTypeType">
<xs:annotation>
<xs:documentation xml:lang="en"> Party who signs the invoice. If the value "TE" (Issuer type) is chosen, all sections of group ThirdParty must be filled in.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo Emisor Factura. Actor que firma la factura. Si toma el valor "TE" el grupo ThirdParty será obligatorio cumplimentarlo en todos sus apartados.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo Emisor Factura. Puede tomar 3 valores (EM, RE y TE), que se describen como “Proveedor (antes denominado emisor)”, “Destinatario (antes denominado cliente o receptor)” y “Tercero”, respectivamente. Si toma el valor "TE" el grupo ThirdParty será obligatorio cumplimentarlo en todos sus apartados.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ThirdParty" type="ThirdPartyType" minOccurs="0">
@ -88,14 +88,14 @@
<xs:sequence>
<xs:element name="TaxIdentification" type="TaxIdentificationType">
<xs:annotation>
<xs:documentation xml:lang="en"> Tax identification.</xs:documentation>
<xs:documentation xml:lang="en"> Tax identification.</xs:documentation>
<xs:documentation xml:lang="es"> Identificación fiscal.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice>
<xs:element name="LegalEntity" type="LegalEntityType">
<xs:annotation>
<xs:documentation xml:lang="en"> Legal entity and others.</xs:documentation>
<xs:documentation xml:lang="en"> Legal entity and others.</xs:documentation>
<xs:documentation xml:lang="es"> Persona jurídica y otras.</xs:documentation>
</xs:annotation>
</xs:element>
@ -130,14 +130,14 @@
</xs:element>
<xs:element name="TotalOutstandingAmount" type="AmountType">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of the amounts TotalOutstandingAmount of the File, to two decimal points. It is the amount which will be effectively debited deducted the payments on account made and non-inclusive of any amount withheld. </xs:documentation>
<xs:documentation xml:lang="es"> Total a pagar. Suma de los importes TotalOutstandingAmount del Fichero, con dos decimales. Es el importe que efectivamente se adeuda, una vez descontados los anticipos y sin tener en cuenta las retenciones.</xs:documentation>
<xs:documentation xml:lang="en"> Sum of the amounts TotalOutstandingAmount of the File, up to eight decimal points. It is the amount which will be effectively debited deducted the payments on account made and non-inclusive of any amount withheld. </xs:documentation>
<xs:documentation xml:lang="es"> Total a pagar. Suma de los importes TotalOutstandingAmount del Fichero, hasta ocho decimales. Es el importe que efectivamente se adeuda, una vez descontados los anticipos y sin tener en cuenta las retenciones.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalExecutableAmount" type="AmountType">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of the differences of the amounts (TotalOutstandingAmount and WithholdingAmount) of the file = Sum of the amounts TotalExecutableAmount, to two decimal points. It is the amount that is debited less any amount withheld as a performance guarantee.</xs:documentation>
<xs:documentation xml:lang="es"> Total a Ejecutar. Sumatorio de las diferencias de los importes (TotalOutstandingAmount y WithholdingAmount) del fichero = Sumatorio de los Importes TotalExecutableAmount, con dos decimales. Es el importe que se adeuda minorado en un posible importe retenido en garantía de cumplimientos contractuales.</xs:documentation>
<xs:documentation xml:lang="en"> Sum of the amounts TotalExecutableAmount, up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total a Ejecutar. Sumatorio de los Importes TotalExecutableAmount, hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvoiceCurrencyCode" type="CurrencyCodeType">
@ -168,6 +168,12 @@
<xs:documentation xml:lang="es"> Texto de la cláusula de cesión.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FactoringAssignmentDocument" type="FactoringAssignmentDocumentType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en"> Data to identify the online reference of the factoring documents</xs:documentation>
<xs:documentation xml:lang="es"> Datos para identificar la referencia electrónica de los documentos de cesión.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssigneeType">
@ -346,13 +352,13 @@
<xs:element name="InvoiceDocumentType" type="InvoiceDocumentTypeType">
<xs:annotation>
<xs:documentation xml:lang="en"> It can be a complete, abbreviated or self invoice, a payment on account, ticket... In this standard tickets are not considered.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo documento factura. Puede ser una factura completa, abreviada, autofactura, anticipo, tique… En este estándar no se va a contemplar el tique.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo documento factura. Puede tomar 3 valores (FC, FA y AF), que se describen como “Factura completa u ordinaria”, “Factura simplificada” y “Código sin uso desde la entrada en vigor del RD 1789/2010. Se mantiene por compatibilidad hacia atrás. Antes significaba autofactura. Para indicar que se trata de una factura expedida por el destinatario, se recomienda emplear el elemento InvoiceIssuerType empleando el valor RE, que significa Destinatario”, respectivamente.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvoiceClass" type="InvoiceClassType">
<xs:annotation>
<xs:documentation xml:lang="en"> This piece of information states the type of invoice, that is: "OO" - Original, "OR" - corrective, "OC" summary original, "CO" copy of the original, "CR" copy of the corrective, "CC" copy of the summary. A corrective invoice can only correct an original invoice, or credit an amount due to volume in a deferred period, or for any other reason allowed by the Tax Agency. When the “type” takes the value “OR” or “CR” (correctives), fields of group Corrective must be filled in.</xs:documentation>
<xs:documentation xml:lang="es"> Clase de Factura. Este dato refleja la clase de factura, a saber: "OO" - Original, "OR" - rectificativa, "OC" - original recapitulativa, "CO" - copia de la original, "CR" - copia de la rectificativa, "CC" - copia recapitulativa. Una factura rectificativa sólo puede rectificar a una factura original, o bien realizar un abono por volumen correspondiente a un periodo diferido, o algún otro motivo autorizado por la Agencia Tributaria. Cuando la "clase" se corresponda con alguno de los valores "OR" ó "CR" (rectificativas), deberán estar cumplimentados los campos del grupo Corrective</xs:documentation>
<xs:documentation xml:lang="es"> Clase de Factura. Puede tomar 6 valores (OO, OR, OC, CO, CR y CC), que se describen como “Original”, “Original rectificativa”, “Original recapitulativa”, “Duplicado original”, “Duplicado rectificativa” y “Duplicado recapitulativa”.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Corrective" type="CorrectiveType" minOccurs="0">
@ -403,8 +409,8 @@
</xs:element>
<xs:element name="TaxCurrencyCode" type="CurrencyCodeType">
<xs:annotation>
<xs:documentation xml:lang="en"> ISO 4217:2001 Alpha-3 code of the currency in which the tax is paid. It will always be in EURO.</xs:documentation>
<xs:documentation xml:lang="es"> Moneda del Impuesto. Código ISO 4217:2001 Alpha-3 de la moneda en la que se liquida el impuesto. Siempre en Euros. </xs:documentation>
<xs:documentation xml:lang="en"> ISO 4217:2001 Alpha-3 code of the currency in which the tax is paid. </xs:documentation>
<xs:documentation xml:lang="es"> Moneda del Impuesto. Código ISO 4217:2001 Alpha-3 de la moneda en la que se liquida el impuesto. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LanguageName" type="LanguageCodeType">
@ -413,6 +419,30 @@
<xs:documentation xml:lang="es"> Lengua. Código ISO 639-1:2002 Alpha-2 de la lengua en la que se emite el documento.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvoiceDescription" type="TextMax2500Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Invoice's general description.</xs:documentation>
<xs:documentation xml:lang="es"> Descripción general de la factura.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReceiverTransactionReference" type="TextMax20Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Order reference.</xs:documentation>
<xs:documentation xml:lang="es"> Referencia de pedido.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FileReference" type="TextMax20Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Reference of the contract's file.</xs:documentation>
<xs:documentation xml:lang="es"> Código del expediente de contratación.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReceiverContractReference" type="TextMax20Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Reference of the receiver's contract.</xs:documentation>
<xs:documentation xml:lang="es"> Referencia del contrato del receptor.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ItemsType">
@ -427,10 +457,10 @@
</xs:complexType>
<xs:complexType name="ExchangeRateDetailsType">
<xs:sequence>
<xs:element name="ExchangeRate" type="DoubleTwoDecimalType">
<xs:element name="ExchangeRate" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Art. 79.eleven of Law 37/92 of 28th December on the Value Added Tax. Always to two decimal points. Seller rate fixed by Banco de España in force when the chargeable event occurs.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo de Cambio. Artº 79.once de la Ley 37/92 de 28 de diciembre del Impuesto sobre el Valor Añadido. Siempre con dos decimales. Cambio vendedor fijado por el Banco de España y vigente en el momento del devengo.</xs:documentation>
<xs:documentation xml:lang="en"> Art. 79.eleven of Law 37/92 of 28th December on the Value Added Tax. Seller rate fixed by Banco de España in force when the chargeable event occurs. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Tipo de Cambio. Artº 79.once de la Ley 37/92 de 28 de diciembre del Impuesto sobre el Valor Añadido. Cambio vendedor fijado por el Banco de España y vigente en el momento del devengo. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ExchangeRateDate" type="xs:date">
@ -492,6 +522,12 @@
<xs:documentation xml:lang="es"> Ampliación motivo de la rectificación. Descripción de las aclaraciones y motivos de la factura rectificativa. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvoiceIssueDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Date on which the corrective invoice is issued. Mandatory where "CorrectionMethod" takes the value "01" or "02"</xs:documentation>
<xs:documentation xml:lang="es"> Fecha de expedición de la factura rectificada. Valor obligatorio en el supuesto de que el valor de CorrectionMethod sea "01" o "02"</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Invoices - Invoice - InvoiceIssueData -->
@ -506,7 +542,7 @@
<xs:element name="PlaceOfIssueDescription" type="TextMax20Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Name of the town.</xs:documentation>
<xs:documentation xml:lang="es"> Texto del nombre de la plaza.</xs:documentation>
<xs:documentation xml:lang="es"> Texto del nombre del lugar.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -604,16 +640,16 @@
<xs:documentation xml:lang="es"> Unidad en que está referida la Cantidad. Recomendación 20, Revisión 4 y Recomendación 21, Revisión 5 de UN/CEFACT. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="UnitPriceWithoutTax" type="DoubleSixDecimalType">
<xs:element name="UnitPriceWithoutTax" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Unit price of the goods or service rendered, in the currency indicated in the Header of the Invoice. Always without Taxes. Always with six decimal places. </xs:documentation>
<xs:documentation xml:lang="es"> Precio de la unidad de bien o servicio servido/prestado, en la moneda indicada en la Cabecera de la Factura. Siempre sin Impuestos. Siempre con seis decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Unit price of the goods or service rendered, in the currency indicated in the Header of the Invoice. Always without Taxes. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Precio de la unidad de bien o servicio servido/prestado, en la moneda indicada en la Cabecera de la Factura. Siempre sin Impuestos. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalCost" type="DoubleSixDecimalType">
<xs:element name="TotalCost" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: Quantity x UnitPriceWithoutTax Always to six decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Coste Total. Resultado: Quantity x UnitPriceWithoutTax Siempre con seis decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result: Quantity x UnitPriceWithoutTax. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Coste Total. Resultado: Quantity x UnitPriceWithoutTax. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DiscountsAndRebates" type="DiscountsAndRebatesType" minOccurs="0">
@ -628,23 +664,23 @@
<xs:documentation xml:lang="es"> Cargos. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GrossAmount" type="DoubleSixDecimalType">
<xs:element name="GrossAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: TotalCost - DiscountAmount + ChargeAmount Always to six decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe bruto. Resultado: TotalCost - DiscountAmount + ChargeAmount Siempre con seis decimales.</xs:documentation>
<xs:documentation xml:lang="en"> Result: TotalCost - DiscountAmount + ChargeAmount. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe bruto. Resultado: TotalCost - DiscountAmount + ChargeAmount. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxesWithheld" type="TaxesType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> The “total amount” element of this block item level is provided only for informative purposes.</xs:documentation>
<xs:documentation xml:lang="es"> Impuestos retenidos. El elemento "importe total" de este bloque - nivel de detalle - se considerará sólo a efectos informativos. </xs:documentation>
<xs:documentation xml:lang="es"> Impuestos retenidos. Es una secuencia de elementos, cada uno de los cuales contiene la información de un impuesto retenido. </xs:documentation>
</xs:annotation>
</xs:element>
<!-- <xs:element name="TaxesOutputs" type="TaxesType"> -->
<xs:element name="TaxesOutputs">
<xs:annotation>
<xs:documentation xml:lang="en"> The “total amount” element of this block item level is provided only for informative purposes. </xs:documentation>
<xs:documentation xml:lang="es"> Impuestos repercutidos. El elemento "importe total" de este bloque - nivel de detalle - se considerará sólo a efectos informativos. </xs:documentation>
<xs:documentation xml:lang="es"> Impuestos repercutidos. Es una secuencia de elementos, cada uno de los cuales contiene la información de un impuesto repercutido. </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
@ -739,7 +775,7 @@
<xs:element name="SpecialTaxableEventReason" type="TextMax2500Type">
<xs:annotation>
<xs:documentation xml:lang="en"> Free text to explain why a special code applies.</xs:documentation>
<xs:documentation xml:lang="es"> Justificación de la fiscalidad especial que se aplica en esta operación. </xs:documentation>
<xs:documentation xml:lang="es"> Justificación de la fiscalidad especial que se aplica en esta operación. Como este elemento se define a nivel de línea, no de impuesto, es necesario especificar a qué impuesto se refiere. Para establecer esta relación, al comienzo de este elemento se indicará el código del impuesto al que corresponde según la lista de código de impuestos del tipo “TaxTypeCodeType”. Si hubiera varios impuestos con el código “05” (“Otro”), se añadirán los valores de sus campos “TaxRate”, “TaxableBase” y “TaxAmount”, en este orden, hasta que sea posible discernirlos; es decir: 05 [valor “TaxRate”] [valor “TaxableBase”] [valor “TaxAmount”]… </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -747,64 +783,64 @@
<!-- Invoices - Invoice - Items - InvoiceTotals - -->
<xs:complexType name="InvoiceTotalsType">
<xs:sequence>
<xs:element name="TotalGrossAmount" type="DoubleTwoDecimalType">
<xs:element name="TotalGrossAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> (TGA) Total sum of the gross amounts of the invoice items. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total Importe Bruto. Suma total de importes brutos de los detalles de la factura. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> (TGA) Total sum of the gross amounts of the invoice items. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total Importe Bruto. Suma total de importes brutos de los detalles de la factura. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GeneralDiscounts" type="DiscountsAndRebatesType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Discounts on the Total Gross Amount. There will be as many blocks of fields GeneralDiscounts as there are different discount types applied to the same invoice. When there are different taxable bases, they will be applied proportionally, the final round-up to the nearest cent being carried out on the tax type of greatest value. </xs:documentation>
<xs:documentation xml:lang="es"> Descuentos sobre el Total Importe Bruto. Habrá tantos bloques de campos GeneralDiscounts como clases de descuentos diferentes se apliquen, a nivel de factura. Cuando existan diversas bases imponibles, se aplicarán proporcionalmente, efectúandose el redondeo final al céntimo sobre el tipo impositivo de mayor valor. </xs:documentation>
<xs:documentation xml:lang="en"> Discounts on the Total Gross Amount. There will be as many blocks of fields GeneralDiscounts as there are different discount types applied to the same invoice. </xs:documentation>
<xs:documentation xml:lang="es"> Descuentos sobre el Total Importe Bruto. Habrá tantos bloques de campos GeneralDiscounts como clases de descuentos diferentes se apliquen a nivel de factura. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GeneralSurcharges" type="ChargesType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Charges on the Total Gross Amount. There will be as many blocks of fields GeneralSurcharges as types of charges/surcharges are applied to the invoice. When there are different taxable bases, they will be applied proportionally, the final round-up to the nearest cent being carried out on the tax type of greatest value.</xs:documentation>
<xs:documentation xml:lang="es"> Cargos sobre el Total Importe Bruto. Habrá tantos bloques de campos GeneralSurcharges como clases de cargos/recargos se apliquen, a nivel de factura. Cuando existan diversas bases imponibles, se aplicarán proporcionalmente, efectuándose el redondeo final al céntimo sobre el tipo impositivo de mayor valor. </xs:documentation>
<xs:documentation xml:lang="en"> Charges on the Total Gross Amount. There will be as many blocks of fields GeneralSurcharges as types of charges/surcharges are applied to the invoice. </xs:documentation>
<xs:documentation xml:lang="es"> Cargos sobre el Total Importe Bruto. Habrá tantos bloques de campos GeneralSurcharges como clases de cargos/recargos se apliquen, a nivel de factura. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalGeneralDiscounts" type="DoubleTwoDecimalType" minOccurs="0">
<xs:element name="TotalGeneralDiscounts" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of different fields GeneralDiscounts. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total general de descuentos. Sumatorio de los diferentes campos GeneralDiscounts Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Sum of different fields GeneralDiscounts. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total general de descuentos. Sumatorio de los importes de los diferentes campos GeneralDiscounts. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalGeneralSurcharges" type="DoubleTwoDecimalType" minOccurs="0">
<xs:element name="TotalGeneralSurcharges" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of different fields GeneralSurcharges Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total general de cargos. Sumatorio de los diferentes campos GeneralSurcharges Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Sum of different fields GeneralSurcharges. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total general de cargos. Sumatorio de los importes de los diferentes campos GeneralSurcharges. Hasta ocho decimales</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalGrossAmountBeforeTaxes" type="DoubleTwoDecimalType">
<xs:element name="TotalGrossAmountBeforeTaxes" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: TotalGrossAmount - TotalGeneralDiscounts + TotalGeneralSurcharges Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total importe bruto antes de impuestos. Resultado de: TotalGrossAmount - TotalGeneralDiscounts + TotalGeneralSurcharges Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result: TotalGrossAmount - TotalGeneralDiscounts + TotalGeneralSurcharges. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total importe bruto antes de impuestos. Resultado de: TotalGrossAmount - TotalGeneralDiscounts + TotalGeneralSurcharges. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalTaxOutputs" type="DoubleTwoDecimalType">
<xs:element name="TotalTaxOutputs" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of different fields Tax Amounts + Total Equivalence Surcharges. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total impuestos repercutidos. Sumatorio de las diferentes Cuotas + Total Recargos de Equivalencia. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Sum of different fields Tax Amounts + Total Equivalence Surcharges. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total impuestos repercutidos. Sumatorio de todas Cuotas y Recargos de Equivalencia. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalTaxesWithheld" type="DoubleTwoDecimalType">
<xs:element name="TotalTaxesWithheld" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of different fields TaxAmount. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total impuestos retenidos. Sumatorio de los diferentes TaxAmount. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Sum of different fields TaxAmount. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total impuestos retenidos. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvoiceTotal" type="DoubleTwoDecimalType">
<xs:element name="InvoiceTotal" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: TotalGrossAmountBeforeTaxes + TotalTaxOutputs - TotalTaxesWithheld. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total factura. Resultado de: TotalGrossAmountBeforeTaxes + TotalTaxOutputs - TotalTaxesWithheld. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result: TotalGrossAmountBeforeTaxes + TotalTaxOutputs - TotalTaxesWithheld. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total factura. Resultado de: TotalGrossAmountBeforeTaxes + TotalTaxOutputs - TotalTaxesWithheld. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Subsidies" type="SubsidiesType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Subsidies, grants or aids for acquisition of certain goods granted by General government.</xs:documentation>
<xs:documentation xml:lang="es"> Subvenciones por adquisición de determinados bienes. Administraciones Públicas. </xs:documentation>
<xs:documentation xml:lang="es"> Subvenciones por adquisición de determinados bienes. Habrá tantos bloques de campos Subsidies como subvenciones se apliquen. En el caso de que la subvención se aplique solo a parte de las operaciones facturadas, en el subelemento SubsidyDescription se especificará también a qué operación corresponde. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentsOnAccount" type="PaymentsOnAccountType" minOccurs="0">
@ -822,37 +858,43 @@
<xs:element name="TotalFinancialExpenses" type="DoubleTwoDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Total de gastos financieros. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="es"> Total de gastos financieros. Siempre con dos decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalOutstandingAmount" type="DoubleTwoDecimalType">
<xs:element name="TotalOutstandingAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: InvoiceTotal - (SubsidyAmount + TotalPaymentsOnAccount). Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total a pagar. Resultado: InvoiceTotal - (SubsidyAmount + TotalPaymentsOnAccount). Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result: InvoiceTotal - (SubsidyAmount + TotalPaymentsOnAccount). Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total a pagar. Resultado de: InvoiceTotal - (Total subvenciones + TotalPaymentsOnAccount). En Total subvenciones se suman las cantidades especificadas en los bloques Subsidies. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalPaymentsOnAccount" type="DoubleTwoDecimalType" minOccurs="0">
<xs:element name="TotalPaymentsOnAccount" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Sum of the fields PaymentOnAccountAmount. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total de anticipos. Sumatorio de los campos PaymentOnAccountAmount. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Sum of the fields PaymentOnAccountAmount. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total de anticipos. Sumatorio de los campos PaymentOnAccountAmount. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AmountsWithheld" type="AmountsWithheldType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Amounts withheld by the payer subject to the normal fulfilment of the transaction. </xs:documentation>
<xs:documentation xml:lang="es"> Retenciones. Cantidades que retiene el pagador hasta el buen fin de la operación.</xs:documentation>
<xs:documentation xml:lang="es"> Cantidades que retiene el pagador hasta el buen fin de la operación.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalExecutableAmount" type="DoubleTwoDecimalType">
<xs:element name="TotalExecutableAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Result: TotalOutstandingAmount - WithholdingAmount + Reimbursable expenses + Financial expenses. Always to two decimal points</xs:documentation>
<xs:documentation xml:lang="es"> Total a ejecutar. Resultado de: Total a pagar - Importe a retener sobre el total a pagar + Suplidos + Gastos financieros. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result: TotalOutstandingAmount - WithholdingAmount - PaymentInKindAmount + Reimbursable expenses + Financial expenses. Up to eight points</xs:documentation>
<xs:documentation xml:lang="es"> Total a ejecutar. Resultado de: TotalOutstandingAmount - WithholdingAmount - PaymentInKindAmount + TotalReimbursableExpenses + TotalFinancialExpenses. En Total de Cantidades retenidas se sumaran las cantidades especificadas en los bloques AmountsWithheld. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalReimbursableExpenses" type="DoubleTwoDecimalType" minOccurs="0">
<xs:element name="TotalReimbursableExpenses" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total de suplidos. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Total de suplidos. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentInKind" type="PaymentInKindType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Payment in kind.</xs:documentation>
<xs:documentation xml:lang="es"> Pagos en especie.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -876,16 +918,16 @@
<xs:documentation xml:lang="es"> Detalle de la Subvención aplicada.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SubsidyRate" type="DoubleFourDecimalType" minOccurs="0">
<xs:element name="SubsidyRate" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate applied to the Invoice Total. Percentages are reflected to four decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje de la Subvención. Porcentaje a aplicar al Total Factura. Los porcentajes se reflejan con 4 decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate applied to the Invoice Total. Percentages are reflected up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje de la Subvención. Porcentaje a aplicar al Total Factura. Los porcentajes se reflejan con hasta 8 decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SubsidyAmount" type="DoubleTwoDecimalType">
<xs:element name="SubsidyAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount to be applied to the Invoice Total. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Importe de la Subvención. Importe a aplicar al Total Factura. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount to be applied to the Invoice Total. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Importe de la Subvención. Importe a aplicar al Total Factura. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -909,10 +951,10 @@
<xs:documentation xml:lang="es"> Fecha/s del/os anticipo/s. ISO 8601:2004. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentOnAccountAmount" type="DoubleTwoDecimalType">
<xs:element name="PaymentOnAccountAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount of each payment on account. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Importe de cada anticipo. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount of each payment on account. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Importe de cada anticipo. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -926,16 +968,16 @@
<xs:documentation xml:lang="es"> Motivo de Retención. Descripción de la finalidad de la Retención.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WithholdingRate" type="DoubleFourDecimalType" minOccurs="0">
<xs:element name="WithholdingRate" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate withheld on Payment Total. Percentages are reflected always to four decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje de Retención. Porcentaje sobre el Total a Pagar. Los porcentajes se reflejan con 4 decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate withheld on Payment Total. Percentages are reflected up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje de Retención. Porcentaje sobre el Total a Pagar. Los porcentajes se reflejan con hasta 8 decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WithholdingAmount" type="DoubleTwoDecimalType">
<xs:element name="WithholdingAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount to be withheld on Payment Total. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe de Retención. Importe a retener sobre el Total a Pagar. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount to be withheld on Payment Total. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe de Retención. Importe a retener sobre el Total a Pagar. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -958,7 +1000,7 @@
<xs:element name="IssueDate" type="xs:date" minOccurs="0"/>
<xs:element name="InvoiceNumber" type="TextMax20Type" minOccurs="0"/>
<xs:element name="InvoiceSeriesCode" type="TextMax20Type" minOccurs="0"/>
<xs:element name="ReimbursableExpensesAmount" type="DoubleTwoDecimalType"/>
<xs:element name="ReimbursableExpensesAmount" type="DoubleUpToEightDecimalType"/>
</xs:sequence>
</xs:complexType>
<!-- Invoices - Invoice - PaymentDetails -->
@ -1035,8 +1077,8 @@
<xs:sequence>
<xs:element name="LegalReference" type="TextMax250Type" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en"> Established legal Literals: Donations, Subsidies, Irrevocability of the subsidy, Please make payment in the currency agreed, Resident providers, Directive 77/388/CEE of 17 May 1977, Sixth Council Directive on the harmonization of VAT provisions, Triangular Transaction, Chain Transaction, Special scheme, Article 26 of Directive 77/388/EEC, Special scheme for travel agents, Waiver of the exemption on the Special VAT Scheme (article 163.sexies. cinco of Law 36/2006 of 29th November on Measures to prevent tax evasion), etc. </xs:documentation>
<xs:documentation xml:lang="es"> Literales legales establecidos: Donaciones, Subvenciones, Carácter irreversible subvenciones, Atención pago moneda prevista, Proveedores residentes, directiva 77/388/CEE de 17 de Mayo, Sexta Directiva del Consejo en materia de IVA, Operación Triangular, Operación en Cadena, Régimen Especial, Artº 26 de la Directiva 77/388/CEE, Agencias de Viajes, Renuncia a la exención en régimen especial de IVA (artículo 163.sexies cinco de la Ley 36/2006 de 29 de noviembre de medidas para la prevención del fraude fiscal), etc.</xs:documentation>
<xs:documentation xml:lang="en"> Established legal Literals: Exempt transaction pursuant to Article [fill in with the relevant Article number] of the Law No 37/1992 of 28 December 1992 on value added tax;Means of transport [fill in with a brief description, for example, Jaguar S-Type automobile] the date of first start-up [fill in with the date] and the distance covered or hours of navigation [fill in with the distance covered or hours of navigation, for example, 5,900 km or 48 hours];Invoiced by the recipient;Taxpayer reversal;Special scheme for travel agencies;Special scheme of second-hand goods;Special scheme of works of art;Special scheme of antiques and collectibles;Special scheme on cash basis. NOTE: The ability to fill this field with any alphanumeric string up to 250 characters entered by the user in case new legal literals are established in the future shall be allowed. </xs:documentation>
<xs:documentation xml:lang="es"> Textos literales que deben figurar obligatoriamente en determinadas facturas. Los textos establecidos en la legislación vigente son: Operación exenta por aplicación del artículo [indicar el artículo] de la Ley 37/1992, de 28 de diciembre, del Impuesto sobre el Valor Añadido; Medio de transporte [describir el medio, por ejemplo automóvil turismo Seat Ibiza TDI 2.0] fecha 1ª puesta en servicio [indicar la fecha] distancias/horas recorridas [indicar la distancia o las horas, por ejemplo, 5.900 km o 48 horas]; Facturación por el destinatario;Inversión del sujeto pasivo; Régimen especial de las agencias de viajes; Régimen especial de los bienes usados; Régimen especial de los objetos de arte; Régimen especial de las antigüedades y objetos de colección; Régimen especial del criterio de caja. NOTA 1: Salvo el texto “Inversión del sujeto pasivo”, los demás se refieren no a la factura en su conjunto, sino a una determinada operación (línea) de la factura. Se deberá especificar a cuál corresponde. NOTA 2: Debe permitirse la posibilidad de cumplimentar este campo con cualquier cadena alfanumérica de hasta 250 caracteres introducida por el usuario por si se establecen nuevos textos literales obligatorios en el futuro. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -1142,12 +1184,13 @@
<xs:enumeration value="jpg"/>
<xs:enumeration value="bmp"/>
<xs:enumeration value="tiff"/>
<xs:enumeration value="html"/>
</xs:restriction>
</xs:simpleType>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////// -->
<!--Complex Types reusados /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<!--Complex Types /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<xs:complexType name="TaxIdentificationType">
<xs:sequence>
@ -1242,7 +1285,7 @@
</xs:element>
<xs:element name="OverseasAddress" type="OverseasAddressType">
<xs:annotation>
<xs:documentation xml:lang="en"> Overseas address.</xs:documentation>
<xs:documentation xml:lang="en"> Overseas address.</xs:documentation>
<xs:documentation xml:lang="es"> Dirección en el extranjero.</xs:documentation>
</xs:annotation>
</xs:element>
@ -1427,7 +1470,7 @@
</xs:complexType>
<xs:complexType name="AdministrativeCentreType">
<xs:sequence>
<xs:element name="CentreCode" type="TextMax35Type" minOccurs="0">
<xs:element name="CentreCode" type="TextMax10Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Code of the issuing department.</xs:documentation>
<xs:documentation xml:lang="es"> Número del Departamento Emisor.</xs:documentation>
@ -1515,16 +1558,16 @@
<xs:documentation xml:lang="es"> Concepto por el que se aplica descuento.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DiscountRate" type="DoubleFourDecimalType" minOccurs="0">
<xs:element name="DiscountRate" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate to be applied to the Total Gross Amount (TGA). Percentages are reflected to 4 decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a descontar del Total Importe Bruto (TIB). Los porcentajes se reflejan con 4 decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate to be applied to the Total Gross Amount (TGA). Percentages are reflected up to 8 decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a descontar del Total Importe Bruto (TIB). Los porcentajes se reflejan con hasta 8 decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DiscountAmount" type="DoubleSixDecimalType">
<xs:element name="DiscountAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount to be discounted from the TGA. Always to six decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe a descontar sobre el TIB. Siempre con seis decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount to be discounted from the TGA. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Importe a descontar sobre el TIB. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -1547,16 +1590,16 @@
<xs:documentation xml:lang="es"> Concepto por el que se aplica el cargo.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChargeRate" type="DoubleFourDecimalType" minOccurs="0">
<xs:element name="ChargeRate" type="DoubleUpToEightDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate to be charged to the TGA. Percentages are reflected to 4 decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a cargar sobre el TIB. Los porcentajes se reflejan con 4 decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate to be charged to the TGA. Percentages are reflected up to 8 decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a cargar sobre el TIB. Los porcentajes se reflejan con hasta 8 decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChargeAmount" type="DoubleSixDecimalType">
<xs:element name="ChargeAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount to be charged to the TGA. Always to six decimal places. </xs:documentation>
<xs:documentation xml:lang="es"> Importe a cargar sobre el TIB. Siempre con seis decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount to be charged to the TGA. Always up to eight decimal places. </xs:documentation>
<xs:documentation xml:lang="es"> Importe a cargar sobre el TIB. Hasta 8 decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -1576,25 +1619,25 @@
<xs:element name="TaxTypeCode" type="TaxTypeCodeType">
<xs:annotation>
<xs:documentation xml:lang="en"> Name of the chargeable tax or the tax applicable to the amounts withheld. When appropriate, the reason why it is “not liable for tax” or “exempt from tax” must be stated in the element “Additional information”. </xs:documentation>
<xs:documentation xml:lang="es"> Clase de impuesto. Concepto fiscal por el que se tributa o retención a cuenta. Cuando haya lugar, debe recogerse en el elemento "observaciones" el motivo por lo que este impuesto está "no sujeto" o "exento". </xs:documentation>
<xs:documentation xml:lang="es"> Identificador del impuesto por cuenta del cual se retiene. En caso de que el impuesto no corresponda a ninguno de los relacionados en “TaxTypeCodeType”, utilícese el código “05”, definido como “otro”. En este caso, se empleará el elemento “AditionalLineItemInformation” para identificar el impuesto, donde se incluirá, para ello, la siguiente cadena de caracteres: 05 = [nombre del impuesto]. Si hubiera varios impuestos con el código “05”, se añadirán los valores de sus campos “TaxRate”, “TaxableBase” y “TaxAmount”, en este orden, hasta que sea posible discernirlos; es decir: 05 [valor “TaxRate”] [valor “TaxableBase”] [valor “TaxAmount”] = [nombre del impuesto]. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxRate" type="DoubleTwoDecimalType">
<xs:element name="TaxRate" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate to be applied in each case. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a aplicar en cada caso. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate to be applied in each case. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Tipo impositivo. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxableBase" type="AmountType">
<xs:annotation>
<xs:documentation xml:lang="en"> This is the taxable base at market price = Total Gross Amount + Surcharges Global Discounts/invoice, for each type and rate. Taxable base of the taxes. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Base imponible a precio de mercado = Total Importe Bruto + Recargos - Descuentos Globales/factura, por cada clase y porcentaje. Base imponible de los impuestos. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="es"> Base de retención. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxAmount" type="AmountType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount resulting from applying the corresponding rate to the taxable base. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Cuota. Importe resultante de aplicar a la Base Imponible el porcentaje correspondiente. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="es"> Importe de la retención. Siempre con dos decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -1604,49 +1647,49 @@
<xs:element name="TaxTypeCode" type="TaxTypeCodeType">
<xs:annotation>
<xs:documentation xml:lang="en"> Name of the chargeable tax or the tax applicable to the amounts withheld. When appropriate, the reason why it is “not liable for tax” or “exempt from tax” must be stated in the element “Additional information”. </xs:documentation>
<xs:documentation xml:lang="es"> Clase de impuesto. Concepto Fiscal por el que se tributa o retención a cuenta. Cuando haya lugar, debe recogerse en el elemento "observaciones" el motivo por lo que este impuesto está "no sujeto" o "exento". </xs:documentation>
<xs:documentation xml:lang="es"> Identificador del impuesto por el que se tributa. En caso de que el impuesto no corresponda a ninguno de los relacionados en “TaxTypeCodeType”, utilícese el código “05”, definido como “otro”. En este caso, se empleará el elemento “AditionalLineItemInformation” para identificar el impuesto, donde se incluirá, para ello, la siguiente cadena de caracteres: 05 = [nombre del impuesto]. Si hubiera varios impuestos con el código “05”, se añadirán los valores de sus campos “TaxRate”, “TaxableBase” y “TaxAmount”, en este orden, hasta que sea posible discernirlos; es decir: 05 [valor “TaxRate”] [valor “TaxableBase”] [valor “TaxAmount”] = [nombre del impuesto]. Cuando la operación esté exenta del impuesto o se encuentre en régimen suspensivo, deberá indicarse el motivo en el elemento “AditionalLineItemInformation”. Este elemento se define a nivel de línea, no de impuesto; por ello, para identificar cuál es el impuesto del que está exenta, el motivo irá precedido del código del impuesto; por ejemplo: 07 exenta por…. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxRate" type="DoubleTwoDecimalType">
<xs:element name="TaxRate" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Rate to be applied in each case. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Porcentaje a aplicar en cada caso. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Rate to be applied in each case. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Tipo impositivo. Téngase en cuenta que no siempre son porcentajes. La legislación del impuesto correspondiente permitirá identificar las unidades y dimensiones del tipo impositivo. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxableBase" type="AmountType">
<xs:annotation>
<xs:documentation xml:lang="en"> Total Gross Amount + Surcharges Global Discounts/invoice, for each type, rate and Equivalence Surcharge. Taxable base of the taxes. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Base imponible = Total Importe Bruto + Recargos - Descuentos Globales/factura, por cada clase, porcentaje y recargo de equivalencia. Base imponible de los impuestos. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Total Gross Amount + Surcharges Global Discounts/invoice, for each type, rate and Equivalence Surcharge. Taxable base of the taxes. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Base imponible. La legislación del impuesto correspondiente determina cómo se calcula la base imponible.Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TaxAmount" type="AmountType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount resulting from applying the corresponding rate to the taxable base. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Cuota. Importe resultante de aplicar a la Base Imponible el porcentaje correspondiente. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Amount resulting from applying the corresponding rate to the taxable base. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Cuota. La legislación del impuesto correspondiente determina cómo se calcula la cuota. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SpecialTaxableBase" type="AmountType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Taxable base at cost price = Total Gross Amount + Surcharges Global discounts/invoice, for each type and rate (article 3.5 of Law 36/2006). Taxable base of the taxes at cost price. Always to two decimal points. Where used, it is entered into the books, but taxable base at market price must also be provided for informational purposes only. </xs:documentation>
<xs:documentation xml:lang="es"> Base imponible especial (artículo tercero punto 5 Ley 36/2006) = Total Importe Bruto + Recargos - Descuentos Globales/factura, por cada clase y porcentaje. Base imponible a precio de coste de los impuestos. Siempre con dos decimales. Si se rellena también hay que rellenar la base imponible a precio de mercado a efectos informativos pero la que se contabiliza es ésta.</xs:documentation>
<xs:documentation xml:lang="en"> Taxable base at cost price = Total Gross Amount + Surcharges Global discounts/invoice, for each type and rate (article 3.5 of Law 36/2006). Taxable base of the taxes at cost price. Up to eight decimal points. Where used, it is entered into the books, but taxable base at market price must also be provided for informational purposes only. </xs:documentation>
<xs:documentation xml:lang="es"> Base imponible del régimen especial del grupo de entidades (Arts. 163 quinquies a 163 nonies de la Ley 37/1992, de 28 de diciembre, del IVA). En el caso de aplicar el régimen especial habrán de consignar en factura no sólo la base conforme al coste de adquisición de los bienes y servicios sino, además, la base que hubiera correspondido tener en cuenta de no aplicarse el régimen especial. Es decir: deben consignarse dos bases distintas para la misma operación aunque el cálculo de la cuota sólo debe efectuarse respecto de la base imponible del régimen especial. En el caso en el que se expida factura con repercusión del impuesto a pesar de tratarse de una de las operaciones exentas de las reguladas en el artículo 20.Uno de la Ley 37/1992, de 28 de diciembre, se tiene que especificar que se está repercutiendo el impuesto porque se ha renunciado a la exención tal y como habilita el artículo 163.sexies.Cinco de la Ley del impuesto. Esto se indicará en el elemento “AdditionalLineItemInformation” con la siguiente expresión: “Renuncia a la exención en virtud artículo 163.sexies.Cinco de la Ley 37/1992”. Hasta ocho decimales.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SpecialTaxAmount" type="AmountType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Special amount resulting from applying the corresponding rate to the special taxable base. Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Cuota especial. Importe resultante de aplicar a la Base Imponible especial el porcentaje correspondiente. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Special amount resulting from applying the corresponding rate to the special taxable base. Up to eight decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Cuota especial. Importe resultante de aplicar el tipo de gravamen sobre la base imponible del régimen especial del grupo de entidades. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EquivalenceSurcharge" type="DoubleTwoDecimalType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Always to two decimal points.</xs:documentation>
<xs:documentation xml:lang="es"> Recargo de Equivalencia. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="es"> Tipo de recargo de Equivalencia. Siempre con dos decimales. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EquivalenceSurchargeAmount" type="AmountType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en"> Result of applying the Equivalence Surcharge percentage to the Taxable Base. Always to two decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Cuota. Importe resultante de aplicar a la Base Imponible el porcentaje del Recargo de Equivalencia. Siempre con dos decimales. </xs:documentation>
<xs:documentation xml:lang="en"> Result of applying the Equivalence Surcharge percentage to the Taxable Base. Up to eight decimal points. </xs:documentation>
<xs:documentation xml:lang="es"> Cuota. Importe resultante de aplicar a la Base Imponible, la misma que para el IVA, el porcentaje indicado en “EquivalenceSurchage”. Hasta ocho decimales. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -1654,7 +1697,7 @@
<!-- -->
<xs:complexType name="AmountType">
<xs:sequence>
<xs:element name="TotalAmount" type="DoubleTwoDecimalType">
<xs:element name="TotalAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en"> Amount in the original currency of the invoice. Where the currency is not EURO, the element EquivalentInEuros must be filled in pursuant to Art.10.1 of Regulation on invoicing, RD1496/2003 of 28th November.</xs:documentation>
<xs:documentation xml:lang="es"> Importe en la moneda original de la facturación. Siempre que la divisa de facturación sea distinta de EURO, el elemento EquivalentInEuros deberá cumplimentarse para satisfacer los requerimientos del Art.10.1 del Reglamento sobre facturación, RD 1496/2003 de 28 de Noviembre.</xs:documentation>
@ -1739,6 +1782,72 @@
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FactoringAssignmentDocumentType">
<xs:sequence>
<xs:element name="DocumentCharacter" type="TextMax50Type">
<xs:annotation>
<xs:documentation xml:lang="en">Type of factoring document. Possible values: acuerdo de cesión, poder acreditativo de representación, otros</xs:documentation>
<xs:documentation xml:lang="es">Naturaleza del documento. Posibles valores: acuerdo de cesión, poder acreditativo de representación, otros</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RepresentationIdentity" type="TextMax80Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en">Mandatory where DocumentCharacter takes the value "poder acreditativo de representación". Possible values: del cedente en el acuerdo de cesión, del cesionario en el acuerdo de cesión, de quien efectúa la notificación en nombre de cedente o cesionario.</xs:documentation>
<xs:documentation xml:lang="es">Es obligatorio en el caso de que el valor de DocumentCharacter sea "poder acreditativo de representación". Posibles valores: del cedente en el acuerdo de cesión, del cesionario en el acuerdo de cesión, de quien efectúa la notificación en nombre de cedente o cesionario.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DocumentType" type="TextMax50Type">
<xs:annotation>
<xs:documentation xml:lang="en">Document's type. Possible values: escritura pública, documento privado</xs:documentation>
<xs:documentation xml:lang="es">Tipo de documento. Posibles valores: escritura pública, documento privado</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Repository" type="RepositoryType" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en">Repository data</xs:documentation>
<xs:documentation xml:lang="es">Datos del archivo electrónico usado</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RepositoryType">
<xs:sequence>
<xs:element name="RepositoryName" type="TextMax20Type">
<xs:annotation>
<xs:documentation xml:lang="en">Repository name which contains the factoring assigment documents. Possible values: CGN, ROLECE, REA, otros</xs:documentation>
<xs:documentation xml:lang="es">Archivo electrónico en el que estuviera anotado el factoring. Posibles valores: CGN, ROLECE, REA, otros</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="URL" type="TextMax250Type" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en">URL of the undefined repository. Mandatory where RepositoryName takes the value "otros"</xs:documentation>
<xs:documentation xml:lang="es">URL del archivo electrónico no definido. Es obligatorio en el caso de que el valor de RepositoryName sea "otros"</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Reference" type="TextMax250Type">
<xs:annotation>
<xs:documentation xml:lang="en">Reference or code of the document at the repository</xs:documentation>
<xs:documentation xml:lang="es">Referencia electrónica o código de verificación en el archivo electrónico</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PaymentInKindType">
<xs:sequence>
<xs:element name="PaymentInKindReason" type="TextMax2500Type">
<xs:annotation>
<xs:documentation xml:lang="en">Reason for the payment in kind</xs:documentation>
<xs:documentation xml:lang="es">Descripción del motivo por el que existe un pago en especie</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentInKindAmount" type="DoubleUpToEightDecimalType">
<xs:annotation>
<xs:documentation xml:lang="en">Total amount of the payment in kind</xs:documentation>
<xs:documentation xml:lang="es">Importe de los pagos en especie</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!--Simple Types -->
<!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<!--Textos simples /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
@ -1751,7 +1860,7 @@
</xs:simpleType>
<xs:simpleType name="SchemaVersionType">
<xs:restriction base="xs:string">
<xs:enumeration value="3.2"/>
<xs:enumeration value="3.2.2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PostCodeType">
@ -1778,7 +1887,13 @@
</xs:simpleType>
<xs:simpleType name="PartyIdentificationType">
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
<xs:maxLength value="10"/>
<xs:pattern value="[0-9]*">
<xs:annotation>
<xs:documentation xml:lang="en">Only numeric characters allowed.</xs:documentation>
<xs:documentation xml:lang="es">Sólo se permiten caracteres numéricos.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BICType">
@ -1788,7 +1903,7 @@
</xs:simpleType>
<xs:simpleType name="DoubleTwoDecimalType">
<xs:restriction base="xs:double">
<xs:pattern value="[0-9][0-9]*\.[0-9]{2}|-[0-9][0-9]*\.[0-9]{2}">
<xs:pattern value="-?[0-9]+\.[0-9]{2}">
<xs:annotation>
<xs:documentation xml:lang="en">Always to two decimal places.</xs:documentation>
<xs:documentation xml:lang="es">Siempre con dos decimales.</xs:documentation>
@ -1796,22 +1911,12 @@
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DoubleFourDecimalType">
<xs:simpleType name="DoubleUpToEightDecimalType">
<xs:restriction base="xs:double">
<xs:pattern value="[0-9][0-9]*\.[0-9]{4}">
<xs:pattern value="-?[0-9]+(\.[0-9]{1,8})?">
<xs:annotation>
<xs:documentation xml:lang="en">Always to four decimal places.</xs:documentation>
<xs:documentation xml:lang="es">Siempre con cuatro decimales.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DoubleSixDecimalType">
<xs:restriction base="xs:double">
<xs:pattern value="[0-9][0-9]*\.[0-9]{6}|-[0-9][0-9]*\.[0-9]{6}">
<xs:annotation>
<xs:documentation xml:lang="en">Always to six decimal places.</xs:documentation>
<xs:documentation xml:lang="es">Siempre con seis decimales.</xs:documentation>
<xs:documentation xml:lang="en">Cero to Eight decimal places.</xs:documentation>
<xs:documentation xml:lang="es">Entre 0 y 8 decimales.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
@ -1851,11 +1956,6 @@
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TextMax35Type">
<xs:restriction base="xs:string">
<xs:maxLength value="35"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TextMax40Type">
<xs:restriction base="xs:string">
<xs:maxLength value="40"/>
@ -1923,7 +2023,7 @@
</xs:simpleType>
<!--//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->
<!--Enumerations /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->
<!--//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->
<!--//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->
<xs:simpleType name="RoleTypeCodeType">
<xs:restriction base="xs:string">
<xs:enumeration value="01">
@ -2514,6 +2614,12 @@
<xs:documentation xml:lang="es">Vatio-WTT</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="36">
<xs:annotation>
<xs:documentation xml:lang="en">Kilowatt per hora-KWh</xs:documentation>
<xs:documentation xml:lang="es">Kilovatio por hora-KWh</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PaymentMeansType">
@ -2699,7 +2805,7 @@
<xs:enumeration value="11">
<xs:annotation>
<xs:documentation xml:lang="en">IIIMAB: Tax on premises that affect the environment in the Balearic Islands</xs:documentation>
<xs:documentation xml:lang="es">IIIMAB: Impuesto sobre las instalaciones que inciden sobre el medio ambiente en la Baleares</xs:documentation>
<xs:documentation xml:lang="es">IIIMAB: Impuesto sobre las instalaciones que inciden sobre el medio ambiente en las Baleares</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="12">
@ -2750,6 +2856,66 @@
<xs:documentation xml:lang="es">REIPSI: Régimen especial de IPSI para agencias de viajes</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="20">
<xs:annotation>
<xs:documentation xml:lang="en">IPS: Insurance premiums Tax</xs:documentation>
<xs:documentation xml:lang="es">IPS: Impuestos sobre las primas de seguros</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="21">
<xs:annotation>
<xs:documentation xml:lang="en">SWUA: Surcharge for Winding Up Activity</xs:documentation>
<xs:documentation xml:lang="es">RLEA: Recargo destinado a financiar las funciones de liquidación de entidades aseguradoras</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="22">
<xs:annotation>
<xs:documentation xml:lang="en">IVPEE: Tax on the value of electricity generation</xs:documentation>
<xs:documentation xml:lang="es">IVPEE: Impuesto sobre el valor de la producción de la energía eléctrica</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="23">
<xs:annotation>
<xs:documentation xml:lang="en">Tax on the production of spent nuclear fuel and radioactive waste from the generation of nuclear electric power</xs:documentation>
<xs:documentation xml:lang="es">Impuesto sobre la producción de combustible nuclear gastado y residuos radiactivos resultantes de la generación de energía nucleoeléctrica</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="24">
<xs:annotation>
<xs:documentation xml:lang="en">Tax on the storage of spent nuclear energy and radioactive waste in centralised facilities</xs:documentation>
<xs:documentation xml:lang="es">Impuesto sobre el almacenamiento de combustible nuclear gastado y residuos radioactivos en instalaciones centralizadas</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="25">
<xs:annotation>
<xs:documentation xml:lang="en">IDEC: Tax on bank deposits</xs:documentation>
<xs:documentation xml:lang="es">IDEC: Impuesto sobre los Depósitos en las Entidades de Crédito</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="26">
<xs:annotation>
<xs:documentation xml:lang="en">Excise duty applied to manufactured tobacco in Canaries</xs:documentation>
<xs:documentation xml:lang="es">Impuesto sobre las labores del tabaco en la Comunidad Autónoma de Canarias</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="27">
<xs:annotation>
<xs:documentation xml:lang="en">IGFEI: Tax on Fluorinated Greenhouse Gases</xs:documentation>
<xs:documentation xml:lang="es">IGFEI: Impuesto sobre los Gases Fluorados de Efecto Invernadero</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="28">
<xs:annotation>
<xs:documentation xml:lang="en">IRNR: Non-resident Income Tax</xs:documentation>
<xs:documentation xml:lang="es">IRNR: Impuesto sobre la Renta de No Residentes</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="29">
<xs:annotation>
<xs:documentation xml:lang="en">Corporation Tax</xs:documentation>
<xs:documentation xml:lang="es">Impuesto sobre Sociedades</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CountryType">

View File

@ -4,6 +4,7 @@
from trytond.pool import Pool
from . import invoice
from . import party
from . import company
def register():
@ -12,4 +13,5 @@ def register():
invoice.GenerateFacturaeStart,
party.Party,
party.Address,
company.Company,
module='account_invoice_facturae_electronet', type_='model')

10
company.py Normal file
View File

@ -0,0 +1,10 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from trytond.model import fields
from trytond.pool import PoolMeta
class Company(metaclass=PoolMeta):
__name__ = 'company.company'
id_electronet = fields.Char('Id Electronet')

12
company.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!-- The COPYRIGHT file at the top level of this repository contains the full
copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="company_view_form">
<field name="model">company.company</field>
<field name="inherit" ref="company.company_view_form"/>
<field name="name">company_form</field>
</record>
</data>
</tryton>

View File

@ -13,8 +13,9 @@ __all__ = ['Invoice', 'GenerateFacturaeStart']
ELECTRONET = config.get('electronet', 'facturae_path', default='/tmp')
ELECTRONET_TEMPLATE = 'template_facturae_3.2.xml'
ELECTRONET_TEMPLATE_SCHEMA = 'Facturaev3_2.xsd'
MODULE_PATH = os.path.dirname(os.path.abspath(__file__))
def module_path():
return os.path.dirname(os.path.abspath(__file__))
class Invoice(metaclass=PoolMeta):
__name__ = 'account.invoice'
@ -47,7 +48,7 @@ class Invoice(metaclass=PoolMeta):
missing_fields = set()
for field in ('oficina_contable', 'organo_gestor',
'unidad_tramitadora'):
if not getattr(party, field, False):
if not getattr(party.addresses[0], field, False):
missing_fields.add(field)
if len(missing_fields) > 2:
@ -55,7 +56,7 @@ class Invoice(metaclass=PoolMeta):
raise UserError(gettext('missing_facturae_party_info',
party=party.rec_name,
field=fields))
if not party.id_electronet:
if not party.addresses[0].id_electronet:
raise UserError(gettext('missing_facturae_party_info',
party=party.rec_name,
field='ID Electronet'))
@ -66,15 +67,17 @@ class Invoice(metaclass=PoolMeta):
field='Electronet Sale Point'))
jinja_env = Environment(
loader=FileSystemLoader(MODULE_PATH),
loader=FileSystemLoader(module_path()),
trim_blocks=True,
lstrip_blocks=True,
)
jinja_template = self._get_jinja_template(jinja_env,
ELECTRONET_TEMPLATE)
return jinja_template.render(
template = ELECTRONET_TEMPLATE
return self._get_jinja_template(jinja_env, template).render(
self._get_content_to_render(), ).encode('utf-8')
def _get_jinja_template(self, jinja_env, template):
return jinja_env.get_template(template)
class GenerateFacturaeStart(metaclass=PoolMeta):
__name__ = 'account.invoice.generate_facturae.start'

View File

@ -1,8 +1,8 @@
{% from "template_facturae_macros.xml" import administrative_center, address, contact %}
{% from "template_facturae_macros.xml" import administrative_center, address, contact, registration_data %}
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<namespace:Facturae xmlns:namespace2="http://uri.etsi.org/01903/v1.2.2#" xmlns:namespace3="http://www.w3.org/2000/09/xmldsig#" xmlns:namespace="http://www.facturae.es/Facturae/2009/v3.2/Facturae">
<namespace:Facturae xmlns:namespace="http://www.facturae.gob.es/formato/Versiones/Facturaev3_2_2.xml" xmlns:namespace2="http://uri.etsi.org/01903/v1.2.2#" xmlns:namespace3="http://www.w3.org/2000/09/xmldsig#">
<FileHeader>
<SchemaVersion>3.2</SchemaVersion>
<SchemaVersion>3.2.2</SchemaVersion>
<Modality>I</Modality>
{# The invoice is signed by Issuer (the company, only supported out invoices) #}
<InvoiceIssuerType>EM</InvoiceIssuerType>
@ -11,26 +11,26 @@
<BatchIdentifier>{{ ('%s%s' % (invoice.company.party.tax_identifier.code, invoice.number))[:70] }}</BatchIdentifier>
<InvoicesCount>1</InvoicesCount>
<TotalInvoicesAmount>
<TotalAmount>{{ invoice.total_amount }}</TotalAmount>
<TotalAmount>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</TotalAmount>
{% if invoice.currency != euro %}
<EquivalentInEuros>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</EquivalentInEuros>
{% endif %}
</TotalInvoicesAmount>
<TotalOutstandingAmount>
{# TODO: it must to get amount_to_pay? #}
<TotalAmount>{{ invoice.total_amount }}</TotalAmount>
<TotalAmount>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</TotalAmount>
{% if invoice.currency != euro %}
<EquivalentInEuros>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</EquivalentInEuros>
{% endif %}
</TotalOutstandingAmount>
<TotalExecutableAmount>
{# TODO: it must to get amount_to_pay? #}
<TotalAmount>{{ invoice.total_amount }}</TotalAmount>
<TotalAmount>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</TotalAmount>
{% if invoice.currency != euro %}
<EquivalentInEuros>{{ Currency.compute(invoice.currency, invoice.total_amount, euro) }}</EquivalentInEuros>
{% endif %}
</TotalExecutableAmount>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<InvoiceCurrencyCode>{{ invoice.currency.code.upper() }}</InvoiceCurrencyCode>
</Batch>
{# FactoryAssignmentData optional: not supported (factoring not supported) #}
</FileHeader>
@ -38,21 +38,31 @@
<Parties>
<SellerParty>
<TaxIdentification>
<PersonTypeCode>{{ invoice.company.party.facturae_person_type }}</PersonTypeCode>
<ResidenceTypeCode>R</ResidenceTypeCode>
<PersonTypeCode>{{ invoice.company.facturae_person_type }}</PersonTypeCode>
<ResidenceTypeCode>{{ invoice.company.facturae_residence_type }}</ResidenceTypeCode>
<TaxIdentificationNumber>{{ invoice.company.party.tax_identifier.code[:30] }}</TaxIdentificationNumber>
</TaxIdentification>
{# Optional. It could be the ID or the code #}
<PartyIdentification>{{ invoice.company.party.id_electronet }}</PartyIdentification>
<PartyIdentification>{{ invoice.company.id_electronet }}</PartyIdentification>
{% if invoice.company.oficina_contable or invoice.company.organo_gestor or invoice.company.unidad_tramitadora or invoice.company.organo_proponente %}
<AdministrativeCentres>
{% if invoice.company.party.oficina_contable and invoice.company.party.addresses %}{{ administrative_center(invoice.company.party.oficina_contable.rstrip(), '01', invoice.company.party) }}{% endif %}
{% if invoice.company.party.organo_gestor and invoice.company.party.addresses %}{{ administrative_center(invoice.company.party.organo_gestor.rstrip(), '02', invoice.company.party) }}{% endif %}
{% if invoice.company.party.unidad_tramitadora and invoice.company.party.addresses %}{{ administrative_center(invoice.company.party.unidad_tramitadora.rstrip(), '03', invoice.company.party) }}{% endif %}
{% if invoice.company.party.organo_proponente and invoice.company.party.addresses %}{{ administrative_center(invoice.company.party.organo_proponente.replace('\n', '').rstrip(), '04', invoice.company.party) }}{% endif %}
{% if invoice.company.oficina_contable %}{{ administrative_center(invoice.company.oficina_contable, '01', invoice.company.facturae_person_type, invoice.company.party.address_get('invoice')) }}{% endif %}
{% if invoice.company.organo_gestor %}{{ administrative_center(invoice.company.organo_gestor, '02', invoice.company.facturae_person_type, invoice.company.party.address_get('invoice')) }}{% endif %}
{% if invoice.company.unidad_tramitadora %}{{ administrative_center(invoice.company.unidad_tramitadora, '03', invoice.company.facturae_person_type, invoice.company.party.address_get('invoice')) }}{% endif %}
{% if invoice.company.organo_proponente %}{{ administrative_center(invoice.company.organo_proponente, '04', invoice.company.facturae_person_type, invoice.company.party.address_get('invoice')) }}{% endif %}
</AdministrativeCentres>
{% endif %}
<LegalEntity>
<CorporateName>{{ invoice.company.party.name[:80] }}</CorporateName>
{% if invoice.company.party.trade_name %}
<TradeName>{{ invoice.company.party.trade_name[:40] }}</TradeName>
{% endif %}
{% if invoice.company %}
{{ registration_data(invoice.company) }}
{% endif %}
{% if invoice.company.party.addresses %}
{{ address(invoice.company.party.addresses[0]) }}
{% endif %}
{% if invoice.company.party.contact_mechanisms %}
{{ contact(invoice.company.party) }}
{% endif %}
@ -61,29 +71,46 @@
<BuyerParty>
<TaxIdentification>
<PersonTypeCode>{{ invoice.party.facturae_person_type }}</PersonTypeCode>
<ResidenceTypeCode>R</ResidenceTypeCode>
<PersonTypeCode>{{ invoice.invoice_address.facturae_person_type }}</PersonTypeCode>
<ResidenceTypeCode>{{ invoice.invoice_address.facturae_residence_type }}</ResidenceTypeCode>
<TaxIdentificationNumber>{{ invoice.party.tax_identifier.code[:30] }}</TaxIdentificationNumber>
</TaxIdentification>
{# Optional. It could be the ID or the code #}
<PartyIdentification>{{ invoice.party.id_electronet }}</PartyIdentification>
{% if invoice.party.code and invoice.party.code | length < 10 %}
<PartyIdentification>{{ invoice.party.code|int or invoice.party.id }}</PartyIdentification>
{% endif %}
{% if invoice.invoice_address.oficina_contable or invoice.invoice_address.organo_gestor or invoice.invoice_address.unidad_tramitadora or invoice.invoice_address.organo_proponente %}
<AdministrativeCentres>
{% if invoice.party.oficina_contable %}{{ administrative_center(invoice.party.oficina_contable, '01', invoice.party) }}{% endif %}
{% if invoice.party.organo_gestor %}{{ administrative_center(invoice.party.organo_gestor, '02', invoice.party) }}{% endif %}
{% if invoice.party.unidad_tramitadora %}{{ administrative_center(invoice.party.unidad_tramitadora, '03', invoice.party) }}{% endif %}
{% if invoice.sale_point_code %}{{ administrative_center(invoice.sale_point_code, '04', invoice.party) }}{% endif %}
{% if invoice.invoice_address.oficina_contable %}{{ administrative_center(invoice.invoice_address.oficina_contable, '01', invoice.invoice_address.facturae_person_type, invoice.invoice_address) }}{% endif %}
{% if invoice.invoice_address.organo_gestor %}{{ administrative_center(invoice.invoice_address.organo_gestor, '02', invoice.invoice_address.facturae_person_type, invoice.invoice_address) }}{% endif %}
{% if invoice.invoice_address.unidad_tramitadora %}{{ administrative_center(invoice.invoice_address.unidad_tramitadora, '03', invoice.invoice_address.facturae_person_type, invoice.invoice_address) }}{% endif %}
{% if invoice.sale_point_code %}{{ administrative_center(invoice.sale_point_code, '04', invoice.invoice_address.facturae_person_type, invoice.invoice_address) }}{% endif %}
</AdministrativeCentres>
{% endif %}
{% if invoice.invoice_address.facturae_person_type == 'J' %}
<LegalEntity>
<CorporateName>{{ invoice.party.name and invoice.party.name[:80] or invoice.party.code[:80] }}</CorporateName>
{% if invoice.party.trade_name %}
<TradeName>{{ invoice.party.trade_name[:40] }}</TradeName>
{% endif %}
{# RegistrationData optional: not supported #}
{{ address(invoice.invoice_address) }}
{% if invoice.party.contact_mechanisms %}
{{ contact(invoice.party) }}
{% endif %}
</LegalEntity>
{% else %}
<Individual>
<Name>{{ invoice.party.name and invoice.party.name.split(' ', 2)[0][:40] or invoice.party.code[:40] }}</Name>
<FirstSurname>{{ invoice.party.name and invoice.party.name.split(' ', 2)[1][:40] }}</FirstSurname>
{% if invoice.party.name.split(' ') | length > 2 %}
<SecondSurname>{{ invoice.party.name and invoice.party.name.split(' ', 2)[2][:40] }}</SecondSurname>
{% endif %}
{{ address(invoice.invoice_address) }}
{% if invoice.party.contact_mechanisms %}
{{ contact(invoice.party) }}
{% endif %}
</Individual>
{% endif %}
</BuyerParty>
</Parties>

View File

@ -1,21 +1,39 @@
{% macro administrative_center(centre_code, role_type_code, party) %}
{% macro administrative_center(centre_code, role_type_code, person_type, addrs) %}
<AdministrativeCentre>
<CentreCode>{{ centre_code }}</CentreCode>
<RoleTypeCode>{{ role_type_code }}</RoleTypeCode>
{{ address(party.addresses[0]) }}
{{ contact(party) }}
<Name>{% if person_type == 'J' %}{{ addrs.party.name and addrs.party.name[:40] }}{% else %}{{ addrs.party.name and addrs.party.name.split(' ', 2)[0][:40] or addrs.party.code[:40] }}{% endif %}</Name>
{% if person_type == 'F' %}
<FirstSurname>{{ addrs.party.name and addrs.party.name.split(' ', 2)[1][:40] }}</FirstSurname>
{% endif %}
{% if person_type == 'F' and addrs.party.name.split(' ') | length > 2 %}
<SecondSurname>{{ addrs.party.name and addrs.party.name.split(' ', 2)[2][:40] }}</SecondSurname>
{% endif %}
{% if addrs %}{{ address(addrs) }}{% endif %}
{% if addrs.party.contact_mechanisms %}{{ contact(addrs.party) }}{% endif %}
<PhysicalGLN/>
<LogicalOperationalPoint/>
<CentreDescription>{{ addrs.party.name and addrs.party.name.split(' ', 2)[0][:40] or addrs.party.code[:40] }}</CentreDescription>
</AdministrativeCentre>
{% endmacro %}
{% macro address(address) %}
<AddressInSpain>
<Address>{{ address.street[:80] }}</Address>
<PostCode>{{ address.postal_code[:5] }}</PostCode>
<Town>{{ address.city[:50] }}</Town>
<Province>{{ address.subdivision.name[:20] }}</Province>
<CountryCode>{{ address.country.code3 }}</CountryCode>
</AddressInSpain>
{% if address.country and address.country.code == 'ES' %}
<AddressInSpain>
<Address>{{ address.street[:80] }}</Address>
<PostCode>{{ address.postal_code[:5] }}</PostCode>
<Town>{{ address.city[:50] }}</Town>
<Province>{{ address.subdivision.name[:20] }}</Province>
<CountryCode>{{ address.country.code3 }}</CountryCode>
</AddressInSpain>
{% else %}
<OverseasAddress>
<Address>{{ address.street[:80] }}</Address>
<PostCodeAndTown>{{ (', '.join([address.postal_code, address.city]))[:50] }}</PostCodeAndTown>
<Province>{{ address.subdivision.name[:20] }}</Province>
<CountryCode>{{ address.country.code3 }}</CountryCode>
</OverseasAddress>
{% endif %}
{% endmacro %}
{% macro contact(party) %}
@ -26,11 +44,31 @@
{% if party.fax %}
<TeleFax>{{ party.fax[:15] }}</TeleFax>
{% endif %}
{% if party.website %}
<WebAddress>{{ party.website[:60] }}</WebAddress>
{% endif %}
{% if party.email %}
<ElectronicMail>{{ party.email[:60] }}</ElectronicMail>
{% endif %}
{% if party.addresses[0].name %}
<ContactPersons>if party.addresses[0].name</ContactPersons>
{% endif %}
{# Optional: not supported
<ContactPersons></ContactPersons>
<CnoCnae></CnoCnae>
<INETownCode></INETownCode>
<AdditionalContactDetails></AdditionalContactDetails>
#}
</ContactDetails>
{% endmacro %}
{% macro registration_data(company) %}
{% if company.registration_data_location %}
<RegistrationData>
<Book>{{ company.registration_data_book and company.registration_data_book[:20] or '0' }}</Book>
<RegisterOfCompaniesLocation>{{ company.registration_data_location[:20] }}</RegisterOfCompaniesLocation>
<Sheet>{{ company.registration_data_sheet[:20] }}</Sheet>
<Folio>{{ company.registration_data_folio[:20] }}</Folio>
<Section>{{ company.registration_data_section[:20] }}</Section>
<Volume>{{ company.registration_data_volume[:20] }}</Volume>
<AdditionalRegistrationData>{{ company.registration_data_additional[:20] }}</AdditionalRegistrationData>
</RegistrationData>
{% endif %}
{% endmacro %}

View File

@ -1,10 +1,9 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
# import doctest
import os.path
import unittest
from decimal import Decimal
import trytond.tests.test_tryton
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
@ -24,6 +23,7 @@ class AccountInvoiceFacturaeElectronetTestCase(CompanyTestMixin, ModuleTestCase)
'Test invoice generation'
pool = Pool()
Configuration = pool.get('account.configuration')
Certificate = pool.get('certificate')
Account = pool.get('account.account')
FiscalYear = pool.get('account.fiscalyear')
@ -58,39 +58,21 @@ class AccountInvoiceFacturaeElectronetTestCase(CompanyTestMixin, ModuleTestCase)
company.header = 'Report Header'
company.party.name = 'Seller'
company.party.identifiers = [tax_identifier]
company.party.facturae_person_type = 'J'
company.party.facturae_residence_type = 'R'
company.party.organo_proponente = 'Test Organo Proponente'
company.party.id_electronet = '100_SELLER'
company.party.organo_gestor = 'TEST'
company.party.unidad_tramitadora = 'TEST'
company.party.organo_proponente = 'TEST'
company.facturae_person_type = 'J'
company.facturae_residence_type = 'R'
company.id_electronet = '100'
company.party.save()
company.save()
payment_term, = PaymentTerm.create([{
'name': '20 days, 40 days',
'lines': [
('create', [{
'sequence': 0,
'type': 'percent',
'divisor': 2,
'ratio': Decimal('.5'),
'relativedeltas': [('create', [{
'days': 20,
},
]),
],
}, {
'sequence': 1,
'type': 'remainder',
'relativedeltas': [('create', [{
'days': 40,
},
]),
],
}])]
}])
address, = company.party.addresses
address.facturae_person_type = 'J'
address.facturae_residence_type = 'R'
address.organo_proponente = 'Test Organo Proponente'
address.id_electronet = '100'
address.organo_gestor = 'TEST'
address.unidad_tramitadora = 'TEST'
address.organo_proponente = 'TEST'
company.party.addresses[0].save()
with set_company(company):
certificate = Certificate()
@ -137,13 +119,6 @@ class AccountInvoiceFacturaeElectronetTestCase(CompanyTestMixin, ModuleTestCase)
company_address.country = country
company_address.save()
party = Party(name='Buyer')
party.facturae_person_type = 'J'
party.facturae_residence_type = 'R'
party.id_electronet = '100_BUYER'
party.organo_proponente = 'Test Organo Proponente'
party.organo_gestor = 'TEST'
party.unidad_tramitadora = 'TEST'
party.organo_proponente = 'TEST'
tax_identifier = PartyIdentifier()
tax_identifier.type = 'eu_vat'
tax_identifier.code = 'BE0897290877'
@ -158,6 +133,12 @@ class AccountInvoiceFacturaeElectronetTestCase(CompanyTestMixin, ModuleTestCase)
'subdivision': subdivision.id,
'country': country.id,
'electronet_sale_point': 'TEST',
'facturae_person_type': 'J',
'facturae_residence_type': 'R',
'id_electronet': '101',
'organo_proponente': 'Test Organo Proponente',
'organo_gestor': 'TEST',
'unidad_tramitadora': 'TEST',
}
address, = Address.create([address_dict])
@ -201,46 +182,51 @@ class AccountInvoiceFacturaeElectronetTestCase(CompanyTestMixin, ModuleTestCase)
currency = create_currency('Eur')
add_currency_rate(currency, 1)
invoice = Invoice()
invoice.type = 'out'
invoice.on_change_type()
invoice.party = party
invoice.on_change_party()
invoice.payment_type = payment_receivable
invoice.payment_term = term
invoice.currency = currency
invoice.company = company
invoice._update_account()
configuration = Configuration(1)
configuration.facturae_service = 'only_file'
configuration.save()
line1 = InvoiceLine()
line1.type = 'line'
line1.invoice_type = 'out'
line1.currency = invoice.currency
line1.company = invoice.company
line1.product = product
line1.on_change_product()
line1.on_change_account()
line1.quantity = 5
line1.unit_price = Decimal('40')
with Transaction().set_user(0):
invoice = Invoice()
invoice.type = 'out'
invoice.on_change_type()
invoice.party = party
invoice.on_change_party()
invoice.payment_type = payment_receivable
invoice.payment_term = term
invoice.currency = currency
invoice.company = company
invoice._update_account()
line2 = InvoiceLine()
line2.type = 'line'
line2.invoice_type = 'out'
line2.currency = invoice.currency
line2.company = invoice.company
line2.account = revenue
line2.on_change_account()
line2.product = product
line2.on_change_product()
line2.description = 'Test'
line2.quantity = 1
line2.unit_price = Decimal(20)
line1 = InvoiceLine()
line1.type = 'line'
line1.invoice_type = 'out'
line1.currency = invoice.currency
line1.company = invoice.company
line1.product = product
line1.on_change_product()
line1.on_change_account()
line1.quantity = 5
line1.unit_price = Decimal('40')
invoice.lines = [line1, line2]
invoice.on_change_lines()
line2 = InvoiceLine()
line2.type = 'line'
line2.invoice_type = 'out'
line2.currency = invoice.currency
line2.company = invoice.company
line2.account = revenue
line2.on_change_account()
line2.product = product
line2.on_change_product()
line2.description = 'Test'
line2.quantity = 1
line2.unit_price = Decimal(20)
invoice.save()
Invoice.post([invoice])
invoice.lines = [line1, line2]
invoice.on_change_lines()
invoice.save()
Invoice.post([invoice])
invoice.generate_facturae()
self.assertNotEqual(invoice.invoice_facturae, None)

View File

@ -8,3 +8,4 @@ depends:
xml:
party.xml
message.xml
company.xml

9
view/company_form.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- The COPYRIGHT file at the top level of this repository contains the full
copyright notices and license terms. -->
<data>
<xpath expr="/form/notebook/page[@id='facturae']/field[@name='organo_proponente']" position="after">
<label name="id_electronet"/>
<field name="id_electronet"/>
</xpath>
</data>