Histórico da Página
01. DATOS GENERALES
| Producto |
| ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Línea de producto: |
| ||||||||||||||||||
| Segmento: |
| ||||||||||||||||||
| Módulo: | SIGAFAT - Facturación | ||||||||||||||||||
| Función: |
| ||||||||||||||||||
| País: | COL (Colombia) | ||||||||||||||||||
| Ticket: | 23094663 | ||||||||||||||||||
| Requisito/Story/Issue (informe el requisito vinculado): | DMICNS-23033 |
02. SITUACIÓN/REQUISITO
Al momento de realizar la transmisión de un Documento Soporte o Nota de Ajuste (Crédito | Débito) en moneda extranjera, se requiere que el sistema pueda realizar las conversiones a moneda nacional (COP) de todos los montos del documento.
Acorde a la resolución 00165 DIAN mencionando los Cambios cambios para la integración del Anexo 1.9, no es obligatorio para Documento Soporte y Notas de Ajuste realizar la conversión a moneda nacional (COP), sin embargo existen varios clientes que quieren transmitir dichos documentos con sus montos en moneda nacional.
Se creará un parámetro para que el usuario pueda transmitir Documento Soporte y Notas de Ajuste en moneda nacional (COP) o en moneda extrajera según lo requiera.
| Informações | ||
|---|---|---|
| ||
Documentación The Factory: Reglas de rechazo anexo técnico V 1.9 -Cambios Integración Anexo V 1.9 Resolución: |
03. SOLUCIÓN
En la rutina de Funciones Genéricas de Documentos Electrónicos (M486XFUN):
- En la función encargada de generar los nodos de los impuestos (fgetaxas) y en la función encargada de generar los nodos del detalle de la factura (fGetTaxDet), se realiza el ajuste para considerar el nuevo parámetro MV_CONVEXP para que se realice la conversión de montos a moneda nacional (COP) cuando el valor del parámetro es igual a ".T."; para Documento Soporte y Notas de Ajuste Crédito/Débito.
En la rutina de Funciones Genéricas de Facturación Electrónica de Colombia (M486XFUNCO):
- En la función para llenado de oWSfactura solicitado por TheFactory HKA, con datos obtenidos del XML (M486XMLHKA), se realiza el ajuste para considerar el nuevo parámetro MV_CONVEXP,para que se realice la conversión de montos a moneda nacional (COP) cuando el valor del parámetro es igual a ".T." para Documento Soporte y Notas de Ajuste Crédito/Débito.
| Totvs custom tabs box | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||
|
04. INFORMACIÓN ADICIONAL
Archivo FATSCOL.INI:
Se requiere editar el script actual de generación de archivo XML, actualizando las secciones de acuerdo al siguiente modelo, en donde se agregaron o fueron modificadas líneas para integrar esta nueva funcionalidad.
| Informações | ||
|---|---|---|
| ||
En el apartado de [XXX INICIALIZACION] agregar la validación para comprobar los documentos para los cuales se va a realizar la conversión de moneda: (PRE) _aTotal[091] := _aTotal[033]$"NF|NDC" .Or.(SuperGetMV("MV_CONVEXP",.F.,.F.) .and. (SF2->(ColumnPos("F2_MARK")) > 0 .and. SF2->F2_MARK =='S')) En el apartado de [XXX RECEPTOR], agregar los ajustes para generar correctamente los nodos SourceCurrencyCode,SourceCurrencyBaseRate y TargetCurrencyCode: (PRE) _aTotal[001] += IIf( _aTotal[109] <> "COP" , ' <cbc:SourceCurrencyCode>' + Iif(_aTotal[091],"COP",Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF2->F2_MOEDA,2),"CTO_MOESAT") )) + '</cbc:SourceCurrencyCode>' + ( chr(13)+chr(10) ) , "" ) En la sección de [SD2 INVOICE], agregar los ajustes para generar correctamente los nodos cbc:LineExtensionAmount, cac:AllowanceCharge\cbc:Amount y fe:Price\cbc:PriceAmount (PREREG) (_aTotal[001] += ' <cbc:LineExtensionAmount currencyID=' + '"' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF2->F2_MOEDA,2),"CTO_MOESAT") ) + '"' + '>' + Alltrim(Str(IIf(AllTrim(_aTotal[091].And. SF2->F2_MOEDA<>1,Round(xMoeda(SD2->D2_TOTAL,SF2->F2_MOEDA,1,,MsDecimais(1)+1,SF2->F2_TXMOEDA),MsDecimais(1)),SD2->D2_TOTAL),14,2)) +'</cbc:LineExtensionAmount>' + ( chr(13)+chr(10) ),.T.) (PREREG) (_aTotal[001] += ' <cbc:PriceAmount currencyID=' + '"' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF2->F2_MOEDA,2),"CTO_MOESAT") ) + '"' + '>' + Alltrim(Str(IIf(_aTotal[091].And. SF2->F2_MOEDA<>1,Round(xMoeda(SD2->D2_PRCVEN,SF2->F2_MOEDA,1,,MsDecimais(1)+1,SF2->F2_TXMOEDA),MsDecimais(1)),SD2->D2_PRCVEN),14,2)) +'</cbc:PriceAmount>' + ( chr(13)+chr(10) ),.T.) (PREREG) (_aTotal[001] += IIF(SD2->D2_DESCON > 0, ' <cbc:Amount currencyID="' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF2->F2_MOEDA,2),"CTO_MOESAT") ) + '">' + Alltrim(Str(IIf(_aTotal[091] .And. SF2->F2_MOEDA<>1,Round(xMoeda(SD2->D2_DESCON,SF2->F2_MOEDA,1,,MsDecimais(1)+1,SF2->F2_TXMOEDA),MsDecimais(1)),SD2->D2_DESCON),14,2)) + '</cbc:Amount>' + chr(13)+chr(10), ""),.T.) |
Archivo FATECOL.INI:
Se requiere editar el script actual de generación de archivo XML, actualizando las secciones de acuerdo al siguiente modelo, en donde se agregaron o fueron modificadas líneas para integrar esta nueva funcionalidad.
| Informações | ||
|---|---|---|
| ||
En el apartado de [XXX INICIALIZACION] agregar la validación para comprobar los documentos para los cuales se va a realizar la conversión de moneda: (PRE) _aTotal[091] := _aTotal[033] == "NCC" .Or. (SuperGetMV("MV_CONVEXP",.F.,.F.) .and. ((SF1->(ColumnPos("F1_SOPORT")) > 0 .and. SF1->F1_SOPORT =='S') .Or. (SF1->(ColumnPos("F1_MARK")) > 0 .and. SF1->F1_MARK =='S'))) En el apartado de [XXX RECEPTOR], agregar los ajustes para generar correctamente los nodos SourceCurrencyCode,SourceCurrencyBaseRate y TargetCurrencyCode: (PRE) _aTotal[001] += IIf( _aTotal[109] <> "COP" , ' <cbc:SourceCurrencyCode>' + Iif(_aTotal[091],"COP",Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF1->F1_MOEDA,2),"CTO_MOESAT") )) + '</cbc:SourceCurrencyCode>' + ( chr(13)+chr(10) ) , "" ) En la sección de [SD1 INVOICE], agregar los ajustes para generar correctamente los nodos cbc:LineExtensionAmount, cac:AllowanceCharge\cbc:Amount y fe:Price\cbc:PriceAmount (PREREG) (_aTotal[001] += ' <cbc:LineExtensionAmount currencyID=' + '"' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF1->F1_MOEDA,2),"CTO_MOESAT") ) + '"' + '>' + Alltrim(Str(IIf(_aTotal[091] .And. SF1->F1_MOEDA<>1,Round(xMoeda(SD1->D1_TOTAL,SF1->F1_MOEDA,1,,MsDecimais(1)+1,SF1->F1_TXMOEDA),MsDecimais(1)),SD1->D1_TOTAL))) +'</cbc:LineExtensionAmount>' + ( chr(13)+chr(10) ),.T.) (PREREG) (_aTotal[001] += IIF(SD1->D1_VALDESC > 0, ' <cbc:Amount currencyID="' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF1->F1_MOEDA,2),"CTO_MOESAT") ) + '">' + Alltrim(Str(IIf(_aTotal[091] .And. SF1->F1_MOEDA<>1,Round(xMoeda(SD1->D1_VALDESC,SF1->F1_MOEDA,1,,MsDecimais(1)+1,SF1->F1_TXMOEDA),MsDecimais(1)),SD1->D1_VALDESC))) + '</cbc:Amount>' + chr(13)+chr(10), ""),.T.) (PREREG) _aTotal[090] := Alltrim(IIf(_aTotal[091] .And. SF1->F1_MOEDA<>1,Str(Round(xMoeda(SD1->D1_VUNIT,SF1->F1_MOEDA,1,,MsDecimais(1)+1,SF1->F1_TXMOEDA),MsDecimais(1)),14,2),Str(SD1->D1_VUNIT,14,2))) |
Parámetros en el archivo SX6 – Parámetros:
Nombre de la Variable | MV_CONVEXP |
Tipo | Lógico |
Descripción | Parámetro para activar la conversión a moneda nacional (COP) al momento de transmitir Documento Soporte y Notas de Ajuste Crédito\Débito. |
| Valor Estándar | .F. |
| Informações | ||
|---|---|---|
| ||
Código: 015412 |
Card documentos Informacao Utilice este box para resaltar información relevante y/o de destaqueLa presente solución aplica para versión 12.1.2210 o superior, y es necesario tener activa la funcionalidad de transmisión electrónica. Titulo ¡IMPORTANTE!


