Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.

Informações Gerais

Especificação

Produto

Datasul

Módulo Gestão de Planos de Saúde

 

Segmento Executor

Saúde

Projeto

DS_SUS2014

 

 

ChamadoTSD215  

Release de Entrega Planejada

12.1.7

Réplica Não se Aplica

 

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Objetivo

Alterar o processo de Geração das Notas Fiscais (fp0510m) para possibilitar a geração de notas para contratantes físicos e enviar para o EMS o valor líquido, valor bruto, valor incondicionado e valor dos impostos da fatura, para que estes sejam impressos na nota. 

Definição da Regra de Negócio

 Requisito 1: Incluir um novo campo no cadastro Manutenção Parametros Nota Fiscal que será relacionado ao tipo de pessoa.

Alterar o cadastro Manutenção Parametros Nota Fiscal (fp0310l.p) para conter um novo campo chamado “Tipo de Pessoa” que ficará abaixo do campo Unidade, conforme pode ser visto na imagem abaixo:

Esse campo deve ser uma combo-box e deve ter as opções “01- Juridica / 02- Fisica”. Sendo que por default deve estar preenchido como Juridica. Esse campo será obrigatório. Incluir esse campo nas funções: Inclusão, Alteração, Exclusão e Consulta.

Tabela paramnf

Campo

Tipo

Formato

Obrigatório

Editável

Chave

Valor Default

Valores

in-tipo-pessoa

Char

x(1)

Sim

Sim

Sim

J

J (Juridica)

F (Fisica)

Com essa alteração sempre será informado a Unidade e Tipo de pessoa, sendo que os campos modalidade e contratante podem ser genéricos (TODOS). Com esse novo campo devemos realizar algumas validação nesse cadastro.

1. Caso o cliente selecione Pessoa Jurídica e informe uma Modalidade Física deve lançar uma mensagem de erro. Para isso verificar se paramnf.in-tipo-pessoa = JF, buscar na tabela modalid pelo código da modalidade e campo modalid.in-tipo-pessoa = J ou modalid.in-tipo-pessoa = “”, então: “É necessário informar uma modalidade jurídica.”

2. Caso o cliente selecione Pessoa Jurídica e informe um Contratante Físico deve lançar uma mensagem de erro. Para isso verificar se paramnf.in-tipo-pessoa = JF, buscar na tabela contrat pelo código do contratante e campo contrat.in-tipo-pessoa = J ou contrat.in-tipo-pessoa = “”, então: “É necessário informar um contratante jurídico.”

3. Caso o cliente selecione Pessoa Física e informe uma Modalidade Jurídica deve lançar uma mensagem de erro. Para isso verificar se paramnf.in-tipo-pessoa = FJ, buscar na tabela modalid pelo código da modalidade e campo modalid.in-tipo-pessoa = F ou modalid.in-tipo-pessoa = “”, então: “É necessário informar uma modalidade física.”

4. Caso o cliente selecione Pessoa Física e informe um Contratante Jurídico deve lançar a seguinte mensagem de erro. Para isso verificar se paramnf.in-tipo-pessoa = FJ, buscar na tabela contrat pelo código do contratante e campo contrat.in-tipo-pessoa = F ou contrat.in-tipo-pessoa = “”, então: “É necessário informar um contratante físico.”

Alterar a função Lista:

1. Ao clicar em lista deve possibilitar na busca pesquisar pelo tipo de pessoa (Nenhuma (considera os dois tipos), Juridica ou Física):

2. Na visualização da listagem inserir o tipo de pessoa do lado do campo nome, como pode ser visto abaixo:

Alterar a função do relatório:
1. Na aba de seleção colocar a busca também pelo tipo de pessoa (Nenhuma (considera os dois tipos), Juridica ou Física):

2. Alterar o mapa de seleção para conter o campo Tipo de Pessoa:

3. Inserir no relatório o tipo de pessoa:

