UC00004 - Movimentação de series

De Wiki Java - Interno
(Diferença entre revisões)
Ir para: navegação, pesquisa
(Fluxos de exceções)
(Regras de negócio)
Linha 34: Linha 34:
 
= Regras de negócio =
 
= Regras de negócio =
 
== RN01 - Campo para informar a chave da NFe ==
 
== RN01 - Campo para informar a chave da NFe ==
O campo '''Chave''' deverá ser visível na tela somente quando for selecionada no campo '''Modelo''' a opção '''Nota fiscal eletrônica'''. Uma vez visível, a informação do campo '''Chave''' será obrigatória caso regime tributário da filial logada seja '''diferente de Simples''', caso contrário sua informação será opcional.
 
 
 
Os botões de upload e download de arquivo XML ao lado do campo '''Chave''' ficarão desabilitados por padrão até que:
 
*Seja informado um tipo de operação.
 
*Seja selecionado no campo modelo o tipo '''Nota fiscal eletrônica'''.
 
 
 
    <font face="Arial">
 
    Se desejar, o usuário poderá informar a chave de uma NF-e sem importa-la.
 
 
== RN02 - Formas de importação da NFe ==
 
A importação de uma NF-e através do XML poderá ser feita de duas formas:
 
<blockquote>
 
{| cellpadding=10 cellspacing=0
 
|-
 
! width="50%" | Importação de um arquivo XML já existente
 
! width="50%" | Importação do arquivo XML direto da SEFAZ através da chave de acesso
 
|-
 
| style="padding: 0 1.5em; text-align: justify;" | O usuário deverá clicar no ícone de pasta logo à direita do campo “Chave” para que seja exibida a janela de upload. Na janela de upload deverá ser selecionado (no computador do usuário) o arquivo XML da NF-e que deseja importar. Assim que o upload do arquivo XML for concluído o processo de importação do mesmo será iniciado.
 
| style="padding: 0 1.5em; text-align: justify;" | O usuário deverá informar no campo “Chave” à chave da NF-e (digitando ou através de um leitor de código de barras) e acionar o ícone de download logo à direita para que o sistema busque automaticamente o arquivo de XML correspondente à chave informada no site da SEFAZ. Caso o XML seja encontrado, logo após o seu download o processo de importação será iniciado.
 
|}
 
</blockquote>
 
 
 
Ao concluir o upload/download do arquivo XML serão validados:
 
#Se os dados do XML referentes ao cabeçalho da nota existem e se estão corretos.
 
#Se pelo menos um item do XML possuir uma das tags ICMS30,UCMS51 ou ICMS70, a importação não será permitida. Neste caso a seguinte mensagem deverá ser exibida ao usuário: <font color=#008B00>''A rotina de importação de XML não contempla produtos que se enquadram nos tipos ICMS30,UCMS51 ou ICMS70. Favor entrar em contato com o suporte técnico''</font>.
 
#Caso exista um ou mais produtos já cadastrados que controlam série, será verificado se para todos os produtos do XML foi encontrado um produto correspondente já cadastrado. Se não, a importação deverá ser abortada e a seguinte mensagem será exibida ao usuário: <font color=#008B00>''Existem produtos que controlam série já cadastrados, portanto é obrigatório que todos os itens do XML já estejam cadastrados antes da importação''</font>.
 
 
 
Na sequencia o sistema exibirá ao usuário a tela '''Produtos''' listando os itens do XML.
 
 
== RN03 - Frete ==
 
*Na tela '''Produtos''' a alíquota e base de ICMS de frete serão obrigatórios se existir valor de frete na NF e se no tipo de operação selecionada o frete incidir sobre ICMS.
 
*O valor do frete deverá sempre somar ao total da nota, independente de seu tipo (emitente, destinatário e etc).
 
 
== RN04 - Importando dados do XML ==
 
