Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagevb
themeMidnight
firstline1
titleF989CRQY
linenumberstrue
#INCLUDE "PROTHEUS.CH"
  
User Function F989T158()

    Local cIdFK7 := ParamIxb[1] //Identificador do título a pagar na tabela FK7 (FK7_IDDOC)
    Local cIdFK2 := ParamIxb[2] //Identificador da baixa do título a pagar na tabela FK2 (FK2_IDFK2)
    Local aDados := aClone(ParamIxb[3]) //Dados coletados para gerar os registros T158AA, T158AB e T158AC
    Local nX := 0
    Local lPermAgreg := .F.
    Local aAreaFK7	 :=	FK7->( getArea() )
    Local aAreaSE2	 :=	SE2->( getArea() )
    Local aAreaSED	 :=	SED->( getArea() )

    /*--------------------------------------------------------------------------------------------|
    | Composição do array aDados:	 															  |
    |                                                                                             | 
    | aDados[nX][1]  - Codigo do tributo no layout TAF: 										  |
	|                           10=PIS;								                              |
	|                           11=Cofins;							                              |
	|                           12=IR emissão;					 	                              |
	|                           13=INSS;								                          |
	|                           18=CSLL;								                          |	
	|                           28=IR baixa 							                          |
	|                           29=CSRF(PIS/COFINS/CSLL agregados)                                |
	|                           30=COSIRF(IR/PIS/COFINS/CSLL agregados)                           |
    | aDados[nX][2]  - Código da natureza de rendimento conforme tabela 01 da EFD-Reinf		  |
    | aDados[nX][3]  - Rendimento bruto														  |
    | aDados[nX][4]  - Rendimento tributavel ou isento										  |
    | aDados[nX][5]  - Valor do tributo retido ou isento 										  |
    | aDados[nX][6]  - Identificação do processo judicial/adminXstrativo ou ato concessório     |
    | aDados[nX][7]  - Origem do processo(0-SEFAZ;1-Just.Fed.;2-Just.Est.;3–Secret.RFB;9–Outros)|
    | aDados[nX][8]  - Código do Indicativo da Suspensão										  |	
    | aDados[nX][09] - Valor da retenção que deixou de ser efetuada por um processo adm/judicial|
    | aDados[nX][10] - Valor da base de cálculo com exigibilidade suspensa ou isenção			  |
    ----------------------------------------------------------------------------------------------*/		
    
    DBSelectArea("FK7")
    FK7->(DbSetOrder(1))
    FK7->(MsSeek(xFilial('"FK7'") + cIdFK7 )))

    DBSelectArea("SE2") 
    SE2->(DbSetOrder(1))
    SE2->(MsSeek(RTrim(FinFK7Key(FK7->FK7_CHAVE,''))))

    DBSelectArea("SED") 
    SED->(DbSetOrder(1))
    SED->(MsSeek(xFilial("SED")+SE2->E2_NATUREZ))

    If SED->ED_PERCCSL == 5.85  //Verifica se a natureza (SED) foi configurada com a aliquota do IR/PCC centralizadosomadas em um só campo
    If SED->ED_PERCCSL == 4.65 
        If SE2->E2_CSLL > 0 .And. SE2->E2_PIS == 0 .And. +SE2->E2_COFINS+SE2->E2_CSLLIRRF == 0 //Verifica se o título calculou só o CSLL conforme a natureza
            For nX := 1 To Len(aDados)
                DBSelectArea("SED") 
                FKX->(DbSetOrder(1))
                FKX->(MsSeek(xFilial("FKX")+aDados[nX][2]))
                lPermAgreg := FKX->FKX_TRIBUT $ "2|8" //Verifica se a Nat. Rendimento permite agregação de impostos

                If aDados[nX][1] == "18" .And. lPermAgreg
                    aDados[nX][1] := "2930" //Considerar o tributo como CSRFCOSIRF (IRRF/PIS/COFINS/CSLL agregados)
                EndIf
            Next nX
        EndIf
    EndIf

    RestArea( aAreaFK7 )
    RestArea( aAreaSE2 )
    RestArea( aAreaSED )

Return aDados

...