Como foi alterado a chave primária dessa tabela é necessário recompilar todos os programas que utilizam essa tabela:
api-fp0006.i
fp0310l.f
fp0310l.p
fp0311l.p
fp0312l.p
fp0313l.p
fp0314l.p
fp0315l.p
fp0510m.p
fp0711s.p
fp0711s2.i
deparamnf.p
wrparamnf.p

Requisito 2: Criar um sp para preencher o campo Tipo de Pessoa no cadastro Manutenção Parametros Nota Fiscal.

Criar um novo sp para carregar essa informação na Manutenção de Parametros da Nota Fiscal, pois ele é um campo obrigatório e faz parte da chave primária da tabela.
Deve ser criado o programa sp-carrega-pessoa-paramnf que irá percorrer todos os registros da tabela paramnf e preencher o campo tipo de pessoa conforme segue abaixo:
Percorrer todos os registros da tabela paramnf.
Se paramnf.in-tipo-pessoa = “” é porque não existe o tipo de pessoa e deve preencher esse campo conforme segue:

  • Se o contratante existe, então tipo de pessoa deve ser igual ao contratante. Para isso verficar se paramnf.cd-contratante <> “”, então buscar na tabela contrat pelo código do contratante. Se contrat.in-tipo-pessoa <> “” então paramnf.in-tipo-pessoa = contrat.in-tipo-pessoa, senão paramnf.in-tipo-pessoa = J.
  • Se o contratante não foi informado, então verificar se modalidade for diferente de zero então tipo de pessoa deve ser igual ao da modalidade para isso verficar se paramnf.cd-modalidade <> “” então buscar na tabela modalid pelo código da modalidade. Se modalid.in-tipo-pessoa <> “” então paramnf.in-tipo-pessoa = modalid.in-tipo-pessoa, senão paramnf.in-tipo-pessoa = J.
  • Caso nem o contratante nem modalidade estejam informados, paramnf.in-tipo-pessoa = J.

Ao final do processo deve ser gerado um relatório com os registros da parâmetro da nota fiscal e o tipo de pessoa preenchido.


Requisito 3: Incluir um novo campo no cadastro Manutenção de Impostos que informará o tipo de imposto.

Alterar o cadastro Manutenção de Impostos (fp0110h.p) para conter um novo campo chamado “Tipo de Imposto” que ficará abaixo do campo Descrição.

Esse campo deve ser uma combo-box deve ter as opções “PIS, COFINS, INSS,IR,CSLL,ISS, Outras Retenções”. Incluir esse campo nas funções: Inclusão, Consulta, Exclusão, Lista e Relatório.

Ao alterar um registro que já existe na base esse campo virá em branco, porém o usuário deverá informar um valor para salvar o mesmo.

Tabela dzimposto

Campo

Tipo

Formato

Obrigatório

Editável

Chave

Valor Default

Valores

ind-tip-impto

Char

x(8)

Sim

Sim

Não

 

(P) PIS

(C) COFINS

(I) INSS

(R) IR

(L) CSLL

(S) ISS

(O) Outras Retenções

 

Requisito 4: Alterar o processo de Geração da Nota Fiscal.

A Nota Fiscal de Serviços Eletrônica (NFS-e) é um documento de existência exclusivamente digital, gerado e armazenado eletronicamente pela prefeitura ou por outra entidade conveniada, para documentar as operações de prestação de serviços. Os contribuintes podem emitir, cancelar e consultar notas fiscais de forma automatizada.
A NFS-e contém campos que reproduzem as informações enviadas pelo contribuinte e outros que são de responsabilidade do Fisco. Uma vez gerada, a NFS-e não pode mais ser alterada, admitindo-se, unicamente por iniciativa do contribuinte, ser cancelada ou substituída, hipótese esta em que deverá ser mantido o vínculo entre a nota substituída e a nova.
Atualmente no sistema do Gestão de Planos o processo de geração da Nota Fiscal é realizado pelo programa Geração Notas Fiscais (fp0510m), que faz uma leitura das faturas da base que não tenham número da nota (numero-nf), que estejam em situação 20 e onde o tipo da nota for igual a 0 ou 3, para integrar com o sistema do EMS2. A api-fp0006.p é responsável por essa integração que criará as tabelas relacionados as notas e impostos e serão utilizadas futuramente na emissão da Nota de Serviço no EMS.
Conforme a nova lei é necessário alterar o sistema para que considere os contratantes físicos, pois atualmente as notas podem ser geradas somente para contratantes jurídicos. Além disso, é necessário enviar para o EMS o valor líquido, valor bruto, valor incondicionado e valor dos impostos para a geração da nota, atualmente é enviado somente o valor líquido


