Árvore de páginas

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.

Esse campo deve ser uma combo-box e deve ter as opções “Juridica / 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 = F, buscar na tabela modalid pelo código da modalidade e campo modalid.in-tipo-pessoa = J ou modalid.in-tipo-pessoa = “”, então: “Modalidade nao cadastrada com tipo de pessoa selecionado.”

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 = F, buscar na tabela contrat pelo código do contratante e campo contrat.in-tipo-pessoa = J ou contrat.in-tipo-pessoa = “”, então: “Contratante nao cadastrado com tipo de pessoa selecionado.”

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 = J, buscar na tabela modalid pelo código da modalidade e campo modalid.in-tipo-pessoa = F ou modalid.in-tipo-pessoa = “”, então: Modalidade nao cadastrada com tipo de pessoa selecionado.”

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 = J, buscar na tabela contrat pelo código do contratante e campo contrat.in-tipo-pessoa = F ou contrat.in-tipo-pessoa = “”, então: Contratante nao cadastrado com tipo de pessoa selecionado.”

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.

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(desconto) 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

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, o valor incondicionado 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 do campo fatueven.lg-cred-deb, 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 do campo fatueven.lg-cred-deb e se a classe do evento evenfatu.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 evenfatu.in-classe-evento = F. 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.

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$

wt-it-docto.vl-merc-ori

tmp-par-fp0006.vl-bruto

Valor PIS

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

wt-it-docto.val-retenc-pis

tmp-par-fp0006.vl-pis

Valor COFINS

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

wt-it-docto.val-retenc-cofins

tmp-par-fp0006.vl-cofins

Valos CSLL

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

wt-it-docto.val-retenc-csll

tmp-par-fp0006.vl-csll

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

Valor Desconto Incondicionado

Todos os descontos menos impostos.

wt-it-docto.val-desconto-total

tmp-par-fp0006.vl-incondicionado

Na api-fp0006.p verificar onde ele esta percorrendo a tabela nota-fiscal do EMS e guardando o numero da nota fiscal, para também guardar os valores Desconto, Bruto e impostos. Esses valores estarão na tabela it-nota-fiscal. 

 

Valores do EMS

Coluna

Valor

Desconto

it-nota-fisc.val-desconto-total

Liquido

it-nota-fisc.vl-merc-liq

Bruto

it-nota-fisc.vl-merc-ori

ISS

it-nota-fisc.vl-biss-it

INSS

it-nota-fisc.vl-ir-adic

PIS

it-nota-fisc.val-retenc-pis

COFINS

it-nota-fisc.val-retenc-cofins

CSLL

it-nota-fisc.val-retenc-csll

IR

it-nota-fisc.vl-irf-it

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

O programa fp0711s2.i é chamado pelos seguintes programas: Autorização Guias pelo Auditor/Responsável (At0110j), Gera Título pela guia de antecipação (fp0510x) e pela Manutenção Autorização Guias (at0111c e at0117c).
No programa at0110c é necessário criar uma guia de orçamento que gere título. Nesse caso ele ira criar a guia e ao final irá verificar para gerar a nota fiscal através dos programas at0111c e at0117c.
Podemos ter a situação ainda de ter que liberar essa guia quando houver alguma glosa, nesse caso vamos acessar o cadastro at0110j e se for uma guia de orçamento ele vai verificar para gerar a nota fiscal.
E ainda podemos ter a situação e Gerar os títulos para guia de antecipação. Nesse caso vamos acessar o programa fp0510x e gerar o titulo, no caso de ser uma guia de orçamento e gera titulo ele vai tentar gerar a nota fiscal.
Devemos alterar o programa fp0711s2.i na procedure processa-nf, onde são enviados os valores para geração da nota fiscal. 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çãoManutenção Autorização Guias-
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.