Histórico da Página
...
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#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 |
---|