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 |
| ||
Projeto1 |
| IRM/EPIC1 |
|
Requisito/Story/Issue1 |
| Subtarea1 | SERINN001-1144 |
Chamado/Ticket2 |
| ||
País | ( ) Brasil ( ) Argentina ( ) México ( ) Chile ( ) Paraguay ( ) Ecuador ( ) EEUU ( ) Colombia ( ) Otro _____________. | ||
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 M486NFXML que deberá generar el xml que será trasmitido al TSS para su posterior envío a la SUNAT. Esto aplica para:
En Protheus la Boleta de Venta se genera de la misma manera que una Factura de Venta. La diferencia entre ambos documentos será el tipo de identificación del receptor de acuerdo al tipo de documento de identidad (A1_TIPDOC) y la Serie2 (F2_SERIE2) del documento. Para Boleta de Venta el documento deberá comenzar con la letra “B”, para Factura de Venta la Serie 2 deberá comenzar con “F”. El receptor de boleta de venta será identificado con A1_TIPDOC diferente a RUC (diferente de Valor 6).
<Regla de negocio es lo que define la forma de realizar el negocio, el proceso definido y/o las reglas que se deben considerar. Se deben describir las restricciones, validaciones, condiciones y excepciones del proceso. Si necesario, incluir,también en este capítulo, las reglas de integridad que se deben verificar al momento del desarrollo>.
<En la tabla abajo, informe las rutinas involucradas, el tipo de operación, la opción de menú y, si necesario, una breve descripción de las regras de negocio relacionadas a la rutina>.
Esta rutina deberá permitir generar una cadena de caracteres que define un XML en el cuál contendrá los datos correspondientes al documento electrónico solicitado según el esquema UBL2.0.
No deberá tener interface gráfica de entrada ya que será llamada por la rutina MATA486.
Los parámetros que deberá recibir la función son los siguientes:
La estructura del XML generado deberá apegarse al estándar UBL 2.0. Una vez obtenidos los datos de la factura, generar el archivo XML en la carpeta
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”+F2_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 | F2_SERIE2+”-“+F2_DOC en Formato: F###-NNNNNNNN
Ejemplo: FX01-12 F001-1022 | |||||||
| <cbc:IssueDate> | Fecha de Emisión | 10 | X | F2_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”+F2_MOEDA,"X5_DESCSPA") | |||||||
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. | |||||||
| 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 |
|
|
| |||||||
<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")+”XN”+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")+”XQ”+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”+F2_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 Factura | <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”+F2_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”+F2_MOEDA,"X5_DESCSPA") PayableAmount = F2_VALBRUT | ||||||||
Detalle de la Factura | <cac:InvoiceLine> | Debe generarse por cada ítem |
| X |
| |||||||
| <cbc:ID> | Número de orden del Ítem
|
| x | D2_ITEM, sin ceros a la izquierda. | |||||||
| <cbc:InvoicedQuantity 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")+”XQ”+F2_MOEDA,"X5_DESCSPA")
LineExtensionAmount =D2_PRCVEN + D2_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”+F2_MOEDA,"X5_DESCSPA")
PriceAmount currencyID= (D2_TOTAL +D2_DESCON)/nQtdItem) + (nImp/nQtdItem) | |||||||
| <cbc:PriceTypeCode> | Código de Tipo de Precio. Catálogo No. 16 |
|
| 01 para Precion con IGV 02 Para | |||||||
| <cac:AllowanceCharge> | Descuentos por Item |
|
|
| |||||||
| <cbc:ChargeIndicator> | Indicador de descuento |
|
| Colocar siempre false | |||||||
| <cbc:Amount currencyID="XXX"> | Monto del descuento del ítem .Se debe especificar la moneda en la que se emite el descuento, para ello se utiliza el atributo currencyID.
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F2_MOEDA,"X5_DESCSPA")
:Amount = D2_DESCON | |||||||
| <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”+F2_MOEDA,"X5_DESCSPA")
D2_VALIMPn | |||||||
| <cac:TaxSubtotal> |
|
|
|
| |||||||
| <cbc:TaxAmount currencyID="XXX"> | Importe total de un tributo para este ítem
|
|
| Donde XXX =POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F2_MOEDA,"X5_DESCSPA")
D2_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)
|
|
| FB_CODTAR | |||||||
| <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”+F2_MOEDA,"X5_DESCSPA")
D2_PRCVEN |
Rutina | Tipo de Operación | Opción de Menú | Reglas de Negocio | |||
[ACAA040 – Parámetros] | [Modificación] | [Actualizaciones -> Académico-> Tesorería] | - | |||
[ACAA050 – Negociación Financiera] | [Involucrada] | [Actualizaciones -> Académico-> Tesorería] | - | |||
MATA486 - Documentos Electrónicos | Involucrada | Actualizaciones|Facturación|Documentos Electronicos | - | |||
M486NFXML – XML de Factura para Transmisión Electrónica | Creación | Actualizaciones|Facturación|Documentos Electronicos | [ACAA060 – Archivo de Pedidos] | [Creación] | [Actualizaciones -> Académico-> Archivos]- |
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.
[6] Obligatorio 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. |
---|