Quando o botão <Importar> for acionado na tela '''Produtos''', antes de preencher a tela da NF com os dados do XML o sistema deverá:
 
#Verificar se foi informada a data de entrada.
 
#Verificar se base e alíquota de ICMS do frete foram informados caso estejam como obrigatórios.
 
#Verificar se para todos os itens do grid foi informada a unidade de compra.
 
#Caso fornecedor não esteja cadastrado, perguntar se o usuário deseja cadastra-lo automaticamente (RN08).
 
#Se os produtos do XML não estiverem vinculados ao fornecedor em questão, perguntar se o usuário deseja vincular. Isto não é impeditivo para importar.
 
#Se para produtos que controlam série, todas as séries foram devidamente informadas.
 
#Se a unidade de compra informada para um ou mais itens não estiverem vinculadas aos mesmos, perguntar se o usuário deseja que o sistema faça a amarração automaticamente. Caso usuário não queira, abortar a importação.
 
 
 
Assim que a tela '''Produtos''' for fechada os dados de cabeçalho e itens da NF serão preenchidos com os dados do XML e ficarão habilitados para que o usuário os altere se desejar.
 
 
== RN05 - Chave de acesso da NFe ==
 
A chave de acesso de uma NF-e deverá ser uma sequência de 44 caracteres que são representados da seguinte forma:
 
{| class="wikitable"
 
|  || '''CÓDIGO DA UF''' || '''AAMM DA EMISSÃO''' || '''CNPJ DO EMITENTE''' || '''MODELO''' || '''SÉRIE''' || '''NÚMERO DA NF-E''' || '''FORMA DE EMISSÃO DA NF-E''' || '''CÓDIGO NUMÉRICO''' || '''DV (DÍGITO VERIFICADOR)'''
 
|-
 
| '''QUANTIDADE DE CARACTERES''' || 02 || 04 || 14 || 02 || 03 || 09 || 01 || 08 || 01
 
|-
 
|}
 
 
'''A chave de acesso informada pelo usuário deverá ser validada através do cálculo do dígito verificador conforme descrito abaixo:'''
 
O dígito verificador da chave de acesso da NF-e é baseado em um cálculo do módulo 11. O módulo 11 de um número é calculado multiplicando-se cada algarismo pela sequência de multiplicadores 2,3,4,5,6,7,8,9,2,3, ..., posicionados da direita para a esquerda. A somatória dos resultados das ponderações dos algarismos é dividida por 11 e o DV (dígito verificador) será a diferença entre o divisor (11) e o resto da divisão:
 
DV = 11 - (resto da divisão)
 
Quando o resto da divisão for 0 (zero) ou 1 (um), o DV deverá ser igual a 0 (zero).
 
 
 
Exemplo: consideremos que a chave de acesso tem a seguinte sequência de caracteres:
 
 
[[File:CalcChaveNFE.png | 700px]]
 
 
Somatória das ponderações = 644
 
 
Dividindo a somatória das ponderações por 11 teremos, 644 /11 = 58 restando 6.
 
 
Como o dígito verificador DV = 11 - (resto da divisão), portando 11 - 6 = 5
 
 
Neste caso o DV da chave de acesso da NF-e é igual a "5", valor este que deverá compor a chave de acesso totalizando a uma sequência de 44 caracteres.
 
 
 
Caso a chave informada pelo usuário não passe pelo calculo do dígito verificador, quando o botão <Download> for acionado a importação será abortada e a seguinte mensagem será exibida ao usuário: <font color=#008B00>''A chave de acesso informada não é válida''</font>.
 
 
== RN06 - Tratamento de produtos que controlam grade ==
 
