Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Troca de Propriedade - Fase II - Separação
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | WMS |
Segmento Executor | Logística | ||
Projeto1 | L_DL_WMS002 | IRM1 | PCREQ-4909 |
Requisito1 | PCREQ-9047 | Subtarefa1 |
|
Chamado2 |
| ||
Release de Entrega Planejada | 12.1.12 | Réplica | 12.1.12 |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Permitir que o processos de troca de propriedade dispensem a necessidade de execução dos processos de expedição, o que engloba a criação de volumes de embarque com conferência da separação, inclusão de CESV de recebimento, planejamento de embarque, controles de entrada e saída do veículo e embarque. Todos esses processos serão gerados automaticamente enquanto é realizada a separação.
Da mesma forma, serão otimizados os processos de recebimento para o depositante destino, nos quais serão dispensados os processos de inclusão de CESV, planejamento do recebimento, validação do recebimento, descarregamento do veículo, e controles de entrada/saída do veículo, podendo o executor iniciar a conferência do recebimento no depositante destino, ainda enquanto é efetuada a separação no depositante origem, bastando apenas que tenha sido efetuada pelo menos uma descarga de equipamento na separação.
Definição da Regra de Negócio
Planejamento de Embarque
O planejamento do embarque será alterado para que não seja permitido efetuar a associação manual de uma solicitação de carga de troca de propriedade a um plano de embarque, sendo que não serão exibidos os documentos de troca de propriedade na tela de pesquisa de documento.
Separação
Ao selecionar uma lista de separação, seja por coletor ou via papel, será identificado se o documento em separação está relacionado à uma troca de propriedade.
Sendo verdadeira essa condição, o processo de conferência tratará algumas regras de forma diferenciada:
- Se a conferência estiver configurada na proposta do depositante com formação de volumes, o processo de formação de volumes será ignorado.
- Ao efetuar o descarregamento do equipamento (somente processo via coletor), será verificado se é o primeiro descarregamento. Sendo verdadeira essa condição, o processo de conferência do recebimento que foi gerado juntamente com as Ondas de Separação será liberado, as ordens de serviços passarão de situação Bloqueada para Pendente.
- Ao efetuar o último descarregamento do veículo ou também finalizada a lista de separação via papel (WMS60216), serão geradas automaticamente as seguintes informações:
- Volumes de embarque.
- Conferência separação.
- Inclusão do CESV de expedição, planejamento de embarque e relacionamento do documento com o plano.
- Liberação da entrada do veículo.
- Embarque dos volumes.
- Geração dos dados fiscais.
- Liberação da saída do veículo.
- Todos os processos anteriores serão gerados sem intervenção do executor em tela e a geração de todas essas informações visa a integridade dos dados e a possibilidade de rastreamento, bem como, a reversão dos processos, que poderá ser realizada via rotinas padrões do WMS.
Conferência do Recebimento
A conferência do recebimento poderá ser iniciada assim que efetuado o primeiro descarregamento do equipamento, via coletor (lista pública/particular). Já a conferência via papel, somente poderá ser realizada após a finalização da separação.
Em ambos casos, o procedimento é o mesmo do recebimento padrão, com as seguintes observações:
- A conferência via coletor não poderá ser finalizada antes do processo de separação da solicitação carga origem.
- Não será permitido que o processo de conferência seja finalizado com falta ou excesso, pois isso acarretaria em divergências entre a baixa de estoque na origem e o recebimento no destino. Essas validações serão efetuadas tanto no processo de conferência via coletor, quanto no processo via papel.
- Ao término da conferência do recebimento, além do encerramento das ordens de serviço relacionadas, ocorrerá também o encerramento da entrada de veículo que foi gerada automaticamente para o processo.
Cancelamento
- Caso os processos de expedição e recebimento estejam finalizados serão utilizadas as rotinas atuais do WMS, nas quais se faz necessário efetuar o cancelamento do recebimento e o cancelamento da expedição de forma independente.
- Será possível cancelar o processo de separação/expedição (via programas padrões) enquanto o processo de conferência está em andamento. Caso isso ocorra, será exibida uma mensagem em tela informando que solicitação de carga foi cancelada e a reversão do estoque conferido será efetuada automaticamente.
Lista Pública / Particular
Para facilitar a localização do processo de conferência do recebimento de uma troca de propriedade, a visualização das atividades na lista pública e lista particular será alterada, exibindo o número do documento relacionada a solicitação de carga origem.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
WMSR129 - Processos troca de propriedade | [Criação] | RNL | |
WMS6214 - Separação simplificada | [Alteração] |
|
|
WMS6190 - Conferência/contagem | [Alteração] | ||
WMS6788 - Recebimento via papel | [Alteração] | ||
WMS6255 - Planejamento Embarque | [Alteração] | ||
WMS6257 - Seleção Documentos Planejamento Embarque | [Alteração] | ||
WMS60216 - Separação via Papel | [Alteração] | ||
WMS6069/WMS6070 - Lista particular/Lista pública | [Alteração] | ||
WMSR71 - Função de geração/exclusão da onda de separação | Alteração |
WMSR129 - RNL de Processamento da Troca de Propriedade
Criar a função WMSR129 que executará o processamento da troca de propriedade - expedição e recebimento:
- Função wmsr129_set_empresa()
- Função wmsr129_set_solicitacao_carga()
- Função wmsr129_inicializa_variaveis()
- Função wmsr129_set_modo_exibicao()
- Função wmsr129_set_num_lista_separacao()
- Função wmsr129_set_endereco_destino()
- Função wmsr129_set_m_end_eqpto()
- Função wmsr129_eh_troca_propriedade()
- Nesta função deverá ser efetuado um select conforme abaixo, alimentando uma variável modular com o valor da solicitação origem que será usada posteriormente no processamento da troca de propriedade.
SELECT DISTINCT(trans_solicitacao_carga_mestre) INTO m_trans_sc_troca_propriedade
FROM wms_plano_separacao_carga a
INNER JOIN wms_onda_separacao o
ON o.empresa = a.empresa
AND o.plano_separacao = a.plano_separacao
WHERE a.empresa = p_cod_empresa
AND o.onda_separacao = ma_ondas_tela[l_arr_curr].onda_separacao
AND a.trans_solicitacao_carga_mestre IN
(SELECT b.solicitacao_carga
FROM wms_solic_carga_parametro b
WHERE a.empresa = b.empresa
AND a.trans_solicitacao_carga_mestre = b.solicitacao_carga
AND b.parametro = 'troca_propriedade'
AND val_texto = 'S')
Se encontrar registro válido deverá retornar TRUE
Função wmsr129 - RNL_eh_ultimo_movimento()
Executar um select para identificar se é o último movimento de separação:
SELECT COUNT(b.processo_moviment)
INTO l_count
FROM wms_onda_separacao_item a,
wms_processo_moviment b
WHERE a.empresa = m_empresa
AND a.num_lista_separacao = m_num_lista_separacao
AND b.empresa = a.empresa
AND b.processo_moviment = a.processo_moviment
AND b.sit_processo_moviment NOT IN ('AT','FI','CA')
Se l_count for maior igual a 1 indica que ainda existem processos pendentes.
Função wmsr129_controle_troca_propriedade()
- Executar o select abaixo para buscar o depositante da solicitação de carga:
SELECT wms_solicitacao_carga_mestre.deposit
INTO l_deposit
FROM wms_solicitacao_carga_mestre
WHERE wms_solicitacao_carga_mestre.empresa = m_empresa
AND wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre = m_trans_sc_troca_propriedade
- Se ocorrer erro de SQL, deverá tratar o erro e retornar FALSE.
Chamar a função wms6214_eh_ultimo_movimento() para verificar se ainda existem processo de movimento de separação pendentes. Esta função receberá ma_lista_separacao[m_ind_lista].num_lista_separacao e retornará l_status e l_ultimo_movimento (ambas TRUE ou FALSE).
- Se o l_status for FALSE deverá retornar FALSE.
- Executar a função wms6214_libera_recebimento_troca_propriedade(l_end_descarregamento), quando for o primeiro descarregamento, esta função liberará o início da conferência do processo de troca. Está função retornará true ou false.
- Se o retorno for FALSE deve retornar FALSE.
- Se for o último movimento deverá executar a sequência do processo abaixo:
- Executar a função wms6214_gera_volume_troca_propriedade().
- Caso o retorno da função acima seja verdadeiro, executar a função wms6214_conferencia_separacao_troca_propriedade(); caso o retorno da função anterior seja verdadeiro, então, deve executar a função wms6214_gera_embarque_troca_propriedade().
- Se o retorno da última função for verdadeiro, deverá alterar a situação da CESV de recebimento para 8 - Descarga Finalizada. Para isso deverá efetuar a busca do CESV de recebimento, setar a empresa e CESV chamando as respectivas funções do WMSR95 e efetuar a chamada da função wmsr95_modificar_situacao_cesv(8).
- Caso alguma das funções retorne FALSE, o processamento deve ser interrompido e retornar FALSE para a função principal.
- Caso todos os processos sejam realizados com sucesso a função deverá retornar TRUE.
Função wmsr129_gera_volume_troca_propriedade()
Função responsável pela geração automática de volumes.
Deve ser criado um volume para todos os itens ao final da separação.
- Definir variável l_cod_barras_volume, nos processo de troca o código de barras do volume será igual a solicitação de carga.
- Atribuir 1 para a variável m_ind_volume (será criado apenas um volume para todo processo de separação).
- Atribuir o valor do código de barras do volume a varável array ma_cod_barras_volume.
- Atribuir 1 a variável ma_qtd_itens_sku_volume.
- Validar se o código de barras do volume é válido chamando a função wms6214_verifica_cod_barras_volume_ja_existe_outra_solic().
- Se o retorno for FALSE deve retornar FALSE neste ponto.
- Busca a onda de separação a que pertence a lista sendo finalizada:
SELECT DISTINCT (a.onda_separacao)INTO l_onda_separacao
FROM wms_onda_separacao_item a
WHERE a.empresa = m_empresa
AND a.num_lista_separacao = ma_lista_separacao[m_ind_lista].num_lista_separacao
- Se ocorrer erro de SQL deve efetuar o processamento do erro e retornar FALSE.
- Chamar a função wms6214_carrega_informacoes_item_volume(); esta função retornará os valores peso, volume e quantidade de itens totais da onda.
- Se o L_status retornar FALSE deve processar a mensagem de erro e retornar FALSE.
- Efetuar a inclusão da volume_exped wmsr27_incluir_wms_volume_exped() passando: m_empresa, m_trans_sc_troca_propriedade, l_cod_barras_volume, 1, l_peso_bruto, l_peso_liquido, l_volume_m3.
- Se ocorrer erro deve processar mensagem e retornar FALSE.
- Chamar a função wmsr27_busca_volume_exepd() para validar a inclusão do Volume. Se o retorno da função for FALSE, deve processar mensagem de erro e retornar FALSE.
- Se chegou até o fim da função, deve retornar TRUE.
Função wmsr129_conferencia_separacao_troca_propriedade()
Como no processo de troca de propriedade, não será efetuada a conferência da separação. Esta função irá gerar os dados da conferência automaticamente.
- Atualizar os dados da tabela wms_conferencia_separacao para a solicitação de carga processada, onde deverão ser atualizados os campos:
sit_conferencia = 'F'.
usuario = p_user.
dat_hor_inicio = data corrente.
dat_hor_fim = data corrente.
Atualizar a tabela wms_conferencia_separacao_item para a solicitação de carga processada, onde deverão ser atualizados os campos:
sit_item = 'F',
usuario = p_user
qtd_conferida =
SELECT wms_solicitacao_carga_item.qtd_solicitada
FROM wms_solicitacao_carga_item
WHERE wms_solicitacao_carga_item.empresa = p_cod_empresa
AND wms_solicitacao_carga_item.trans_solicitacao_carga_mestre = m_trans_sc_troca_propriedade
AND wms_solicitacao_carga_item.sequencial_item = wms_conferencia_separacao_item.sequencial_item
Função wmsr129_gera_embarque_troca_propriedade()
Esta função irá gerar todos os dados do processo de embarque, automaticamente, criando a entrada de veículo, plano de embarque, relacionamento dos documentos e volumes, liberação de veículo para doca, conferência do embarque, finalização do embarque, liberação de saída do veículo, encerramento das ordens de serviço, do plano, da solicitação de carga e da entrada do veículo e geração dos dados fiscais para regime Filial.
CALL wmsr94_inicializa_variaveis()
CALL wmsr94_set_empresa(p_cod_empresa)
CALL wmsr94_set_depositante(l_deposit)
CALL wmsr94_set_trans_solicitacao_carga(m_trans_sc_troca_propriedade)
CALL wmsr94_set_gera_cesv_docum(TRUE)
CALL wmsr94_set_gera_planejto_embarque(TRUE)
CALL wmsr94_set_gera_relacionamento_plano_docum(TRUE)
CALL wmsr94_set_libera_entrada_veic(TRUE)
CALL wmsr94_set_efetua_embarque(TRUE)
CALL wmsr94_set_gera_dados_fiscais(TRUE)
CALL wmsr94_set_libera_saida_veiculo(TRUE)
CALL wmsr94_set_commit_processo_completo(FALSE)
- Se retorno da função for FALSE wmsr94_processa_expedicao() deve retornar FALSE, senão retorna TRUE.
Função wmsr129_libera_recebimento_troca_propriedade()
Ao efetuar a primeira descarga dos movimentos de separação deverá liberar as ordens de serviço geradas para a conferência do recebimento do processo de troca de propriedade.
Chamar a função wmsr128_libera_entrada_veic().
Função wmsr129_busca_cesv_recebimento()
Está função retornará o controle de entrada e saída de veículo relacionado ao recebimento da troca de propriedade.
Deverão ser inicializados os parâmetros empresa, solicitação de carga e modo de exibição antes da chamada desta função.
Função wmsr129_carrega_informacoes_item_volume()
Está função retornará o status de execução, peso bruto, peso líquido, volume m3 e quantidade de itens relacionados a onda de separação.
Para isso deverá:
- Declarar cursor do select abaixo:
SELECT wms_processo_moviment.item,
wms_item_sku.peso_bruto,
wms_item_sku.volume_m3,
wms_item_sku.qtd_item
FROM wms_processo_moviment,
wms_item_sku,
wms_onda_separacao_item
WHERE wms_processo_moviment.empresa = l_empresa
AND wms_onda_separacao_item.onda_separacao = l_onda_separacao
AND wms_processo_moviment.empresa = wms_item_sku.empresa
AND wms_processo_moviment.item = wms_item_sku.item
AND wms_processo_moviment.sku = wms_item_sku.sku
AND wms_onda_separacao_item.empresa = wms_processo_moviment.empresa
AND wms_onda_separacao_item.processo_moviment = wms_processo_moviment.processo_moviment
- Para cada item chamar a função wmsr35_busca_peso_liquido_item() que retornará o peso líquido.
- Acumular em uma variável o peso líquido total, que se obtém pela multiplicação entre quantidade de item X peso liquido.
- Acumular em varáveis o peso bruto total, volume m3 e total de itens.
- Se ocorrer algum erro durante o processamento deverá processar mensagem de e erro e retornar status FALSE.
Função wmsr129_verifica_cod_barras_volume_ja_existe_outra_solic()
Função para verificar se o volume gerado automaticamente não está relacionado a outro processo de expedição.
WMS6214 - Separação Simplificada
Deverá ser criada uma lógica que disparará os processos de conferência de embarque e liberação da conferência do recebimento, quando o processo for de troca de propriedade.
Antes da chamada da função wms6214_cria_volume(), se o tipo de lista for "V" (com geração de volume) deverá verificar se o processo é troca de propriedade. Se for troca de propriedade não deverá gerar volumes, pois será gerado apenas um volume ao final da separação.
- Ao efetuar o descarregamento do veículo deverá ser acionada a função wmsr129_controle_troca_propriedade(), caso a separação esteja relacionada a um processo de troca de propriedade.
WMS6190 - Conferência Recebimento - Coletor
Para o processo de conferência de uma troca de propriedade será utilizada a rotina padrão de conferência. Os processos de separação e conferência do recebimento poderão ser executados em paralelo, a partir do primeiro descarregamento do equipamento de transporte no endereço intermediário da troca, desde que a nota de recebimento já tenha sido relacionada a solicitação de carga.
Quando o processo for de troca de propriedade, a finalização da conferência não poderá ocorrer antes da finalização da separação. Para realizar está validação deverá ser verificada a situação da solicitação de carga relacionada ao aviso de recebimento.
Também não poderá haver TFEA para este processo, pois quando ocorrem divergências de quantidade o processo não poderá ser finalizada com falta/excesso.
- No início da função wms6190_before_menu, deverá ser incluída a chamada da função wms6190_troca_propriedade()
- Alterar a função wms6190_identificacao_falta_excesso(), no ON KEY (f4,control-n) do ELSE do IF LOG_existe_epl("wms6190y_monta_ordem_paletes"). Se for troca de propriedade, não deve permitir finalizar a conferência. Deverá exibir a mensagem Não é permitido encerrar conferência de troca de propriedade com Falta/Excesso. Atribuir INT_FLAG = 0 e m_realiza_reconfer = "S".
- No AFTER FIELD etiq_palete da função wms6190_processo_conferencia() deverá verificar se o processo é de troca de propriedade. Se for, deverá verificar se a solicitação de carga origem não está com situação cancelada ou aguardando desembarque, o que significa que o processo foi cancelado. Caso esteja em uma dessas situações, o processo de conferência deverá ser revertido (excluir os estoques gerados) e a OS encerrada. Para isso chamar a função wms6190_continua_conferencia_troca_propriedade(), se o retorno for falso, deverá setar a variável m_continua_confer = FALSE, chamar a função wms6190_encerra_programa("F") e sair do INPUT.
- Criar a função wms6190_continua_conferencia_troca_propriedade() onde deverá:
- Verificar se a solicitação de carga origem não está com situação U (aguardando descarregamento) ou C (cancelada).
SELECT DISTINCT 1
FROM wms_solicitacao_carga_mestre
WHERE wms_solicitacao_carga_mestre.empresa = p_cod_empresa
AND wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre = m_sc_troca_propriedade
AND wms_solicitacao_carga_mestre.sit_solicitacao NOT IN ('U','C')
- Se a situação for diferente de U e C deve retornar TRUE e continuar a conferência; caso contrário deverá:
Exibir a mensagem "Aviso! Solicitacao troca propriedade cancelada, conferencia sera revertida e ordem de servico encerrada."
Declarar cursor cq_id_conferidas do select abaixo para buscar todas as etiquetas já conferidas pro recebimento:
SELECT wms_iden_estoque_conferencia.sku,
wms_iden_estoque_conferencia.item,
wms_iden_estoque_conferencia.qtd_item,
wms_iden_estoque_conferencia.identif_estoque,
wms_iden_estoque_conferencia.palete
FROM wms_iden_estoque_conferencia
WHERE wms_iden_estoque_conferencia.empresa = p_cod_empresa
AND wms_iden_estoque_conferencia.ctr_ent_sai_veic_docum = m_ctr_ent_sai_veic_docum
Para cada registro encontrado deverá carregar as variáveis mr_conferencia.sku, mr_conferencia.item, mr_conferencia.qtd_item, mr_conferencia.etiq_estoque, mr_conferencia.etiq_palete
Atribuir mr_conferencia.qtd_sku = 0
Atribuir m_atualiza_quantidade = TRUE
Atribuir m_volumes_palete = 1
Chamar a função wms6190_transacional('ABRE') para iniciar a transação e efetuar o processo de reversão do estoque.
Chamar a função wms6190_movimentacao_estoque_conferencia() que irá processar o estoque da etiqueta encontrada.
Se ocorrer erro na execução deverá chamar a função wms6190_transacional('CANCELA') e retornar FALSE.
Senão deverá chamar wms6190_transacional('FECHA')
Após a execução do cursor deve alterar situação do CESV para cancelado.
Chamar wmsr95_set_empresa(p_cod_empresa)
Chamar wmsr95_set_cesv(m_ctr_ent_sai_veic_docum)
Chamar função wmsr95_modificar_situacao_cesv(13)
- Criar a função wms6190_troca_propriedade() - nesta função deverão ser setadas variáveis modulares m_eh_troca_propriedade e m_sc_troca_propriedade.
Executar o select abaixo para identificar se processe é troca de propriedade e qual a solicitação de carga orgiem.SELECT wms_solic_carga_parametro.solicitacao_carga
INTO m_sc_troca_propriedade
FROM wms_solic_carga_parametro
WHERE wms_solic_carga_parametro.empresa = p_cod_empresa
AND wms_solic_carga_parametro.parametro = 'troca_propriedade'
AND wms_solic_carga_parametro.val_texto = 'S'
AND wms_solic_carga_parametro.val_numerico IN (SELECT nf_sup.num_aviso_rec
FROM wms_cesv_docum_nota_fiscal, nf_sup
WHERE wms_cesv_docum_nota_fiscal.empresa = p_cod_empresa
AND wms_cesv_docum_nota_fiscal.ctr_ent_sai_veic_docum = m_ctr_ent_sai_veic_docum
AND wms_cesv_docum_nota_fiscal.deposit = m_depositante
AND nf_sup.cod_empresa = wms_cesv_docum_nota_fiscal.empresa
AND nf_sup.num_nf = wms_cesv_docum_nota_fiscal.nota_fiscal
AND nf_sup.ser_nf = wms_cesv_docum_nota_fiscal.serie_nota_fiscal
AND nf_sup.ssr_nf = wms_cesv_docum_nota_fiscal.subserie_nota_fiscal
AND nf_sup.ies_especie_nf = wms_cesv_docum_nota_fiscal.especie_nota_fiscal
AND nf_sup.cod_fornecedor = wms_cesv_docum_nota_fiscal.emitente_nota_fiscal)
WMS6255 - Planejamento de Embarque
Não deve permitir efetuar a associação manual de uma solicitação de carga de troca de propriedade a um plano de embarque.
Para isso deverá:
- Na função wms6255_procura_documento() adicionar o filtro abaixo no final da variável l_sql_stmt (logo após o filtro de documentos granel).
" AND NOT EXISTS (SELECT DISTINCT 1 ",
" FROM wms_solic_carga_parametro scp2 ",
" WHERE scp2.empresa = wms_solicitacao_carga_mestre.empresa ",
" AND scp2.solicitacao_carga = wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre ",
" AND scp2.parametro = 'troca_propriedade' ",
" AND scp2.val_texto = 'S') "
Os botões Incluir, Modificar, Excluir e Pesquisar (em Documentos, parte inferior da tela) deverão ser bloqueados quando o planejamento de embarque já estiver relacionado a um processo de troca de propriedade.
WMS6257 - Seleção Documentos Planejamento Embarque
Os documentos relacionados a um processo de troca de propriedade não deverão ser exibidos na pesquisa, para isso deverá ser adicionado o filtro abaixo no select de busca dos documentos.
Incluir logo após o filtro de documentos granel.
" AND NOT EXISTS (SELECT DISTINCT 1 ",
" FROM wms_solic_carga_parametro scp2 ",
" WHERE scp2.empresa = wms_solicitacao_carga_mestre.empresa ",
" AND scp2.solicitacao_carga = wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre ",
" AND scp2.parametro = 'troca_propriedade' ",
" AND scp2.val_texto = 'S') "
A entrada de veículo que for gerada automaticamente pelo processo de troca de propriedade não poderá ter suas informações alteradas, todas as opções para esta entrada deverão ser bloqueadas.
WMS6788 – Conferência Via Papel
Aplicar a mesma validação do processo de conferência via coletor, onde deverá identificar os processos que são de troca de propriedade e não permitir a finalização da conferência com falta ou excesso.
Alterar a função wms67882_confirm(). Se o processo for de troca de propriedade deverá exibir mensagem "Conferência de recebimento de processo de troca de propriedade, não é permito finalizar com falta/excesso." Retornar ao wms67882_cancelar().
Na função wms6788_before_confirm_finalizar(), deverá executar o teste e verificar se a separação da SC origem foi finalizada.
WMS60216 – Separação Via Papel
Após o teste da variável l_operacao_estoque, deverá chamar as funções:
- wmsr129_set_empresa()
- wmsr129_set_num_lista_separacao()
- wmsr129_eh_troca_propriedade()
Armazenar retorno em variável modular.
Após a chamada da função wms60216_atualiza_sit_volume() e antes do commit da transação, deverá chamar:
- wmsr129_set_empresa(m_empresa)
- wmsr129_set_num_lista_separacao(mr_wms_lista_executor.num_lista_separacao)
- wmsr129_set_endereco_destino(ma_array_processos[1].des_endereco_destino)
- wmsr129_set_m_end_eqpto(ma_array_processos[1].des_endereco_origem)
- wmsr129_controle_troca_propriedade()
Se o retorno for falso, deverá efetuar rollback da transação e retornar falso.
WMS6069 / WMS6070 - Lista Particular e Lista Pública
Alterar o modo de exibição por CESV/documental para que, quando o CESV for de processo de troca de propriedade seja exibido o número do documento de origem (nota ou pedido da Solicitação de carga) no lugar do CESV.
Tabelas Utilizadas:
- wms_plano_separacao_carga
- wms_solic_carga_parametro
- wms_onda_separacao
WMSR71 - Função de Geração/Exclusão da Onda de Separação
Alterar a função wmsr71_busca_endereco_destino() para que verifique se o processo é de troca de propriedade.
Se for, deverá efetuar o teste a seguir:
WHENEVER ERROR CONTINUE
SELECT tip_conferencia
INTO l_tip_conferencia
FROM wms_conferencia_separacao
WHERE empresa = p_cod_empresa
AND trans_solicitacao_carga_mestre = l_trans_solicitacao
WHENEVER ERROR STOP
IF sqlca.sqlcode = 0 THEN
IF l_tip_conferencia = 'C' THEN
LET l_funcionalidade = 10 ## Conferência
ELSE
LET l_funcionalidade = 11 ## PDV
END IF
END IF
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|