Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Producto

Solucoes_espanhol
SolucaoTOTVS Backoffice

Línea de producto: 

Linhas_totvs_espanhol
LinhaLínea Protheus

Segmento:

Segmentos_totvs_espanhol
SegmentoBackoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombreFecha
M486XFUNFunciones Genéricas de facturación electrónica07/04/2025
M486XFUNCOFunciones Genéricas de facturación electrónica de Colombia07/04/2025
FATECOLEstructura del XML de Documentos de Entrada07/04/2025
FATSCOLEstructura del XML de Documentos de Salida07/04/2025
MATA486Documentos Electrónicos09/04/2025
País:COL (Colombia)
Ticket:23094663
Requisito/Story/Issue (informe el requisito vinculado):DMICNS-23033

...

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.

...

Informações
titleSustento Legal

Documentación The Factory:

Cambios Integración Anexo 1.9

Reglas de rechazo anexo técnico V 1.9 -Cambios Integración Anexo V 1.9

Resolución:

Resolución 000165 de 01-11-2023.


 

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
  • 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
tabsPaso 01, Paso 02, Paso 03, Paso 04idsPre-condiciones, Transmisión Documento Soporte, Transmisión Nota de Ajuste Débito, Transmisión Nota de Ajuste Crédito
idspaso1,paso2,paso3,paso4
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar un respaldo del repositorio del ambiente (archivo .rpo).
  2. Aplicar el parche del issue DMICNS-23033
  3. Validar que las rutinas especificadas en la sección 01. DATOS GENERALES
 se
  1. se hayan actualizado con una fecha igual o superior a la
ahí
  1. mencionada.
  2. Contar con el parámetro MV_CONVEXP informado con el valor .T..
  3. Realizar un respaldo del archivo FATSECOL.INI que se encuentra en la ruta configurada en el parámetro MV_CFDFTSE.
  4. Actualizar el archivo FATSECOL.INI que viene anexo en la carpeta del parche, en la ruta configurada en el parámetro MV_CFDFTSE.
  5. Configurar los ajustes al Diccionario de Datos de acuerdo a lo mencionado en la sección 04. INFORMACIÓN ADICIONAL.
  6. En el módulo Compras (SIGACOM): 
    • Desde el Actualizaciones | Movimientos Factura de Entrada,
      • Registrar un Documento Soporte en moneda extranjera.
    • Desde el Actualizaciones | Movimientos | Nota Cred/Debito,
      • Registrar la nota de ajuste crédito en moneda extranjera del documento soporte previamente registrado
      • Registrar la nota de ajuste débito en moneda extranjera del documento soporte previamente registrado
Totvs custom tabs box items
defaultno
referenciapaso2

En el módulo Facturación (SIGAFAT): 

Ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).Incluir una nueva Factura de Venta (NF) utilizando un Cliente

 

Extranjero.

  1. Ir al menú Actualizaciones | Facturación | Transmisión Electrónica (MATA486).
    • Realizar la transmisión de la Factura de Venta de Exportación del Documento Soporte en Moneda extranjera (Validar que la transmisión haya sido exitosa)
    • Desde Otras acciones ejecutar la acción Imprimir PDF.
    • Validar que en el formato PDF, los montos se muestren en moneda COP, y que se visualice la información en la moneda origen y moneda destino del Documento.
      Image RemovedImage Added
Totvs custom tabs box items
defaultno
referenciapaso3
Incluir una nueva

En el módulo Facturación (SIGAFAT): 

Ir al menú Actualizaciones | Facturación | Generac de Notas de Crédito y Débito (MATA465N).

 

Nota de Crédito.

  1. Indicar el Tipo de Operación (F1_TIPOPE) = 22 - Nota de Crédito sin referencia a facturas.
  2. Indicar el Período de Facturación (F1_PTOEMIS) con formato "MM-YYYY" , por ejemplo  "01-2024"
  3. Ir al menú Actualizaciones | Facturación | Transmisión Electrónica (MATA486).
    • Realizar la transmisión de la Nota de Crédito Ajuste Débito (Validar que la transmisión haya sido exitosa)
    • Desde Otras acciones ejecutar la acción Imprimir PDF.
    • Validar que en el formato PDF, los montos se muestren en moneda COP, y que se visualice la información en la moneda origen y moneda destino del Documento.

Image Added

Totvs custom tabs box items
defaultno
referenciapaso4

