Mudanças entre as edições de "Integração com WMS da Próton"
(→Disponibilizar Motorista) |
(→Alterar Separação) |
||
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 57: | Linha 57: | ||
=== Alteração em Separações === | === Alteração em Separações === | ||
− | + | É permitido fazer alterações nas quantidades separadas até que seja emitida a NF de Pedido de Reposição. | |
− | + | ||
− | + | ||
<syntaxhighlight lang="SQL"> | <syntaxhighlight lang="SQL"> | ||
Linha 147: | Linha 145: | ||
A soma de CONTEM e QTDFAL nunca pode ultrapassar SEP_QTDSEP da view. | A soma de CONTEM e QTDFAL nunca pode ultrapassar SEP_QTDSEP da view. | ||
− | === | + | === Receber Fechamento do Romaneio === |
Como a Próton deve mandar o registro na TI_ROM: | Como a Próton deve mandar o registro na TI_ROM: | ||
Linha 168: | Linha 166: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === Alterar Separação === |
Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta. | Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta. | ||
Linha 181: | Linha 179: | ||
== Entrega com Televendas == | == Entrega com Televendas == | ||
− | Processo | + | === Processo === |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Observações: | + | * No Order, usuário registra um orçamento com tipo de entrega Loja Entrega Com Televendas; |
+ | * Próton executa função CRIA_SEPARACAO_FULL('T'); | ||
+ | * Próton lê separação na view TV_ESEP; | ||
+ | * Processo de WMS é realizado; | ||
+ | * Próton insere romaneio na tabela TI_ROM; | ||
+ | * Próton insere separação na tabela TI_SEP; | ||
+ | * Próton fecha romaneio na tabela TI_ROM quando todas as separações da carga foram incluídas; | ||
+ | * Middleware de tempos-em-tempos processa os romaneios da TI_ROM; | ||
+ | * Middleware de tempos-em-tempos processa as separações da TI_SEP; | ||
+ | * No CheckOut, usuário utiliza Impressão em Grupo para gerar uma nota completa da carga informada. | ||
+ | * Próton lê nota na view TV_EVEN; | ||
+ | * Processo de entrega pelo WMS é realizado. | ||
+ | |||
+ | Observações:<br/> | ||
Apesar de serem processos bem diferentes no Totall Commerce, não há diferença na integração para os tipos de entrega pela loja: | Apesar de serem processos bem diferentes no Totall Commerce, não há diferença na integração para os tipos de entrega pela loja: | ||
− | + | * Loja Entrega com Televendas; | |
− | + | * Venda Sob Encomenda com Televendas. | |
+ | |||
+ | === Criar Separações === | ||
− | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Disponibilizar Separações === | |
+ | |||
Condições que a Próton deve usar para obter as separações deste processo: | Condições que a Próton deve usar para obter as separações deste processo: | ||
+ | |||
+ | <syntaxhighlight lang="SQL"> | ||
SELECT * | SELECT * | ||
FROM TV_ESEP | FROM TV_ESEP | ||
Linha 210: | Linha 213: | ||
AND SEP_FLGEST = 'A' | AND SEP_FLGEST = 'A' | ||
AND SEP_TIPENT IN ('2','7') | AND SEP_TIPENT IN ('2','7') | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Disponibilizar Motoristas === | ||
− | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Receber Romaneio === | |
+ | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Receber Separação === | |
+ | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Receber Fechamento do Romaneio === | |
+ | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Alterar Separação === | |
+ | |||
Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta. | Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta. | ||
+ | |||
+ | <syntaxhighlight lang="SQL"> | ||
SELECT * | SELECT * | ||
FROM TV_ESEP | FROM TV_ESEP | ||
Linha 230: | Linha 241: | ||
AND SEP_FLGEST IN ('P','F') | AND SEP_FLGEST IN ('P','F') | ||
AND SEP_TIPENT IN ('2','7') | AND SEP_TIPENT IN ('2','7') | ||
+ | </syntaxhighlight> | ||
== Retira no Depósito == | == Retira no Depósito == | ||
− | Processo | + | === Processo === |
− | + | ||
− | + | * No Order, usuário registra um orçamento com tipo de entrega Retira no Depósito; | |
− | + | * No CheckOut, usuário resgata o orçamento e emite a Fatura; | |
− | + | * Próton executa função CRIA_SEPARACAO_FULL('T'); | |
− | + | * Próton lê separação na view TV_ESEP; | |
− | + | * Processo de WMS é realizado; | |
− | + | * Próton insere separação na tabela TI_SEP; | |
− | + | * Middleware de tempos-em-tempos processa as separações da TI_SEP; | |
+ | * No CheckOut, usuário utiliza Emissão de Nota Vinculada para gerar a Remessa da carga informada. | ||
+ | |||
+ | === Criar Separações === | ||
− | |||
Idem Entrega pela Loja. | Idem Entrega pela Loja. | ||
− | + | === Disponibilizar Separações === | |
+ | |||
Condições que a Próton deve usar para obter as separações deste processo: | Condições que a Próton deve usar para obter as separações deste processo: | ||
+ | |||
+ | <syntaxhighlight lang="SQL"> | ||
SELECT * | SELECT * | ||
FROM TV_ESEP | FROM TV_ESEP | ||
Linha 253: | Linha 270: | ||
AND SEP_FLGEST = 'A' | AND SEP_FLGEST = 'A' | ||
AND SEP_TIPENT = '3' | AND SEP_TIPENT = '3' | ||
+ | </syntaxhighlight> | ||
− | + | === Receber Separação === | |
− | Idem | + | |
+ | Idem Pedido de Reposição. | ||
+ | |||
+ | === Alterar Separação === | ||
+ | |||
+ | É permitido fazer alterações nas separações até a emissão da nota de romaneio. | ||
+ | |||
+ | <syntaxhighlight lang="SQL"> | ||
+ | SELECT * | ||
+ | FROM TV_ESEP | ||
+ | WHERE SEP_ORIGEM = 'V' | ||
+ | AND SEP_FLGEST IN ('P','F') | ||
+ | AND SEP_TIPENT = '3' | ||
+ | </syntaxhighlight> | ||
== Dados para Entrega == | == Dados para Entrega == | ||
− | As notas de Pedido de Reposição e Remessa deve ser consultada na TV_EVEN, juntamente com seus itens na TV_EIVE para obtenção dos produtos que deverão ser entregues. | + | As notas de Pedido de Reposição e Remessa deve ser consultada na TV_EVEN, juntamente com seus itens na TV_EIVE para obtenção dos produtos que deverão ser entregues.<br/> |
− | Bem como, endereço, caso seja necessário. | + | Bem como, endereço, caso seja necessário.<br/> |
− | É preciso distinguir essas notas, das demais notas que não devem ser entregues. | + | É preciso distinguir essas notas, das demais notas que não devem ser entregues.<br/> |
Abaixo maiores informações. | Abaixo maiores informações. | ||
− | + | === Pedido de Reposição === | |
Notas: | Notas: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | ||
from ( | from ( | ||
Linha 274: | Linha 306: | ||
) tab | ) tab | ||
group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | ||
+ | </syntaxhighlight> | ||
Itens: | Itens: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select ive.* | select ive.* | ||
from tv_eive ive | from tv_eive ive | ||
Linha 288: | Linha 322: | ||
and ipe.seqive = ive.sequen | and ipe.seqive = ive.sequen | ||
and ipe.numive = ive.numite) | and ipe.numive = ive.numite) | ||
+ | </syntaxhighlight> | ||
Observações: | Observações: | ||
− | + | * Usar tabelas internas somente para filtros. Seus valores podem não ter a correspondência exata do layout de integração. | |
− | + | * Os filtros de filial e data são obrigatórios por questão de desempenho. | |
− | + | === Entrega pela Loja === | |
Notas: | Notas: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | ||
from ( | from ( | ||
Linha 303: | Linha 339: | ||
) tab | ) tab | ||
group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | ||
+ | </syntaxhighlight> | ||
Romaneios: | Romaneios: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | select tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | ||
from ( | from ( | ||
Linha 312: | Linha 350: | ||
) tab | ) tab | ||
group by tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa | group by tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa | ||
− | + | </syntaxhighlight> | |
Itens: | Itens: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, | select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
Linha 335: | Linha 374: | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
rom.codfil, rom.sequen, rom.codext, rom.placas | rom.codfil, rom.sequen, rom.codext, rom.placas | ||
+ | </syntaxhighlight> | ||
− | + | === Entrega com Televendas === | |
Notas: | Notas: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | select tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | ||
from ( | from ( | ||
Linha 346: | Linha 387: | ||
) tab | ) tab | ||
group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | group by tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot | ||
+ | </syntaxhighlight> | ||
Romaneios: | Romaneios: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | select tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, sum(tab.vlrliq) as ven_vlrliq, count(*) as qtditens | ||
from ( | from ( | ||
Linha 355: | Linha 398: | ||
) tab | ) tab | ||
group by tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa | group by tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa | ||
− | + | </syntaxhighlight> | |
Itens: | Itens: | ||
+ | <syntaxhighlight lang="SQL"> | ||
select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, | select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
Linha 379: | Linha 423: | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
rom.codfil, rom.sequen, rom.codext, rom.placas | rom.codfil, rom.sequen, rom.codext, rom.placas | ||
+ | </syntaxhighlight> | ||
+ | === Retira no Depósito === | ||
− | + | <syntaxhighlight lang="SQL"> | |
select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq | select ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
Linha 399: | Linha 445: | ||
group by ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq | group by ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq | ||
/*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ | ||
+ | </syntaxhighlight> |
Edição atual tal como às 12h25min de 22 de novembro de 2016
Este artigo descreve a integração com o WMS da Próton.
Índice
Pedido de Reposição
Processo
- No Backoffice, usuário registra Pedido de Reposição;
- No Backoffice, supervisor autoriza o pedido;
- Próton executa função CriaSeparacaoReposicao;
- Próton lê separação na view TV_ESEP;
- Processo de separação pelo WMS é realizado;
- Próton insere separação na tabela TI_SEP;
- Middleware de tempos-em-tempos processa as separações da TI_SEP;
- No CheckOut, usuário emite NF de Pedido de Reposição baseado na separação;
- Próton lê nota na view TV_EVEN;
- Processo de entrega pelo WMS é realizado.
Observações:
Existe possibilidade do pedido ser cancelado ou desautorizado após já ter separações criadas. Neste caso, a função CriaSeparacaoReposicao irá cancelar as separações.
Ou seja, ao receber a separação na TI_SEP, sistema apresentará um erro no processamento do registro.
O usuário deverá desfazer o processo no WMS manualmente.
Sistema não permitirá o cancelamento de separações que já vieram pela TI_SEP, ou seja, que já estão separadas ou em falta.
Criar Separações
SELECT CriaSeparacaoReposicao(<Filial>, <Número de Dias>)
Parâmetros:
Filial: Filial onde foi registrado o pedido. Se mandar NULL vai processar todas as filiais.
Número de Dias: Número de dias pretéritos que serão considerados para encontrar pedidos. Se mandar NULL serão considerados 7 dias apenas.
Disponibilizar Separações
Condições que a Próton deve usar para obter as separações deste processo:
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'P' AND SEP_FLGEST = 'A'
Receber Separação
Como a Próton deve mandar o registro na TI_SEP:
- CODFIL -> Deve devolver o dado que puxou da view TV_ESEP no campo SEP_CODFIL;
- SEQUEN -> Deve devolver o dado que puxou da view TV_ESEP no campo SEP_SEQUEN;
- DATCRI -> Data e hora atuais;
- CONTEM -> Quantidade separada (pode ser menor ou igual a SEP_QTDSEP da view);
- QTDFAL -> Quantidade em falta (pode ser menor ou igual a SEP_QTDSEP da view).
Observações:
A soma de CONTEM e QTDFAL nunca pode ultrapassar SEP_QTDSEP da view.
Alteração em Separações
É permitido fazer alterações nas quantidades separadas até que seja emitida a NF de Pedido de Reposição.
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'P' AND SEP_FLGEST IN ('P','F')
Entrega pela Loja
Processo
- No Order, usuário registra um orçamento com tipo de entrega Loja Entrega Sem Televendas;
- No CheckOut, usuário resgata o orçamento e emite a Fatura;
- Próton executa função CRIA_SEPARACAO_FULL('T');
- Próton lê separação na view TV_ESEP;
- Processo de WMS é realizado;
- Próton insere romaneio na tabela TI_ROM;
- Próton insere separação na tabela TI_SEP;
- Próton fecha romaneio na tabela TI_ROM quando todas as separações da carga foram incluídas;
- Middleware de tempos-em-tempos processa os romaneios da TI_ROM;
- Middleware de tempos-em-tempos processa as separações da TI_SEP;
- No CheckOut, usuário utiliza Impressão em Grupo para gerar a Remessa da carga informada.
- Próton lê nota na view TV_EVEN;
- Processo de entrega pelo WMS é realizado.
Observações:
Apesar de serem processos bem diferentes no Totall Commerce, não há diferença na integração para os tipos de entrega pela loja:
- Loja Entrega sem Televendas;
- Entrega Futura;
- Venda Sob Encomenda sem Televendas.
Criar Separações
SELECT CRIA_SEPARACAO_FULL(<Processa Devoluções de Separação>)
Parâmetros:
Processa Devoluções de Separação: "T" ou "F". Enviar "T" se quiser que a procedure confira notas canceladas ou devolvidas para gerar separações com situação "Devolver". Essas separações já estavam "Separadas" e vinculadas a algum romaneio. De "Devolver", a situação da separação só pode ser alterada para "Cancelado".
Disponibilizar Separações
Condições que a Próton deve usar para obter as separações deste processo:
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'V' AND SEP_FLGEST = 'A' AND SEP_TIPENT IN ('2','5','7')
Disponibilizar Motoristas
Condições que a Próton deve usar para obter os dados de motorista:
SELECT * FROM TV_EPAR WHERE TIPCLI7 = 'T'
Receber Romaneio
Como a Próton deve mandar o registro na TI_ROM:
- CODFIL -> Filial do processo;
- CODEXT -> Identificador único da carga no sistema da Próton;
- DATCRI -> Data e hora atuais;
- FILMOT -> Utilizar FILCLI obtido na TV_EPAR;
- CODMOT -> Utilizar CODCLI obtido na TV_EPAR;
- PLACA -> Informar placa do veículo;
- FLGEST -> "A".
Receber Separação
Como a Próton deve mandar o registro na TI_SEP:
- CODFIL -> Deve devolver o dado que puxou da view TV_ESEP no campo SEP_CODFIL;
- SEQUEN -> Deve devolver o dado que puxou da view TV_ESEP no campo SEP_SEQUEN;
- DATCRI -> Data e hora atuais;
- CONTEM -> Quantidade separada (pode ser menor ou igual a SEP_QTDSEP da view);
- QTDFAL -> Quantidade em falta (pode ser menor ou igual a SEP_QTDSEP da view);
- ROM_CODEXT -> Identificador único da carga no sistema da Próton.
Observações:
A soma de CONTEM e QTDFAL nunca pode ultrapassar SEP_QTDSEP da view.
Receber Fechamento do Romaneio
Como a Próton deve mandar o registro na TI_ROM:
- CODFIL -> Filial do processo;
- CODEXT -> Identificador único da carga no sistema da Próton;
- DATCRI -> Data e hora atuais;
- FILMOT -> Informar mesmo FILCLI informado anteriormente;
- CODMOT -> Informar mesmo CODCLI informado anteriormente;
- PLACA -> Informar mesma placa do veículo informada anteriormente;
- FLGEST -> "F".
Observação:
Só mandar o fechamento do romaneio, depois de ter certeza de que todos os itens da separação foram processados.
SELECT COUNT(*) FROM TI_SEP WHERE STATUS = 0 AND ROM_CODEXT = <Identificador único da carga no sistema da Próton>
Alterar Separação
Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta.
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'V' AND SEP_FLGEST IN ('P','F')
Entrega com Televendas
Processo
- No Order, usuário registra um orçamento com tipo de entrega Loja Entrega Com Televendas;
- Próton executa função CRIA_SEPARACAO_FULL('T');
- Próton lê separação na view TV_ESEP;
- Processo de WMS é realizado;
- Próton insere romaneio na tabela TI_ROM;
- Próton insere separação na tabela TI_SEP;
- Próton fecha romaneio na tabela TI_ROM quando todas as separações da carga foram incluídas;
- Middleware de tempos-em-tempos processa os romaneios da TI_ROM;
- Middleware de tempos-em-tempos processa as separações da TI_SEP;
- No CheckOut, usuário utiliza Impressão em Grupo para gerar uma nota completa da carga informada.
- Próton lê nota na view TV_EVEN;
- Processo de entrega pelo WMS é realizado.
Observações:
Apesar de serem processos bem diferentes no Totall Commerce, não há diferença na integração para os tipos de entrega pela loja:
- Loja Entrega com Televendas;
- Venda Sob Encomenda com Televendas.
Criar Separações
Idem Entrega pela Loja.
Disponibilizar Separações
Condições que a Próton deve usar para obter as separações deste processo:
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'O' AND SEP_FLGEST = 'A' AND SEP_TIPENT IN ('2','7')
Disponibilizar Motoristas
Idem Entrega pela Loja.
Receber Romaneio
Idem Entrega pela Loja.
Receber Separação
Idem Entrega pela Loja.
Receber Fechamento do Romaneio
Idem Entrega pela Loja.
Alterar Separação
Antes que a carga esteja fechada, é possível realizar alterações nas quantidades separadas ou em falta.
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'O' AND SEP_FLGEST IN ('P','F') AND SEP_TIPENT IN ('2','7')
Retira no Depósito
Processo
- No Order, usuário registra um orçamento com tipo de entrega Retira no Depósito;
- No CheckOut, usuário resgata o orçamento e emite a Fatura;
- Próton executa função CRIA_SEPARACAO_FULL('T');
- Próton lê separação na view TV_ESEP;
- Processo de WMS é realizado;
- Próton insere separação na tabela TI_SEP;
- Middleware de tempos-em-tempos processa as separações da TI_SEP;
- No CheckOut, usuário utiliza Emissão de Nota Vinculada para gerar a Remessa da carga informada.
Criar Separações
Idem Entrega pela Loja.
Disponibilizar Separações
Condições que a Próton deve usar para obter as separações deste processo:
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'V' AND SEP_FLGEST = 'A' AND SEP_TIPENT = '3'
Receber Separação
Idem Pedido de Reposição.
Alterar Separação
É permitido fazer alterações nas separações até a emissão da nota de romaneio.
SELECT * FROM TV_ESEP WHERE SEP_ORIGEM = 'V' AND SEP_FLGEST IN ('P','F') AND SEP_TIPENT = '3'
Dados para Entrega
As notas de Pedido de Reposição e Remessa deve ser consultada na TV_EVEN, juntamente com seus itens na TV_EIVE para obtenção dos produtos que deverão ser entregues.
Bem como, endereço, caso seja necessário.
É preciso distinguir essas notas, das demais notas que não devem ser entregues.
Abaixo maiores informações.
Pedido de Reposição
Notas:
SELECT tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, SUM(tab.vlrliq) AS ven_vlrliq, COUNT(*) AS qtditens FROM ( <SELECT dos Itens> ) tab GROUP BY tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot
Itens:
SELECT ive.* FROM tv_eive ive WHERE 1=1 AND ive.codfil = <Filial> AND ive.ven_dathor >= <Filtro de Data> AND EXISTS (SELECT 1 AS ok FROM tt_ipe ipe INNER JOIN tt_ivo ivo ON ivo.filipe = ipe.codfil AND ivo.numipe = ipe.numped AND ivo.iteipe = ipe.numite WHERE ipe.filive = ive.codfil AND ipe.seqive = ive.sequen AND ipe.numive = ive.numite)
Observações:
- Usar tabelas internas somente para filtros. Seus valores podem não ter a correspondência exata do layout de integração.
- Os filtros de filial e data são obrigatórios por questão de desempenho.
Entrega pela Loja
Notas:
SELECT tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, SUM(tab.vlrliq) AS ven_vlrliq, COUNT(*) AS qtditens FROM ( <SELECT dos Itens> ) tab GROUP BY tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot
Romaneios:
SELECT tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, SUM(tab.vlrliq) AS ven_vlrliq, COUNT(*) AS qtditens FROM ( <SELECT dos Itens> ) tab GROUP BY tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa
Itens:
SELECT ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ rom.codfil AS rom_codfil, rom.sequen AS rom_sequen, rom.codext AS rom_codext, rom.placas AS rom_placa FROM tv_eive ive INNER JOIN tt_ive fat ON fat.codfil = ive.filori AND fat.sequen = ive.numori AND fat.numite = ive.iteori INNER JOIN tt_ivo ivo ON ivo.filive = fat.codfil AND ivo.seqive = fat.sequen AND ivo.numive = fat.numite INNER JOIN tt_rom rom ON rom.codfil = ivo.filrom AND rom.sequen = ivo.seqrom WHERE 1=1 AND ive.codfil = <Filial> AND ive.ven_dathor >= <Filtro de Data> GROUP BY ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ rom.codfil, rom.sequen, rom.codext, rom.placas
Entrega com Televendas
Notas:
SELECT tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot, SUM(tab.vlrliq) AS ven_vlrliq, COUNT(*) AS qtditens FROM ( <SELECT dos Itens> ) tab GROUP BY tab.codfil, tab.sequen, tab.numecf, tab.codser, tab.numnot
Romaneios:
SELECT tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa, SUM(tab.vlrliq) AS ven_vlrliq, COUNT(*) AS qtditens FROM ( <SELECT dos Itens> ) tab GROUP BY tab.rom_codfil, tab.rom_sequen, tab.rom_codext, tab.rom_placa
Itens:
SELECT ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ rom.codfil AS rom_codfil, rom.sequen AS rom_sequen, rom.codext AS rom_codext, rom.placas AS rom_placa FROM tv_eive ive INNER JOIN tt_ior ior ON ior.filive = ive.codfil AND ior.seqive = ive.sequen AND ior.numive = ive.numite INNER JOIN tt_ivo ivo ON ivo.filped = ior.codfil AND ivo.tipped = ior.tipped AND ivo.numped = ior.numped AND ivo.numite = ior.numite INNER JOIN tt_rom rom ON rom.codfil = ivo.filrom AND rom.sequen = ivo.seqrom WHERE 1=1 AND ive.codfil = <Filial> AND ive.ven_dathor >= <Filtro de Data> GROUP BY ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq, /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ rom.codfil, rom.sequen, rom.codext, rom.placas
Retira no Depósito
SELECT ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/ FROM tv_eive ive INNER JOIN tt_ive fat ON fat.codfil = ive.filori AND fat.sequen = ive.numori AND fat.numite = ive.iteori INNER JOIN tt_ivo ivo ON ivo.filive = fat.codfil AND ivo.seqive = fat.sequen AND ivo.numive = fat.numite INNER JOIN tt_ior ior ON ior.filive = fat.codfil AND ior.seqive = fat.sequen AND ior.numive = fat.numite WHERE 1=1 AND ior.tipent = '3' AND ive.codfil = <Filial> AND ive.ven_dathor >= <Filtro de Data> GROUP BY ive.codfil, ive.sequen, ive.numite, ive.numecf, ive.codser, ive.numnot, ive.vlrliq /*Incluir aqui qualquer coluna da TV_EIVE que se queira*/