Passo 1: Observação: Verifique a necessidade do cadastro das formulas abaixo, caso já possua elas no cadastro seguir para o passo 2. Criar fórmulas: 1 - Código: ANO Descrição: ANO Fórmula: ANO 2 - Código: MES Descrição: MES Fórmula: MES 3 - Código: MESCAIXA Descrição: MÊS CAIXA Fórmula: MESCX 4 - Código: CHAPA Descrição: CHAPA Fórmula: CHAPA 5 - Código: COLIGADA Descrição: COLIGADA Fórmula: COLIGADACORRENTE 6 - Código: PERIODO Descrição: PERIODO Fórmula: PERIODO 7- Código: PESSOA Descrição: PESSOA Texto: TABFUNC('CODPESSOA','S')
Passo 2: Criar eventos:
1 - Código: 0046 Descrição: PAGAMENTO DE AUTÔNOMOS CC 46, provento, valor, sem incidências. 2 - Código: XXXX Descrição: INSS AUTÔNOMOS Fórmula: INSSAUT CC 85, desconto, valor, sem incidências. Observação: exemplo de cadastro deste evento em aba Cálculo INSS. 3 - Código: YYYY Descrição: IRRF AUTÔNOMOS Fórmula: IRRFAUT CC 84, desconto, valor, sem incidências, prioridade 99. 4 - Código: WWWW Descrição: BASE TRIBUTADA DE INSS AUTÔNOMO MÚLTIPLOS VÍNCULOS,CC 417 base de calculo, valor, sem incidências, prioridade 81. OBS.: Caso os eventos já existam com outro código, alterar o código correspondente no processo abaixo. O mesmo para casos onde já exista o código sugerido e há necessidade de criar outro código.
Passo 3: Acessar o menu "Utilitários -> Consultas SQL" e cadastrar as seguintes sentenças SQL SQL | Oracle | SQL | Oracle | 1 - Código: IRRFAUT Título: Base Autônomos | 1 - Código: IRRFAUT Título: Base Autônomos | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT ISNULL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('0046')AND /*Onde o evento 0046 será o código utilizado para pagamento do autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP=PFFINANC.ANOCOMP AND PFPERFF.MESCOMP=PFFINANC.MESCOMP AND PFPERFF.NROPERIODO=PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT ISNULL(SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('0046') AND PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO=PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT NVL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('0046') AND /*Onde o evento 0046 será o código utilizado para pagamento do autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO=PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT NVL(SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('0046') AND PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.V=PFFINANC.MESCOMP AND PFPERFF.NROPERIODO=PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 | 2 - Código: IRRFAUT1 Título: Desconto de INSS Autônomos | 2 - Código: IRRFAUT1 Título: Desconto de INSS Autônomos | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT ISNULL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODPESSOA <>:FRM_CHAPA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('XXXX') AND /*Onde o evento XXXX será o código utilizado para desc. do INSS autônomos*/ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT ISNULL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('XXXX') AND /*Onde o evento XXXX será o código utilizado para desc. do INSS autônomos*/ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT NVL(SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODPESSOA <>:FRM_CHAPAAND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('XXXX') AND /*Onde o evento XXXX será o código utilizado para desc. do INSS autônomos*/ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT NVL(SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('XXXX') AND /*Onde o evento XXXX será o código utilizado para desc. do INSS autônomos*/ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 | 3 - Código: IRRFDESC Título: IRRF Desconto de Autônomos | 3 - Código: IRRFDESC Título: IRRF Desconto de Autônomos | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT ISNULL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CHAPA <> :FRM_CHAPA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('YYYY') AND /*Onde o evento YYYY será o código utilizado para desc. do IRRF autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT ISNULL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CHAPA <> :FRM_CHAPA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFFINANC.CODEVENTO IN ('YYYY') AND /*Onde o evento YYYY será o código utilizado para desc. do IRRF autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 | SELECT TAB1.VAL + TAB2.VAL RESULT FROM (SELECT NVL(SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CHAPA <> :FRM_CHAPA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFFINANC.CODEVENTO IN ('YYYY') AND /*Onde o evento YYYY será o código utilizado para desc. do IRRF autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP =:FRM_MES /*MES ATUAL*/ ) TAB1, (SELECT NVL (SUM(PFFINANC.VALOR),0) VAL FROM PFUNC, PFFINANC, PFPERFF WHERE PFUNC.CODCOLIGADA =:FRM_COLIGADA AND PFUNC.CODPESSOA =:FRM_PESSOA AND PFUNC.CHAPA <> :FRM_CHAPA AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFFINANC.CODEVENTO IN ('YYYY') AND /*Onde o evento YYYY será o código utilizado para desc. do IRRF autônomos */ PFPERFF.ANOCOMP=:FRM_ANO AND PFPERFF.MESCAIXACOMUM=:FRM_MESCAIXA AND PFPERFF.CODCOLIGADA=:FRM_COLIGADA AND PFPERFF.CODCOLIGADA=PFFINANC.CODCOLIGADA AND PFPERFF.CHAPA=PFFINANC.CHAPA AND PFPERFF.ANOCOMP =PFFINANC.ANOCOMP AND PFPERFF.MESCOMP =PFFINANC.MESCOMP AND PFPERFF.NROPERIODO =PFFINANC.NROPERIODO AND PFPERFF.MESCOMP <:FRM_MES /*MESES ANTERIORES*/ ) TAB2 |
Passo 4: Criar as formulas 1 - Código: IRRFAUT Descrição: IRRFAUT Fórmula: EXECSQL ('IRRFDESC'); EXECSQL ('IRRFAUT1'); EXECSQL ('IRRFAUT'); SE TFUNC ='A' ENTAO (TR ((((RESULTSQL ('IRRFAUT' , 'RESULT')))*0.40) - (( RESULTSQL ('IRRFAUT1' , 'RESULT'))))+ FOR('INSSAA' /* Acrescentar aqui a formula do calculo do INSS, código de calculo 85*/))))- RESULTSQL ('IRRFDESC' , 'RESULT')) SENAO FALSO FIMSE2 - Código: INSSAUT Descrição: INSS Autônomos Fórmula: DECL MAXIMO; SETVAR(MAXIMO, TABCALCULO ('LIMITESUPERIOR','INSS',MTDATA (1, INCMES(MES,1), INCANO(MES,ANO,1)),3)*0.20 ); SE LI('WWWW')=0 ENTAO MIN(MAXIMO,LI('0046')*0.20) SENAO MIN(MAXIMO,LI('WWWW')*0.20) FIMSE Observação:
o exemplo acima trata um calculo de IRRF com a base no autônomo com tributação para transporte de carga, base para o calculo de 40% , caso possua mais de uma tributação será necessário a criação de outra formula e outro evento para associação ao funcionário.
Passo 5: Calculo da formula baseado no parâmetro "Calcula INSS conforme eSocial" marcado. Deverá lançar os eventos 0046, XXXX, YYYY no envelope e pedir recálculo. OBS: O único que deverá ser informado o valor é o 0046 (Pagamento).
Exemplo: Funcionário b) transporte carga – base 20% para INSS, e 40% para IRRF; com múltiplos vínculos, na primeira chapa foram lançados os seguintes eventos: - 0046 - PAGAMENTO DE AUTÔNOMOS no valor de R$ 7.000,00
- XXXX - INSS AUTÔNOMOS sem valor e
- YYYY - IRRF AUTÔNOMOS sem valor
Feito o calculo e o recalculo. Sistema realizou corretamente o cálculo de IRRF.
Image Added Image AddedImage Removed Na segunda chapa foram lançados os eventos: - 0046 - PAGAMENTO DE AUTÔNOMOS no valor de R$ 8.000,00
- XXXX - INSS AUTÔNOMOS sem valor e
- YYYY - IRRF AUTÔNOMOS sem valor.
Feito o calculo e o recálculo. Sistema considerou os descontos e base da outra chapa e realizou o cálculo de IRRF corretamente.
Image Removed Na primeira chapa será informado o valor de base do INSS para controle do calculo, caso ocorro o recálculo. Image Added Image AddedImage Removed
|