En el módulo Facturación (SIGAFAT): 

  1. Ir al menú Actualizaciones | Facturación | Generac de Notas de Crédito y Débito (MATA465N).
    • Incluir una nueva Nota de Débito.
    • Indicar el Tipo de Operación (F1_TIPOPE) = 32 - Nota de Débito sin referencia a facturas.
    • Indicar el Período de Facturación (F1_PTOEMIS) con formato "MM-YYYY" , por ejemplo  "01-2024"
  2. Ir al menú Actualizaciones | Facturación | Transmisión Electrónica (MATA486).
    • Realizar la transmisión de la Nota de Débito (Validar que la transmisión haya sido exitosa)

04. INFORMACIÓN ADICIONAL

  1. Transmisión Electrónica (MATA486).
    • Realizar la transmisión de la Nota de Ajuste Crédito (Validar que la transmisión haya sido exitosa)
    • Desde Otras acciones ejecutar la acción Imprimir PDF.
    • Validar que en el formato PDF, los montos se muestren en moneda COP, y que se visualice la información en la moneda origen y moneda destino del Documento.

Image Added


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
titleFATSCOL.INI

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) ) , "" )
(PRE) _aTotal[001] += IIf( _aTotal[109] <> "COP" , '        <cbc:SourceCurrencyBaseRate>' +  Iif(_aTotal[091] ,Alltrim(Str(SF2->F2_TXMOEDA,11,2)),"1.00") + '</cbc:SourceCurrencyBaseRate>' + ( chr(13)+chr(10) ) , "" )
(PRE) _aTotal[001] += IIf( _aTotal[109] <> "COP" , '        <cbc:TargetCurrencyCode>' + Iif(_aTotal[091],Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF2->F2_MOEDA,2),"CTO_MOESAT") ),"COP") + '</cbc:TargetCurrencyCode>' + ( 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 FATECOLArchivo 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
titleFATSCOLFATECOL.INI

En el apartado de [XXX INICIALIZACION] agregar la validación para comprobar si existe el nuevo campo AI0_TSlos documentos para los cuales se va a realizar la conversión de moneda:

(PRE) _aTotal[117091] := IIF( _aTotal[033] == "NF" .And. AI0"NCC" .Or. (SuperGetMV("MV_CONVEXP",.F.,.F.) .and. ((SF1->(ColumnPos("AI0F1_TSSOPORT")) > 0 .Andand. Alltrim(AI0SF1->AI0>F1_TS) SOPORT == "N",.T. ,.F. 'S') .Or. (SF1->(ColumnPos("F1_MARK")) > 0 .and. SF1->F1_MARK =='S')))


En el apartado de [XXX FACTURARECEPTOR], agregar la referencia al nuevo campo AI0_TS para que cuando exista y con valor igual a "N-No" y sea una Factura de Venta ("NF"), se indique la descripción del descuento del IVA asumido.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) ) , "" )
(PRE) _aTotal[001] += IIf( _aTotal[109] <> "COP" , '        <cbc:SourceCurrencyBaseRate>' +  Iif(_aTotal[091] ,Alltrim(Str(SF1->F1_TXMOEDA,11,2)),"1.00") + '</cbc:SourceCurrencyBaseRate>' + ( chr(13)+chr(10) ) , "" )
(PRE) //Descuento muestra gratis
(PREREG) ( _aTotal[001] += IIFIIf( _aTotal[117109] <> "COP" , '        <cac:AllowanceCharge>' +  <cbc:TargetCurrencyCode>' + Iif(_aTotal[091],Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF1->F1_MOEDA,2),"CTO_MOESAT") ),"COP") + '</cbc:TargetCurrencyCode>' + ( 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(_aTotal[117]SD1->D1_VALDESC > 0, '            <cbc:AllowanceChargeReason><![CDATA[Descuento por IVA asumido]]></cbc:AllowanceChargeReason>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[001] += IIF091] .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)))
(PREREG) (_aTotal[117001] , += '        </cac:AllowanceCharge>' +      <cbc:PriceAmount currencyID=' + '"' + Alltrim( Posicione("CTO",1,xFilial("CTO")+Strzero(SF1->F1_MOEDA,2),"CTO_MOESAT") ) + '"' + '>' + _aTotal[090] +'</cbc:PriceAmount>' + ( chr(13)+chr(10) , "" ),.T.)


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
titlePacote Diccionario (uso exclusivo interno)

Código: 015412
Pacote: MI - DMICNS-23033 - COL PARÁMETRO MV_CONVEXP


Card documentos
InformacaoUtilice 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!


05. ASUNTOS RELACIONADOS