Páginas filhas
  • Cálculo do ICMS Desoneração

1. Obter o valor do campo Tipo Empresa no cadastro do cliente

  • Primeiramente para saber o tipo empresa, siga uma das opções:

          Opção 1: Abra a rotina 302(Cadastro de cliente) e verifique o campo Tipo Empresa.

          Opção 2: Execute o SQL SELECT TIPOEMPRESA FROM PCCLIENT WHERE CODCLI = :CODCLI

2. Se o Tipo Empresa do cliente é "R"

  • Validação do processo:

      Encontrando o Percentual de Isenção do ICMS:

      - Verifique se existe Percentual de Isenção do ICMS e armazene essa informação.

            - Como obter essa informação:

                 Opção 1: Se está analisando uma venda já efetuada, execute o SQL:

                                SELECT PERDESCISENTOICMS FROM PCPEDIECF WHERE NUMPEDECF =:NUMPED

                                no banco do caixa. Guarde a informação.

                 Opção 2: Se a venda ainda não foi efetuada, pegue a figura tributária do produto que está analisando pelo SQL

                                SELECT CODST FROM PCTABPR WHERE CODPROD = :CODPROD no banco do caixa.

                                Com a figura tributária em mãos em mãos, execute o SQL:

                                SELECT PERDESCICMISENCAO FROM PCTRIBUT WHERE CODST = :"FIGURA TRIBUTÁRIA QUE ESTÁ MÃOS" .

                                Guarde a informação. 

            - Se estiver zerado, acabou a validação, porque nesse caso não irá calcular o ICMS Desoneração

               e não irá sair nada no XML da venda indicando Desoneração.

            - Se estiver zerado, mas não deveria estar, será necessário validar o cadastro da figura vinculada ao produto na 514,

               verificando se realmente existe o Percentual de Isenção do ICMS cadastrado, e se existir,

               verificar se realmente foi essa figura utilizada no registro do produto.

            - Se não estiver zerado, continue a validação. Lembre-se de guardar o que foi retornado no SQL.

      Encontrando o Motivo da Desoneração:

      - Após encontrar o Percentual de isenção do ICMS:

            - Se estiver maior que zero, verifique se existe Motivo da Desoneração  através dos SQLs abaixo no banco do caixa :

                 Opção 1: Se está analisando uma venda já efetuada, execute o SQL

                                SELECT CODMOTIVOICMSDESONERADO FROM PCPEDIECF WHERE NUMPEDECF =:NUMPED no banco do caixa.

                                Guarde a informação. 

                 Opção 2: Se a venda ainda não foi efetuada, execute o SQL:

                                SELECT MOTIVODESONERAÇÃO FROM PCFIGURATRIBDESONICMS

                                WHERE TIPOCLIENTE = 'RE'

                                AND CODFILIAL = :CODFILIAL

                                AND CST = "CST que voçê guardou quando                                                                                                                                                                                                                                                                                  leu as informações gerais"

            - Se estiver zerado, acabou a validação, porque nesse caso não irá calcular o ICMS Desoneração

               e não irá sair nada no XML da venda indicando Desoneração.

            - Se estiver zerado, mas não deveria estar, será necessário validar se o cadastro do motivo na PCFIGURATRIBDESONICMS está correto,

               ou seja, se o CST que está cadastrado nessa tabela é o mesmo CST do produto que está sendo vendido.

               Verifique também se o código da filial que está cadastrado nessa tabela é o mesmo do PDV.

            - Se não estiver zerado, continue a validação.  Lembre-se de guardar o que foi retornado no SQL.

      Efetuando o calculo do ICMS Desoneração:

      - Após encontrar o Motivo da Desoneração e o Percentual de isenção do ICMS:   

            - Se qualquer deles estiver zerado, acabou a validação.

            - Se os 2 Possuem valor, finalmente vai ocorrer os seguintes passos:

                 Passo 1 : O valor do ICMS Desoneração é calculado através do Percentual de isenção do ICMS aplicado sobre o preço do produto.

                                Esse valor é armazenado na tabela PCPEDIECF no campo VLDESCICMISENCAO

                                e enviado no XML da venda na tag vICMSDeson(VLDESCICMISENCAO * Qtde do produto).

                 Passo 2 : O Motivo da Desoneração é armazenado na tabela PCPEDIECF no campo CODMOTIVOICMSDESONERADO 

                                e enviado no XML da venda na tag motDesICMS.

                 Passo 3 :  O Percentual de isenção do ICMS é armazenado na tabela PCPEDIECF no campo PERDESCISENTOICMS

                                 Não é enviado no XML.

