01. DATOS GENERALES
| Producto | |
|---|
| Línea de producto: | |
|---|
| Segmento: | |
|---|
| Módulo: | SIGACOM - Compras |
|---|
| 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 de Factura Electrónica en PDF. |
| | LOCXNF.PRW | Notas Fiscales. |
| | LOCXNF2.PRW | Funciones genéricas de Documentos Fiscales. |
| | LOCXCOL.PRW | Funciones Genéricas de Notas Fiscales Colombia. |
| | LOCXGEN.PRW | Componentes de Ventanas en Notas Fiscales. |
| | SIGACUS.PRW | Funciones Genéricas para Documentos Fiscales. |
| | LOCXFUNA.PRX | Funciones Genéricas para Notas Fiscales. |
| | M486XFUN.PRW | Funciones genéricas de Facturación Electrónica . |
|
Archivos de Configuración | Archivo | Nombre Técnico | Fecha |
|---|
| FATECOL.INI | Generación de XML para Documentos de Entrada |
| | FATSCOLINI | Generación de XML para Documentos de Salida |
|
|
|---|
| País: | Colombia |
|---|
| Ticket: | 14779608 |
|---|
| Requisito/Story/Issue (informe el requisito vinculado): | DMINA-16565 |
|---|
02. SITUACIÓN/REQUISITO
Las notas de ajuste son documentos electrónicos o físicos según el caso, que constituyen el medio por el cual se realizan ajustes o se anula el documento soporte, por errores aritméticos o de contenido, cumpliendo las condiciones, términos, mecanismos técnicos y tecnológicos que para el efecto señale la DIAN conforme al contenido del anexo técnico previsto en el artículo 17 de la Resolución 000167 de 2021. https://www.dian.gov.co/normatividad/Normatividad/Resoluci%C3%B3n%20000167%20de%2030-12-2021.pdf
Realizar las modificaciones necesarias para generar Notas de Ajuste de tipo Débito o Crédito referenciadas únicamente a Documentos Soporte e implementar la Transmisión Electrónica para estos documentos.
03. SOLUCIÓN
Se realizan modificaciones a los siguientes Fuentes:
LOCXNF
- En la función Mata466n() se asigna la función LxObTpCol() para obtener el tipo de documento. Si es Nota de Crédito de Ajuste se asigna el identificador 22, si es Nota de Débito de Ajuste se asigna el identificador 23.
- En la función LocxDlgNF() se asignan los tipos de documento 22 y 23 (NCP y NDP de Ajuste) para el llenado de los Array’s internos.
- El tipo de documento NCP de Ajuste = 22 se asigna dónde se encuentra informado el tipo de documento NCP Normal = 7.
- El tipo de documento NDP de Ajuste = 23 se asigna dónde se encuentra informado el tipo de documento NDP Normal = 9.
- Con la función lxVlTitulo() se obtienen los “Títulos” de Documento Soporte, Nota de Ajuste de Crédito o Débito para que éstos sean mostrado en el encabezado de los Documentos.
- En la función GravaNfGeral() se actualiza la numeración de las Notas de Ajuste en el archivo de tablas SX5.
- Dentro de la función GravaCabNF() se asigna la función lxModDocSp() para marcar con ‘S’ los campos F1_SOPORT (Docto Soporte) , F1_MARK (NDP de Ajuste) y F2_MARK (NCP de Ajuste) cuando se crean los documentos.
- En la función MontaCfgNf() se asigna la función lxEstrCol() para cargar la configuración de los documentos 22 y 23 (NCP y NDP de Ajuste) en el array aCfg
- En la función CarregaBotoes() se indican los botones que serán mostrados en los documentos 22 y 23 (NCP y NDP de Ajuste).
- En la función CarregaTeclas() se asignan los identificadores que serán utilizados en los menús de los documentos 22 y 23 (NCP y NDP de Ajuste).
- En Función MontaPE() se cargan los puntos de entrada para los documentos 22 y 23 (NCP y NDP de Ajuste)
- En la función LocxVal() se asigna el control de folios y la cargar automáticamente el número de documento (dependiendo la serie seleccionada) para los documentos NCP y NDP de Ajuste para
- En la función LocxDelNF() se asigna la función LxVldFact() para validar el borrado de las Notas de Ajuste (NCP y NDP). No se podrán borrar los documentos previamente trasmitidos, se notificará con un mensaje.
- En la función PcoCarregaLancto() se cargan los asientos para el control presupuestario (PCO) para los documentos 22 y 23 (NCP y NDP de Ajuste)
LOCXNF2
- Dentro de la función LxN466ForF6() se asigna la función lxObtnFltr() para filtrar los "Documentos Soporte" cuando se consultan desde la NCP o NDP de Ajuste mediante la opción "Factura".
- En la función CarregaLanc() se cargan los asientos estándar para la NCP y NDP de Ajuste.
- Dentro de la función fValSerDoc() se agrega la NDP de Ajuste a la validación de los Folios.
LOCXCOL
- Se realizan las siguientes modificaciones a la función LxCpoCol().
- Para las Notas de Crédito de Ajuste se agrega el campo Tipo Ajuste (F2_TIPNOTA), al campo Serie (F2_SERIE) se le agrega la consulta estándar “01” (muestra la serie y numeración relacionada a las Notas de Ajuste) y al campo Proveedor (F2_CLIENTE) se le agrega la función LxVlCabCol() para validar el Proveedor vs Cliente.
- Para las Notas de Débito de Ajuste se agrega el campo Tipo Ajuste (F1_TIPNOTA), al campo Serie (F1_SERIE) se le agrega la consulta estándar “01” (muestra la serie y numeración relacionada a las Notas de Ajuste) y al campo Proveedor (F1_FORNECE) se le agrega la función LxVlCabCol() para validar el Proveedor vs Cliente.
- Se modifica la función LxVldFact(), se asigna retorno lógico y se agrega el parámetro por referencia lNotAjus, éste valor se utiliza para indicar si el documento es una Nota de Ajuste(NCP o NDP) y validar el borrado para indicar si el documento fue previamente transmitido.
- Se modifica la función LxVlCabCol(), se asigna la validación de Proveedor vs Cliente para las Notas de Ajuste.
- Se modifica la función fSerDocCol() se asigna la Nota de Ajuste de tipo NDC a la validación del control del Folios.
- Se modifica la función ColExSer2(), se asigna la función LxSer2DsNa() para obtener la serie 2 del Documento Soporte y las Notas de Ajuste(NCP y NDP).
- Se crean las siguientes Funciones:
- lxChckLock(): En las Notas de Ajuste NCP y NDP, cuando es seleccionado el Documento Soporte desde la opción "Factura" se valida que el documento se encuentre transmitido.
- lxObtnFltr(): En las Notas de Ajuste NCP y NDP, cuando es seleccionada la opción "Factura" filtra solo los Documentos Soporte.
- lxVlTitulo(): Obtienen los “Títulos” de Documento Soporte, Nota de Ajuste de Crédito o Débito para que éstos sean mostrado en el encabezado de los Documentos.
- lxVlDcTrns(): En las Notas de Ajuste NCP. cuando se selecciona la opción "Doc Orig" Valida que el Documento Soporte seleccionado se encuentre transmitido.
- lxModDocSp(): Asigna el identificador 'S' para Documento Soporte y Notas de Ajuste NCP y NDP cuando se guarda el Documento.
- lxEstrcCol: Cargar la configuración de las Notas de Ajuste NCP y NDP en el array aCfg.
- LxSer2DsNa(): Asigna la serie 2 para Documento Soporte y Notas de Ajuste NCP y NDP.
- LxObtTpCol(): Asigna el tipo de documento para las Notas de Ajuste (NCP = 22, NDP = 23).
SIGACUS
- Se modifica la función F4NfOri(), se asigna la función lxObtnFltr() para filtrar los Documentos soporte.
- Se asigna la función lxVlDcTrns() para validar si el documento seleccionado ya fue transmitido.
LOCXGEN
- Dentro de la función LockClick(), se asigna la función lxChckLock() para valida que el Documento Soporte seleccionado se encuentre transmitido.
LOCXFUNA
- En la función CFDGerXml() se asigna la especie NDP para inicializar la tabla SF1 y realizar la generación del XML de la Nota de Ajuste de Débito.
MATA486
- Se modifica la función Mata486()
- Obtiene el tipo de documento, si es Nota de Crédito de Ajuste se asigna el identificador 9, si es Nota de Débito de Ajuste se asigna el identificador 8.
- Se valida que la pregunta ¿Tipo Nota Ajuste? contenga las opciones “Débito” o “Crédito” cuando la pregunta ¿Tipo de Documento? contenga la opción “Nota de Ajuste”.
- Se modifica la función M486VldDoc()
- Asigna el filtro F1_MARK / F2_MARK = ‘S’ para obtener los documentos de tipo Nota de Ajuste NDP o NDC y estos sean mostrados en pantalla.
- Se obtiene el Cliente a partir del proveedor para las Notas de Ajuste NCP y NDP.
- En la función M486GetInf() se asigna el filtro F1_MARK / F2_MARK = ‘S’ para obtener información y preparar la trasmisión de los documentos de tipo Nota de Ajuste NDP y NDC.
- En la función M486VisNFE() se asigna la visualización de las Notas de Ajuste NDP y NDC.
- En la función M486BRWSFX() se asigna la configuración (Tipo Documento, Filtros, tablas, Preguntas etc..) de las Notas de Ajuste NDP y NDC para la configuración del Browse principal.
- En la función M486SENDPT() se asigna el prefijo “n” cuando el documento es una Nota de Ajuste NDP o NDC, este prefijo se incluye en el nombre del documento XML y también sirve para asignar los elementos principales(FE_INVOICE, FE_ITEM etc..) que posteriormente serán integrados en el XML.
M486XFUN
- En la función FGetTaxas() se integran las Notas de Ajuste NDP y NDC para obtener los impuestos.
- Se modifica la función fGetRef()
- Se agrega el parámetro por referencia cTipNota, éste valor se informa desde los archivos FATSCOL.ini y FATECOL.ini y contiene el concepto de ajuste.
- Se integran las Notas de Ajuste (NCP y NDP) y se obtienen los datos del documento referenciado (Documento Soporte).
M486XFUNCO
- Se modifica la función M486XMLHKA()
- Se asigna el prefijo “n” cuando el documento es una Nota de Ajuste NDP o NDC, este prefijo se incluye en el nombre del documento XML y también sirve para asignar los elementos principales(FE_INVOICE, FE_ITEM etc..) que posteriormente serán leídos y asignados al XML.
- Se obtiene el Cliente a partir del proveedor para las Notas de Ajuste NCP/NDP.
- Se asigna el parámetro lNotAjus a la función M486RefDoc().
- Se asigna el tipo documento 95 para las Notas de Ajuste.
- En la función M486RefDoc() se agrega el parámetro por referencia lNotAjus que indicará si serán informados los elementos relacionados al documento referenciado (Documento Soporte).
- Realizar un respaldo del repositorio (RPO).
- Aplicar el parche correspondiente al issue DMINA-16565.
- Validar que las rutinas actualizadas en el repositorio, coincidan con las descritas en el encabezado del presente Documento Técnico, así como las fechas.
- Contar con la configuración mencionada en el Documento Técnico de la sección 05. ASUNTOS RELACIONADOS.
- Modificar el diccionario de datos 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 y asignar los tributos de la DIAN.
- 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 "NAJ" y el número inicial para las Notas de Ajuste.
Dentro de Control de Formularios (MATA992) Agregar Serie para Notas de Ajuste de Crédito. Asignar la serie "NAJ" con especie "8=NCP" y en la Serie 2 agregar el prefijo MXAJ, también asignar el número inicial y final y los campos que son obligatorios.
- Agregar Serie para Notas de Ajuste de Débito.
Asignar la serie "NAJ" con especie "9=NDP" y en la Serie 2 agregar el prefijo MXAJ, también asignar el número inicial y final y los campos que son obligatorios.
El prefijo (Serie 2) debe estar conformado por 4 caracteres y éste debe estar configurado en los “Secuenciales” del portal de Facturación Electrónica de Factory. |
Configurar los siguientes parámetros (SX6): Parámetro | Contenido | Descripción |
|---|
| MV_CFDIAMB | 2 | Indica el ambiente de trabajo de certificación de factura 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. | | MV_CFDDOCS | GetSrvProfString('startpath','')+'\cfd\facturas\' | Directorio donde se grabaran las facturas electrónicas. |
- Realizar las siguientes modificaciones al archivo de configuración FATECOL.INI. Las líneas en color azul se agregan, las líneas en color verde se reemplazan.
|
2. Utilice cuando sea necesario describir un paso a paso. |
|
04. INFORMACIÓN ADICIONAL
Otras acciones/acciones relacionadas

05. ASUNTOS RELACIONADOS
- Incluya enlaces con páginas de asuntos relacionados.
