| 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 |
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 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.
Documentación The Factory: Reglas de rechazo anexo técnico V 1.9 -Cambios Integración Anexo V 1.9 Resolución: |
En la rutina de Funciones Genéricas de Documentos Electrónicos (M486XFUN):
En la rutina de Funciones Genéricas de Facturación Electrónica de Colombia (M486XFUNCO):
|
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.
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.
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. |
Código: 015412 |