01. DADOS GERAIS
Linha de Produto: | Linha Protheus |
---|---|
Segmento: | Backoffice |
Módulo: | TOTVS Backoffice (Linha Protheus) - Financeiro (SIGAFIN) |
Função: | FINA989 - Extrator Financeiro |
Requisito/Story/Issue: | Não Há |
02. DESCRIÇÃO
O ponto de entrada F989T158 será acionado durante o processamento do Extrator Fiscal (rotina EXTFISXTAF), especificamente quando coletar os dados dos impostos com o fato gerador no pagamento, permitindo que sejam ajustados esses dados antes da integração com o TAF.
Importante
A execução deste ponto de entrada ocorrerá a cada baixa sofrida pelo título selecionado.
Os dados serão disponibilizados para alteração através de um array e seus dados terão impacto 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).
Obs: Consulte o layout único de integração com o TAF para conhecer melhor a estrutura.
03. PARÂMETROS
Nome | Tipo | Descrição |
cIdFK7 | 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 |
Obs: Quando o pagamento for através de um título de adiantamento (E2_TIPO=PA), não há um registro na FK2 ref. a essa movimentação, então para esse caso a variável "cIdFK2" terá o mesmo conteúdo da "cIdFK7".
04. RETORNO
Nome | Tipo | Descrição |
aDados | Array | Dados a serem considerados nos registros T158AA, T158AB e T158AC |
05. EXEMPLO DE UTILIZAÇÃO
#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 somadas em um só campo If SE2->E2_CSLL > 0 .And. SE2->E2_PIS+SE2->E2_COFINS+SE2->E2_IRRF == 0 //Verifica se o título calculou só o CSLL conforme a natureza For nX := 1 To Len(aDados) DBSelectArea("FKX") 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] := "30" //Considerar o tributo como COSIRF (IRRF/PIS/COFINS/CSLL agregados) EndIf Next nX EndIf EndIf RestArea( aAreaFK7 ) RestArea( aAreaSE2 ) RestArea( aAreaSED ) Return aDados