UC00110 - Integração DE OLHO NO IMPOSTO (Impostômetro)
Conteúdo |
Objetivo
- Manter configurações de integração com o programa DE OLHO NO IMPOSTO.
- Descrever regras e funcionalidades para exibição da carga tributária aproximada em cupons fiscais e notas fiscais.
Atores
- Usuário
Pré-requisitos
- Considerar documento Padrões de desenvolvimento.
- No projeto da rotina, em confsrc > META-INF > messages > view.properties definir o nome como Importação da tabela IBPT. Este nome será utilizado para criar a página no Wiki.
- Tomar nota do MANUAL DE OLHO NO IMPOSTO.
- Gerar log/auditoria para as alterações realizadas na rotina.
- Criar na classificação fiscal o campo NBS conforme caso de uso UC00111 - Classificação fiscal.
- Certificar-se de que o cadastro de produto tenha implementado o item 18 da regra de negócio RN01 do caso de uso UC00078 - Cadastro de produto acabado.
- Certificar-se de que o cadastro de serviço tenha implementado o item 16 da regra de negócio RN14 do caso de uso UC00078 - Cadastro de produto acabado.
Resultado esperado
- Importar a tabela do programa DE OLHO NO IMPOSTO do IBPT.
- Discriminar carga tributária dos itens em cupons e notas fiscais emitidas.
Módulos/Sistemas
- Resulth WEB Start
- Resulth WEB Business
- Resulth WEB Telefonia
- Resulth WEB OS
- Resulth WEB Representação
Diagrama de classes
Fluxo de eventos
Fluxos principais
Fluxo 1: Usuário acessa a rotina Menu > Utilitários > Configurações > Importação da tabela IBPT.
- Sistema exibe a tela de pesquisa da rotina de importação da tabela do IBPT conforme regra de negócio RN01.
Fluxo 2: Usuário aciona o botão [Importar tabela], informa uma tabela para upload e aciona o botão [Importar].
- Sistema cadastra automaticamente todos os registros da tabela e em seguida lista-os no grid conforme regra de negócio RN03.
Fluxos alternativos
Fluxo 1: Usuário acessa a rotina em questão visualizando no grid os dados de uma tabela já importada. Em seguida o usuário usuário entra em modo de alteração em um determinado registro e aciona o botão [Salvar].
- Quando o usuário entra em modo de alteração ou inclusão o sistema exibe o campo Fonte em branco, mesmo que esta informação esteja gravada no banco de dados.
- Quando o usuário aciona o botão [Salvar] o sistema emite a seguinte mensagem de confirmação: A alteração ou inclusão manual de um registro exige que o valor informado no campo "Fonte" seja replicado para todos os demais registros já existentes. Tanto registros importados via tabela IBPT quanto registros incluídos manualmente terão sua fonte atualizada e perderão o vínculo com sua fonte atual. Deseja prosseguir?
Fluxo 2: Com os dados de uma tabela já listados no grid usuário seleciona uma outra tabela e aciona o botão [Importar nova tabela].
- Antes de exibir ao usuário o pop-up de seleção de aquivo o sistema emite a seguinte mensagem de confirmação: Ao importar uma nova tabela TODOS os dados já existentes (inclusive registros criados/alterados manualmente) serão descartados. Deseja prosseguir? Caso usuário clique em sim a importação ocorrerá normalmente, caso contrário a importação será abortada.
Fluxos de exceção
Fluxo 1: Usuário informa para importação um arquivo que não esteja no formato CSV e/ou um arquivo cuja formatação dos dados não condiz com o layout da tabela especificado na RN01.
- Sistema aborta importação e exibe o usuário as seguintes mensagens:
- Caso arquivo não esteja no formato CSV: O formato do arquivo selecionado não é suportado. Somente tabelas no formato "CSV" poderão ser importadas.
- Caso layout das colunas da tabela importada não esteja conforme especificado: Os dados dentro do arquivo selecionado não estão de acordo com o modelo fornecido pelo IBPT, portanto sua importação não será permitida.
Fluxo 2: Sem ter importado uma tabela do IBPT usuário acessa a rotina de venda do sistema e tenta emitir nota fiscal (de produto ou serviço).
- Sistema aborta a emissão da nota e emite ao usuário a seguinte mensagem de alerta: Visando atender o projeto de lei DE OLHO NO IMPOSTO, para emissão de nota fiscal é necessário ter importada no sistema a tabela IBPT através da rotina "Menu > Utilitários > Configurações > Importação da tabela IBPT". Faça a importação da tabela e tente novamente.
Fluxo 3: Na rotina em questão usuário aciona o botão [Adicionar novo registro] e tenta cadastrar um novo registro cujo código e tipo de código são idênticos aos de um registro já existente.
- Sistema aborta a inclusão do novo registro e emite ao usuário a seguinte mensagem de alerta: O CÓDIGO e TIPO DE CÓDIGO informados estão sendo utilizados em um registro já cadastrado, portanto a gravação não será permitida.
Fluxo 4: Na rotina em questão em modo de inclusão de um novo registro ou alterando um registro já existente o usuário informa no campo Fonte o valor IBPT e aciona o botão [Salvar].
- Sistema aborta a operação e emite ao usuário a seguinte mensagem de alerta: Registros adicionados ou alterados manualmente não poderão ter como fonte o IBPT (IBPT: Instituto Brasileiro de Planejamento e Tributação).
Regras de negócio
RN01 - Tela de pesquisa
Assim que a rotina for acessada será exibido o grid com os registros já existentes (caso existam, importados ou adicionados manualmente). Estará disponível no canto superior direito da tela o mecanismo de pesquisa lucene, que permitirá ao usuário filtrar os registros existentes digitando qualquer dado coerente com as colunas do grid.
Estarão disponíveis no canto superior direito os botões [Adicionar novo registro] que leva para tela de manutenção e [Importar tabela] que leva para importação da tabela IBPT.
O grid exibirá os dados da última tabela importada e também os dados inseridos manualmente nas seguintes colunas:
- CÓDIGO: Exibirá os códigos NBM ou NCM dos registros da tabela importada.
- NCM/NBS: Informará a que se refere o código informado na coluna anterior. Se o código for equivalente à nomenclatura comum do Mercosul será exibido NCM. Se o código for equivalente à nomenclatura brasileira de serviços será exibido NBS.
- DESCRIÇÃO: Exibirá a descrição do produto ou serviço correspondente conforme dados contidos na tabela.
- ALIQ. NACIONAL: Exibirá a alíquota nacional para o NCM/NBS.
- ALIQ. IMPORTAÇÃO: Exibirá a alíquota de importação para o NCM/NBS.
- ALIQ. ESTADUAL: Exibirá a alíquota estadual para o NCM/NBS.
- ALIQ. MUNICIPAL: Exibirá a alíquota municipal para o NCM/NBS.
- INÍCIO VIGÊNCIA: Exibe a data de início da vigência das alíquotas para o NCM/NBS.
- FIM VIGÊNCIA: Exibe a data final da vigência das alíquotas para o NCM/NBS.
- CHAVE: Chave que associa a tabela IBPTax baixada com a empresa, data e parâmetros informados pela empresa e que foram utilizados no cálculo.
- VERSÃO: Versão das alíquotas utilizadas para cálculo na tabela.
- FONTE: Fonte/origem das informações.
RN02 - Tela de manutenção
Nesta tela o usuário poderá incluir, alterar ou excluir registros com os seguintes campos e funcionalidades:
- Código: Campo onde o usuário deverá informar o código NCM ou NBS.
- Tipo de código: Campo onde o usuário deverá informar a que se refere o código informado no campo anterior selecionando as opções NCM ou NBS.
- Descrição: Campo onde o usuário deverá informar a descrição do produto ou serviço correspondente ao código informado.
- Alíquota nacional: Campo onde deverá ser informada a alíquota nacional para o item referente ao código informado.
- Alíquota de importação: Campo onde deverá ser informada a alíquota de importação para o NCM/NBS informado.
- Alíquota estadual: Campo onde deverá ser informada a alíquota estadual para o NCM/NBS informado.
- Alíquota municipal: Campo onde deverá ser informada a alíquota municipal para o NCM/NBS informado.
- Período de vigência: Campo onde deve ser informado o período de vigência para as alíquotas.
- Chave: Campo onde poderá ser informada a chave que é listada na tabela IBPT.
- Versão: Campo onde poderá ser informada a versão das alíquotas, também listada na tabela IBPT.
- Fonte: Campo que exibirá a fonte das informações, seja ela do IBPT ou informada pelo usuário.
- Botão [Salvar]: Salva os dados no banco de dados.
- Botão [Cancelar]: Aborta qualquer operação em andamento e sai da rotina.
RN03 - Importação da tabela IBPT
Apesar da rotina em questão utilizar as funcionalidades básicas de um cadastro (crud cadastro básico) será possível cadastrar automaticamente todos os dados da tabela IBPT através de sua importação. Na tela de pesquisa, ao lado do botão [Adicionar novo registro] estará disponível o botão [Importar tabela], que quando acionado exibirá ao usuário um pop-up que o permitirá selecionar a tabela do IBPT salva em seu computador (formato CSV) para fazer o upload da mesma para dentro do sistema. Neste pop-up além de poder selecionar uma nova tabela para importação o usuário visualizará os seguintes dados:
- Data da última importação: Campo somente leitura que exibirá a data em que foi feita a última importação da tabela IBPT. Caso nenhuma tabela tenha sido importada este campo ficará vazio.
- Versão da última tabela importada: Campo somente leitura que exibirá a versão da última tabela importada. Caso nenhuma tabela tenha sido importada este campo ficará vazio.
- Usuário que fez a última importação: Campo somente leitura que exibe o nome do usuário que fez a última importação da tabela IBPT. Caso nenhuma tabela tenha sido importada este campo ficará vazio.
- Nova tabela no formato CSV: Campo onde o usuário deverá selecionar em seu computador o arquivo correspondente a nota tabela IBPT a ser importada no formato CSV.
- Botão [Importar]: Quando este botão for acionado o sistema irá cadastrar automaticamente cada registro da tabela informada no sistema e em seguida exibi-los no grid da tela de pesquisa. Antes de executar esta ação será exibida ao usuário uma mensagem de confirmação alertando que todos os dados já existentes serão desprezados caso uma nova tabela seja importada.
Layout da tabela
De acordo com o MANUAL DE OLHO NO IMPOSTO v0.0.8, a tabela disponibilizada pelo IBPT terá o seguinte layout:
| CAMPO | CONTEÚDO | FORMATO | CAMPOS CORRESPONDENTES NO CADASTRO DE PRODUTOS DO SISTEMA |
|---|---|---|---|
| codigo | Contém a NCM e NBS | Inteiro de 1~9 | Contém o código da NCM ou NBS. Normalmente está presente no cadastro de produtos. |
| ex | Exceção fiscal da NCM ou TIPI. Na data desta versão, a maior EX da TIPI é 11 | vazio/inteiro:0~99 | Ex ou campo correspondente que armazena a exceção fiscal, ou, ex tarifário, como preferir chamar da tabela NCM – Nomenclatura Comum do Mercosul. |
| Tipo | Define-se o código que pertence a uma NCM ou a uma NBS |
|
Normalmente há um campo no cadastro do produto que indica se o item se refere a MP, MS, ME ou serviço. Pode ser usado um tratamento de exceção, do tipo: se não for serviço, é produto. |
| descricao | Contém o nome do produto ou serviço. Meramente informativo e não possui influência em cálculos. Não é utilizado em cálculos, nem deve ser informado ao consumidor. | Texto, com até 500 caracteres. | Campo que contém a descrição do produto ou serviço de acordo com a tabela correspondente. Sua informação é meramente informativa e está contido no arquivo para dar apoio aos desenvolvedores de software em atendimento a milhares de pedidos. |
| nacionalFederal | Carga tributária federal para os produtos nacionais. | Decimal com precisão de duas casas: Ex: 99.99 | Decimal com precisão de duas casas: Ex: 99.99A carga tributária federal de produtos, mercadorias e serviços nacionais é utilizada quando o primeiro caractere que identifica a Origem da Mercadoria ou Serviço, utilizado em conjunto com a CST – Código de Situação Tributária, do cadastro do produto for igual a: 0, 3, 4, 5 |
| importadosFederal | Carga tributária federal para os produtos importados. | Decimal com precisão de duas casas: Ex: 99.99 | A carga tributária federal de produtos, mercadorias e serviços importados é utilizada quando o primeiro caractere que identifica a Origem da Mercadoria ou Serviço, utilizado em conjunto com a CST – Código de Situação Tributária, do cadastro do produto for diferente de: 0, 3, 4, 5 |
| estadual | Carga tributária estadual. | Decimal com precisão de duas casas: Ex: 99.99 | Este código é exclusivo desta tabela. |
| municipal | Carga tributária municipal. | Decimal com precisão de duas casas: Ex: 99.99 | Este código é exclusivo desta tabela. |
| vigenciaInicio | Data de início da vigência desta alíquota. | Data DD/MM/AAAA | Este código é exclusivo desta tabela. |
| vigenciaFim | Data de fim da vigência desta alíquota. | Data DD/MM/AAAA | Este código é exclusivo desta tabela. |
| Chave | Chave que associa a tabela IBPTax baixada com a empresa, data e parâmetros informados pela empresa e que foram utilizados no cálculo. | Texto, alfanumérico, 6 caracteres, diferenciando maiúscula e minúscula. Exemplo: aWd7S8 | Este código é exclusivo desta tabela e é utilizado apenas no IBPT, devendo constar no cupom fiscal. |
| Versão | Versão das alíquotas utilizadas para cálculo. Novas versões podem ser disponibilizadas por ocasião da criação ou supressão de NCMs e NBSs pelo governo. Contém apenas códigos válidos. | Texto, alfanumérico, 6 caracteres, diferenciando maiúscula e minúscula. Exemplo:
14.1.a. onde: 14 = ano 1 = semestre a = versao do semestre |
Contém o número da versão do arquivo. Neste caso, há apenas o nome do campo que contém a versão, sem conter dados neste campo. As versões são sequenciais. |
| Fonte | Fonte | Texto, alfanumérico, 34 caracteres. | A variável deste campo é obtida do arquivo CSV. O serviço que é gratuito para o empresário e calculado por entidades como o IBPT pode ser patrocinado por entidades. Serão usadas variáveis no arquivo do IBPT do tipo: IBPT, IBPT/FECOMERCIO, IBPT/ACSP, etc. |
Antes de importar a tabela/arquivo o sistema deverá verificar se o mesmo está formatado de acordo com o modelo acima através de seu primeiro registro.
Será permitida a importação somente para arquivos que estejam no formato CSV.
RN04 - Impostômetro no ECF
O mecanismo de impressão do valor aproximado dos tributos já foi implementado no ECF em função do sistema ERP Delphi. Em outras palavras, na sincronização de produtos entre o Java e o ECF basta enviar o NCM dos itens para que este recurso funcione.
A tabela IBPT já existe no banco de dados padrão do ECF e só deverá ser enviada na sincronização de dados do Java para o ECF caso o Java possua uma versão mais atual da tabela em questão.
RN05 - Impostômetro na NF-e e NFS-e
Quando emitindo uma nota fiscal eletrônica de produtos ou de serviços, o sistema deverá exibir nas observações da nota um texto informando o valor aproximado dos tributos para atender à legislação.
O sistema deverá, para cada item da nota, consultar a alíquota sugerida pelo IBPT através do NCM (para produtos) ou do NBS (para serviços) contidos na classificação fiscal dos itens (ver caso de uso UC00111 - Classificação fiscal). Atualmente o sistema deverá considerar somente o campo aliqNac da tabela IBPT, independente da origem/destino do produto ou serviço.
Uma vez que as alíquotas sugeridas pelo IBPT foram adquiridas para todos os itens da nota, o sistema deverá aplica-las sobre o total de cada item (utilizando o total rateado dos itens nas notas) e exibir a soma dos resultados nas observações em valor e em percentual conforme exemplificado no MANUAL DE OLHO NO IMPOSTO.
Caso um ou mais itens da nota não possuam o campo VERSAO na tabela tabelaIBPT do banco de dados, o trecho FONTE: IBPT não deverá ser exibido ao discriminar
a carga tributária aproximada nas notas.
RN06 - Inclusão de novos dados ou alteração de dados já existentes
Sempre que o usuário incluir manualmente um novo registro ou alterar um registro já existente, antes de salvar os dados o sistema emitirá uma mensagem alertando que o dado informado no campo Fonte será replicado a todos os demais registros já existentes independente se foram importados ou adicionados manualmente e perguntará se o usuário deseja prosseguir com a gravação.
Se o usuário optar por prosseguir o sistema irá cadastrar o novo registro e replicará sua fonte a todos os demais registros já existentes. Se o usuário optar por não prosseguir, a gravação do novo registro será abortada.
Em registros incluídos ou alterados manualmente o sistema não permitirá que o usuário informe no campo Fonte o dado IBPT.
A informação do campo Fonte será utilizada na impressão dos cupons e notas fiscais para informar a origem das alíquotas para o calculo da carga tributária.
Quadro de dados
Tela de manutenção
| NOME | OBRIGATÓRIO | TIPO DE ENTRADA | VALORES POSSÍVEIS | TAMANHO | VALOR PADRÃO | OBSERVAÇÃO |
| Código | Sim | Input | Números inteiros | 1 a 99 | Vazio | |
| Tipo de código | Sim | Combobox | NCM ou NBS | NCM | ||
| Descrição | Não | Input | Alfanuméricos | 500 | Vazio | |
| Alíquota nacional | Sim | Input | Numéricos > 0 | Precision=4, scale=2 (00,00) | 00,00 | |
| Alíquota de importação | Sim | Input | Numéricos > 0 | Precision=4, scale=2 (00,00) | 00,00 | |
| Alíquota estadual | Sim | Input | Numéricos > 0 | Precision=4, scale=2 (00,00) | 00,00 | |
| Alíquota municipal | Sim | Input | Numéricos > 0 | Precision=4, scale=2 (00,00) | 00,00 | |
| Período de vigência | Sim | Input | Data | Vazio | Dara inicial e final da vigência das alíquotas. | |
| Chave | Sim | Input | Alfanuméricos | 25 | Vazio | O campo no banco terá o tamanho de 25, mas na tela o sistema deverá permitir que o usuário informe somente 6 caracteres. |
| Versão | Não | Input | Alfanuméricos | 10 | Vazio | Este dado não é obrigatório somente na inclusão ou alteração manual de um registro. Na importação da tabela este dado devera constar, obrigatoriamente, na tabela IBPT. No banco o campo terá o tamanho de 10, mas na tela o sistema deverá permitir que o usuário informe somente 6 caracteres. |
| Fonte | Sim | Input | Alfanumérico | 50 | Vazio | No banco o campo terá o tamanho de 50, mas na tela o sistema deverá permitir que o usuário informe somente 34 caracteres. |