Alteração 1: Alterar geração das notas para pessoa física e jurídica.

Alterar o programa fp0510m, inserir um novo campo na aba parâmetros desse relatório que será relacionado ao tipo de pessoa que o usuário deseja gerar a nota. Esse campo pode ter os seguintes valores: Ambas, Fisica ou Juridica.

No programa fp0510m na procedure processa-nf é buscado os parâmetros da nota fiscal na tabela paramnf. Alterar essa busca para considerar o tipo de pessoa que o usuário selecionou. Atualmente ele faz a busca primeiro por Uf, Modalidade e Contratante. Se não encontrar busca Uf e Modalidade. Caso não encontre busca somente por UF.

Se o usuário selecionou o parâmetro “Ambas” deve continuar fazendo exatamente como é hoje.
Caso o usuário selecione Juridica ou Fisica devem ser alteradas essas buscas para considerar o tipo de pessoa também, na mesma ordem de cima. Primeiro busca por UF, Tipo de Pessoa, Modalidade e Contratante. Caso não encontre busca por UF, Tipo de Pessoa e Modalidade. Caso não encontre busca por UF e Tipo de Pessoa.

 

 Alteração 2: Alterar para emitir Nota Fiscal para Contratante Físico.

Alterar o programa fp0510m na procedure gera-nf onde ele verifica o tipo de pessoa pulando para o próximo registro.

 

Alteração 3: Enviar novos valores para o EMS2.

Incluir novos campos na tabela tmp-par-fp0006 da include api-fp0006.i conforme segue:

Campo

Tipo

vl-bruto

Dec

vl-incondicionado

Dec

vl-pis

Dec

vl-cofins

Dec

vl-inss

Dec

vl-ir

Dec

vl-csll

Dec

vl-outras-retencoes

Dec

Incluir um comentário ao lado do campo tt-item /* valor liquido*/.

Como foi alterado a include devemos verificar os programas que utilizam a mesma:

Programas relacionados a api-fp0006.p

Programa

Função

Descrição

Requisito

Fp0310x

PROCURA-NF

Atualiza Fatura caso nota cancelada

Não se aplica

Fp0510m

PROCESSA-NF

Geração de Nota Fiscal

Requisito 4

Fp0711s

CONECTAR

Gerar Faturamento Guia de Antecipação

Requisito 5

Fp0711s2

PROCESSA-NF

Gerar Faturamento Guia de Antecipação

Requisito 5

No programa fp0510m devemos alterar o ponto onde são calculados os valores enviados para a api-fp0006p.