3. Se o Tipo Empresa do cliente é "O" ou está vazio

  • Se o CST do produto for 20 ou 70(Redução de base):

          Encontrando o Percentual de redução de base:

          - Verifique se existe Percentual de redução de base e armazene essa informação.

             - Como obter essa informação:

               SELECT PERCBASERED FROM PCPEDIECF WHERE NUMPEDECF =:NUMPED

               no banco do caixa. Guarde a informação.

             - Se estiver zerado, acabou a validação, porque nesse caso não irá calcular o ICMS Desoneração

               e não irá sair nada no XML da venda indicando Desoneração.

             - Se estiver zerado, mas não deveria estar, será necessário validar o cadastro da figura vinculada ao produto na 514,

               verificando se realmente existe o Percentual de redução de base cadastrado, e se existir,

               verificar se realmente foi essa figura utilizada no registro do produto.

             - Se não estiver zerado, continue a validação. Lembre-se de guardar o que foi retornado no SQL.

          

          Encontrando o Percentual de ICM:

          - Verifique se existe Percentual de ICM e armazene essa informação.

             - Como obter essa informação:

                SELECT PERCICM FROM PCPEDIECF WHERE NUMPEDECF =:NUMPED

                no banco do caixa. Guarde a informação.

             - Se estiver zerado, acabou a validação, porque nesse caso não irá calcular o ICMS Desoneração

                e não irá sair nada no XML da venda indicando Desoneração.

             - Se estiver zerado, mas não deveria estar, será necessário validar o cadastro da figura vinculada ao produto na 514,

                verificando se realmente existe o Percentual de ICM cadastrado, e se existir,

                verificar se realmente foi essa figura utilizada no registro do produto.

             - Se não estiver zerado, continue a validação. Lembre-se de guardar o que foi retornado no SQL.

            

          Encontrando o Motivo da Desoneração:

          - Após encontrar o Percentual de redução de base:

             - Se estiver maior que zero, verifique se existe Motivo da Desoneração  através dos SQLs abaixo no banco do caixa :

                 Opção 1: Se está analisando uma venda já efetuada, execute o SQL

                                SELECT CODMOTIVOICMSDESONERADO FROM PCPEDIECF WHERE NUMPEDECF =:NUMPED no banco do caixa.

                                Guarde a informação. 

                 Opção 2: Se a venda ainda não foi efetuada, execute o SQL:

                                SELECT MOTIVODESONERAÇÃO FROM PCFIGURATRIBDESONICMS

                                WHERE TIPOCLIENTE = 'NI'

                                AND CODFILIAL = :CODFILIAL

                                AND CST = "CST do produto que voçê guardou quando leu as informações gerais.

                                                      Se não leu, é necessário que vá até a página e leia"

             - Se estiver zerado, acabou a validação, porque nesse caso não irá calcular o ICMS Desoneração

                e não irá sair nada no XML da venda indicando Desoneração.

             - Se estiver zerado, mas não deveria estar, será necessário validar se o cadastro do motivo na PCFIGURATRIBDESONICMS está correto,

                ou seja, se o CST que está cadastrado nessa tabela é o mesmo CST do produto que está sendo vendido.

                Verifique também se o código da filial que está cadastrado nessa tabela é o mesmo do PDV.

             - Se não estiver zerado, continue a validação.  Lembre-se de guardar o que foi retornado no SQL.

         

          Efetuando o calculo do ICMS Desoneração:

          - Após encontrar o Motivo da Desoneração,  o Percentual de redução de base e o Percentual de ICM:

             - Se qualquer deles estiver zerado, acabou a validação.

             - Se as 3 variáveis possuem valor, finalmente vai ocorrer os seguintes passos:

                 Passo 1 : Busque o valor do parâmetro 4175(AgregaVldesonBaseDeson).

                 Passo 2 :

                               - Se o valor do parâmetro for "SIM":

                                   O Valor do ICMS Desoneração é calculado com a fórmula abaixo:

                                   (P.Venda * (1 -(Percentual de redução de base/ 100))) / (1 - Percentual de ICM / 100) * (Percentual de ICM / 100)

                               - Se o valor do parâmetro for "NÃO ":

                                    O valor do ICMS Desoneração é calculado coma fórmula abaixo:

                                    (P.Venda * (1 -(Percentual de redução de base / 100))) * (Percentual de ICM / 100);

                                - Se o produto tiver QTUNIT maior que 1, divida o resultado do cálculo pelo QTUNIT : valor do ICMS Desoneração/QTUNIT

                                - Esse valor é armazenado na tabela PCPEDIECF no campo VLICMSDESONERACAO

                                   e enviado no XML da venda na tag vICMSDeson(VLICMSDESONERACAO * Qtde do produto).

                 Passo 3 : O Motivo da Desoneração é armazenado na tabela PCPEDIECF no campo CODMOTIVOICMSDESONERADO 

                                e enviado no XML da venda na tag motDesICMS.

                 Obs.: Lembre-se que todas as variáveis utilizadas podem ser obtidas através de um select na pcpediecf.

     


               

  • Sem rótulos