Quando importando um XML, caso seja informado no grid um item que controle grade, será exibido na coluna '''GRADES''' um ícone que quando acionado exibirá ao usuário a tela '''Relação de grades''' que permitirá que informar as grades que entrarão com a nota. A tela utilizada para digitação das grades será a mesma tela utilizada na aba de itens da própria nota de entrada quando o item também controla grade. As regras e funcionalidades desta tela estão descritas na regra de negócio '''RN02''' do caso de uso [http://resulthweb.com/wikiJavaInterno/index.php/UC00003_-_Movimentacao_de_estoque#RN02_-_Produtos_que_controlam_grade Movimentação de estoque].
 
 
    <font face="Arial">
 
    Uma vez que um item que controla grade foi informado no grid o usuário deverá, obrigatoriamente, informar grades com quantidades e preços que correspondam aos dados contidos no XML.
 
 
Quando invocada a partir da tela '''Produtos''' na importação de um XML a tela '''Relação de grades''' terá, excepcionalmente, funcionalidades que se aplicam somente na importação de XML conforme descrito abaixo:
 
#Após o usuário acionar o botão [Adicionar nova grade] e selecionar na coluna '''DESCRIÇÃO''' uma determinada grade, o sistema preencherá automaticamente a coluna '''VLR. UNITÁRIO''' com o valor unitário do item em questão contido no XML e a desabilitará para edição.
 
#Caso no XML o item possua a tag ''vDesc'', o sistema preencherá automaticamente as colunas '''DESC %''' e '''DESC. VALOR''' com os valores equivalentes e desabilitará a edição das mesmas, a exemplo do valor unitário.
 
#O sistema só permitirá salvar os dados de grade digitados se a quantidade informada for coerente com a quantidade dos itens  no XML. Uma vez que o valor unitário e desconto serão buscados do próprio XML e que o usuário não poderá altera-los, estes dados não serão validados.
 
 
== RN07 - Integração com ordem de compra ==
 
 
== RN08 - Vinculando o fornecedor da nota aos produtos ==
 
Ao vincular o fornecedor do XML aos produtos, independente do produto/fornecedor já estar cadastrado ou se será cadastrado na importação, o sistema deverá incluir o fornecedor na lista de fornecedores do produto passando como “Cod. Item” o conteúdo da tag <cProd> </cProd> de cada item.
 
 
== RN09 - Download do XML ==
 
O processo de download do XML de uma NF-e através de sua chave de acesso acontecerá nas seguintes etapas:´
 
#O sistema verificará se o webservice NfeDownloadNF da SEFAZ está online. Se estiver, então  será feito o download do XML através de sua chave de acesso. Caso webservice não esteja disponível o próximo passo será executado.
 
#O sistema verificará se a página de [http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8= consulta completa de NF-e] está disponível. Se estiver, o XML da nota será buscado através da chave de acesso informada no campo “Chave” e do captcha informado pelo usuário em uma janela popup. Caso não site de consulta não esteja disponível ou a NF-e não seja encontrada na base nacional, será exibida ao usuário a seguinte mensagem: <font color=#008B00>''Os serviços de download de NF-e da SEFAZ estão temporariamente indisponíveis. Tente fazer a importação da NF-e fazendo o upload de seu arquivo XML ou aguarde alguns minutos tente novamente''</font>.
 
 
== Processando o XML ==
 
Quando o botão <Importar> da tela “Produtos” for acionado o arquivo XML será processado preenchendo na tela da NF os respectivos dados conforme segue abaixo.
 
 
=== Cabeçalho da nota ===
 
{| class="wikitable"
 
| '''NF DE ENTRADA (CABEÇALHO) || '''XML''' || '''OBSERVAÇÕES'''
 
|-
 
| Data de emissão || <dEmi> </dEmi> || 
 
|-
 
| Nº documento || <nNF> </nNF> ||
 
|-
 
| Série || <serie> </serie> ||
 
|-
 
| Fornecedor || <CNPJ> </CNPJ> || Através do CNPJ o sistema verificará se o fornecedor da NF-e está cadastrado e procederá conforme segue abaixo:
 
#Se o fornecedor já está cadastrado no sistema então seu código e nome serão preenchidos no cabeçalho da nota de entrada.
 
#Se o fornecedor não está cadastrado, será exibida ao usuário a seguinte  mensagem de confirmação: <font color=#008B00>''O fornecedor da NF-e não está cadastrado no sistema e portanto não será possível prosseguir com a importação. Deseja cadastra-lo agora?''</font> Caso usuário clique em <Não> na mensagem a importação será abortada. Caso usuário clique sem <Sim> o sistema procederá da seguinte maneira:
 
#*O cadastro de fornecedores será aberto em uma nova aba do navegador em modo de inclusão.
 
#*O tipo de pessoa será automaticamente preenchido com “Jurídica”.
 
#*O nome será preenchido com o conteúdo da tag <xNome> </xNome>.
 
#*O CNPJ será preenchido com o conteúdo da tag <CNPJ> </CNPJ>.
 
#*A inscrição estadual será preenchida com o conteúdo da tag <IE></IE>.
 
#*A inscrição municipal será preenchida com o conteúdo da tag <IM> </IM>.
 
#*O telefone será preenchido com o conteúdo da tag <fone> </fone>.
 
#*O endereço será automaticamente preenchido conforme segue abaixo:
 
{| class="wikitable"
 
| '''CAMPO || '''TAG'''
 
|-
 
| CEP || <CEP> </CEP>
 
|-
 
| País || <xPais> </xPais>
 
|-
 
| UF || <UF> </UF>
 
|-
 
| Endereço || <xLgr> </xLgr>
 
|-
 
| Nº || <nro> </nro>
 
|-
 
| Bairro || <xBairro> </xBairro>
 
|-
 
| Cidade || <xMun> </xMun>
 
|}
 
Para preencher o tipo do endereço (rua, avenida e etc) será verificado no conteúdo da tag <xLgr> </xLgr> se no início consta um tipo conhecido, exemplo: Rua Catete 999. Neste caso o trecho “Rua” seria removido e utilizado como tipo.
 
Caso na tag <xLgr> </xLgr> não seja identificado um tipo para o endereço, o tipo “Rua” será utilizado como padrão e todo conteúdo da tag será aproveitado como endereço.
 
|-
 
| Base do ICMS || <vBC> </vBC>
 
|-
 
| Total do ICMS || <ICMSTot> </ICMSTot>
 
|-
 
| Base ICMS de substituição || <vBCST> </vBCST>
 
|-
 
| Total ICMS de substituição || <vST> </vST>
 
|-
 
| Valor do frete || <vFrete> </vFrete>
 
|-
 
| Total do IPI || <vIPI> </vIPI>
 
|-
 
| Total do PIS || <vPIS> </vPIS>
 
|-
 
| Total do COFINS || <vCOFINS> </vCOFINS>
 
|-
 
| Total do ISS || <vISS> </vISS>
 
|-
 
| Total da nota || <vNF> </vNF>
 
|-
 
| Desconto || <vDesc> </vDesc>
 
|-
 
| Encargos não tributados || <vSeg> </vSeg> + <vOutro> </vOutro> || Este campo receberá a soma dos valores Seguro + Outro.
 
|}
 
 
 
