Páginas filhas
  • ER_PCREQ-9047_Troca_de_Propriedade_Fase_II_Separacao

 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çãoAlteraçã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.