Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFIN - Financiero
Función:
RecursoNombre TécnicoFecha
RETIGV.INIScript de generación de archivo de texto PDT 62626/01/2024
País:Perú
Ticket:18612921
Requisito/Story/Issue (informe el requisito vinculado):DMINA-21642


02. SITUACIÓN/REQUISITO

Al generar el archivo de texto PDT626, se puede visualizar que las series de las columnas 6 y 11 se graban con 3 dígitos. De acuerdo con la SUNAT, la serie es alfanumérica de cuatro dígitos y su numeración es correlativa y generada por el sistema.


03. SOLUCIÓN

Se modifica el script de generación del archivo de texto PDT626, RETIGV.INI, para informar las columnas:
6 - Serie del comprobante de retención = Contenido del parámetro del sistema MV_SERETEN.
11 - Serie del comprobante de pago = Campo Serie 2 (F1_SERIE2) del documento de entrada.


  1. Modificar el script de generación del archivo PDT 626 como se indica en la sección 04. INFORMACIÓN ADICIONAL.
  2. En el módulo Compras (SIGACOM), menú Actualizaciones | Movimientos | Factura de Entrada (MATA101N).
    • Incluir una o varias facturas de entrada.
  3. En el módulo Financiero (SIGAFIN), menú Actualizaciones | Cuentas por Pagar | Orden de Pago (FINA085A).
    • Realizar al menos un pago de las facturas capturadas en el punto anterior.


  1. Ingresar al módulo Financiero (SIGAFIN), menú Miscelánea | Archivo Magnéticos (MATA950).
  2. Dar clic en el botón Param.
  3. Informar los parámetros de acuerdo al Help de cada pregunta, clic en Ok.
  4. Clic en Ok.
  5. Verifique el archivo de texto generado, observando que las columnas 6 y 11 contengan las series correspondientes a 4 caracteres:



04. INFORMACIÓN ADICIONAL

Realizar los siguientes cambios en el script de generación de archivo de texto PDT 626, RETIGV.INI, el cual se encuentra ubicado en la carpeta del ambiente protheus_data\system. Los cambios se pueden realizar con un editor de texto, como el Bloc de Notas de Windows.

Agregue o modifique el contenido mostrado en color marrón:

RETIGV.INI

?{"Nombre del Archivo INI","RETIGV.INI"}
?{"Descripción Completa del Archivo Magnético","Retención IGV"}
?{"A Quien se Destina","Empresas que actuan como agentes de retención"}
?{"Objetivo","Generar los datos sobre la retención de IGV para el PDT 626 - Agentes de retención."}

[XXX Inicialización]
(PRE) _aTotal[001] := {"SFE","","SFERET"}
(PRE) _aTotal[002] := "FE_FILIAL = '" + xFilial("SFE") + "'"
(PRE) _aTotal[002] += " and FE_TIPO = 'I'"
(PRE) _aTotal[002] += " and FE_EMISSAO >= '" + Dtos(MV_PAR01) + "'"
(PRE) _aTotal[002] += " and FE_EMISSAO <= '" + Dtos(MV_PAR02) + "'"
(PRE) _aTotal[002] += " and D_E_L_E_T_=''"
(PRE) _aTotal[003] := "FE_NROCERT,FE_SERIEC,FE_TIPO,Sum(FE_VALBASE) BASERET"
(PRE) _aTotal[004] := RetSqlName("SFE") + " SFERET"
(PRE) FsQuery(_aTotal[001],1,_aTotal[002],"","","","",_aTotal[003],"FE_NROCERT,FE_SERIEC,FE_TIPO",_aTotal[004])

