Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
(Obrigatório)
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | Vendas |
Segmento Executor | Manufatura | ||
Projeto1 | MANDIS01 | IRM1 | MANDIS01- |
713 |
Requisito1 |
MANDIS01-810 / MANDIS01-811 | Subtarefa1 |
Chamado2 |
País | ( X) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
(Obrigatório)
Objetivo
O objetivo consiste em desenvolver Métodos/Webservices Logix Desenvolver Web Service para consulta de pedidos de Vendas no LOGIX com base no protocolo REST.
O Método ou Webservice Web Service irá tratar toda a regra de negócio porém não contempla interface. Ou seja, deverá ser chamado por algum aplicativo passar passando os parâmetros de entrada e receberá recebendo o retorno do processamento. A interface ficará sob responsabilidade do cliente.
(Obrigatório)
Definição da Regra de Negócio
Desenvolver funções 4GL para centralização do processo de consulta de pedidos externo no LogixBasicamente serão desenvolvidas duas funções 4gl, sendo uma API para trabalhar como Web Service e outra com as regras de negócios do produto.
A estrutura dos novos fontes seguirá a seguinte divisão:
VDP90422VDPR0003.4gl – Centralizador consulta, tomar como base as funções desenvolvidas para o WorkFlow de compras:
$/Logix/Fontes_Doc/Sustentacao/V12/V12/fluig/wf/WFSUP005/PROGRAM e o manual do Fluig: http://tdn.totvs.com/display/public/fluig/DEV+fluig
Funções externas:
· Método Fluig - Função que será chamada por processos desenvolvidos via WorkFlow Fluig. Deverá fazer o GET dos filtros que poderão ser passados pelo Fluig, são eles:
Empresa - CHAR(50)
Pedido - CHAR(1000)
Cliente - CHAR(1000)
Natureza de operação - CHAR(500)
Condição de pagamento - CHAR(500)
Carteira - CHAR(200)
Representante (Somente o primeiro ou todos?) - CHAR(400);
Situação do pedido - CHAR(50);
Data emissão pedido DE - DATE;
Data emissão pedido ATE - DATE;
Prazo de entrega DE - DATE;
Prazo de entrega ATE - DATE;
Transportadora - CHAR(500);
Campo livre - CHAR(5000);
Parâmetros:
-- Tipo de pesquisa - Indica quais dados do pedido serão carregados. Opções:
1 - Todos;
2 - Empresa e pedido;
3 - Empresa, pedido, cliente, natureza de operação, condição de pagamento, situação, transportadora, carteira, representante 1, data emissão pedido;
-- Paginação - Indica a quantidade de pedidos que serão carregados/retornados por execução; Caso não informado ou informado valor 0, serão carregados todos os pedidos;
-- Posição inicial paginação - Indica a partir de qual posição serão carregados os pedidos.
Funções internas:
· set() - Deverá fazer a carga dos parâmetros e filtro para a função vdp90423;
get() - Fazer o get das seguintes informações e retornar para o fluig:
Dados do pedido conforme o tipo de pequisa;
Status de execução;
Indicador status paginação; (F - Finalizado ; P - Pendente)
VDP90423.4gl – Controle de consulta de pedidos externos
Funções externas:
· inicializa_variáveis() - Inicializar todos os parâmetros que são recebidos pelas funções SET abaixo.
· função_set() - Criar função de SET para cada campo de filtro e parâmetros que serão enviados pelo vdp90422.
· função_get() - Criar funções de GET para os retornos que são esperados pelo VDP90422, conforme abaixo:
o Todos os dados do pedido, conforme tabelas em anexo;
o Status da paginação;
· processo_consultar_pedidos() - Será a função principal, executada pelo VDP90422. Dentro dela:
1) Criar um cursor dinâmico, com base nos filtros informados, buscando apenas empresa e pedido (utilizar DISTINCT) e ordenando por esses mesmos campos.
Funções internas:
· validação_tela() - Fará as chamadas das funções VDPR260.
· efetivar_tabelas_pedido() - Efetivar dados das tabelas quentes através das respectivas DML's
· consiste_pedido() - Executar o vdp20023 para consistir o pedido
· simular_faturamento() - Executar o vdp90046 para simular o faturamento do pedido (necessário ajustes por causa das msgs em tela)
VDPR260.4gl – Validações dos campos conforme é realizado hoje em tela (VDP20000)
Funções externas:
- carrega_parametros() - Fará carga dos parâmetros do LOG00086 e outros necessários durante a validação.
- valida_XXXX() - Cria uma função para cada campo que necessite de validação.
Observações: 1) Deverá receber todas as variáveis por parâmetro local;
2) Sempre retornar 3 parâmetros: status de execução, mensagem e o tipo de mensagem: E - Erro SQL / V - Validação / A - Alerta;
2) Revisar as mensagens se estão com linguagem clara do erro.
3) Adicionar nas mensagens a chave do cadastro. Ex.: Cliente XXXXX não cadastrado.
4) Deverá respeitar os parâmetros do LOG00086 para obrigar ou não o preenchimento dos campos.
Tabelas que serão previstas
Tabelas que não serão previstas
API para consulta de pedido de venda. Deve receber os parâmetros por REST, enviar para a função de consulta e retornar os dados para o requisitante.
Método: vdpr0003_pub_get_consultaPedidoVenda()
Parâmetros de entrada:
Parâmetro | Tipo | Definição (LIKE TAB. LOGIX ou fixo) | Observações |
tipo_pesquisa | PathParam (Obrigatório) | CHAR(30) | Informar "COMPLETO" para pesquisa de todas as tabelas; informar "CABECALHO" para retornar somente as informações da capa do pedido (tabela "pedidos"). |
paginacao | PathParam (Obrigatório) | SMALLINT | Informar a quantidade de pedidos que deseja receber por execução. Enviar 0 (zero) caso não utilize este recurso. Se enviar 0 a consulta será limitada em 50 pedidos por execução. |
posicao_inicial_paginacao | PathParam (Obrigatório) | SMALLINT | Informar a posição inicial para seleção dos registros de paginação. Enviar 1 (um) caso não utilize paginação. |
data_emissao_de | QueryString | pedidos.dat_emis_repres | Formato: 01/01/2001 |
data_emissao_ate | QueryString | pedidos.dat_emis_repres | Formato: 01/01/2001 |
prazo_entrega_de | QueryString | ped_itens.prz_entrega | Formato: 01/01/2001 |
prazo_entrega_ate | QueryString | ped_itens.prz_entrega | Formato: 01/01/2001 |
campo_sql_livre | QueryString | CHAR(5000) | Campo livre de SQL a ser utilizado na seleção principal. É possível informar diretamente um campo da tabela "pedidos".Ex: campo_sql_livre=pedidos.cod_consig='CLI_25' ou então um subselect. EX: campo_sql_livre=EXISTS (SELECT DISTINCT 1 FROM clientes WHERE clientes.cod_cliente = pedidos.cod_cliente AND clientes.cod_tip_cli = '02') |
cod_empresa | QueryString (array) | pedidos.cod_empresa | limitado a 50 linhas |
num_pedido | QueryString (array) | pedidos.num_pedido | limitado a 500 linhas |
cod_cliente | QueryString (array) | pedidos.cod_cliente | limitado a 100 linhas |
cod_nat_oper | QueryString (array) | pedidos.cod_nat_oper | limitado a 100 linhas |
cod_cnd_pgto | QueryString (array) | pedidos.cod_cnd_pgto | limitado a 50 linhas |
cod_tip_carteira | QueryString (array) | pedidos.cod_tip_carteira | limitado a 50 linhas |
cod_repres | QueryString (array) | pedidos.cod_repres | limitado a 100 linhas |
sit_pedido | QueryString (array) | pedidos.ies_sit_pedido | limitado a 20 linhas |
cod_transpor | QueryString (array) | pedidos.cod_transpor | limitado a 50 linhas |
Parâmetros de saída:
RECORD | DEFINIÇÃO VARIÁVEL | OBSERVAÇÃO | ||
status | SMALLINT | TRUE (processou) / FALSE (não processou) | ||
msg | CHAR(2000) | Mensagem de erro caso status = FALSE | ||
data | RECORD | |||
status_paginacao | char(40) | "PENDENTE" quando utiliza paginação e não retornou todos os registros solicitados; "FINALIZADO" se gerou todas as informações do pedidos independente da paginação. | ||
pedidos | RECORD ARRAY | Informações mestres do pedido | ||
cod_empresa | pedidos.cod_empresa | |||
num_pedido | pedidos.num_pedido | |||
cod_cliente | pedidos.cod_cliente | |||
pct_comissao | pedidos.pct_comissao | |||
num_pedido_repres | pedidos.num_pedido_repres | |||
dat_emis_repres | pedidos.dat_emis_repres | |||
cod_nat_oper | pedidos.cod_nat_oper | |||
cod_transpor | pedidos.cod_transpor | |||
cod_consig | pedidos.cod_consig | |||
ies_finalidade | pedidos.ies_finalidade | |||
ies_frete | pedidos.ies_frete | |||
ies_preco | pedidos.ies_preco | |||
cod_cnd_pgto | pedidos.cod_cnd_pgto | |||
pct_desc_financ | pedidos.pct_desc_financ | |||
ies_embal_padrao | pedidos.ies_embal_padrao | |||
ies_tip_entrega | pedidos.ies_tip_entrega | |||
ies_aceite | pedidos.ies_aceite | |||
ies_sit_pedido | pedidos.ies_sit_pedido | |||
dat_pedido | pedidos.dat_pedido | |||
num_pedido_cli | pedidos.num_pedido_cli | |||
pct_desc_adic | pedidos.pct_desc_adic | |||
num_list_preco | pedidos.num_list_preco | |||
cod_repres | pedidos.cod_repres | |||
cod_repres_adic | pedidos.cod_repres_adic | |||
dat_alt_sit | pedidos.dat_alt_sit | |||
dat_cancel | pedidos.dat_cancel | |||
cod_tip_venda | pedidos.cod_tip_venda | |||
cod_motivo_can | pedidos.cod_motivo_can | |||
dat_ult_fatur | pedidos.dat_ult_fatur | |||
cod_moeda | pedidos.cod_moeda | |||
ies_comissao | pedidos.ies_comissao | |||
pct_frete | pedidos.pct_frete | |||
cod_tip_carteira | pedidos.cod_tip_carteira | |||
num_versao_lista | pedidos.num_versao_lista | |||
cod_local_estoq | pedidos.cod_local_estoq | |||
end_entrega | RECORD ARRAY | endereço de entrega | ||
cod_empresa | LIKE ped_end_ent.cod_empresa | |||
num_pedido | LIKE ped_end_ent.num_pedido | |||
end_entrega | LIKE ped_end_ent.end_entrega | |||
den_bairro | LIKE ped_end_ent.den_bairro | |||
cod_cidade | LIKE ped_end_ent.cod_cidade | |||
cod_cep | LIKE ped_end_ent.cod_cep | |||
num_cgc | LIKE ped_end_ent.num_cgc | |||
ins_estadual | LIKE ped_end_ent.ins_estadual | |||
num_sequencia | LIKE ped_end_ent.num_sequencia | |||
nom_cliente_end_ent | LIKE ped_info_compl.parametro_texto | |||
observacao | RECORD ARRAY | observações | ||
cod_empresa | LIKE ped_observacao.cod_empresa | |||
num_pedido | LIKE ped_observacao.num_pedido | |||
tex_observ_1 | LIKE ped_observacao.tex_observ_1 | |||
tex_observ_2 | LIKE ped_observacao.tex_observ_2 | |||
comissao | RECORD ARRAY | comissões mestres | ||
cod_empresa | LIKE pedido_comis.cod_empresa | |||
num_pedido | LIKE pedido_comis.num_pedido | |||
pct_comissao_2 | LIKE pedido_comis.pct_comissao_2 | |||
cod_repres_3 | LIKE pedido_comis.cod_repres_3 | |||
pct_comissao_3 | LIKE pedido_comis.pct_comissao_3 | |||
proc_referenciado | RECORD ARRAY | processo referenciado | ||
empresa | LIKE ped_proc_refer.empresa | |||
pedido | LIKE ped_proc_refer.pedido | |||
tributo | LIKE ped_proc_refer.tributo | |||
proc_referenciado | LIKE ped_proc_refer.proc_referenciado | |||
nf_referencia | RECORD ARRAY | notas fiscais de referência | ||
empresa | LIKE ped_nf_referencia.empresa | |||
pedido | LIKE ped_nf_referencia.pedido | |||
nota_fiscal | LIKE ped_nf_referencia.nota_fiscal | |||
serie_nota_fiscal | LIKE ped_nf_referencia.serie_nota_fiscal | |||
subser_nota_fiscal | LIKE ped_nf_referencia.subser_nota_fiscal | |||
espc_nota_fiscal | LIKE ped_nf_referencia.espc_nota_fiscal | |||
dat_emissao | LIKE ped_nf_referencia.dat_emissao | |||
modelo_nota_fiscal | LIKE ped_nf_referencia.modelo_nota_fiscal | |||
emitente | LIKE ped_nf_referencia.emitente | |||
chave_acesso | LIKE ped_nf_referencia.chave_acesso | |||
tip_refer | LIKE ped_nf_referencia.tip_refer | |||
end_retirada | RECORD ARRAY | endereço de retirada | ||
empresa | LIKE ped_end_retirada.empresa | |||
pedido | LIKE ped_end_retirada.pedido | |||
razao_social_retir | LIKE ped_end_retirada.razao_social_retir | |||
endereco_retirada | LIKE ped_end_retirada.endereco_retirada | |||
bairro_retirada | LIKE ped_end_retirada.bairro_retirada | |||
cidade_retirada | LIKE ped_end_retirada.cidade_retirada | |||
cep_retirada | LIKE ped_end_retirada.cep_retirada | |||
cnpj_retirada | LIKE ped_end_retirada.cnpj_retirada | |||
inscr_est_retirada | LIKE ped_end_retirada.inscr_est_retirada | |||
telefone_retirada | LIKE ped_end_retirada.telefone_retirada | |||
seq_endereco_retirada | LIKE ped_end_retirada.seq_endereco_retirada | |||
consignat_adic | RECORD ARRAY | consignatários adicionais | ||
empresa | LIKE ped_consg_adic.empresa | |||
pedido | LIKE ped_consg_adic.pedido | |||
seq_consignatario | LIKE ped_consg_adic.seq_consignatario | |||
consignatario | LIKE ped_consg_adic.consignatario | |||
tip_frete | LIKE ped_consg_adic.tip_frete | |||
vendor | RECORD ARRAY | Taxas Vendor | ||
cod_empresa | LIKE vendor_pedido.cod_empresa | |||
num_pedido | LIKE vendor_pedido.num_pedido | |||
pct_taxa_negoc | LIKE vendor_pedido.pct_taxa_negoc | |||
ies_cnd_vendor | LIKE vendor_pedido.ies_cnd_vendor | |||
dat_cnd_vendor | LIKE vendor_pedido.dat_cnd_vendor | |||
cliente_intermediario | RECORD ARRAY | Cliente intermediário | ||
cod_empresa | LIKE ped_item_nat.cod_empresa | |||
num_pedido | LIKE ped_item_nat.num_pedido | |||
cod_cliente | LIKE ped_item_nat.cod_cliente | |||
cod_nat_oper | LIKE ped_item_nat.cod_nat_oper | |||
cod_cnd_pgto | LIKE ped_item_nat.cod_cnd_pgto | |||
end_entrega_interm | RECORD ARRAY | Endereço de entrega do cliente intermediário | ||
empresa | LIKE vdp_end_entga_intm.empresa | |||
pedido | LIKE vdp_end_entga_intm.pedido | |||
sequencia | LIKE vdp_end_entga_intm.sequencia | |||
nom_cliente | LIKE vdp_end_entga_intm.nom_cliente | |||
endereco | LIKE vdp_end_entga_intm.endereco | |||
bairro | LIKE vdp_end_entga_intm.bairro | |||
cidade | LIKE vdp_end_entga_intm.cidade | |||
cep | LIKE vdp_end_entga_intm.cep | |||
cnpj_cpf | LIKE vdp_end_entga_intm.cnpj_cpf | |||
inscricao_estadual | LIKE vdp_end_entga_intm.inscricao_estadual | |||
embarque | RECORD ARRAY | embarque | ||
empresa | LIKE ped_info_compl.empresa | |||
pedido | LIKE ped_info_compl.pedido | |||
mercado | LIKE ped_info_compl.parametro_texto | |||
local_embarque | LIKE ped_info_compl.parametro_texto | |||
modo_embarque | LIKE ped_info_compl.parametro_texto | |||
dat_hor_embarque | LIKE ped_info_compl.parametro_dat | |||
cidade_embarque | LIKE ped_info_compl.parametro_texto | |||
local_despacho | LIKE ped_info_compl.parametro_texto | |||
local_desembarque | LIKE ped_info_compl.parametro_texto | |||
esocial | RECORD ARRAY | Esocial | ||
empresa | LIKE ped_info_compl.empresa | |||
pedido | LIKE ped_info_compl.pedido | |||
numero_cno_esocial | LIKE ped_info_compl.parametro_val | |||
cnpj_cpf_subempreiteiro | LIKE ped_info_compl.parametro_texto | |||
complemento_pedido | RECORD ARRAY | Complementos do pedido | ||
empresa | LIKE ped_compl_pedido.empresa | |||
pedido | LIKE ped_compl_pedido.pedido | |||
dat_hor_inclusao | LIKE ped_compl_pedido.dat_hor_inclusao | |||
usuario_inclusao | LIKE ped_compl_pedido.usuario_inclusao | |||
forma_pagto | LIKE ped_compl_pedido.forma_pagto | |||
tip_desc | LIKE ped_compl_pedido.tip_desc | |||
processo_export | LIKE ped_compl_pedido.processo_export | |||
info_nf_e | RECORD ARRAY | informações para Nfe | ||
empresa | LIKE ped_info_nf_e.empresa | |||
pedido | LIKE ped_info_nf_e.pedido | |||
modalidade_frete_nfe | LIKE ped_info_nf_e.modalidade_frete_nfe | |||
inf_adic_fisco | LIKE ped_info_nf_e.inf_adic_fisco | |||
dat_hor_saida | LIKE ped_info_nf_e.dat_hor_saida | |||
inf_complementar | RECORD ARRAY | informações adicionais | ||
empresa | LIKE ped_inf_com_mestre.empresa | |||
pedido | LIKE ped_inf_com_mestre.pedido | |||
usuario | LIKE ped_inf_com_mestre.usuario | |||
pedido_pallet | LIKE ped_inf_com_mestre.pedido_pallet | |||
pct_tolera_minima | LIKE ped_inf_com_mestre.pct_tolera_minima | |||
pct_tolera_maxima | LIKE ped_inf_com_mestre.pct_tolera_maxima | |||
dat_min_fat | LIKE ped_inf_com_mestre.dat_min_fat | |||
dat_inclusao | LIKE ped_inf_com_mestre.dat_inclusao | |||
hor_inclusao | LIKE ped_inf_com_mestre.hor_inclusao | |||
data_alteracao | LIKE ped_inf_com_mestre.data_alteracao | |||
nota_empenho | LIKE ped_inf_com_mestre.nota_empenho | |||
contrato_compra | LIKE ped_inf_com_mestre.contrato_compra | |||
regra_cotacao | LIKE ped_inf_com_mestre.regra_cotacao | |||
val_cotacao_fixa | LIKE ped_inf_com_mestre.val_cotacao_fixa | |||
data_vigencia | LIKE ped_inf_com_mestre.data_vigencia | |||
desconto_cascata | RECORD ARRAY | descontos em cascata do pedido e dos itens. Para o desconto de pedido a sequencia é igual a 0 | ||
cod_empresa | LIKE ped_itens_desc.cod_empresa | |||
num_pedido | LIKE ped_itens_desc.num_pedido | |||
num_sequencia | LIKE ped_itens_desc.num_sequencia | |||
pct_desc_1 | LIKE ped_itens_desc.pct_desc_1 | |||
pct_desc_2 | LIKE ped_itens_desc.pct_desc_2 | |||
pct_desc_3 | LIKE ped_itens_desc.pct_desc_3 | |||
pct_desc_4 | LIKE ped_itens_desc.pct_desc_4 | |||
pct_desc_5 | LIKE ped_itens_desc.pct_desc_5 | |||
pct_desc_6 | LIKE ped_itens_desc.pct_desc_6 | |||
pct_desc_7 | LIKE ped_itens_desc.pct_desc_7 | |||
pct_desc_8 | LIKE ped_itens_desc.pct_desc_8 | |||
pct_desc_9 | LIKE ped_itens_desc.pct_desc_9 | |||
pct_desc_10 | LIKE ped_itens_desc.pct_desc_10 | |||
itens_bonificacao | RECORD ARRAY | itens de bonificação | ||
cod_empresa | LIKE ped_itens_bnf.cod_empresa | |||
num_pedido | LIKE ped_itens_bnf.num_pedido | |||
num_sequencia | LIKE ped_itens_bnf.num_sequencia | |||
cod_item | LIKE ped_itens_bnf.cod_item | |||
pct_desc_adic | LIKE ped_itens_bnf.pct_desc_adic | |||
pre_unit | LIKE ped_itens_bnf.pre_unit | |||
qtd_pecas_solic | LIKE ped_itens_bnf.qtd_pecas_solic | |||
qtd_pecas_atend | LIKE ped_itens_bnf.qtd_pecas_atend | |||
qtd_pecas_cancel | LIKE ped_itens_bnf.qtd_pecas_cancel | |||
qtd_pecas_reserv | LIKE ped_itens_bnf.qtd_pecas_reserv | |||
prz_entrega | LIKE ped_itens_bnf.prz_entrega | |||
qtd_pecas_romaneio | LIKE ped_itens_bnf.qtd_pecas_romaneio | |||
pct_desc_bruto | LIKE ped_itens_bnf.pct_desc_bruto | |||
itens_texto | RECORD ARRAY | textos do pedido e dos itens. Para o texto do pedido a sequencia é igual a 0 | ||
cod_empresa | LIKE ped_itens_texto.cod_empresa | |||
num_pedido | LIKE ped_itens_texto.num_pedido | |||
num_sequencia | LIKE ped_itens_texto.num_sequencia | |||
den_texto_1 | LIKE ped_itens_texto.den_texto_1 | |||
den_texto_2 | LIKE ped_itens_texto.den_texto_2 | |||
den_texto_3 | LIKE ped_itens_texto.den_texto_3 | |||
den_texto_4 | LIKE ped_itens_texto.den_texto_4 | |||
den_texto_5 | LIKE ped_itens_texto.den_texto_5 | |||
itens | RECORD ARRAY | itens normais | ||
cod_empresa | LIKE ped_itens.cod_empresa | |||
num_pedido | LIKE ped_itens.num_pedido | |||
num_sequencia | LIKE ped_itens.num_sequencia | |||
cod_item | LIKE ped_itens.cod_item | |||
pct_desc_adic | LIKE ped_itens.pct_desc_adic | |||
pre_unit | LIKE ped_itens.pre_unit | |||
qtd_pecas_solic | LIKE ped_itens.qtd_pecas_solic | |||
qtd_pecas_atend | LIKE ped_itens.qtd_pecas_atend | |||
qtd_pecas_cancel | LIKE ped_itens.qtd_pecas_cancel | |||
qtd_pecas_reserv | LIKE ped_itens.qtd_pecas_reserv | |||
prz_entrega | LIKE ped_itens.prz_entrega | |||
val_desc_com_unit | LIKE ped_itens.val_desc_com_unit | |||
val_frete_unit | LIKE ped_itens.val_frete_unit | |||
val_seguro_unit | LIKE ped_itens.val_seguro_unit | |||
qtd_pecas_romaneio | LIKE ped_itens.qtd_pecas_romaneio | |||
pct_desc_bruto | LIKE ped_itens.pct_desc_bruto | |||
itens_aen | RECORD ARRAY | AEN do itens normais | ||
empresa | LIKE ped_aen_item_ped.empresa | |||
pedido | LIKE ped_aen_item_ped.pedido | |||
sequencia | LIKE ped_aen_item_ped.sequencia | |||
linha_produto | LIKE ped_aen_item_ped.linha_produto | |||
linha_receita | LIKE ped_aen_item_ped.linha_receita | |||
segmto_mercado | LIKE ped_aen_item_ped.segmto_mercado | |||
classe_uso | LIKE ped_aen_item_ped.classe_uso | |||
itens_nat_oper_refer | RECORD ARRAY | natureza de operação de referencia dos itens | ||
cod_empresa | LIKE ped_item_nat.cod_empresa | |||
num_pedido | LIKE ped_item_nat.num_pedido | |||
num_sequencia | LIKE ped_item_nat.num_sequencia | |||
ies_tipo | LIKE ped_item_nat.ies_tipo | |||
cod_nat_oper | LIKE ped_item_nat.cod_nat_oper | |||
itens_remessa | RECORD ARRAY | itens de remessa | ||
cod_empresa | LIKE ped_itens_rem.cod_empresa | |||
num_pedido | LIKE ped_itens_rem.num_pedido | |||
num_sequencia | LIKE ped_itens_rem.num_sequencia | |||
dat_emis_nf_usina | LIKE ped_itens_rem.dat_emis_nf_usina | |||
dat_retorno_prev | LIKE ped_itens_rem.dat_retorno_prev | |||
cod_motivo_remessa | LIKE ped_itens_rem.cod_motivo_remessa | |||
val_estoque | LIKE ped_itens_rem.val_estoque | |||
cod_area_negocio | LIKE ped_itens_rem.cod_area_negocio | |||
cod_lin_negocio | LIKE ped_itens_rem.cod_lin_negocio | |||
num_conta | LIKE ped_itens_rem.num_conta | |||
tex_observ | LIKE ped_itens_rem.tex_observ | |||
num_pedido_compra | LIKE ped_itens_rem.num_pedido_compra | |||
aen_remessa | LIKE ped_inf_com_item.aen_remessa | |||
xped_nitemped | RECORD ARRAY | Xped e Nitemped do item para Nfe | ||
empresa | LIKE ped_seq_ped_cliente.empresa | |||
pedido | LIKE ped_seq_ped_cliente.pedido | |||
seq_item_ped | LIKE ped_seq_ped_cliente.seq_item_ped | |||
xped | LIKE ped_seq_ped_cliente.xped | |||
nitemped | LIKE ped_seq_ped_cliente.nitemped | |||
itens_cancel | RECORD ARRAY | informações de cancelamento dos itens | ||
cod_empresa | LIKE ped_itens_cancel.cod_empresa | |||
num_pedido | LIKE ped_itens_cancel.num_pedido | |||
num_sequencia | LIKE ped_itens_cancel.num_sequencia | |||
cod_item | LIKE ped_itens_cancel.cod_item | |||
dat_cancel | LIKE ped_itens_cancel.dat_cancel | |||
cod_motivo_can | LIKE ped_itens_cancel.cod_motivo_can | |||
qtd_pecas_cancel | LIKE ped_itens_cancel.qtd_pecas_cancel | |||
itens_grade | RECORD ARRAY | grades | ||
cod_empresa | LIKE ped_itens_grade.cod_empresa | |||
num_pedido | LIKE ped_itens_grade.num_pedido | |||
num_sequencia | LIKE ped_itens_grade.num_sequencia | |||
cod_item | LIKE ped_itens_grade.cod_item | |||
cod_grade_1 | LIKE ped_itens_grade.cod_grade_1 | |||
cod_grade_2 | LIKE ped_itens_grade.cod_grade_2 | |||
cod_grade_3 | LIKE ped_itens_grade.cod_grade_3 | |||
cod_grade_4 | LIKE ped_itens_grade.cod_grade_4 | |||
cod_grade_5 | LIKE ped_itens_grade.cod_grade_5 | |||
qtd_pecas_solic | LIKE ped_itens_grade.qtd_pecas_solic | |||
qtd_pecas_atend | LIKE ped_itens_grade.qtd_pecas_atend | |||
qtd_pecas_cancel | LIKE ped_itens_grade.qtd_pecas_cancel | |||
qtd_pecas_reserv | LIKE ped_itens_grade.qtd_pecas_reserv | |||
qtd_pecas_romaneio | LIKE ped_itens_grade.qtd_pecas_romaneio | |||
itens_prazo | RECORD ARRAY | prazo de entrega das grades | ||
empresa | LIKE ped_item_prazo.empresa | |||
pedido | LIKE ped_item_prazo.pedido | |||
sequencia_item | LIKE ped_item_prazo.sequencia_item | |||
item | LIKE ped_item_prazo.item | |||
prazo_entrega | LIKE ped_item_prazo.prazo_entrega | |||
grade_1 | LIKE ped_item_prazo.grade_1 | |||
grade_2 | LIKE ped_item_prazo.grade_2 | |||
grade_3 | LIKE ped_item_prazo.grade_3 | |||
grade_4 | LIKE ped_item_prazo.grade_4 | |||
grade_5 | LIKE ped_item_prazo.grade_5 | |||
qtd_pc_solicitada | LIKE ped_item_prazo.qtd_pc_solicitada | |||
qtd_pc_cancelada | LIKE ped_item_prazo.qtd_pc_cancelada | |||
itens_comissao | RECORD ARRAY | comissão por item | ||
empresa | LIKE ped_comissao_item.empresa | |||
pedido | LIKE ped_comissao_item.pedido | |||
seq_item_pedido | LIKE ped_comissao_item.seq_item_pedido | |||
representante | LIKE ped_comissao_item.representante | |||
seq_representante | LIKE ped_comissao_item.seq_representante | |||
pct_comissao | LIKE ped_comissao_item.pct_comissao | |||
itens_exportacao | RECORD ARRAY | informações de exportação dos itens | ||
empresa | LIKE ped_exp_item.empresa | |||
pedido | LIKE ped_exp_item.pedido | |||
seq_item_ped | LIKE ped_exp_item.seq_item_ped | |||
seq_registro | LIKE ped_exp_item.seq_registro | |||
processo_export | LIKE ped_exp_item.processo_export | |||
num_reg_export | LIKE ped_exp_item.num_reg_export | |||
dat_reg_export | LIKE ped_exp_item.dat_reg_export | |||
num_decl_dspc_adua | LIKE ped_exp_item.num_decl_dspc_adua | |||
dat_decl_dspc_adua | LIKE ped_exp_item.dat_decl_dspc_adua | |||
chave_nfe_export | LIKE ped_exp_item.chave_nfe_export | |||
qtd_export_item | LIKE ped_exp_item.qtd_export_item |
VDP90423.4gl – Consulta de pedidos externos.
1) Criar função para pesquisa que será executada pela API vdpr0003 ou alguma outra função que venha a ser desenvolvida futuramente.Estrutura da função:
--> Criar um cursor dinâmico, com base nos filtros informados, buscando apenas os dados da tabela "pedidos" (utilizar DISTINCT) e ordenando pelos campos empresa e pedido.
--> Dentro do FOREACH: adicionar a lógica de paginação; inserir os pedidos em uma temp (estrutura da temp: empresa e pedido) e armazenar os dados da tabela "pedidos" no array para posterior retorno.
–> Se a pesquisa for do tipo "COMPLETA", criar novo cursor na temp para percorrer pelas empresas encontradas. Para cada empresa carregar os parâmetros e as validações de tabela utilizada. Dentro desse cursor carregar os demais dados das tabelas auxiliares, criando cursores relacionando a tabela com a temp (conforme parametrização);
--> Realizar FREE de todos os cursores após uso.
--> Retornar Status de execução e Mensagem (erro/validação,etc) para a função chamadora;
Funções externas:
1) inicializa_variáveis() - Inicializar todos os parâmetros que são recebidos.
2) função_set() - Criar função de SET para cada campo de filtro e parâmetros que serão enviados pela função chamadora.
3) função_get() - Criar funções de GET para os seguintes retornos:
o Para cada campo/tabela de pedidos prevista na função
o Status da paginação: "PENDENTE" quando utiliza paginação e não retornou todos os registros solicitados; "FINALIZADO" se conseguiu retornar todos os pedidos daquele filtro.
Obs.: Para desenvolvimento das API com protocolo REST seguir o padrão estabelecido em: http://tdn.totvs.com.br/display/public/FRAMJOI/LGX+-+Desenvolvimento+de+API
Conceitos que não serão previstos:
--> Integração com módulo de fluxo de caixa;
--> Conceito de Kit;
--> Integração com módulo de assistência técnica;
--> Cota de representante (Parâmetro "controla_cota");
--> Previsão de produção;
Tabelas previstas
Tabela | Descrição |
ped_aen_item_ped | AEN por item |
ped_comissao_item | Comissão de representante por item |
ped_compl_pedido | Complementos do pedido |
ped_consg_adic | Consignatários adicionais |
ped_end_ent | endereço entrega pedido |
ped_end_retirada | Endereço de retirada |
ped_exp_item | Dados de exportação do item |
ped_inf_com_item | Complemento do item |
ped_inf_com_mestre | Complemento mestre |
ped_info_compl | informações complementares |
ped_info_nf_e | ped_info_nf_e |
ped_item_nat | natureza oper item |
ped_itens | Itens do pedido |
ped_itens_bnf | itens de bonificaçao |
ped_itens_desc | descontos de pedido |
ped_itens_grade | itens de grade |
ped_itens_rem | itens de remessa |
ped_itens_texto | texto itens pedido |
ped_nf_referencia | NF de referência |
ped_observacao | observações de pedido |
ped_proc_refer | Processo referenciado |
ped_seq_ped_cliente | nitemped e xped |
pedido_comis | comissoes de pedidos |
pedido_list | Controle para listagem |
pedidos | Cabeçalho do pedido |
vdp_end_entga_intm | endereço entrega cliente intermediario |
vendor_pedido | Informações do vendor |
ped_item_prazo | Prazo de entrega por grade |
Tabelas que não foram previstas
Tabela | Descrição |
ate_mov_os | Assistência técnica |
ped_kit_pedido | Informações mestre do kit |
vdp_pedido_kit_seq | relacionamento dos itens com o kit |
vdp_ped_item_compl | Complementos do item |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|