O Valor Líquido da NFS-e é calculado pelo Valor Total de Serviços subtraindo-se: Valor do PIS, COFINS, INSS, IR, CSLL, Outras Retenções, ISS Retido, Desconto Incondicionado e Desconto Condicionado. Atualmente ele percorre as notas de serviço e acumula o valor total da nota que é referente ao valor líquido no campo tmp-par-fp0006.tt-item. Essa parte deve continuar exatamente como é hoje.
Devemos enviar também o valor bruto e o valor dos impostos conforme segue:
Verificar onde percorre as notas de serviço (notaserv). Para cada nota percorrer os eventos da fatura (fatueven) através dos campos modalidade (notaserv.cd-modalidade), contratante (notaserv.cd-contratante), contratante origem (notaserv.cd-contratante-origem), termo de adesão (notaserv.nr-ter-adesao), ano de referencia (notaserv.aa-referencia), mês de referencia (notaserv.mm-referencia) e numero da sequencia (notaserv.nr-sequencia).
O Valor Bruto será o valor de todos os eventos de crédito da nota para isso verificar se o tipo de evento é credito através de fatueven.lg-cred-deb = CRED, acumular em uma variável auxiliar o valor: vl-bruto-aux = vl-bruto-aux + fatueven.vl-evento.
O Valor Incondicionado será a soma de todos os descontos menos os impostos, para isso verificar se o tipo de evento é débito através de fatueven.lg-cred-deb = DEB e se a classe do evento fatueven.in-classe-evento <> F, acumular em uma variável auxiliar o valor: vl-incondicionado-aux = vl-incondicionado-aux + fatueven.vl-evento.
Os Valores dos Impostos serão calculados da seguinte forma: Para cada fatueven verificar se o tipo de evento é igual a imposto, ou seja, se fatueven.in-classe-evento = F. Caso sim, devemos buscar o tipo do imposto na tabela evenimp (fp0110j) pelos campos in-entidade = ‘FT’, cd-evento = fatueven.cd-evento, e onde data inicial (dt-vigencia-ini) e data final (dt-vigencia-fim) estejam dentro da data de hoje, retornar o código do imposto (cd-imposto). Buscar na tabela de impostos (dzimposto) pelo código dzimposto.cd-imposto e retornar o tipo de imposto dzimposto.ind-tip-impto. Se esse campo estiver em branco não deve emitir a nota e deve lançar uma mensagem de erro no relatório:
“É necessário cadastrar o tipo de imposto”.
Caso esse campo tenha valor, deve verificar a qual tipo de imposto se refere e acumular em uma das variáveis auxiliares, conforme exemplo abaixo:

Imposto

Cálculo

(P) PIS

vl-pis-aux = vl-pis-aux  + fatueven.vl-evento.

(C) COFINS

vl-cofins-aux = vl-cofins-aux  + fatueven.vl-evento.

(I) INSS

vl-inss-aux = vl-inss-aux  + fatueven.vl-evento.

(R) IR

vl-ir-aux = vl-ir-aux  + fatueven.vl-evento.

(L) CSLL

vl-csll-aux = vl-csll-aux  + fatueven.vl-evento.

(O) Outras Retenções

vl-outras-ret-aux = vl-outras-ret-aux + fatueven.vl-evento.

No programa fp0510m ao chamar a api-fp0006.p devemos passar o valor bruto e o valor dos impostos para a tabela temporária:

Campos enviados para api-fp0006

Campo api-fp0006

Campo fp0510m

Descrição

tmp-par-fp0006.vl-bruto

vl-bruto-aux

Valor acumulado dos eventos de crédito

tmp-par-fp0006.vl-incondicionado

vl-incondicionado-aux

Valor acumulado de todos os descontos menos os impostos.

tmp-par-fp0006.vl-pis

vl-pis-aux

Valor acumulado de PIS das notas de serviço.

tmp-par-fp0006.vl-cofins

vl-cofins-aux

Valor acumulado de COFINS das notas de serviço.

tmp-par-fp0006.vl-inss

vl-inss-aux

Valor acumulado de INSS das notas de serviço.

tmp-par-fp0006.vl-ir

vl-ir-aux

Valor acumulado de IR das notas de serviço.

tmp-par-fp0006.vl-csll

vl-csll-aux

Valor acumulado de CSLL das notas de serviço.

tmp-par-fp0006.vl-outras-retencoes

vl-outras-ret-aux

Valor acumulado de Outras Retenções das notas de serviço.

Alterar a api-fp0006.p responsável pela integração do EMS na procedure processa-nf. Essa procedure funciona da seguinte forma:

