Á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 = J, 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 = J, 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 = F, 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 = F, 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.

 

Analista: Raquel Machado
Desenvolvedor: Jones Furlanetto


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, conforme pode ser visto na imagem abaixo:

 

.

Esse campo deve ser uma 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

 

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.

 

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

A Nota Fiscal de Serviços Eletrônica (NFS-e) é 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

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  • Alteração da tabela paramnf:  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

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 

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim ( 

) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociaçã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.