01. DATOS GENERALES


Línea de producto: Microsiga Protheus.
Segmento:Servicios - Mercado Internacional.
Módulo:SIGAFAT - Facturación.
Función:
RutinaNombre Técnico
MATA920Notas Fiscales Venta Manual.
M460IRFCalculo de IRF - Salida.
Ticket:No aplica.
Requisito/Story/Issue (informe el requisito vinculado):DMINA-6243
Versión:12.1.17 | 12.1.23


02. SITUACIÓN/REQUISITO

Al realizar la generación de una factura indicando una TES que contenga el impuesto RF0 mediante la opción ExecAuto, el sistema retorna un error y no permite realizar la generación de la factura.

03. SOLUCIÓN

Se obtiene la TES mediante el uso de la función MAFISREF() cuando la inclusión de la factura se realiza mediante la opción ExecAuto en la función A920Total() de la rutina MATA920 y en la función CalcRetFis() de la rutina M460IRF.

Pasos para probar la solución:

  • Contar con una TES la cual calcule el impuesto RF0.
  • La información del Cliente, Producto y Condición de Pago que será enviada mediante ExecAuto para la generación de la factura debe existir en los catálogos.

Pasos para probar la solución:

  1. Ejecutar la función que contiene el ExecAuto.
  2. Validar que no muestre mensaje de error al generar la factura.
  3. Ingresar al menú Actualizaciones | Facturación | Facturaciones (MATA467N)
  4. Visualizar la factura generada en el paso 2, validar que la información de la factura generada sea correcta.


Ejemplo de función para generar factura de venta vía ExecAuto:


#Include "PROTHEUS.CH"

User Function MYMATA467N()

Local aCab := {}
Local aLinha := {}
Local aItens := {}

Local cSucursal := "01"                              //Código sucursal

Local cCliente := "000001     "                   //Código del cliente
Local cTienda := "01"                                //Tienda

Local cCodPro := "00000001   "                //Código del producto
Local cCondPago := "001"                        //Condición de Pago

Local cSerie := "A "                                   //Serie factura
Local cNumDoc := "0000000000001"      //Número factura
Local cSerie2 := "MXSF"                           //Serie 2

Local cTes := "501"                                   //Código TES que calcula RF0
Local cCfo := "511 "                                 //Código Fiscal


Private lMsErroAuto := .F.


//Información Encabezado
AAdd( aCab, { "F2_FILIAL" ,cSucursal ,Nil })
AAdd( aCab, { "F2_ESPECIE" ,"NF" ,Nil })
AAdd( aCab, { "F2_TIPO" ,"N" ,Nil })
AAdd( aCab, { "F2_FORMUL" ,"S" ,Nil })
AAdd( aCab, { "F2_CLIENTE" ,cCliente ,Nil })
AAdd( aCab, { "F2_LOJA" ,cTienda ,Nil })
AAdd( aCab, { "F2_SERIE" ,cSerie ,Nil })
AAdd( aCab, { "F2_SERIE2" ,cSerie2 ,Nil })
AAdd( aCab, { "F2_DOC" ,cNumDoc ,Nil })
AAdd( aCab, { "F2_EMISSAO" ,dDataBase ,Nil })
AAdd( aCab, { "F2_MOEDA" ,1 ,Nil })
AAdd( aCab, { "F2_TXMOEDA" ,1 ,Nil })
AAdd( aCab, { "F2_TIPODOC" ,"01" ,Nil })
AAdd( aCab, { "F2_COND" ,cCondPago ,Nil })
AAdd( aCab, { "F2_EST" ,"QRO" ,Nil })
AAdd( aCab, { "F2_PREFIXO" ,"A" ,Nil })
AAdd( aCab, { "F2_REFMOED" ,1 ,Nil })


//Información Ítem 01
AAdd( aLinha, { "D2_FILIAL" ,cSucursal ,Nil })
AAdd( aLinha, { "D2_EST" ,"QRO" ,Nil })
AAdd( aLinha, { "D2_ITEM" ,"01" ,Nil })
AAdd( aLinha, { "D2_COD" ,cCodPro ,Nil })
AAdd( aLinha, { "D2_DOC" ,cNumDoc ,Nil })
AAdd( aLinha, { "D2_QUANT" ,1.00 ,Nil })
AAdd( aLinha, { "D2_PRCVEN" ,100.00 ,Nil })
AAdd( aLinha, { "D2_TOTAL" ,100.00 ,Nil })
AAdd( aLinha, { "D2_TES" ,cTes ,Nil })
AAdd( aLinha, { "D2_CF" ,cCfo ,Nil })

AAdd( aItens, aLinha)


MSExecAuto( { |x,y,z| Mata467n(x,y,z) }, aCab, aItens, 3 )


If lMsErroAuto
     MsgStop("Error de grabación.")
     MostraErro()
Else
     MsgInfo('Incluido con éxito el documento ' + cSerie + cNumDoc)
EndIf

Return