[SFE Retención sobre IGV]
(DEL)|MF
(PRE) ("SFERET")->(dbGoTop())
(PRE) SA2->(DbSetOrder(1))
(PRE) SF1->(DbSetOrder(1))
(PRE) SFE->(DbSetOrder(9))
(PRE) _aTotal[007] := xFilial("SA2")
(PRE) _aTotal[008] := xFilial("SF1")
(PRE) _aTotal[009] := xFilial("SFE")
(PRE) _aTotal[011] := AllTrim(Substr(SuperGetMv("MV_SERETEN"),1,4))
(PRE) _aTotal[005] := "0626" + AllTrim(SM0->M0_CGC) + StrZero(Year(MV_PAR02),4) + StrZero(Month(MV_PAR02),2) + ".txt"
(ARQ) _aTotal[005]
{SFE Itens del comprobante de retención}
(DEL)|MF
(PRE) SFE->(DbGoTop())
(PRE) SFE->(DbSeek(_aTotal[009] + ("SFERET")->FE_NROCERT + ("SFERET")->FE_TIPO))
(PRE) _aTotal[010] := ""
(PREREG) SFE->FE_FILIAL == _aTotal[009] .And. SFE->FE_NROCERT == ("SFERET")->FE_NROCERT    
(PREREG) SFE->FE_EMISSAO>=MV_PAR01 .And. SFE->FE_EMISSAO<=MV_PAR02
(PREREG) !(_aTotal[010]  == (_aTotal[009] + SFE->FE_FORNECE + SFE->FE_LOJA + SFE->FE_NFISCAL + SFE->FE_LOJA))
(PREREG) SA2->(DbSeek(_aTotal[007] + SFE->FE_FORNECE + SFE->FE_LOJA))
(PREREG) SF1->(DbSeek(_aTotal[008] + SFE->FE_NFISCAL + SFE->FE_SERIE + SFE->FE_FORNECE + SFE->FE_LOJA))
(PREREG) _aTotal[006] := If(SF1->F1_MOEDA > 1,xMoeda(SF1->F1_VALBRUT,SF1->F1_MOEDA,1,SFE->FE_EMISSAO,5,,2),SF1->F1_VALBRUT)
NRDOC      C 015 0 AllTrim(Substr(SA2->A2_CGC,1,11))
RAZAO      C 040 0 If(SA2->A2_TIPO == "1",AllTrim(Substr(SA2->A2_NOME,1,40)),"")
APELLPATER C 020 0 If(SA2->A2_TIPO == "2",AllTrim(Substr(SA2->A2_NOMEPAT,1,20)),"")
APELLMATER C 020 0 If(SA2->A2_TIPO == "2",AllTrim(Substr(SA2->A2_NOMEMAT,1,20)),"")
NOMBRE     C 020 0 If(SA2->A2_TIPO == "2",AllTrim(Substr(SA2->A2_NOMEPES,1,20)),"")
SERCOMPRET C 004 0 _aTotal[011]
NRCOMPRET  C 008 0 AllTrim(Substr(("SFERET")->FE_NROCERT,1,8))
EMISCOMPRETC 010 0 StrZero(Day(SFE->FE_EMISSAO),2) + "/" + StrZero(Month(SFE->FE_EMISSAO),2) + "/" + StrZero(Year(SFE->FE_EMISSAO),4)
VLRCOMPRET C 015 0 Alltrim(Str(("SFERET")->BASERET,15,2))
TIPOCOMPPG C 002 0 AllTrim(SF1->F1_TPDOC)
SERCOMPPG  C 004 0 AllTrim(Substr(SF1->F1_SERIE2,1,4))
NRCOMPPG   C 015 0 AllTrim(Substr(SFE->FE_NFISCAL,1,15))
EMISCOMPPG C 010 0 StrZero(Day(SF1->F1_EMISSAO),2) + "/" + StrZero(Month(SF1->F1_EMISSAO),2) + "/" + StrZero(Year(SF1->F1_EMISSAO),4)
VLRCOMPRET C 015 0 Alltrim(Str(_aTotal[006],15,2))
(POSREG) _aTotal[010] := (_aTotal[009] + SFE->FE_FORNECE + SFE->FE_LOJA + SFE->FE_NFISCAL + SFE->FE_LOJA)
(POS) ("SFERET")->(DbSkip())

[XXX Cierre]
(PRE) FsQuery(_aTotal[001],2)



¡IMPORTANTE!

Solución disponible para versión 12.1.2210 o posterior.


05. ASUNTOS RELACIONADOS

  • No aplica.