01. DATOS GENERALES
| Producto | |
|---|
| Línea de producto: | |
|---|
| Segmento: | |
|---|
| Módulo: | SIGAFAT - Facturación |
|---|
| Función: | Rutina(s) | Nombre Técnico | Fecha |
|---|
| MATA486.PRW | Documentos electrónicos |
| | M486XFUNCO.PRW | Funciones genéricas para transmisión de documentos electrónicos |
| | M486PDFCOL.PRW | Generación PDF |
| | LOCXNF.PRW | Notas Fiscales. |
| | LOCXNF2.PRW | Documentos Fiscales. |
| | LOCXCOL.PRW | Funciones Genéricas de Notas Fiscales Colombia |
| | FATECOL.INI | Generación de XML para Documentos de Entrada. |
| | WSNFECOL | Cliente de servicio web de facturación |
|
|
|---|
| País: | Colombia |
|---|
| Ticket: | N/A |
|---|
| Pacote de ATUSX: | 010328 |
|---|
| Requisito/Story/Issue (informe el requisito vinculado): | DMINA-14293 |
|---|
02. SITUACIÓN/REQUISITO
En Colombia, para el 01 de Agosto, entra en función que los proveedores que no están obligados a facturar, la empresa que les compre debe presentar una factura por ellos, a lo que llama Documento Soporte.
Realizar modificaciones en el módulo de facturación para dar solución a lo establecido en la Resolución Número 000167 del 30 DIC 2021 de la DIAN, Anexo técnico del documento soporte en adquisiciones efectuadas a sujetos no obligados a expedir factura de venta o documento equivalente. En el registro de la Factura de Entrada, identificar cuando es una factura por Documento Soporte. Este tipo de documentos deben generar un comprobante electrónico (XML) y éste debe ser autorizado por la DIAN.
03. SOLUCIÓN
FATECOL
El archivo FateCol.ini se utiliza principalmente para generar los componentes del XML de una Nota de Crédito (NCC), si embargo, el documento soporte se crea como una factura con especie 1 de tipo NF, por lo tanto, en el archivo se realizan las siguientes modificaciones:
- Se crea la variable lógica _aTotal[116] para indica si es un documento soporte y utilizar los datos del Cliente (SA1) y Complementos(AI0) relacionado al Proveedor(SA2). También se utiliza la variable lógica _aTotal[116] para asignar los nodos relacionados a la Factura (ejemplo: fe:InvoiceLine, fe:Item, fe:Price etc..)
- Cuando se utiliza la función fGetTaxas() se indica que es un documento “NCC” para obtener los valores de las tablas de Impuestos Variables (SFB) y de Detalle de Factura (SD1) y cuando se utiliza la función fGetTaxDet() se indica que es un documento “NCC” para obtener los valores de las tablas de Impuestos Variables (SFB), Tes vs. Impuestos(SFC), Encabezado de Factura (SF1) y de Detalle de Factura (SD1).
- Para complementar la consulta realizada en la función FsQuery() en el filtro de la tabla SFP se indica la especie “1” Factura.
LOCXCOL
- Se crea la función LxVlCabCol() que es utilizada en el campo F1_FORNECE cuando es un Docto Soporte y valida si el proveedor seleccionado tiene un cliente relacionado (A2_CLIENTE Y A2_LOJCLI).
- En la función LxCpoCol() al campo Serie (F1_SERIE) se le agrega la consulta “01” (muestra la serie y numeración relacionada al Docto. Soporte) y al campo Proveedor(F1_FORNECE) se le agrega la función LxVlCabCol() (Valida el Proveedor vs Cliente).
LOCXNF
- En la función Mata101n() se asigna el tipo documento “1 - Factura” y se activa la variable lógica lDocSp cuando en el grupo de preguntas MT101N se selecciona el tipo de factura “Docto. Soporte”
- En la función LocxDlgNF() se asigna el título “Doc. Soporte” para que sea mostrado en el encabezado de la factura.
- En la Función GravaCabNF() cuando es documento soporte se asigna valor al campo F1_SOPORT = “S” y cuando el Departamento/Estado (A2_EST) del proveedor es igual a “EX” se asigna F1_TIPOPE = “11” de lo contrario se asigna F1_TIPOPE = “10”.
- En la Función GravaNFGral() se realiza la auto numeración(número documento) con la función AtuNumNF() cuando es un Docto. Soporte.
- En la función MontaCfgNf() se asigna el título “Doc. Soporte” para que sea mostrado en el encabezado de la factura.
- En la función LocxVal() cuando es documento soporte se asigna y valida el folio (números de documento).
LOCXNF2
- En la función LxExSer2() se obtiene la serie 2 (F1_SERIE2) por medio de la serie y el número de documento cuando es documento soporte.
- En la Función FValDocSer() se valida la serie, numero de documento y se asigna la serie 2 cuando es documento soporte.
M486PDFCOL
- En la Función ImpXmlPDF() cuando es documento soporte se asignan los filtros F1_SERIE = “NF” y F1_SOPORT=“S” al query de la tabla SF1.
M486XFUNCO
- En la Función M486XMLHKA() cuando es documento soporte se obtienen los valores (cliente y tienda) relacionados al proveedor, estos valores posteriormente se utilizaran para obtener la actividad económica y los detalles tributarios. También se asigna al elemento ctipoDocumento = “05” que indica que es un documento soporte y se excluye la generación de los elementos “CamposExtr”.
- En la función M486DETDOC() cuando es documento soporte se asignan los elementos “descripcion2”, “descripcion3” y “descripcionTecnica”.
- Dentro del elemento “descripcion3” se asigna la fecha de compra y la forma de transmisión (1 = Por Operación, 2 = Acumulado Semanal) los valores separados por un punto y coma.
MATA486
- En la función MATA486() se indica el tipo de documento (nTDTras = 6) cuando en el grupo de preguntas MATA486 se selecciona el tipo de factura “Docto. Soporte”
- En la función M486VLDDOC() cuando es documento soporte se asignan los filtros F1_ESPECIE = “NF” y F1_SOPORT=“S” al query de la tabla SF1 para informar los documentos que serán procesados. También se validan los datos del cliente relacionado al proveedor (A2_CLIENTE Y A2_LOJCLI).
- En la función M486GETINF() cuando es documento soporte se asignan los filtros F1_ESPECIE = “NF” y F1_SOPORT=“S” al query de la tabla SF1 para obtener los documentos que han sido transmitidos.
- En la función M486VisNFE() cuando es documento soporte se activa la variable lógica lDocSp y se inicializa la variable nTipo = 10 para visualizar de forma correcta la factura.
- En la función M486BRWSFX() se inicializan las variables necesarias para llenar el browse principal dependiendo del tipo de documento. Se informa el tipo de documento “NCC” para trabajar sobre la tabla SF1.
- En la función M486SENDPT() cuando es documento soporte se el array aOpcDoc con los elementos relacionados a la factura (Invoice) que serán procesados en la función M486XMLHKA()
- Se crea la función M486ClieDS() que obtiene los datos del cliente relacionado al proveedor (A2_CLIENTE Y A2_LOJCLI).
WSNFECOL.PRW
- Se actualiza a versión 4.0
- Realizar un respaldo del repositorio (RPO).
- Aplicar el parche correspondiente al issue DMINA-14293.
- Validar que las rutinas actualizadas en el repositorio, coincidan con las descritas en el encabezado del presente Documento Técnico, así como la fecha.
- Contar con la configuración mencionada en el Documento Técnico de la sección 05. ASUNTOS RELACIONADOS.
- Modificar el diccionario como se indica en la sección 04. INFORMACIÓN ADICCIONAL.
- Los proveedores no obligados a facturar, se registran como clientes con toda la información de identificación, dirección, responsabilidades, etc..
- Crear un Cliente(MATA030) con los datos del Proveedor.
- Crear un Proveedor(MATA020) y relacionarlo al Cliente mediante los campos Cod. Cliente(A2_CLIENTE) y Tda. Cliente(A2_LOJCLI).
- Dentro del configurador en la opción "Diccionarios / tablas genéricas" en la tabla genérica "00 - 01 - Series de Facturas" agregar la serie "DCS" y el número inicial para el Documento Soporte.
Dentro de Control de Formularios(MATA992) agregar la serie "DCS" con especie "1=FCT / NF" y en la Serie 2 agregar el prefijo MXDS (puede ser cualquier otro prefijo siempre y cuando cuente con 4 caracteres), también asignar el número inicial y final y los campos que son obligatorios. Configurar los siguientes parámetros (SX6): | Parámetro | Contenido | Descripción |
|---|
| MV_CFDIAMB | 2 | Indica el ambiente de trabajo de certificación defactura electrónica:1=Producción, 2=Homologación. | | MV_PROVFE | DFACTURA | Identifica el Fact. Electrónico/Prov. Tecnológico servicios de certificación de factura electrónica. Indicar alguno de estos: TSS o DFACTURA | | MV_TIPOFE | 1 | Indica el modelo de transmisión electrónica, 0 o vacío = Val. Posterior y 1 = Val. Previa. | | MV_TKN_EMP | cf5a933c22080afd84ca4e699983e3952c811dd9 | Token Empresa - The Factory HKA. | | MV_TKN_PAS | 4219be96602655094acb0fe281ab1bf7e4ad9c46 | Token Password - The Factory HKA. | | MV_WSRTSS | http://demoemision21v4.thefactoryhka.com.co/ws/v1.0/Service.svc?wsdl | URL del servicio web. |
|
- Documento Soporte.
- Ingresar al módulo de Compras (SIGACOM), ir al menú |Actualizaciones | Movimientos | Factura de Entrada (MATA101N)
- En la pregunta ¿Tipo de Factura? seleccionar “Docto Soporte” y confirmar.
- En la pantalla principal, en el encabezado confirmar que en título se informe que es un “Doc. Soporte”
Dar clic en el botón “Incluir”. - Seleccionar al Proveedor que está relacionado al Cliente.
- Seleccionar la serie configurada para el Documento Soporte, automáticamente se cargará el número documento y la serie 2.
- Agregar un producto, cantidad, valor unitario, valor total y el TES.
- En la pestaña “Títulos” agregar la condición de pago.
- Grabar la Factura.
- Transmisión de Documento Soporte.
- Ingresar al módulo de Facturación (SIGAFAT), ir el menú |Actualizaciones | Facturación | Transmitir Factura Electrónica (MATA486)
- Capturar los parámetros correspondientes para realizar el filtro de documentos.
¿Tipo de Documento? seleccionar “Docto. Soporte”. ¿Serie? seleccionar “DCS”. ¿Estatus? seleccionar “0” para obtener todos los documentos. Asignar las Fechas Inicio/Fin - Confirmar.
- En la pantalla principal verificar que exista el Documento Soporte.
- Dar clic en el botón “Transmitir”.
- Asignar la serie “DCS” y el número de documento (Inicial y Final).
- Confirmar Transmisión.
|
|
04. INFORMACIÓN ADICIONAL
Actualizaciones al diccionario.
Campos en el archivo SX3 - Campos:
Crear campo F1_SOPORT
| Campo | F1_SOPORT |
| Orden | ZZ |
| Tipo | Carácter |
| Tamaño | 1 |
| Decimal | 0 |
| Formato | @! |
| Título | Doc. Soporte |
| Descripción | Documento Soporte |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Val. Sistema | Pertence("SN") |
| Inicializador | "S" |
| Opciones | S=Si;N=No |
| Help | Si la factura que registra corresponde a un proveedor no obligado a facturar y éste comprobante será transmitido a la DIAN, indique Si, de lo contrario indique No. |
Preguntas en el archivo SX1 – Archivo de Preguntas:
Modificar grupo MATA486
Orden | 01 |
Pregunta
| ¿Tipo de Documento ? |
Tipo | N |
Tamaño
| 1 |
| Decimal | 0 |
| Validación |
|
| Objeto | Combo |
| Consulta Estándar |
|
| Preselección | 0 |
| Ítem 1 | Factura |
| Ítem 2 | Nota de Debito |
| Ítem 3 | Nota de Crédito |
| Ítem 4 | Docto Soporte |
Crear grupo MATA486I
Orden | 01 | 02 | 03 |
Pregunta
| ¿Serie de documento soporte? | ¿Documento Inicial Soporte? | ¿Documento Final Soporte? |
Tipo | C | C | C |
Tamaño
| 3 | 13 | 13 |
| Decimal | 0 | 0 | 0 |
| Validación |
|
| NaoVazio() .and. MV_PAR02<=MV_PAR03 |
| Objeto | Edit | Edit | Edit |
| Consulta Estándar | SERNF |
|
|
| Help | Serie del documento soporte. | Número inicial del documento soporte. | Número final de documento soporte. |
Tablas Genéricas en el archivo SX5 – Tablas Genéricas:
Crear nuevos registros en la 00 - 01 Series de Facturas
| Clave | Descripción |
|---|
| DCS | 0000000000001 |

05. ASUNTOS RELACIONADOS