=== Grid da tela '''Produtos (do XML)''' ===
 
{| class="wikitable"
 
| '''COLUNAS DO GRID''' || '''EQUIVALÊNCIA NO XML''' || '''OBSERVAÇÕES'''
 
|-
 
| CÓD. PROD. || || Caso seja encontrado já cadastrado um produto correspondente ao do XML, então o código dele (do sistema) será listado. Caso contrário, ficará em branco para que o usuário digite/pesquise um produto.
 
|-
 
| DESCRIÇÃO || || Se código informado no campo acima for referente a um produto cadastrado, sua descrição será listada.
 
|-
 
| GRADES || || Esta coluna será sempre visível no grid e quando um determinado produto já cadastrado no sistema controlar grade, deverá apresentar o ícone (grade). Quando este ícone for acionado o processo de informação das grades deverá ocorrer semelhante ao que acontece na digitação do item naprópria NF de entrada.
 
|-
 
| SÉRIES || || Esta coluna será sempre visível e quando um determinado produto já cadastrado no sistema controlar série, deverá apresentar o ícone (série). Quando este ícone for acionado o processo de informação das séries deverá ocorrer semelhante ao que acontece na digitação do item na própria NF de entrada.
 
|-
 
| CÓD. XML || <cProd> </cProd> || Código do produto no XML da nota.
 
|-
 
| DESCRIÇÃO XML || <xProd> </xProd> || Descrição do produto no XML da nota.
 
|-
 
| REFERÊNCIA/EAN || <cEAN> </cEAN> || Referência ou código de barras do item no XML da nota.
 
|-
 
| NCM || <NCM> </NCM> || Código NCM do item no XML da nota.
 
|-
 
| CFOP || <CFOP> </CFOP> || CFOP do item no XML.
 
|-
 
| UNIDADE DE COMPRA || || Nesta coluna do grid, para cada produto, será exibido um combobox para que seja seleciona a unidade de '''compra/entrada''' do mesmo. O combobox deverá exibir '''todas'''' as unidades cadastradas.
 
|-
 
| QTDE.|| <qCom> </qCom> || Quantidade do item no XML da nota.
 
|-
 
| VLR. UNITÁRIO || <vUnCom> </vUnCom> || Valor unitário do item no XML.
 
|-
 
| VLR. TOTAL || <vProd> </vProd> || Valor total do item no XML da nota.
 
|-
 
| CST || <CTS> </CST>  || O CST a ser exibido no grid será o resultado da concatenação das tags <orig> </orig> + <CST </CTS>. Estes campos se aplicam para as tags: '''<ICMS00>, <ICMS20>, <ICMS40>, <ICMS60> e <ICMS90>'''. Se o emissor da nf for do regime simples, ao invés de CST, o XML possuirá CSOSN. Este atributo esta na tag ICMSSN999 (ICMS Simples Nacional 999, onde 999 é o código CSOSN). Exemplo:
 
 
  <ICMSSN102>
 
    <orig>0</orig>
 
    <CSOSN>102</CSOSN>
 
  </ICMSSN102>
 
 
Nestes casos, é necessário fazer uma conversão, uma vez que a NF de entrada só trata CST. Para isto, use a tabela abaixo:
 
 
Obs: o default inicial do CST será 090
 
 
{| class="wikitable"
 
| '''CSOSN'''|| '''CST''' || '''CONDIÇÃO'''
 
|-
 
| 101 || 000 || Se base icms = 100%
 
|-
 
| 101 || 020 || Se base icms < 100%
 
|-
 
| 102 || 040 ||
 
|-
 
| 103 || 000 || Se aliq > 0 e base = 100
 
|-
 
| 103 || 020 || Se aliq > 0 e base > 0 a < 100
 
|-
 
| 103 || 040 || Se aliq = 0 e base = 0
 
|-
 
| 201 || 010 ||
 
|-
 
| 202 || 010 ||
 
|-
 
| 203 || 010 ||
 
|-
 
| 500 || 060 ||
 
|-
 
| 300 || 000 || Se aliq > 0 e base = 100
 
|-
 
| 300 || 020 || Se aliq > 0 e base > 0 a < 100
 
|-
 
| 300 || 040 || Se aliq = 0 e base = 0
 
|-
 
| 400 || 000 || Se aliq > 0 e base = 100
 
|-
 
| 400 || 020 || Se aliq > 0 e base > 0 a < 100
 
|-
 
| 400 || 040 || Se aliq = 0 e base = 0
 
|}
 
|-
 
| BASE ICMS || <vBC> </vBC> || Estes campos se aplicam para as tags: '''<ICMS00>, <ICMS20>, <ICMS40>, <ICMS60> e <ICMS90>'''.
 
|-
 
| ALÍQ. ICMS || <pICMS> </pICMS> || Estes campos se aplicam para as tags: '''<ICMS00>, <ICMS20>, <ICMS40>, <ICMS60> e <ICMS90>'''.
 
|-
 
| VALOR ICMS || <vICMS> </vICMS> || Estes campos se aplicam para as tags: '''<ICMS00>, <ICMS20>, <ICMS40>, <ICMS60> e <ICMS90>'''.
 
|-
 
| BASE ST || <vBCST> </vBCST> ||
 
|-
 
| ALÍQ. ST || <pICMSST> </pICMSST> ||
 
|-
 
| VALOR ST || <vICMSST> </vICMSST> ||
 
|-
 
| CST PIS || CST> </CST> || Aplica-se também para tag <PISST> </PISST>.
 
|-
 
| VLR. BASE PIS || <vBC> </vBC> ||
 
|-
 
| ALÍQ. PIS (%) || <pPIS> </pPIS> ||
 
|-
 
| VALOR PIS || <vPIS> </vPIS> ||
 
|-
 
| CST COFINS || <CST> </CST> || Aplica-se também para tag <COFINSST> </COFINSST>
 
|-
 
| VLR. BASE COFINS || <vBC> </vBC> ||
 
|-
 
| ALÍQ. COFINS (%) || <pCOFINS> </pCOFINS> ||
 
|-
 
| VALOR COFINS || vCOFINS> </vCOFINS> ||
 
|-
 
| ALÍQ. IPI (%) || <pIPI> </pIPI> ||
 
|-
 
| VALOR IPI || <vIPI> </vIPI> ||
 
|-
 
|}
 
 
=== Regras gerais ===
 