1. Buscar o próximo número de sequencia da nota.
2. Inicializa a integração através da bodi317in método inicializaBOS.
3. Cria o documento através da bodi317sd do método criaWtDocto enviando o estabelecimento, serie, numero da nota, contratante, tipo da nota, data de emissão, natureza de operação e sequencia.
4. Atualiza o documento criado através da bodi317sd do atualizaDadosGeraisNota enviando a condição de pagamento, tabela financeira, portador, modalidade, uf e nome abreviado.
5. Cria o item da nota através da bodi317sd do método criaWtItDocto enviando os campos natureza operação, sequencia e código do item.
6. Altera o item criado através da bodi317sd do método gravaInfGeraisWtItDocto enviando o valor do item (valor líquido).
7. Procura o imposto criado na tabela wt-it-imposto e atualiza com o valor do ISS.
8. Chama a função atualizaDadosItemNota e atualizaDadosImpostosEstoq da bodi317pr.
9. Confirma o cálculo através do método confirmaCalculo da bodi317pr.
10. Efetiva a nota através do método efetivaNota da bodi317ef.
11. Busca as notas geradas na bodi317ef e joga na tabela temporária tt-notas-geradas.

Devemos alterar essa procedure no ponto 7, além de calcular o ISS devemos atualizar os outros impostos também:

Identificação da Prestação de Serviços

Campo

Descrição

EMS

GP

ValorServicos = Valor Bruto

Valor dos Serviços em R$

Com EMS

tmp-par-fp0006.vl-bruto

Valor PIS

Valor de retenção do PIS em R$.

wt-it-imposto.vl-pis

tmp-par-fp0006.vl-pis

Valor COFINS

Valor de retenção do cofins em R$.

wt-it-imposto.vl-cofins

tmp-par-fp0006.vl-cofins

Valos INSS

Valor de retenção do INSS em R$.

wt-it-imposto.vl-inss-rf

tmp-par-fp0006.vl-inss

Valor IR

Valor de retenção do IR em R$.

wt-it-imposto.vl-irf-it

tmp-par-fp0006. vl-ir

Valos CSLL

Valor de retenção do CSLL em R$.

Com EMS

tmp-par-fp0006.vl-csll

Outras Retenções

Outras retenções na fonte.

Com EMS

tmp-par-fp0006.outras-retencoes

Valor Desconto Incondicionado

Todos os descontos menos impostos.

Com EMS

tmp-par-fp0006.vl-incondicionado

 

Requisito 5: Alterar o processo de Geração de Guia de Antecipação.

O programa X realiza o processo do faturamento em batch. Através da guia de autoricação cria a fatura, notas de serviço, eventos da fatura, libera a fatura, gera nota fiscal e gera títulos.

Como é gerado a nota fiscal devemos alterar para enviar o valor líquido, valor incondicionado, valor bruto e valores dos impostos como foi realizado no requisito 4.
A geração da nota fiscal é realizada no programa fp0711s2.i na procedure processa-nf.
Ao percorrer as notas de serviço deve acumular o valor bruto, incondicionado e impostos conforme feito no requisito 4. E enviar esses valores para a api-fp0006.p para geração da nota fiscal.

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

FP0310L

Alteração

Manutenção Parâmetros da Nota Fiscal

-

FP0110HAlteraçãoManutenção de Impostos-
FP0510MAlteraçãoGeração das Notas Fiscais-
FP0711SAlteração -
SP-CARREGA-PESSOA-PARAMNFInclusãoCarrega Tipo Pessoa Parametros Nota Fiscal-

Protótipo de Tela

Protótipo 01

Dicionário de Dados

  • Alteração da tabela paramnf:  

Índice

Chave

01

paramnf1

Campo

IN-TIPO-PESSOA

Tipo

CHAR

Tamanho

x(8)

Valor Inicial

J

Mandatório

Sim ( X  ) Não (  )

Descrição

Tipo de Pessoa

Help de Campo

Tipo de pessoa F-Fisica J-Juridica

 

  • Alteração da tabela dzimposto:  

 

Campo

IND-TIP-IMPTO

Tipo

CHAR

Tamanho

x(8)

Mandatório

Sim ( X  ) Não (  )

Descrição

Tipo de Imposto

Help de Campo

Tipo de Imposto:(P)PIS- (C)COFINS- (I)INSS- (R)IR- (L)CSLL- (S)ISS- (O)Outras Retencoes

Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.