BISModulesFiscal
O módulo Fiscal do BISModules tem a finalidade de gerenciar e dar suporte para o tratamento de documentos fiscais. Como NFe, NFCe, Arquivos de PAF-ECF, e outros documentos eletrônicos obrigatórios pela legislação. O módulo Fiscal pode ser utilizado por outros módulos para gerar ou obter informações de documentos, por exemplo, o módulo de compras pode usar o módulo fiscal para obter dados da NFe sem que tenha que conhecer sobre XML da NFe, assim como o módulo de vendas, ou de PDV pode solicitar a emissão de um documento NFe ou NFCe sem ter de conhecer a integração com o SEFAZ ou trabalhar com os certificados digitais.
Gerenciamento de NFe
Um dos documentos fiscais gerenciado pelo módulo são as Notas Fiscais eletrônicas (NFe) recebidas de fornecedores, notas de compras. Tendo assim uma tela onde é possível enviar para o sistema arquivos .XML de notas para cadastra-las no sistema. Essa nota ficará armazenada no sistema por tempo indeterminado, e pode ser encontrada e visualizada sempre que necessário. O arquivamento feito no BIS pode ser utilizado para fins de arquivamento pelo prazo legal.
Importação de NFe a partir E-mail
Na tela de configurações do módulo deverá ser possível configurar se deseja que o módulo busque por NFe nos e-mails recebidos. A principio o módulo não fará distinção entre caixas de e-mail, se selecionado ele buscará em todas. No futuro pode-se estudar a funcionalidade, se necessário, de especificar as caixas de e-mail que quer que o sistema verifica a existência de NFes ou não.
Entrada de Custos a partir de NFe
Uma vez que as notas estiverem no sistema, o sistema será capaz de abrir e dar entrada dos custos dessas notas. A partir de qualquer nota que já esteja no sistema, o usuário poderá seleciona-la e forçar o sistema a dar entrada dessa NFe. A partir de critérios explicados mais a baixo o sistema mapeará os itens da NFe com os itens do sistema e deixará a entrada sugerida cadastrada no sistema. A partir de outra tela (de gerenciamento de entradas de custos) o usuário poderá confirmar, negar ou alterar as entradas sugeridas pelo sistema.
O sistema deve ter nas configurações do módulo dois campo em porcentagem. Neles o usuário poderá configurar qual a alteração mínima que um preço de venda deve ter para que o sistema sugira autera-lo. Caso o usuário dê a entrada do item e informe que não deve alterar o preço de venda, apenas o custo é alterado para questões de histórico custo deste item.
Nesta tela (de gerenciamento de entrada de custos) devem ser exibidos uma lista de todas as entradas realizadas, as com alterações sugeridas, com alterações negadas e as que não foram mapeadas. Abaixo os botões com as opções:
- Confirmar Mapeados - tentará confirmar a entrada de todos os itens que estão pendentes e já foram mapeados. Os itens que não foram mapeados não serão confirmados.
- Excluir Não Mapeados - Excluí todos os itens que não estão mapeados a nenhum item.
- Excluir - Exclui os itens selecionados.
O sistema deve ter uma opção nas configurações que informe se o BIS deve efetuar entrada de notas das notas que chegarem automaticamente por e-mail.
![]() |
|
Mapeamento dos Itens da NFe e os Itens do Sistema
Para tentar mapear os itens da NFe e do sistema o BIS usará as seguintes técnicas na ordem abaixo para sugerir o item certo:
![]() |
|
- Busca no histórico por Descrição da NFe e Unidade Comercial - Busca no histórico se há entrada de nota com a mesma descrição e unidade comercial. Leva em consideração ambos os argumentos pois o mesmo fornecedor pode usar a mesma descrição do item, mas vender uma caixa e/ou um fardo o que troca a quantidade de venda, e consequentemente o divisor do sistema.
- Busca no histórico pelo EAN Comercial (caso disponível na NFe) - Busca no histórico de entrada de notas se há alguma entrada do mesmo emissor da nota e mesmo código EAN escrito na nota. Se tiver um histórico verificamos qual foi o item associado na última entrada e utilizamos o mesmo divisor.
- Busca pelo EAN Comercial (caso disponível na NFe) - e tenta mapear no item do sistema.
Tabela do IBPT
A janela "Tabelas IBPT" deverá ser uma janela com o template de BISListWindow, e sua finalidade será permitir a visualização e atualização da tabela de razões do instituito IBPT, usada para cálculo do imposto direto cobrado sobre o cupom/NFe.
- Esta tela pertence ao módulo "Fiscal" do plugin BISModules.
- Espelha o objeto "FiscalIBPTRatioVO" e sua tabela.
- Deverá ter os seguintes filtros de busca:
- Código NCM
- Descrição
- Data de Vigência - ao definir esta data a tela deverá exibir apenas os registros que são vigentes nesta data.
- A tela não terá os botões incluir e alterar, nem tela de cadastro (por isso estende o template BISListWindow e não BISListAndManagerWindow).
- A tela deverá ter o botão excluir, permitindo a exclusão de múltiplos selecionados.
- A tela deverá ter o botão "Enviar Tabela", que será um botão de upload que permitirá o envio de um novo arquivo do IBPT para atualizações.
- O Panel em que a tabela de dados for inserida deve aceitar o "drag'n'drop" do arquivo vindo do desktop.
Importação do Arquivo IBPT
O arquivo do IBPT é um arquivo no formato CSV (Comma Separated Values). Com a primeira linha sendo um cabeçalho e as demais os dados a serem importados. Normalmente as tabelas tem validades de 6 meses, sendo 1 para o primeiro semestre do ano e outra para segundo. Novas tabelas são liberadas uns 15 dias antes do início do semestre.
Para evitar problemas como: alteração feitas pelo IBPT no layout do arquivo, ou arquivos errados sejam enviados por engano e permitir que o BIS estrague os dados, as seguintes validações devem ser feitas no arquivo e nos dados atualmente no banco:
- Ignorar a primeira linha pois é cabeçalho e as validações não se aplicam!
- Validar se a linha não é vazia, as próximas validações podem falhar caso no final ou no começo do arquivo tenha alguma linha em branco. Não se importar se a linha vazia está no meio, só ignorar a linha vazia.
- Validar linha a linha se a linha têm 13 parâmetros separados pelo token ";" [Abortar]
- Validar se o parâmetro 1 aceita o pattern "[0-9]{8}"
- Validar se os parâmetros 5, 6, 7 e 8 aceitam o pattern "[0-9]+\\.[0-9]{2}" [Abortar]
- Validar se os parâmetros 9 e 10 são datas válidas no formato "dd/MM/yyyy" [Abortar]
- Validar se o parâmetro 10 é uma data futura
- Validar se o parâmetro 3 é igual 0
- Verificar se o registro ainda não existe no banco considerando os parâmetros 1 (Código NCM), 2 (Ex - caso no arquivo esteja em branco considerar 0, no banco ele não pode ser nulo por conta da unique contraint), 9 (Início da Vigência) e UF (que não é parâmetro no arquivo, deve vir como parâmetro no método).
Caso o registro falhe em qualquer uma das validações acima ele deve ser ignorado. Caso as validações acima marcadas com [Abortar] falhe o método deve retornar em BISValidationException informando que o arquivo tem um formato inválido e não importar nada. Caso a validação não tenha a marca de [Abortar] simplesmente ignorar o registro.
O método de importação deve retornar o total de registros que foram importados do arquivo, apenas para caráter informativo do usuário.
Tarefa de Exclusão Automática
![]() |
|