O sistema verificará se os produtos do XML já estão cadastrados da seguinte maneira:
 
#Nos produtos já cadastrados será verificado se em seus fornecedores (principal e secundário) o '''Cód. Item''' corresponde ao <cProd> </cProd> do XML.
 
#Nos produtos já cadastrados será verificado se o dado <cEAN> </cEAN> corresponde à referência ou referência de fabricante dos mesmos.
 
#Se para o produto do XML foi encontrado um correspondente cadastrado, o código do produto (cadastrado) será listado na coluna '''CÓD. PROD.''' do grid da tela '''Produtos'''. Caso contrário à coluna '''CÓD. PROD.''' do produto em questão ficará em branco no grid.
 
 
 
Usabilidade do grid da tela '''Produtos'''
 
#O usuário poderá, a qualquer momento, limpar o código dos produtos na coluna '''CÓD. PROD.'''
 
#O usuário poderá digitar manualmente o código de um produto já cadastrado e pressionar [Enter] ou [Tab] para valia-lo.
 
#Enquanto a coluna '''CÓD. PROD.''' de um determinado item estiver vazia, o usuário poderá pressionar [Enter] para abrir a pesquisa de produtos e selecionar o produto desejado.
 

Edição das 15h24min de 14 de março de 2014

Conteúdo

Objetivo

  • Definir regras e funcionalidades para movimentação de itens que controlam série.

Atores

  • Usuário

Pré-requisitos

  • Seguir orientações do documento de padrões de desenvolvimento.
  • Ter cadastrados produtos que controlam série.
  • Estar movimentando produtos que controlam série.


Resultado esperado

  • Movimentar estoque de produtos que controlam série.

Diagrama de classes

Series.png

Layouts sugeridos

Fluxo de eventos

Fluxos principais

Fluxo 1:

Fluxos alternativos

Fluxos de exceções

Fluxo 1:

Regras de negócio

RN01 - Campo para informar a chave da NFe

Ferramentas pessoais
Espaços nominais

Variantes
Visualizações
Ações
Navegação
Ferramentas