Histórico da Página
...
O ponto de entrada ESPISRL é utilizado para a geração de arquivos de trabalho com registros relacionados às retenções de Imposto de Renda, organizados e classificados por conceito.
Finalidade:
- Criar um arquivo temporário que contenha os registros detalhados das retenções de imposto de renda, categorizados por conceito.
- Permitir a personalização na geração de dados específicos, atendendo às necessidades do cliente.
Funcionamento:
...
Benefícios:
- Organização de dados: Facilita a análise e visualização das retenções de imposto de renda.
- Customização: Permite que o cliente adapte a geração do arquivo às suas necessidades operacionais e de compliance.
- Eficiência: Otimiza o processo de consolidação das informações relacionadas às retenções.
Este ponto de entrada é essencial para empresas que buscam uma maior precisão no controle de retenções de imposto de renda, garantindo que as informações sejam devidamente classificadas e estruturadas para fins gerenciais ou fiscais.
03. DEMAIS INFORMAÇÕES
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
cArqTmp := ExecBlock("ESPISRL",.F.,.F.,{cArqtmp, dDataIni, dDataFim ,cPERIODO,lFirst}) |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
User Function ESPISRL()
Local cArqTmp := IxbParam[1]
Local dDataIni := IxbParam[2]
Local dDataFim := IxbParam[3]
Local cPeriodo := IxbParam[4]
Local cQuery1 := ""
Local aStrQRY1 :={}
Local nI := 1
Local XSFE
Local XSA2
Local cRIFAGENTE
Local cArqtrb
Local cNomIND
Local cORDPAGO
Local nORDPAGO
Local cORDPAGO1
Local nPERCENT
Local cNFISCAL
DBSELECTAREA("SM0")
cRIFAGENTE := alltrim(M0_CGC)
DBSELECTAREA("SA2")
DBSETORDER(1)
XSA2 := xFilial("SA2")
DBSELECTAREA("SFE")
DBSETORDER(1)
XSFE := xFilial("CT1")
aadd(aStrQRY1,{ "RIFAGENTE" , "C", 14, 0 })
aadd(aStrQRY1,{ "EMISSAO" , "C", 06, 0 })
aadd(aStrQRY1,{ "RIFSUJEITO", "C", 14, 0 })
aadd(aStrQRY1,{ "NUMFATURA" , "C", 10, 0 })
aadd(aStrQRY1,{ "ORDEMPAGO" , "C", 08, 0 })
aadd(aStrQRY1,{ "CONCEITO" , "C", 03, 0 })
aadd(aStrQRY1,{ "VALORBASE" , "C", 17, 0 })
aadd(aStrQRY1,{ "PERCENT" , "C", 06, 0 })
cQUERY1 := "SELECT DISTINCT '" + cRIFAGENTE + "' RIFAGENTE, FE_EMISSAO EMISSAO , A2_CGC , FE_ORDPAGO, FE_NFISCAL, FE_SERIE "
cQUERY1 += ", FE_VALBASE VALORBASE, FE_ALIQ , FE_CONCEPT" cQUERY1 += " FROM SFE000 SFE"
cQUERY1 += ", SA2000 SA2"
cQUERY1 += " WHERE SFE.FE_FILIAL = '" + XSFE + "'"
cQUERY1 += " AND SFE.D_E_L_E_T_ = ' '"
cQUERY1 += " AND SFE.FE_TIPO='R'"
cQUERY1 += " AND SFE.FE_EMISSAO BETWEEN '" + DTOS(MV_PAR01) + "' AND '" + DTOS(MV_PAR02) + "'"
cQUERY1 += " AND SA2.D_E_L_E_T_ = ' ' "
cQUERY1 += " ORDER BY SFE.FE_EMISSAO, A2_CGC "
cQUERY1 := CHANGEQUERY(cQUERY1)
IF SELECT("TOPISRL") > 0
DBSELECTAREA("TOPISRL")
DBCLOSEAREA()
ENDIF
TcQuery cQUERY1 New Alias "TOPISRL"
DBSELECTAREA("TOPISRL")
IF (EOF() .OR. BOF())
MsgAlert("Não existe retenções geradas","Atenção")//Não existe retenções geradas! ### Atenção
RETURN
ENDIF
IF SELECT("ISRL") > 0
DBSELECTAREA("ISRL")
DBCLOSEAREA()
ENDIF
cArqtrb := CriaTrab( aStrQRY1, .T. )
cNomIND := ALLTRIM(cArqtrb)
cIndTRB := "EMISSAO + RIFSUJEITO + NUMFATURA + ORDEMPAGO"
dbUseArea( .T., "DBFCDX", cArqtrb, "ISRL", .T. ,.F. )
dbSelectArea("ISRL")
IndRegua( "ISRL", cNomIND , cIndTRB )
set index todbSetIndex(cNomIND +OrdBagExt())
dbSetOrder(1)
DBSELECTAREA("TOPISRL")
TOPISRL->(DBGOTOP())
DO WHILE ! TOPISRL->(EOF())
DBSELECTAREA("TOPISRL")
cNFISCAL := (ALLTRIM(TOPISRL->FE_SERIE) + ALLTRIM(TOPISRL->FE_NFISCAL) )
IF "" == cNFISCAL .or. EMPTY(cNFISCAL)
cNFISCAL:= "0"
ELSE
IF LEN(cNFISCAL) > 10
cNFISCAL := RIGHT(cNFISCAL,10)
ENDIF
ENDIF
cORDPAGO1:= ALLTRIM(TOPISRL->FE_ORDPAGO)
cORDPAGO := ""
IF EMPTY(cORDPAGO1)
cORDPAGO := "NA"
ELSE
nORDPAGO := LEN(cORDPAGO1)
FOR nI := 1 TO nORDPAGO
IF subs(cORDPAGO1, nI,1) $ "0123456789"
cORDPAGO += subs(cORDPAGO1, nI,1)
ENDIF
NEXT
ENDIF
nPERCENT := STR(FE_ALIQ,6,2)
IF SUBS( nPERCENT , 4, 3) == ".00" // 010.00
nPERCENT := STR(FE_ALIQ,3,0)
ENDIF
dbSelectArea("ISRL")
RECLOCK("ISRL", .T.)
ISRL->RIFAGENTE := ALLTRIM(TOPISRL->RIFAGENTE)
ISRL->EMISSAO := cPERIODO // SUBS(TOPISRL->EMISSAO,1,6)
ISRL->RIFSUJEITO := ALLTRIM(TOPISRL->A2_CGC)
ISRL->NUMFATURA := cNFISCAL
ISRL->ORDEMPAGO := cORDPAGO
ISRL->CONCEITO := TOPISRL->FE_CONCEPT
ISRL->VALORBASE := alltrim(STR(TOPISRL->VALORBASE,17,2))
ISRL->PERCENT := ALLTRIM(nPERCENT)
MSUNLOCK()
DBSELECTAREA("TOPISRL")
TOPISRL->(DBSKIP())
ENDDO
dbSelectArea("ISRL")
DBGOTOP()
Return ("ISRL") |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas