Árvore de páginas

Versões comparadas

Chave

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

...

Os dados serão disponibilizados para alteração através de um array e seus dados terão impacto nos na integração dos registros T158AA (Naturezas de rendimento do pagamento), T158AB (Tributos do Pagamento) e T158AC (Suspensão de exigibilidade do tributo do pagamento).

Para um melhor entendimento da estrutura desses registros, pode ser consultado Obs: Consulte o layout único de integração com o TAF para conhecer melhor a estrutura.

03. PARÂMETROS

Nome

Tipo

Descrição

nRecnoE2cIdFK7

Numérico

R_E_C_N_O_ do registro na SE2

dDtCtb

Data

Data da contabilização do padrão (E2_EMIS1)

Caracter

Identificador do título a pagar na tabela FK7 (FK7_IDDOC)

cIdFK2

Caracter

Identificador da baixa do título a pagar na tabela FK2 (FK2_IDFK2)

aDados

Array

Dados dos registros T158AA, T158AB e T158AC

04. RETORNO

Nome

Tipo

Descrição

dDtCtbaDados

DataArray

Data da contabilização a ser considerada

...

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

    Local nRecnoE2cIdFK7 := ParamIxb[1] //R_E_C_N_O_ do registro na SE2
    Local dDtCtb   := ParamIxb[2] //Data da contabilização do padrão (E2_EMIS1Identificador 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 )))

    DbSelectAreaDBSelectArea("SE2") 
    SE2->(DbGoTo(nRecnoE2))(DbSetOrder(1))
    SE2->(MsSeek(RTrim(FinFK7Key(FK7->FK7_CHAVE,''))))

    DBSelectArea("SED") 
    If !Empty(SED->(DbSetOrder(1))
    SED->(MsSeek(xFilial("SED")+SE2->E2_BAIXA)
NATUREZ))

    //Verifica se a natureza (SED) foi configurada com a aliquota do PCC centralizado em um só campo
    If SED->ED_PERCCSL == 4.65 
        If SE2->E2_CSLL >  dDtCtb := SE2->E2_XDTCTB //Campo customizado na SE2
    EndIF

Return dDtCtb0 .And. SE2->E2_PIS == 0 .And. SE2->E2_CSLL == 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] := "29" //Considerar o tributo como CSRF (PIS/COFINS/CSLL agregados)
                EndIf
            Next nX
        EndIf
    EndIf

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

Return aDados



Templatedocumentos