Este documento es un material de especificación de los requisitos de innovación. Se trata de un contenido sumamente técnico. |
---|
Especificación | |||
Producto | Microsiga Protheus | Módulo | SIGAFAT |
Segmento ejecutor | Servicios | ||
Projeto1 | Proyecto de Desarrollo_MEX | IRM/EPIC1 | SERINN001-1144 |
Requisito/Story/Issue1 |
| Subtarea1 |
|
Chamado/Ticket2 |
| ||
País | ( ) Brasil ( ) Argentina ( ) México ( ) Chile ( ) Paraguay ( ) Ecuador ( ) EEUU ( ) Colombia ( X ) Otro Perú. | ||
Otros | <Si necesario, informe otras referencias que sean pertinentes a esta especificación. Ejemplo: enlaces de otros documentos o subtareas vinculadas>. |
Leyenda: 1 – Innovación 2 – Mantenimiento (Los demás campos se deben completar en ambos los procesos).
Crear la función M486NCCXML que deberá generar el XML de la Nota de Crédito de venta que será trasmitido al TSS para su posterior envío a la SUNAT, además se deberá modificar fuente M486XFUN para que en funciones que se utilizan para crearción de XML de factura/boleta de venta y nota de débito naveguen Encabezado de Fact. de Entrada (SF1) y Items de las Fact. de Entrada (SD1), esto aplica para:
Esta rutina deberá permitir generar una cadena de caracteres que define un XML la contendrá los datos correspondientes al documento electrónico solicitado según el esquema UBL 2.0. No deberá tener interfaz gráfica de entrada ya que será llamada por la rutina MATA486.
Los parámetros que deberá recibir la función son los siguientes:
Seleccionar los registros en Encabezado de Fact. de Entrada (SF1) Y Items de las Fact. de Entrada (SD1) dónde F1_FILIAL=FILIAL PARÁMETROS, F1_DOC= No. Documento, F1_SERIE=Serie Parámetros, F1_CLIENTE=Cliente Parámetros, F2_LOJA= Código Tienda Paramétros y generar XML. Si no se encuentra el registro, no deberá generar XML.
A continuación se detalla la estructura del XML así como su correspondencia en Protheus:
Elemento | TAG UBL | Descripción | Tam | Oblig | Valor |
Adicionales | <UBLExtensions> | Contenedor de Componentes de extensión. Podrán incorporarse nuevas definiciones estructuradas cuando sean de interés conjunto para emisores y receptores, y no estén ya definidas en el esquema de la factura. |
| x |
|
<ext:UBLExtension> | Deberá generarse para Información Adicional sobre la factura por conceptos de otros tributos y operaciones |
|
|
| |
<ext:ExtensionContent> |
|
|
|
| |
<sac:AdditionalInformation> | Información Adicional |
|
|
| |
<sac:AdditionalMonetaryTotal> | Generar por cada Concepto contenido en Catálogo No. 14 |
|
| Generar al menos por los conceptos: 1001,1002,1003,1004,1005,1000
Ver Sección Submontos Adicionales | |
<cbc:ID> | Código Concepto Tributario |
|
|
| |
<cbc:PayableAmount currencyID="XXX"> | Monto del Concepto Tributario |
|
| Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") Depende del tipo de Operación. | |
<ext:UBLExtension> |
|
|
| Generar sin contenido de la siguiente manera: <ext:UBLExtension> <ext:ExtensionContent> </ext:ExtensionContent> </ext:UBLExtension> | |
Identificación del Documento | <cbc:UBLVersionID> | Versión UBL | 3 | X | Fijo “2.0” |
<cbc:CustomizationID> | Versión de la estructura del Documento | 3 | X | Fijo “1.0” | |
<cbc:ID> | Numeración, conformada por serie y número correlativo | Max. 13 | X | F1_SERIE2+”-“+F1_DOC en Formato: F###-NNNNNNNN
Ejemplo: FX01-12 F001-1022 | |
<cbc:IssueDate> | Fecha de Emisión | 10 | X | F1_EMISSAO Formato YYYY-MM-DD | |
<cbc:DocumentCurrencyCode> | Tipo de moneda en la cual se emite la factura electrónica. Catálogo 02 | 3 | x | POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") | |
Referencias de la Nota de Crédito | <cac:DiscrepancyResponse> | Contiene el tipo de nota de crédito, el sustento de la emisión de la nota de crédito, así como la identificación de la factura o boleta de venta electrónica afectada. |
| x | Debe generar por cada documento D1_SERORI+D1_NFORI Diferente |
<cbc:ReferenceID> | Identificación de la factura o boleta de venta modificada por la nota de crédito. Serie y número de documento afectado
|
|
| D1_SERORI+D1_NFORI Ejemplo: FX01-12 F001-1022 | |
<cbc:ResponseCode> | Código de tipo de nota de crédito - Catálogo No. 09 |
|
| F1_TIPREF | |
<cbc:Description> | Descripción detallada del servicio prestado, bien vendido o cedido en uso o descripción de acuerdo a lo dispuesto en el RCP para el tipo de comprobante de pago, según corresponda. |
|
| F1_MOTIVO | |
<cac:BillingReference> | Tipo de documento del documento que modifica |
| x |
| |
<cac:InvoiceDocumentReference> | Asociación al documento modificado |
| x |
| |
<cbc:ID> | Documento que se modifica (serie-número)
|
|
| D1_SERORI+D1_NFORI Ejemplo: FX01-12 F001-1022 | |
<cbc:DocumentTypeCode> | Código del tipo de documento modificado conforme a Catálogo No. 01 |
|
| Si es factura deberá indicarse ‘01’ | |
Guía de Remisión | <cac:DespatchDocumentReference > | Guía de Remisión Asociada |
|
| Si la factura fue originada a partir de una guía de remisión debe figurar este elemento en el XML |
<cbc:ID> | Número de Guía |
|
|
| |
<cbc:DocumentTypeCode> | Código Tipo de documento Catálogo No. 01 |
|
| Colocar Fijo para guia de Remisión el valor “09” | |
Otros documentos Adicionales | <cac:AdditionalDocumentReference>
| Referencia a cualquier otro documento, distintos a los señalados en el numeral anterior, asociado a la factura. Podrán especificarse documentos como comprobantes de retención, percepción, código SCOP, etc. Puede existir documentos de distintos tipos asociados a una misma factura, por lo que el número de elementos de este tipo es ilimitado. |
|
| Generar si y solo si existe alguna referencia a estos documentos.
**Revisar catálogo No. 12 |
<cbc:ID> | Número de Documento |
|
| Número de documento | |
<cbc:DocumentTypeCode> | Se utilizará el Catálogo No. 12: “Códigos - Documentos Relacionados Tributarios”. |
|
| Este elemento es opcional. Colocar dependiendo del tipo de Documento. Catálogo No. 12 | |
Firma Electrónica | <cac:Signature> | Referencia a la Firma Digital |
|
| PENDIENTE. Meintras generar sin este Elemento |
<cbc:ID> | Identificador de la firma |
|
| Fijo “IDSignTOTVS” | |
<cac:SignatoryParty> <cac:PartyIdentification> <cbc:ID> | Identificación de la parte firmante | 13 |
| SM0->M0_CGC | |
<cac:SignatoryParty> <cac:PartyName> <cbc:Name> | Nombre de la parte firmante
|
|
| SM0->M0_NOME | |
<cac:DigitalSignatureAttachment> <cac:ExternalReference> <cbc:URI> | Asociación con la firma codificada
|
|
| Colocar fijo “#signatureTotvs” | |
Información del Emisor | <cac:AccountingSupplierParty> | Documentación Emisor |
| x |
|
<cbc:CustomerAssignedAccountID> | RUC del Emisor | 11 | x | SM0->M0_CGC | |
<cbc:AdditionalAccountID> | Tipo de documento de identificación. Catálogo No. 6 | 1 | x | Fijo ‘6’ | |
<cac:Party> | Razón social y Domicilio fiscal del Emisor |
| x |
| |
<cac:PartyName> | Nombre de la Empresa |
| X |
| |
<cbc:Name> | Nombre commercial | Max 100 | x | M0_NOMECOM | |
<cac:PostalAddress> | Domicilio Fiscal |
| X |
| |
<cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | M0_CEP homologado con ubígeos | |
<cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | M0_ENDENT | |
<cbc:CityName> | Provincia | Max 30 | X | M0_CIDENT | |
<cbc:District> | Distrito | Max 30 | X | M0_BAIRENT | |
<cac:Country> | Datos Pais |
| X |
| |
<cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 | 2 | X | Fijo “PE” | |
<cac:PartyLegalEntity> | Razón Social |
|
|
| |
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | M0_NOME | |
Información del Receptor | <cac:AccountingCustomerParty> | Datos del Adquirente o Usuario |
| x |
|
<cbc:CustomerAssignedAccountID> | RUC | 11 | X | A1_CGC | |
<cbc:AdditionalAccountID> | Tipo de documento de identificación. Catálogo No. 6 | 2 | X | POSICIONE("SX5",1,XFILIAL("SX5")+”XD”+A1_TIPDOC,"X5_DESCSPA") | |
<cac:Party> | Razón social y Domicilio fiscal del Receptor |
| X |
| |
<cac:PostalAddress> | Domicilio Fiscal |
| X |
| |
<cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | A1_CEP homologado con ubígeos | |
<cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | A1_END | |
<cbc:CityName> | Provincia | Max 30 | X | A1_MUN | |
<cbc:District> | Distrito | Max 30 | X | A1_BAIRRO | |
<cac:Country> | Datos Pais |
| X |
| |
<cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 | 2 | X | Obtener de SYA->YA_CODERP por medio de A1_PAIS | |
<cac:PartyLegalEntity> | Razón Social |
|
|
| |
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | A1_NOME | |
Impuestos | <cac:TaxTotal> | Impuestos Globales |
| X | Genenrar por cada Tipo de Impuesto que contenga la Factura. |
<cbc:TaxAmount currencyID=”XX”> | Monto total del Impuesto |
| X | Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”X”+F2_MOEDA,"X5_DESCSPA") El valor de TaxAmount = Sumatoria del valor del Impuesto de la factura. | |
<cac:TaxSubtotal> | Subtotal Impuestos |
| X |
| |
<cbc:TaxAmount currencyID=”XX”> | Monto total del Impuesto |
| X | Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") El valor de TaxAmount = Sumatoria del valor del Impuesto de la factura. | |
<cac:TaxCategory> | Categoría del Impuesto |
| X |
| |
<cac:TaxScheme> |
|
| X |
| |
<cbc:ID> | Código del Impuesto. Catálogo No. 05 | 4 | X | Obtener del impuesto el campo FB_CODIMP | |
<cbc:Name> | Nombre del Impuesto. Catálogo No. 05 | Max 5 | X | IGV,ISC,OTROS | |
<cbc:TaxTypeCode> | Código del Tipo de Tributo (UN/ECE 5153)
| 3 | X | Obtener del impuesto el campo FB_CODTAR | |
Total Nota de Crédito | <cac:LegalMonetaryTotal> | Totales a pagar de la Factura y Cargos |
| X |
|
<cbc:AllowanceTotalAmount currencyID="XXX"> | Importe total de cargos aplicados al total de la factura
|
| X | Donde XX = XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") AllowanceTotalAmount = “0.00” | |
<cbc:PayableAmount currencyID="XXX"> | Moneda e Importe total a pagar
|
| X | Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") PayableAmount = F2_VALBRUT | |
Detalle de la Nota de Crédito | <cac:CreditNoteLine> | Debe generarse por cada ítem |
| X |
|
| <cbc:ID> | Número de orden del Ítem
|
| x | D1_ITEM, sin ceros a la izquierda. |
| <cbc: CreditedQuantity unitCode="XXX"> | Unidad de medida y cantidad por ítem |
|
| Donde XXX = Posicione("SAH",1,xFilial("SAH")+(cAliasXML)->B1_UM,"AH_COD_CO") InvoiceQuantity = D2_QUANT |
| <cbc:LineExtensionAmount currencyID="XXX"> | Moneda e Importe monetario que es el total de la línea de detalle, incluyendo variaciones de precio (subvenciones, cargos o descuentos) pero sin impuestos.
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+1,"X5_DESCSPA")
LineExtensionAmount =D1_PRCVEN + D1_DESCON/D2_QUANT) |
| <cac:PricingReference> | Nodo de Valores Unitarios |
|
|
|
| <cac:AlternativeConditionPrice> | Valor referencial unitario por ítem en operaciones no onerosas y código |
|
|
|
| <cbc:PriceAmount currencyID="XXX"> | Monto del valor unitario
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
PriceAmount currencyID= (D1_TOTAL +D1_DESCON)/nQtdItem) + (nImp/nQtdItem) |
| <cbc:PriceTypeCode> | Código de Tipo de Precio. Catálogo No. 16 |
|
| 01 para Precion con IGV. 02 Para cuando el ítem tiene descuento. |
| <cac:TaxTotal> | Impuestos por Item de la factura |
|
|
|
| <cbc:TaxAmount currencyID="XXX"> | Importe total de un tributo para este ítem
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_VALIMPn |
| <cac:TaxSubtotal> |
|
|
|
|
| <cbc:TaxAmount currencyID="XXX"> | Importe total de un tributo para este ítem
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_VALIMPn |
| <cac:TaxCategory> | Categoria del impuesto |
|
|
|
| <cbc:TaxExemptionReasonCode> | Tipo de Afectación según catálogo No. 07 |
|
| Generar solo si el impuesto es IGV |
| <cbc:TierRange > | Tipo de afectación de ISC |
|
| Generar solo para ISC |
| <cac:TaxScheme> | Tipo de Impuesto |
|
|
|
| <cbc:ID> | Tipo de Impuesto según catálogo No. 05 |
|
| FB_CODIMP |
| <cbc:Name> | Nombre del Impuesto |
|
| FB_CODIGO para IGV e ISC, para otrs impuestos colocar palabra “OTROS” |
| <cbc:TaxTypeCode> | Código del Tipo de Tributo (UN/ECE 5153) |
|
| SUBSTR(POSICIONE("SX5",1,XFILIAL("SX5")+”XS”+FB_CODIMP,”X5_DESCSPA"),4) Tomas UN/ECE |
| <cac:Item> | Descripcion del ítem |
|
|
|
| <cbc:Description> | Descripción detallada del bien vendido o cedido en uso, descripción o tipo de servicio prestado por ítem |
|
| B1_DESC |
| <cac:SellersItemIdentification> | Identificaicón interna del producto |
|
|
|
| <cbc:ID> | Código del producto de acuerdo al tipo de codificación interna que se utilice. |
|
| B1_COD |
| <cac:Price> |
|
|
|
|
| <cbc:PriceAmount currencyID="xxx"> | Valores de venta unitarios por ítem (VU) no incluye impuestos
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_PRCVEN |
SUBMONTOS ADICIONALES
Según el Catálogo No. 14: Códigos - Otros conceptos tributarios deberán anexarse a cada submonto los concepto si estos existen en la factura o boleta de venta.
Estos deberán obtenerse de la siguiente manera:
Submonto 1001 Total Valor venta Operaciones Gravadas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenece a los códigos 10,11,12,13,14,15,16 o 17 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1001 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX">Monto operaciones gravadas </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1002 Total valor de venta Operaciones Inafectadas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenecen a los códigos 30,31,32,33,34,35,36 o 40 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1002 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX">Monto operaciones Inafectas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: En el caso que todas las operaciones (ítems de la factura/boleta de venta) comprendidas en la factura electrónica sean gratuitas (TES se encuentre en parámetro MV_TESEXE), se deberá mostrar la leyenda "TRANSFERENCIA GRATUITA DE UN BIEN Y/O SERVICIO PRESTADO GRATUITAMENTE" de acuerdo a Catálogo No. 15: Códigos - Elementos adicionales en la Factura Electrónica y/o Boleta de Venta Electrónica respecto al código 1002.
Submonto 1003 Total valor venta Operaciones Exoneradas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenecen a los códigos 20 o 21 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1003 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX"> Monto operaciones Exoneradas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1004 Total valor de venta Operaciones gratuitas
Si la factura cuenta con ítems cuya TES se encuentre en el parámetro MV_TESEXE, el monto deberá reportarse en el subtotal 1004 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1004</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> Monto total por operaciones gratuitas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1005 Sub total de venta
Deberá mostrar importe de valor de la mercaderia (SF2->F2_VALMERC) con dos decimales si espacios.
<sac:AdditionalMonetaryTotal>
<cbc:ID>1005</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> SF2->F2_VALMERC </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 2001 Percepciones
Por cada ítem del documento, con el Tipo de salida (D2_TES) recorrer los impuestos variables (Tabla SFB) que pertenezcan a la TES y que la clase sea Percepción (FB_CLASSE = 'P'), y obtener el campo de Libro Fiscal (FB_CPOLVRO), mediante este campo buscar en el campo de Valor del Impuesto (F2_VALIMPx) correspondiente en el documento para obtener el valor de la percepción del documento. Generar elemento de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_VALIMPx</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no tiene operaciones de percepciones, no deberá generar nodo.
Submonto 2002 Retenciones
Por cada ítem del documento, con el Tipo de salida (D2_TES) recorrer los impuestos variables (Tabla SFB) que pertenezcan a la TES y que la clase sea Retención (FB_CLASSE = 'R'), y obtener el campo de Libro Fiscal (FB_CPOLVRO), mediante este campo buscar en el campo Valor del Impuesto (F2_VALIMPx) correspondiente en el documento para obtener el valor de la retención del documento. Generar elemento de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_VALIMPx</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no tiene operaciones de retenciones, no deberá generar nodo.
Submonto 2003 Detracciones
<sac:AdditionalMonetaryTotal>
<cbc:ID>2003</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> Monto Detracciones </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no cuenta con detracciones, no generar nodo.
Submonto 2005 Total Descuentos
Si la factura/boleta de venta tiene valor en el campo Descuentos (F2_DESCONT), deberá generarse el nodo siguiente con el valor de este descuento:
<sac:AdditionalMonetaryTotal>
<cbc:ID>2005</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_DESCONT</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1000 Valor Total en letra
Se deberá convertir el Valor Bruto de la Factura (F2_VALBRUT) a letra utilizando la función EXTENSO y deberá reportarse en el nodo 1000 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1000</cbc:ID>
<cbc:value> EXTENSO(F2_VALBRUT)</cbc:value>
</sac:AdditionalMonetaryTotal>
Dónde XXX= POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F2_MOEDA,"X5_DESCSPA") Para obtener el código de moneda según ISO-3366-1
Rutina | Tipo de Operación | Opción de Menú | Reglas de Negocio |
MATA486 - Documentos Electrónicos | Involucrada | Actualizaciones|Facturación|Documentos Electronicos | - |
M486NCCXML – XML de Nota de Crédito de Venta para Transmisión Electrónica | Creación |
| - |
M486XFUN - Funciones geración XML NF, NDC y NCC | Modificación |
Ejemplo de aplicación:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<CreditNote xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<sac:AdditionalInformation>
<sac:AdditionalMonetaryTotal>
<cbc:ID>1002</cbc:ID>
<cbc:PayableAmount currencyID="PEN">1000.00</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
<sac:AdditionalProperty>
<cbc:ID>1000</cbc:ID>
<cbc:Value>UN MIL CIENTO OCHENTA PESOS</cbc:Value>
</sac:AdditionalProperty>
</sac:AdditionalInformation>
</ext:ExtensionContent>
</ext:UBLExtension>
<ext:UBLExtension>
<ext:ExtensionContent>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<cbc:CustomizationID>1.0</cbc:CustomizationID>
<cbc:ID>FB01-3</cbc:ID>
<cbc:IssueDate>2016-06-15</cbc:IssueDate>
<cbc:DocumentCurrencyCode>PEN</cbc:DocumentCurrencyCode>
<cac:DiscrepancyResponse>
<cbc:ReferenceID>FX01-11</cbc:ReferenceID>
<cbc:ResponseCode>01</cbc:ResponseCode>
<cbc:Description>CANCELACION NF</cbc:Description>
</cac:DiscrepancyResponse>
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>FX01-11</cbc:ID>
<cbc:DocumentTypeCode>01</cbc:DocumentTypeCode>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<cac:Signature>
<cbc:ID>IDSignTOTVS</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20451558383</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Grupo TOTVS 1</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>#SignatureTOTVS</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>20451558383</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PartyName>
<cbc:Name>FITESA</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:ID>76116</cbc:ID>
<cbc:StreetName>AV. BRAZ LEME, 1631</cbc:StreetName>
<cbc:CityName>CU</cbc:CityName>
<cbc:District>CU</cbc:District>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Grupo TOTVS 1</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cbc:CustomerAssignedAccountID>-</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>0</cbc:AdditionalAccountID>
<cac:Party>
<cac:PostalAddress>
<cbc:ID>123456</cbc:ID>
<cbc:StreetName>AV 5 DE FEB</cbc:StreetName>
<cbc:CityName>CUZCO</cbc:CityName>
<cbc:District>CUZCO</cbc:District>
<cac:Country>
<cbc:IdentificationCode>604</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>CLIENTE EXTR</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">180.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">180.00</cbc:TaxAmount>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:AllowanceTotalAmount currencyID="PEN">0.00</cbc:AllowanceTotalAmount>
<cbc:PayableAmount currencyID="PEN">1180.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:CreditNoteLine>
<cbc:ID>1</cbc:ID>
<cbc:CreditedQuantity unitCode="NIU">1.00</cbc:CreditedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">1000.00</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">1000.00</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:TaxExemptionReasonCode>40</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description>LOTE SOLVENTES LIMPIEZA</cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>000001</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">1000.00</cbc:PriceAmount>
</cac:Price>
</cac:CreditNoteLine>
</CreditNote>
Tablas Utilizadas
<Si necesario, incluirprototipos de pantallas con el objetivo de facilitar la comprensión del requisito, presentar conceptos y funcionalidades del software>.
Prototipo 01
<En esta etapa, incluir representaciones gráficas que describan el problema por solucionar y el sistema que se desarrollará. Ejemplo: Diagrama - Caso de Uso, Diagrama de Actividades, Diagrama de Clases, Diagrama de Entidad y Vínculo y Diagrama de Secuencia>.
Se deberán crear los siguientes campos:
SFC – Detalle Tipo Entrada/Salida (TES)
Campo | FC_TIPOIGV |
Tipo | C |
Tamaño | 2 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Tipo de Afectación IGV |
Título | Afectación IGV |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
F3 | XR – Tipos Afectación del IGV |
Validación | ExistCpo("SX5","XR"+M->FC_TIPOIGV) |
Help de Campo | Tipo de afectación del IGV según Catálogo No. 7 10 Gravado – Operación Onerosa 11 |
Se deberán crear los siguientes campos:
SFC – Detalle Tipo Entrada/Salida (TES)
Campo | FC_TIPOIGV |
Tipo | C |
Tamaño | 2 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Tipo de Afectación IGV |
Título | Afectación IGV |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
F3 | XR – Tipos Afectación del IGV |
Validación | ExistCpo("SX5","XR"+M->FC_TIPOIGV) |
Help de Campo | Tipo de afectación del IGV según Catálogo No. 7 10 Gravado – Operación Onerosa 11 Gravado – Retiro por premio 12 Gravado – Retiro por donación 13 Gravado – Retiro 14 Gravado – Retiro por publicidad 15 Gravado – Bonificaciones 16 Gravado – Retiro por entrega a trabajadores 17 Gravado – IVAP 20 Exonerado – Operación Onerosa 21 Exonerado – Transferencia Gratuita 30 Inafecto – Operación Onerosa 31 Inafecto – Retiro por Bonificación 32 Inafecto – Retiro 33 Inafecto – Retiro por Muestras Médicas 34 Inafecto – Retiro por Convenio Colectivo 35 Inafecto – Retiro por premio 36 Inafecto – Retiro por publicidad 40 Exportación Informar solamente cuando el impuesto es IGV |
Campo | FC_TIPOISC |
Tipo | C |
Tamaño | 2 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Tipo de Afectación ISC |
Título | Afectación ISC |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
F3 | XR – Tipos Afectación del IGV |
Validación | ExistCpo("SX5","XT"+M->FC_TIPOISC) |
Help de Campo | Tipo de sistema de cálculo de ISC según catálogo No. 08 01 Sistema al valor (Apéndice IV, lit. A – T.U.O IGV e ISC) 02 Aplicación del Monto Fijo (Apéndice IV, lit. B – T.U.O IGV e ISC) 03 Sistema de Precios de Venta al Público (Apéndice IV, lit. C – T.U.O IGV e ISC) Informar solamente para ISC |
SFB- Impuestos Variables
Campo | FB_CLASSE |
Tipo | C |
Tamaño | 1 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Clase de impuesto |
Título | Clase Imp. |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | I=Impuesto;P=Percepcion;R=Retencion |
Validación | PERTENCE("IPR") |
Help de Campo | Indica clase del impuesto. |
Campo | FB_CODIMP |
Tipo | C |
Tamaño | 4 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Codigo de Impuesto |
Título | Cod. Impuesto |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | |
Validación | ExistCpo("SX5","XS"+M->FB_CODIMP) |
Help de Campo | Código del impuesto según SUNAT Catálogo No. 5 Códigos de tipos de Tributo 1000 IGV IMPUESTO GENERAL A LAS VENTAS VAT 2000 ISC IMPUESTO SELECTIVO AL CONSUMO EXC 9999 OTROS CONCEPTOS DE PAGO OTH |
SFP – Control de formularios
Campo | FP_SERIE2 |
Tipo | C |
Tamaño | 4 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Serie 2 |
Título | Serie 2 |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | |
Validación | NaoVazio() |
Help de Campo | Serie a 4 digitos que será informada al SUNAT. |
SF1 - Encabezado de Factura Entrada
Campo | F1_FECAUT |
Tipo | D |
Tamaño | 8 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Fecha de autorización |
Título | Fch Aut |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | |
Validación | |
Help de Campo | Fecha de Autorización Digital |
Campo | F1_FLFTEX |
Tipo | C |
Tamaño | 1 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Estatus transmission Electrónica |
Título | Status Trans |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | 0=No Enviado,1=Enviado a TSS,4=Esperando procesamiento,5=Rechazado,6=Autorizado. |
Inicializa Estd | 0 |
Help de Campo | Indica el estatus del documento una vez que ha sido enviado al TSS. |
Campo | F1_MOTIVO |
Tipo | C |
Tamaño | 30 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Motivo |
Título | Motivo |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
Browse | No |
Orden | F3 |
Help de Campo | Motivo por el cuál se emite el documento. |
Campo | F1_TIPREF |
Tipo | C |
Tamaño | 1 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Tipo de Nota de Crédito |
Título | Tipo Nota de C |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
Validación | ExistCpo("SX5","XO"+M->F1_TIPREF) |
Help de Campo | Tipo de Nota de Crédito Electrónica conforme a catálogo 10 de la SUNAT |
SF2 – Encabezado de Factura de Venta
Campo | F2_FLFTEX |
Tipo | C |
Tamaño | 1 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Estatus transmisión Elec |
Título | Status Trans |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Lista | 0=No Enviado; 1=Enviado a TSS; 4=Esperando procesamiento; 5=Rechazado; 6=Autorizado |
Inicializa Estd | 0 |
Orden | F9 |
Browse | No |
Help de Campo | Indica el estatus del documento una vez que ha sido enviado al TSS. |
Campo | F2_FECAUT |
Tipo | D |
Tamaño | 8 |
Uso | Usado |
Obligatorio | Sí ( ) No ( X ) |
Descripción | Fecha de autorización |
Título | Fch Aut |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Browse | No |
Orden | F0 |
Help de Campo | Fecha de Autorización Digital |
Campo | F2_MOTIVO |
Tipo | C |
Tamaño | 30 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Motivo |
Título | Motivo |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
Browse | No |
Orden | F3 |
Help de Campo | Motivo por el cuál se emite el documento. |
Campo | F2_TIPREF |
Tipo | C |
Tamaño | 1 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Tipo Nota de Débito |
Título | Tipo Nota D. |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Browse | No |
Validación | ExistCpo("SX5","XP"+M->F2_TIPREF) |
Help de Campo | Tipo de Nota de Débito Electrónica conforme a catálogo 10 de la SUNAT. |
Se deberán modificar los siguientes campos:
SF2 .- Encabezado Factura de Venta
Campo | F2_SERIE |
Tipo | C |
Tamaño | 3 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Serie Del Documento |
Título | Serie Docto |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
Browse | No |
Validación | LxExSer2() |
Help de Campo | Serie de la factura. |
SA1.- Clientes
Campo | A1_TIPDOC |
Tipo | C |
Tamaño | 2 |
Uso | Usado |
Obligatorio | Sí ( X ) No ( ) |
Descripción | Tipo Documento Identidad |
Título | Tipo Doc. |
Picture |
|
Contexto | Real |
Propiedad | Modificar |
F3 | TB |
Validación | ExistCpo("SX5","TB"+M->A1_TIPDOC) |
Se deberán crear los siguientes parámetros:
ombre | MV_WSTSS |
Tipo | Carácter |
Descripción | URL de los WebServices del TSS. |
Nombre | MV_CFDDOCS |
Tipo | Carácter |
Descripción | Directorio donde se grabaran las facturas electrónicas. |
Nombre | MV_TESEXE |
Tipo | Carácter |
Descripción | TES Gratuita. |
Agregar las siguientes tablas genéricas:
XN – Tipo de Documento de Identidad (Catálogo No. 06)
Clave | Descripción |
01 | 1 |
02 | 0 |
03 | 0 |
04 | 4 |
05 | 5 |
06 | 6 |
07 | 7 |
08 | A |
00 | 0 |
XO - Tipos de Nota de Crédito (Catálogo No. 09)
Clave | Descripción |
01 | ANULACION DE LA OPERACIÓN |
02 | ANULACION POR ERROR EN EL RUC |
03 | CORRECCION POR ERROR EN LA DESCRIPCION |
04 | DESCUENTO GLOBAL |
05 | DESCUENTO POR ITEM |
06 | DEVOLUCION TOTAL |
07 | DEVOLUCION POR ITEM |
08 | BONIFICACIÓN |
09 | DISMINUSIÓN EN EL VALOR |
10 | OTROS CONCEPTOS |
XP – Tipos de Nota de Débito (Catálogo No. 10)
Clave | Descripción |
01 | INTERESES POR MORA |
02 | AUMENTO EN EL VALOR |
03 | PENALIDADES |
XQ – Monedas ISO-4217 (Catálogo No. 02)
Clave | Descripción |
1 | PEN |
2 | USD |
XR – Tipos Afectación del IGV (Catálogo No. 07)
Clave | Descripción |
10 | 10 Gravado - Operación Onerosa |
11 | Gravado – Retiro por premio |
12 | Gravado – Retiro por donación |
13 | Gravado – Retiro |
14 | Gravado – Retiro por publicidad |
15 | Gravado – Bonificaciones |
16 | Gravado – Retiro por entrega a trabajadores |
17 | Gravado – IVAP |
20 | Exonerado - Operación Onerosa |
21 | Exonerado – Transferencia Gratuita |
30 | Inafecto - Operación Onerosa |
31 | Inafecto – Retiro por Bonificación |
32 | Inafecto – Retiro |
33 | Inafecto – Retiro por Muestras Médicas |
34 | Inafecto - Retiro por Convenio Colectivo |
35 | Inafecto – Retiro por premio |
36 | Inafecto - Retiro por publicidad |
40 | Exportación |
XT – Tipos de Sistema de cálculo del ISC (Catálogo No. 08)
Clave | Descripción |
01 | Sistema al Valor |
02 | Aplicación del Monto fijo |
03 | Sistema de Precios de Venta al público |
XS – Códigos de Tipos de Tributos (Catálogo No. 05)
Clave | Descripción |
1000 | IGV|VAT |
2000 | ISC|EXC |
9999 | OTROS|OTH |
Este documento es un material de especificación de los requisitos de innovación. Se trata de un contenido sumamente técnico. |
---|
Este documento es un material de especificación de los requisitos de innovación. Se trata de un contenido sumamente técnico. |
---|
Especificación | |||
Producto | Microsiga Protheus | Módulo | SIGAFAT |
Segmento ejecutor | Servicios | ||
Projeto1 | Proyecto de Desarrollo_MEX | IRM/EPIC1 | SERINN001-1144 |
Requisito/Story/Issue1 |
| Subtarea1 |
|
Chamado/Ticket2 |
| ||
País | ( ) Brasil ( ) Argentina ( ) México ( ) Chile ( ) Paraguay ( ) Ecuador ( ) EEUU ( ) Colombia ( X ) Otro Perú. | ||
Otros | <Si necesario, informe otras referencias que sean pertinentes a esta especificación. Ejemplo: enlaces de otros documentos o subtareas vinculadas>. |
Leyenda: 1 – Innovación 2 – Mantenimiento (Los demás campos se deben completar en ambos los procesos).
Crear la función M486NCCXML que deberá generar el XML de la Nota de Crédito de venta que será trasmitido al TSS para su posterior envío a la SUNAT, además se deberá modificar fuente M486XFUN para que en funciones que se utilizan para crearción de XML de factura/boleta de venta y nota de débito naveguen Encabezado de Fact. de Entrada (SF1) y Items de las Fact. de Entrada (SD1), esto aplica para:
Esta rutina deberá permitir generar una cadena de caracteres que define un XML la contendrá los datos correspondientes al documento electrónico solicitado según el esquema UBL 2.0. No deberá tener interfaz gráfica de entrada ya que será llamada por la rutina MATA486.
Los parámetros que deberá recibir la función son los siguientes:
Seleccionar los registros en Encabezado de Fact. de Entrada (SF1) Y Items de las Fact. de Entrada (SD1) dónde F1_FILIAL=FILIAL PARÁMETROS, F1_DOC= No. Documento, F1_SERIE=Serie Parámetros, F1_CLIENTE=Cliente Parámetros, F2_LOJA= Código Tienda Paramétros y generar XML. Si no se encuentra el registro, no deberá generar XML.
A continuación se detalla la estructura del XML así como su correspondencia en Protheus:
Elemento | TAG UBL | Descripción | Tam | Oblig | Valor |
Adicionales | <UBLExtensions> | Contenedor de Componentes de extensión. Podrán incorporarse nuevas definiciones estructuradas cuando sean de interés conjunto para emisores y receptores, y no estén ya definidas en el esquema de la factura. |
| x |
|
<ext:UBLExtension> | Deberá generarse para Información Adicional sobre la factura por conceptos de otros tributos y operaciones |
|
|
| |
<ext:ExtensionContent> |
|
|
|
| |
<sac:AdditionalInformation> | Información Adicional |
|
|
| |
<sac:AdditionalMonetaryTotal> | Generar por cada Concepto contenido en Catálogo No. 14 |
|
| Generar al menos por los conceptos: 1001,1002,1003,1004,1005,1000
Ver Sección Submontos Adicionales | |
<cbc:ID> | Código Concepto Tributario |
|
|
| |
<cbc:PayableAmount currencyID="XXX"> | Monto del Concepto Tributario |
|
| Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") Depende del tipo de Operación. | |
<ext:UBLExtension> |
|
|
| Generar sin contenido de la siguiente manera: <ext:UBLExtension> <ext:ExtensionContent> </ext:ExtensionContent> </ext:UBLExtension> | |
Identificación del Documento | <cbc:UBLVersionID> | Versión UBL | 3 | X | Fijo “2.0” |
<cbc:CustomizationID> | Versión de la estructura del Documento | 3 | X | Fijo “1.0” | |
<cbc:ID> | Numeración, conformada por serie y número correlativo | Max. 13 | X | F1_SERIE2+”-“+F1_DOC en Formato: F###-NNNNNNNN
Ejemplo: FX01-12 F001-1022 | |
<cbc:IssueDate> | Fecha de Emisión | 10 | X | F1_EMISSAO Formato YYYY-MM-DD | |
<cbc:DocumentCurrencyCode> | Tipo de moneda en la cual se emite la factura electrónica. Catálogo 02 | 3 | x | POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") | |
Referencias de la Nota de Crédito | <cac:DiscrepancyResponse> | Contiene el tipo de nota de crédito, el sustento de la emisión de la nota de crédito, así como la identificación de la factura o boleta de venta electrónica afectada. |
| x | Debe generar por cada documento D1_SERORI+D1_NFORI Diferente |
<cbc:ReferenceID> | Identificación de la factura o boleta de venta modificada por la nota de crédito. Serie y número de documento afectado
|
|
| D1_SERORI+D1_NFORI Ejemplo: FX01-12 F001-1022 | |
<cbc:ResponseCode> | Código de tipo de nota de crédito - Catálogo No. 09 |
|
| F1_TIPREF | |
<cbc:Description> | Descripción detallada del servicio prestado, bien vendido o cedido en uso o descripción de acuerdo a lo dispuesto en el RCP para el tipo de comprobante de pago, según corresponda. |
|
| F1_MOTIVO | |
<cac:BillingReference> | Tipo de documento del documento que modifica |
| x |
| |
<cac:InvoiceDocumentReference> | Asociación al documento modificado |
| x |
| |
<cbc:ID> | Documento que se modifica (serie-número)
|
|
| D1_SERORI+D1_NFORI Ejemplo: FX01-12 F001-1022 | |
<cbc:DocumentTypeCode> | Código del tipo de documento modificado conforme a Catálogo No. 01 |
|
| Si es factura deberá indicarse ‘01’ | |
Guía de Remisión | <cac:DespatchDocumentReference > | Guía de Remisión Asociada |
|
| Si la factura fue originada a partir de una guía de remisión debe figurar este elemento en el XML |
<cbc:ID> | Número de Guía |
|
|
| |
<cbc:DocumentTypeCode> | Código Tipo de documento Catálogo No. 01 |
|
| Colocar Fijo para guia de Remisión el valor “09” | |
Otros documentos Adicionales | <cac:AdditionalDocumentReference>
| Referencia a cualquier otro documento, distintos a los señalados en el numeral anterior, asociado a la factura. Podrán especificarse documentos como comprobantes de retención, percepción, código SCOP, etc. Puede existir documentos de distintos tipos asociados a una misma factura, por lo que el número de elementos de este tipo es ilimitado. |
|
| Generar si y solo si existe alguna referencia a estos documentos.
**Revisar catálogo No. 12 |
<cbc:ID> | Número de Documento |
|
| Número de documento | |
<cbc:DocumentTypeCode> | Se utilizará el Catálogo No. 12: “Códigos - Documentos Relacionados Tributarios”. |
|
| Este elemento es opcional. Colocar dependiendo del tipo de Documento. Catálogo No. 12 | |
Firma Electrónica | <cac:Signature> | Referencia a la Firma Digital |
|
| PENDIENTE. Meintras generar sin este Elemento |
<cbc:ID> | Identificador de la firma |
|
| Fijo “IDSignTOTVS” | |
<cac:SignatoryParty> <cac:PartyIdentification> <cbc:ID> | Identificación de la parte firmante | 13 |
| SM0->M0_CGC | |
<cac:SignatoryParty> <cac:PartyName> <cbc:Name> | Nombre de la parte firmante
|
|
| SM0->M0_NOME | |
<cac:DigitalSignatureAttachment> <cac:ExternalReference> <cbc:URI> | Asociación con la firma codificada
|
|
| Colocar fijo “#signatureTotvs” | |
Información del Emisor | <cac:AccountingSupplierParty> | Documentación Emisor |
| x |
|
<cbc:CustomerAssignedAccountID> | RUC del Emisor | 11 | x | SM0->M0_CGC | |
<cbc:AdditionalAccountID> | Tipo de documento de identificación. Catálogo No. 6 | 1 | x | Fijo ‘6’ | |
<cac:Party> | Razón social y Domicilio fiscal del Emisor |
| x |
| |
<cac:PartyName> | Nombre de la Empresa |
| X |
| |
<cbc:Name> | Nombre commercial | Max 100 | x | M0_NOMECOM | |
<cac:PostalAddress> | Domicilio Fiscal |
| X |
| |
<cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | M0_CEP homologado con ubígeos | |
<cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | M0_ENDENT | |
<cbc:CityName> | Provincia | Max 30 | X | M0_CIDENT | |
<cbc:District> | Distrito | Max 30 | X | M0_BAIRENT | |
<cac:Country> | Datos Pais |
| X |
| |
<cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 | 2 | X | Fijo “PE” | |
<cac:PartyLegalEntity> | Razón Social |
|
|
| |
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | M0_NOME | |
Información del Receptor | <cac:AccountingCustomerParty> | Datos del Adquirente o Usuario |
| x |
|
<cbc:CustomerAssignedAccountID> | RUC | 11 | X | A1_CGC | |
<cbc:AdditionalAccountID> | Tipo de documento de identificación. Catálogo No. 6 | 2 | X | POSICIONE("SX5",1,XFILIAL("SX5")+”XD”+A1_TIPDOC,"X5_DESCSPA") | |
<cac:Party> | Razón social y Domicilio fiscal del Receptor |
| X |
| |
<cac:PostalAddress> | Domicilio Fiscal |
| X |
| |
<cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | A1_CEP homologado con ubígeos | |
<cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | A1_END | |
<cbc:CityName> | Provincia | Max 30 | X | A1_MUN | |
<cbc:District> | Distrito | Max 30 | X | A1_BAIRRO | |
<cac:Country> | Datos Pais |
| X |
| |
<cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 | 2 | X | Obtener de SYA->YA_CODERP por medio de A1_PAIS | |
<cac:PartyLegalEntity> | Razón Social |
|
|
| |
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | A1_NOME | |
Impuestos | <cac:TaxTotal> | Impuestos Globales |
| X | Genenrar por cada Tipo de Impuesto que contenga la Factura. |
<cbc:TaxAmount currencyID=”XX”> | Monto total del Impuesto |
| X | Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”X”+F2_MOEDA,"X5_DESCSPA") El valor de TaxAmount = Sumatoria del valor del Impuesto de la factura. | |
<cac:TaxSubtotal> | Subtotal Impuestos |
| X |
| |
<cbc:TaxAmount currencyID=”XX”> | Monto total del Impuesto |
| X | Dónde XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") El valor de TaxAmount = Sumatoria del valor del Impuesto de la factura. | |
<cac:TaxCategory> | Categoría del Impuesto |
| X |
| |
<cac:TaxScheme> |
|
| X |
| |
<cbc:ID> | Código del Impuesto. Catálogo No. 05 | 4 | X | Obtener del impuesto el campo FB_CODIMP | |
<cbc:Name> | Nombre del Impuesto. Catálogo No. 05 | Max 5 | X | IGV,ISC,OTROS | |
<cbc:TaxTypeCode> | Código del Tipo de Tributo (UN/ECE 5153)
| 3 | X | Obtener del impuesto el campo FB_CODTAR | |
Total Nota de Crédito | <cac:LegalMonetaryTotal> | Totales a pagar de la Factura y Cargos |
| X |
|
<cbc:AllowanceTotalAmount currencyID="XXX"> | Importe total de cargos aplicados al total de la factura
|
| X | Donde XX = XX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") AllowanceTotalAmount = “0.00” | |
<cbc:PayableAmount currencyID="XXX"> | Moneda e Importe total a pagar
|
| X | Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") PayableAmount = F2_VALBRUT | |
Detalle de la Nota de Crédito | <cac:CreditNoteLine> | Debe generarse por cada ítem |
| X |
|
| <cbc:ID> | Número de orden del Ítem
|
| x | D1_ITEM, sin ceros a la izquierda. |
| <cbc: CreditedQuantity unitCode="XXX"> | Unidad de medida y cantidad por ítem |
|
| Donde XXX = Posicione("SAH",1,xFilial("SAH")+(cAliasXML)->B1_UM,"AH_COD_CO") InvoiceQuantity = D2_QUANT |
| <cbc:LineExtensionAmount currencyID="XXX"> | Moneda e Importe monetario que es el total de la línea de detalle, incluyendo variaciones de precio (subvenciones, cargos o descuentos) pero sin impuestos.
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+1,"X5_DESCSPA")
LineExtensionAmount =D1_PRCVEN + D1_DESCON/D2_QUANT) |
| <cac:PricingReference> | Nodo de Valores Unitarios |
|
|
|
| <cac:AlternativeConditionPrice> | Valor referencial unitario por ítem en operaciones no onerosas y código |
|
|
|
| <cbc:PriceAmount currencyID="XXX"> | Monto del valor unitario
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
PriceAmount currencyID= (D1_TOTAL +D1_DESCON)/nQtdItem) + (nImp/nQtdItem) |
| <cbc:PriceTypeCode> | Código de Tipo de Precio. Catálogo No. 16 |
|
| 01 para Precion con IGV. 02 Para cuando el ítem tiene descuento. |
| <cac:TaxTotal> | Impuestos por Item de la factura |
|
|
|
| <cbc:TaxAmount currencyID="XXX"> | Importe total de un tributo para este ítem
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_VALIMPn |
| <cac:TaxSubtotal> |
|
|
|
|
| <cbc:TaxAmount currencyID="XXX"> | Importe total de un tributo para este ítem
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_VALIMPn |
| <cac:TaxCategory> | Categoria del impuesto |
|
|
|
| <cbc:TaxExemptionReasonCode> | Tipo de Afectación según catálogo No. 07 |
|
| Generar solo si el impuesto es IGV |
| <cbc:TierRange > | Tipo de afectación de ISC |
|
| Generar solo para ISC |
| <cac:TaxScheme> | Tipo de Impuesto |
|
|
|
| <cbc:ID> | Tipo de Impuesto según catálogo No. 05 |
|
| FB_CODIMP |
| <cbc:Name> | Nombre del Impuesto |
|
| FB_CODIGO para IGV e ISC, para otrs impuestos colocar palabra “OTROS” |
| <cbc:TaxTypeCode> | Código del Tipo de Tributo (UN/ECE 5153) |
|
| SUBSTR(POSICIONE("SX5",1,XFILIAL("SX5")+”XS”+FB_CODIMP,”X5_DESCSPA"),4) Tomas UN/ECE |
| <cac:Item> | Descripcion del ítem |
|
|
|
| <cbc:Description> | Descripción detallada del bien vendido o cedido en uso, descripción o tipo de servicio prestado por ítem |
|
| B1_DESC |
| <cac:SellersItemIdentification> | Identificaicón interna del producto |
|
|
|
| <cbc:ID> | Código del producto de acuerdo al tipo de codificación interna que se utilice. |
|
| B1_COD |
| <cac:Price> |
|
|
|
|
| <cbc:PriceAmount currencyID="xxx"> | Valores de venta unitarios por ítem (VU) no incluye impuestos
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
D1_PRCVEN |
SUBMONTOS ADICIONALES
Según el Catálogo No. 14: Códigos - Otros conceptos tributarios deberán anexarse a cada submonto los concepto si estos existen en la nota de crédito.
Estos deberán obtenerse de la siguiente manera:
Submonto 1001 Total Valor venta Operaciones Gravadas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenece a los códigos 10,11,12,13,14,15,16 o 17 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1001 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX">Monto operaciones gravadas </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1002 Total valor de venta Operaciones Inafectadas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenecen a los códigos 30,31,32,33,34,35,36 o 40 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1002 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX">Monto operaciones Inafectas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: En el caso que todas las operaciones (ítems de la factura/boleta de venta) comprendidas en la factura electrónica sean gratuitas (TES se encuentre en parámetro MV_TESEXE), se deberá mostrar la leyenda "TRANSFERENCIA GRATUITA DE UN BIEN Y/O SERVICIO PRESTADO GRATUITAMENTE" de acuerdo a Catálogo No. 15: Códigos - Elementos adicionales en la Factura Electrónica y/o Boleta de Venta Electrónica respecto al código 1002.
Submonto 1003 Total valor venta Operaciones Exoneradas
Si el Tipo de Afectación del IGV del impuesto (FC_TIPOIGV) pertenecen a los códigos 20 o 21 según el Catálogo No. 07: Códigos de Tipo de Afectación del IGV entonces el monto de los impuestos de los ítems que tienen estos códigos de afectación deberá reportarse en el subtotal 1003 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XX"> Monto operaciones Exoneradas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1004 Total valor de venta Operaciones gratuitas
Si la factura cuenta con ítems cuya TES se encuentre en el parámetro MV_TESEXE, el monto deberá reportarse en el subtotal 1004 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1004</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> Monto total por operaciones gratuitas</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1005 Sub total de venta
Deberá mostrar importe de valor de la mercaderia (SF2->F2_VALMERC) con dos decimales si espacios.
<sac:AdditionalMonetaryTotal>
<cbc:ID>1005</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> SF2->F2_VALMERC </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 2001 Percepciones
Por cada ítem del documento, con el Tipo de salida (D2_TES) recorrer los impuestos variables (Tabla SFB) que pertenezcan a la TES y que la clase sea Percepción (FB_CLASSE = 'P'), y obtener el campo de Libro Fiscal (FB_CPOLVRO), mediante este campo buscar en el campo de Valor del Impuesto (F2_VALIMPx) correspondiente en el documento para obtener el valor de la percepción del documento. Generar elemento de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_VALIMPx</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no tiene operaciones de percepciones, no deberá generar nodo.
Submonto 2002 Retenciones
Por cada ítem del documento, con el Tipo de salida (D2_TES) recorrer los impuestos variables (Tabla SFB) que pertenezcan a la TES y que la clase sea Retención (FB_CLASSE = 'R'), y obtener el campo de Libro Fiscal (FB_CPOLVRO), mediante este campo buscar en el campo Valor del Impuesto (F2_VALIMPx) correspondiente en el documento para obtener el valor de la retención del documento. Generar elemento de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_VALIMPx</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no tiene operaciones de retenciones, no deberá generar nodo.
Submonto 2003 Detracciones
<sac:AdditionalMonetaryTotal>
<cbc:ID>2003</cbc:ID>
<cbc:PayableAmount currencyID="XXX"> Monto Detracciones </cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
NOTA: Si el documento no cuenta con detracciones, no generar nodo.
Submonto 2005 Total Descuentos
Si la factura/boleta de venta tiene valor en el campo Descuentos (F2_DESCONT), deberá generarse el nodo siguiente con el valor de este descuento:
<sac:AdditionalMonetaryTotal>
<cbc:ID>2005</cbc:ID>
<cbc:PayableAmount currencyID="XXX">F2_DESCONT</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
Submonto 1000 Valor Total en letra
Se deberá convertir el Valor Bruto de la Factura (F2_VALBRUT) a letra utilizando la función EXTENSO y deberá reportarse en el nodo 1000 de la siguiente manera:
<sac:AdditionalMonetaryTotal>
<cbc:ID>1000</cbc:ID>
<cbc:value> EXTENSO(F2_VALBRUT)</cbc:value>
</sac:AdditionalMonetaryTotal>
Dónde XXX= POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F2_MOEDA,"X5_DESCSPA") Para obtener el código de moneda según ISO-3366-1
Rutina | Tipo de Operación | Opción de Menú | Reglas de Negocio |
MATA486 - Documentos Electrónicos | Involucrada | Actualizaciones|Facturación|Documentos Electronicos | - |
M486NFXML – XML de Factura para Transmisión Electrónica | Creación |
| - |
M486XFUN - Funciones geración XML NF, NDC y NCC | Creación |
Ejemplo de aplicación:
Tablas Utilizadas
<Si necesario, incluirprototipos de pantallas con el objetivo de facilitar la comprensión del requisito, presentar conceptos y funcionalidades del software>.
Prototipo 01
<En esta etapa, incluir representaciones gráficas que describan el problema por solucionar y el sistema que se desarrollará. Ejemplo: Diagrama - Caso de Uso, Diagrama de Actividades, Diagrama de Clases, Diagrama de Entidad y Vínculo y Diagrama de Secuencia>.
Archivo o Código del Script: AAA – Negociación Financiera o /*Versao=CP.2014.12_03*/
Índice | Clave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo
<AAA_PERESP>
Tipo
<N>
Tamaño
<6>
Valor Inicial
<Varia de acuerdo con el tipo informado. Por ejemplo, cuando el campo “tipo” es date, en este campo se puede informar una fecha>.
Obligatorio
Sí ( ) No ( )
Descripción
<Referencia mínima para cálculo>
Título
<Ref.Calc.>
Picture
<@E999.99>
Help de Campo
<Informar el % que el alumno pagará en efectivo (dinero). Ese % podrá modificarse durante la negociación>
<Información utilizada en la línea Protheus>.
Nombre: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emisión De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Común |
X1_CNT01 | '01/01/08' |
X1_HELP | Fecha inicial del intervalo de emisiones de los formularios de DARF que se considerarán en la selección de los datos para el informe. |
<Información utilizada en la línea Protheus>
Consulta: AMB
Descripción | Configuraciones de planificación. |
Tipo | Consulta estándar. |
Tabla | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descripción” |
Respuesta | AMB->AMB_CODIGO |
<Información utilizada en la línea Datasul>.
Procedimientos
Procedimiento |
|
|
|
Descripción | (Max 40 posiciones) | (Max 40 posiciones) | (Max 40 posiciones) |
Módulo |
|
|
|
Programa base |
|
|
|
Nombre Menú | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interfaz | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro estándar | Sí | Sí | Sí |
Visualiza Menú | Sí/No | Sí/No | Sí/No |
Release de Liberación |
|
|
|
Programas
Programa |
|
|
|
Descripción | (Max 40 posiciones) | (Max 40 posiciones) | (Max 40 posiciones) |
Nombre Externo |
|
|
|
Nombre Menú/Programa | (Max 32 posiciones) | (Max 32 posiciones) | (Max 32 posiciones) |
Nombre Verbalizado[1] | (Max 254 posiciones) | (Max 254 posicionees) | (Max 254 posiciones) |
Procedimiento |
|
|
|
Template | (Verificar la lista de opciones en el man01211) | (Verificar la lista de opciones en el man01211) | (Verificar la lista de opciones en el man01211) |
Tipo[2] | Consulta/Mantenimiento/ \Informe/Tareas | Consulta/Mantenimiento/ Informe/Tareas | Consulta/Mantenimiento/ Informe/Tareas |
Interfaz | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoría[3] |
|
|
|
Ejecuta vía RPC | Sí/No | Sí/No | Sí/No |
Registro Estándar | Sí | Sí | Sí |
Otro Producto | No | No | No |
Visualiza Menú | Sí/No | Sí/No | Sí/No |
Query on-line | Sí/No | Sí/No | Sí/No |
Log Ejec. | Sí/No | Sí/No | Sí/No |
Rutina (EMS) |
|
|
|
Subrutina (EMS) |
|
|
|
Ubicación dentro de la subrutina (EMS) |
|
|
|
Compact[4] | Sí/No | Sí/No | Sí/No |
Home[5] | Sí/No | Sí/No | Sí/No |
Posición del Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar los papeles con los que el programa se debe vincular |
|
|
|
Archivo de Papeles
<El archivo de papeles es obligatorio para los proyectos de desarrollo FLEX a partir del Datasul 10>.
<Recordatorio: el nombre de los papeles en inglés que se describe en este punto del documento se deben homologar por el equipo de traducción>.
Código Papel | (máx 3 posiciones) |
Descripción en Portugués* |
|
Descripción en Inglés* |
|
[1] Es obligatorio el desarrollo del Nombre Verbalizado a partir del Datasul 10.
[2] Es obligatorio desarrollar el Tipo a partir del Datasul 10.
[3] Categorías son obligatorias para los programas FLEX.
[4] Obligatorio cuando el proyecto es FLEX.
[5] Obrigatorio cuando el proyecto es FLEX.
Este documento es un material de especificación de los requisitos de innovación. Se trata de un contenido sumamente técnico. |
---|
...