Análise
| Análise | |
| Projeto 1701 | |
| Data da Análise: 02/05/2014 |
Projeto
Requisitos
Os requisitos para atender esse projeto são:
- Configuração que define regra de código fiscal não terá interface por enquanto.
- No Checkout, imprimir na NF-e o mesmo código para produtos com embalagens diferentes.
- No Checkout, disponibilizar para que se possa imprimir mesmo código para embalagens diferentes em CF.
Detalhamento
Para que se possa imprimir o mesmo código para embalagens diferentes criaremos um novo campo interno por grade chamado de "Código Fiscal".
Inicialmente, esse campo será alimentado na migração de acordo com o código exportado no SPED, que é a concatenação de FILMAT, CODMAT, CODCOR e CODTAM se repetindo por embalagem.
O Checkout receberá esse novo campo na carga para que seja sempre utilizado na impressão de NF-e e também será tratado para que se possa imprimi-lo no CF.
Escopo
Essas modificações precisam ser feitas em release, por isso, não tratam o problema totalmente.
Nela não trataremos:
- Exportação para SPED de código fiscal alternativo para Ebert.
- Log de modificação do código fiscal (Registro 0205 do SPED).
- Utilização em outros pontos da retaguarda (inventário, metadados e SINTEGRA).
Cenário
Esse projeto impacta somente os clientes que utilizam embalagem.
Configuração de Regra do Código Fiscal
Será criada uma configuração (por enquanto sem interface) para que se defina qual valor deve ser utilizado como código fiscal.
Inicialmente, as opções serão:
- Chave interna da grade, que é o exportado atualmente pelo SPED (TT_GRA.FILMAT + TT_GRA.CODMAT + "-" + TT_GRA.CODCOR + "-" + TT_GRA.CODTAM.
- Referência básica do produto (TT_PRO.REFBAS).
Criar Coluna de Configuração de Regra do Código Fiscal
Especificação para tarefa(s): 93176
Criar nova coluna na TT_CFG com as seguintes especificações:
| Coluna | Precisão | Null | Default | Descrição |
|---|---|---|---|---|
| REGRA_CODFIS | NUMBER(1) | NOT NULL | 1 | Regra para Código Fiscal (Regra Código Fiscal). |
Domínios:
| Coluna | Valor | Descrição |
|---|---|---|
| REGRA_CODFIS | 1 | Chave interna da grade |
| REGRA_CODFIS | 2 | Referência básica do produto |
Check-constraints: Não criar check-contraints para permitir inclusões posteriores de domínio sem alterar estrutura do banco.
Não criar coluna na TW_CFG porque não será feita interface de banco por enquanto.
Código Fiscal por Grade
Será criada uma coluna nova de código fiscal na grade que será utilizada em vários pontos do sistema.
Criar Coluna para Código Fiscal
Especificação para tarefa(s): 93158
Na TT_GRA, criar nova coluna para armazenar o código fiscal.
| Coluna | Precisão | Null | Default | Descrição |
|---|---|---|---|---|
| CODFIS | VARCHAR(60) | NOT NULL | -X- | Código Fiscal |
Tratar na migração para criar o código de acordo com regra estipulada na TT_CFG.REGRA_CODFIS.
Regra por Código Interno:
Se TT_CFG.REGRA_CODFIS = 1, utilizar formato que é exportado no SPED. Que é o código interno do produto, mas com o cuidado de se exportar mesmo código para diversas embalagens, como é feito na conversão de embalagem nas triggers da TT_IVE, TT_ICO e TT_LAN.
Exemplo da PAVIN@TTPG/clientes:
select ipr.refpro, sub.*, Cast(COALESCE(IPR.FILMAT, '')|| COALESCE(IPR.CODMAT, '')|| '-' || TRIM(COALESCE(TO_CHAR(IPR.CODCOR), '')) || '-' || TRIM(COALESCE(TO_CHAR(COALESCE(DSUB.CODSAL,SUB.CODITE)),'')) as varchar(21)) as CODSPED
from tv_ipr ipr inner join tt_sub sub on sub.codite = ipr.codtam inner join td_sub dsub on dsub.codtab = sub.codsub
where ipr.filmat = '001' and ipr.codmat = '23076' and ipr.codtam = 2
Regra por Referência Básica:
Se TT_CFG.REGRA_CODFIS = 2, utilizar TT_PRO.REFBAS como código fiscal.
Tratar na trigger da TT_GRA para na inclusão de um registro, gerar o código com a mesma regra utilizada na migração.
É importante inclui essa coluna nas views TV_IPR e TV_IPR_FAST.
Criar funcionalidade na TT_FUN chamada "CODFIS" para indicar criação da coluna em release.
Criar Coluna para Código Fiscal no Checkout
Especificação para tarefa(s): 93160
Na Grade, criar nova coluna para armazenar o código fiscal.
| Coluna | Precisão | Null | Default | Descrição |
|---|---|---|---|---|
| CODFIS | VARCHAR(60) | NOT NULL | -X- | Código Fiscal |
Checkout deve pegar essa informação da carga da PRO quando tiver funcionalidade na TT_FUN chamada "CODFIS". Para não ter que tratar isso em mais nenhum lugar, caso não exista a funcionalidade ainda, criar a coluna populando com a chavepro atual (coluna utilizada na NF-e atualmente).
Tratar Código Fiscal no Checkout
Será feito tratamento para Checkout passar a gerar NF-e com o código fiscal no lugar do código do produto.
Com isso, o campo passará a ficar disponível também no layout da nota fiscal impressa.
Será permitido mediante configuração, que o usuário escolha se deseja utilizar o código fiscal na impressão do CF.
Gerencialmente, a utilização desse código no CF não é muito indicada.
Fiscalmente, acredita-se que não seja muito relevante, já que de qualquer forma, será exportado no SPED o código fiscal.
Usar Código Fiscal na NF-e
Especificação para tarefa(s): 93161
Tratar na rotina que cria a NF-e para utilizar Código Fiscal importado na tabela de Grade.
Se for necessário, criar na tabela de item de venda o código.
Esse código não será materializado na TT_IVE.
Com a inclusão no layout da NF-e, espera-se poder usar essa campo na nota fiscal impressa.
Outras rotinas que imprimem NF-e (Devolução, Remessa, Reimpressão de CF em NF) devem funcionar da mesma forma.
Código Fiscal no Cupom
Especificação para tarefa(s): 93162
Para o CF deve-se incluir um item na configuração onde se define qual código será impresso no cupom.
Esse item deve ser "Código Fiscal (até 60 pos.)".
Sistema deve tratar novo item na impressão do cupom, e se for utilizado um código maior que o limite do CF sistema deve cortar.
Exportar no SPED
O SPED atualmente já exporta o mesmo código para produtos de embalagens diferentes. Apenas trataremos para pegar o código da nova coluna da mesma forma que o Checkout fará para imprimir as NF-e, garantindo assim a integridade nos dados.
Esse tratamento não terá efeito para o cliente, porque este não utiliza o SPED.
Exportar Código Fiscal no SPED
Especificação para tarefa(s): 93163
Tratar no SPED para onde ele faz a concatenação do FILMAT, CODMAT, CODCOR e CODTAM para montar o código do produto, ele simplesmente pegue o código fiscal da grade.
Tratar para que só utilize a nova coluna quando tiver funcionalidade na TT_FUN chamada "CODFIS".
Antes:
CASE WHEN EXISTS (SELECT 'OK' FROM TT_FUN WHERE NOMFUN = 'EXPCODVEND') THEN IPR.FILMAT||LPAD(TRIM(IPR.SEQUEN),10,'0') ELSE
Cast(COALESCE(IPR.FILMAT, '')|| COALESCE(IPR.CODMAT, '')|| '-' || TRIM(COALESCE(TO_CHAR(IPR.CODCOR), '')) || '-' || TRIM(COALESCE(TO_CHAR(IPR.CODTAM),'')) as varchar(21)) END AS PRO_CODIGO,
Depois:
CASE WHEN EXISTS (SELECT 'OK' FROM TT_FUN WHERE NOMFUN = 'EXPCODVEND') THEN IPR.FILMAT||LPAD(TRIM(IPR.SEQUEN),10,'0') ELSE IPR.CODFIS
END AS PRO_CODIGO,
Essa expressão é utilizada nas classes:
- TBombaQueryDAO
- TInventarioQueryDAO
- TMovimentacaoLMCQueryDAO
- TNFEmitidaQueryDAO
- TNFRecebidaQueryDAO
Exportar Código Fiscal
Nas rotinas de exportação, sistema deve tratar para exportar o novo código fiscal.
Desta forma, sistemas de parceiros poderão ter exatamente a coluna que exportamos no SPED e NF-e.
Mas como o código se repetirá por embalagem, vamos criar uma forma de distinguir as embalagens mandando essa informação também.
Tratar Código Fiscal e Embalagem nas Exportações
Especificação para tarefa(s): 93173
Tratar para exportar "Código Fiscal", "Filial da Grade", "Código da Grade", "Código da Divisão da Grade", "Código da Subdivisão da Grade", "Quantidade Vendida", "Código da Embalagem" e "Quantidade da Embalagem" nas views que exportam dados de notas e produtos.
São as seguintes view, com detalhamento do que deve ser feito:
- TV_EIVE - Itens de Documentos Emitidos
CODFIS => TT_GRA.CODFIS
FILMAT as "GRA_FILMAT" => TT_IVE.FILMAT
CODMAT as "GRA_CODMAT" => TT_IVE.CODMAT
CODCOR as "GRA_CODCOR" => TT_IVE.CODCOR
CODTAM as "GRA_CODTAM" => TT_IVE.CODTAM
QTDMOV => TT_IVE.QTDMOV
EMBORI => TT_IVE.EMBORI
EMBQTD => TT_IVE.EMBQTD
- TV_EIVE_FIS
Caso a chave deixe de ser FILMAT, CODMAT, CODCOR e CODTAM (ou EMBORI), precisa tratar no TotaliNfe para não popular mais FILMAT, CODMAT, CODCOR e CODTAM na TT_INF.
Na TT_INF, nu_qCom = Quantidade da embalagem e nu_qTrib = Quantidade unitária.
É necessário tratar na view para pegar a TT_GRA de acordo com a fórmula utilizada em TT_GRA.CODFIS.
Lembrando que, TT_INF.inf_ds_cprod terá o que o Checkout mandou como código para NF-e.
Ou seja, ele terá o CODFIS.
Exportar:
CODFIS => TT_GRA.CODFIS
FILMAT as "GRA_FILMAT" =>TT_GRA.FILMAT
CODMAT as "GRA_CODMAT" =>TT_GRA.CODMAT
CODCOR as "GRA_CODCOR" =>TT_GRA.CODCOR
Quando TT_INF.nu_qTrib <> TT_INF.nu_qCom
CODTAM as "GRA_CODTAM" => Pegar da TT_SUB de acordo com o fator de conversão. Se preciso, criar função STABLE que retorne a partir de uma grade, quantidade original, e quantidade de embalagem a embalagem.
QTDMOV => TT_INF.nu_qTrib
EMBORI => TT_GRA.CODTAM
EMBQTD => TT_INF.nu_qCom
Senão
CODTAM as "GRA_CODTAM" =>TT_GRA.CODTAM
QTDMOV => TT_INF.nu_qTrib
EMBORI => NULL
EMBQTD => NULL
- TV_EIVE_EXP
Apenas exporta a TV_EIVE.
- TV_EICO - Itens de Documentos Recebidos
CODFIS => TT_GRA.CODFIS
FILMAT as "GRA_FILMAT" => TT_ICO.FILMAT
CODMAT as "GRA_CODMAT" =>TT_ICO.CODMAT
CODCOR as "GRA_CODCOR" =>TT_ICO.CODCOR
CODTAM as "GRA_CODTAM" =>TT_ICO.CODTAM
QTDMOV =>TT_ICO.QTDMOV
EMBORI =>TT_ICO.EMBORI
EMBQTD =>TT_ICO.EMBQTD
- TV_EICO_EXP
Apenas exporta TV_EICO.
- TV_EICO_FIS
Fazer tratamento semelhante ao da TV_EIVEFIS
- TV_ELAN - Lançamentos avulsos
CODFIS => TT_GRA.CODFIS
FILMAT as "GRA_FILMAT" => TT_IVE.FILMAT
CODMAT as "GRA_CODMAT" => TT_IVE.CODMAT
CODCOR as "GRA_CODCOR" => TT_IVE.CODCOR
CODTAM as "GRA_CODTAM" => TT_IVE.CODTAM
QTDMOV => TT_IVE.QTDMOV
EMBORI => TT_IVE.EMBORI
EMBQTD => TT_IVE.EMBQTD
- TV_ELAN_EXP
Apenas exporta TV_ELAN.
- TV_EMOV - Movimentações de Estoque
CODFIS => TT_GRA.CODFIS
- TV_ESAL - Saldos
CODFIS => TT_GRA.CODFIS
CODCOR =>TT_GRA.CODCOR
CODTAM =>TT_GRA.CODTAM
- TV_EPRO - Produtos
CODFIS => TT_GRA.CODFIS
CODCOR =>TT_GRA.CODCOR
CODTAM =>TT_GRA.CODTAM
Documentar cada modificação das views de exportação na documentação.
T:\totalidocumentos\base_conhecimento\totali commerce\LayOut Integraçao_Exportaçao_Totali CheckOut_Banco a Banco.xls