Páginas filhas
  • ER LOGWMS01-716 ME 10 Separação Com Etiqueta BRA

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                            

Informações Gerais

Especificação

Produto

LOGIXLogix

Módulo

WMS

Segmento Executor

Supply Chain - Logística

Projeto1

LOGWMS01

IRM1

Jira
serverJIRA Produção
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-545

Requisito1

Jira
serverJIRA Produção
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-716

Subtarefa1

 

País

( X ) Brasil  (  ) Argentina  (  ) Mexico México  (  ) Chile  (  ) Paraguai  (  ) Equador (  ) USA  (  ) Colombia   Colômbia   (  ) Outro _____________.

Outros

Não se Aplica

 

Objetivos

Objetivo

  • Realizar ajustes nas rotinas de separação
e conferência utilizando a figura do palete.
  • para atrelar o palete no processo atual e criar uma nova forma de conferência, na qual será possível realizar a conferência dos itens informando o palete. No processo de separação existente, o palete será a referência de onde o estoque está sendo "colocado", ou seja, o palete físico que está sendo utilizado para movimentar o estoque.
  • Criar um novo processo de conferência no coletor com base no processo atual de conferência manual por documento e incluir a possibilidade de efetuar a conferência por palete.

 Nas processos de conferência, o palete será um facilitador para permitir a conferência de todos os itens existentes no palete.

Definição da Regra de Negócio

 Aqui mapa mental utilizado como baseImage Added

 

Na tabela a seguir serão listadas as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina.

WMS60018Contrato / Expedição - Separação/ConferênciaWMS6214Ajuste para gravar

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

 WMS6636

Alteração

Criação Conferência manual coletor palete 
WMS60030 WMSR137AlteraçãoCriação 

RNL para validar palete informado na separação

Função de cópia de contrato

 
WMS6637

Alteração

Separação coletor

CriaçãoFunção para validar/conferir o palete informado na conferênciaWMSR41 AlteraçãoSeparação no pickingAjuste para gravar o palete informado

WMSRXX1

Inclusão

RNL para validar palete informado na separação

 

WMSRXX2InclusãoRNL para validar/realizar processo de conferencia por palete 

1 - Ajustes no contrato - WMS60013

1.1 - Inclusão de parâmetros no processo de separação e conferência - WMS60018

Serão criados três parâmetros: 

Informa palete destino(inf_palete_destino_separacao - Opções: S ou N): Quando marcado esse parâmetro o palete deverá ser informado em todo movimento de separação. Antes de informar a etiqueta de origem da coleta (pode ser uma identificação de estoque ou uma etiqueta de endereço quando a separação ocorrer em endereço de picking) será obrigatório informar o palete. Ele será gravado diretamente na tabela wms_identif_estoque correspondendo ao palete de cada ID separada. Deverá atender as mesmas regras de uso de palete existentes em outros pontos do sistema.

  • Permite conferência de palete(permite_conf_palete - Opções: S ou N): Quando marcado esse parâmetro, em todos os processos de conferência de expedição (304,305,308,310,311,312,313,314) poderá ser informado o palete diretamente na tela principal no campo EAN/SKU. O palete será validado e a conferência dos itens será realizada conforme o parâmetro "Modo conferência palete". 

    Aviso
    titleImportante!

    Somente será permitido marcar o parâmetro "Permite conferência de palete", quando o parâmetro, "Efetuar divisão de estoque/reserva conferência" estiver desmarcado, ou seja, mesmo no processo de conferência manual, não serão realizadas quebras de estoque/reserva.

  • Modo conferência palete (modo_conf_palete - Opções: 1,2 ou 3): Esse parâmetro só poderá ser preenchido quando marcado o parâmetro "Permite conferência palete". Ele irá indicar qual a forma de conferência que poderá ser utilizada. As opções são:
    WMS6214tCriaçãoTela separação controla SKU e informa palete 
    WMS6214uCriaçãoTela separação não controla SKU e informa palete 

    WMS60018

    Alteração

    Contrato / Expedição - Separação/Conferência

     

    WMSM170 AlteraçãoDML da tabela wms_parametro_separacao 
    WMST170 AlteraçãoRNT da tabela wms_parametro_separacao 
    WMS60019AlteraçãoContrato / Expedição - Embarque/Fiscal 
    WMS60030AlteraçãoFunção de cópia de contrato 
     WMS6167 AlteraçãoFunção para validação de operação (inclusão do tipo de processo 315) 
     WMS6377 AlteraçãoFunção para busca dos processos de expedição (inclusão do tipo de processo 315) 
    WMS70006 AlteraçãoWizard (inclusão do tipo de processo 315) 
    WMS70007Alteração  Wizard (inclusão do tipo de processo 315) 
    WMS70007bAlteração  Wizard (inclusão do tipo de processo 315) 
    WMS7001c AlteraçãoWizard (inclusão do tipo de processo 315) 
     WMSR120 AlteraçãoRNL Inventário rotativo (inclusão do tipo de processo 315) 
     WMSR44AlteraçãoCancelamento Expedição (inclusão do tipo de processo 315) 
     WMSR60 AlteraçãoSequência Atividades Expedição (inclusão do tipo de processo 315) 
     WMSR70 AlteraçãoGeração OS Onda Separação (inclusão do tipo de processo 315) 
     WMSR88 AlteraçãoWizard (inclusão do tipo de processo 315) 

    WMS60014

    Alteração

    Contrato / Valida medição de tempo (inclusão do tipo de processo 315)

     
    WMS6008AlteraçãoServiço x Atividade (inclusão do tipo de processo 315) 
     WMS6025 AlteraçãoServiço x Atividade x Proposta (inclusão do tipo de processo 315) 
     WMS6220 AlteraçãoManutenção tabela wms_parametro_separacao (inclusão do tipo de processo 315) 
     WMS6225 AlteraçãoGeração de estrutura de OS (inclusão do tipo de processo 315) 
     WMS6242 AlteraçãoCapa conferência coletor (inclusão do tipo de processo 315) 
     WMS6258 AlteraçãoCapa conferência desktop (inclusão do tipo de processo 315) 
     WMS6345 AlteraçãoGeração de estrutura de OS (inclusão do tipo de processo 315) 
     WMS6609 AlteraçãoAnálises Tempo Médio Separação (inclusão do tipo de processo 315) 
     WMS6770 AlteraçãoRegistros padrão (inclusão do tipo de processo 315) 

    WMS6214

    Alteração

    Separação coletor (Ajuste para gravar o palete informado)


    WMSR41AlteraçãoSeparação no picking (Ajuste para gravar o palete informado)
    WMSR56AlteraçãoFunção para retornar dados para impressão da nota fiscal 
    VDP1285AlteraçãoFunção de solicitação de faturamento 

    1 - Parametrização

    1.1 - Ajustes no Contrato - WMS60013 - Inclusão de Parâmetros no Processo de Separação e Conferência - WMS60018 - Protótipo 1

    Serão criados dois parâmetros: 

    • Informa palete destino (inf_palete_destino_separacao) - Opções: S ou N): Quando assinalado este parâmetro o palete deverá ser informado em todo movimento de separação. Antes de informar a etiqueta de origem da coleta (pode ser uma identificação de estoque ou uma etiqueta de endereço quando a separação ocorrer em endereço de picking) será obrigatório informar o palete. Ele será gravado diretamente na tabela wms_identif_estoque correspondendo ao palete de cada ID separada. Deverá atender as mesmas regras de uso de palete existentes em outros pontos do sistema.

    • Modo conferência palete (modo_conf_palete - Opções: 1,2, 3 ou 4): Ele indicará qual a forma de conferência que poderá ser utilizada.
      As opções são:
      1. Somente Pede Confirmação: após bipar o palete, envia mensagem para o usuário "Confirma a conferência do palete XXXXXXX como XX SKUs?" já com o campo de resposta como S. Em caso afirmativo, todos os itens do palete serão listados como conferidos. Caso contrário, volta para a tela principal do processo de conferência em questão.
      2.  Informa Quantidade Total de SKU (Opção Default): após bipar o palete, abre tela na qual deverá ser informada a quantidade total de SKUs do palete independente do item. Não será permitido informar uma quantidade de caixas diferentes da que compõe o palete. Não será exibida a quantidade esperada, caso seja necessário identificar esta informação deverá ser utilizado o WMS6170 (desktop) ou WMS6181 (coletor) pesquisando pelo palete. Se o palete possuir algum item que não controla SKU, automaticamente, caso esta opção esteja assinalada, será utilizada a opção 3 - Informa Itens e Quantidade.
      3.  Informa Itens e Quantidade:após bipar o palete, abre uma tela para informar o código do item e na sequência a quantidade. A cada item será validado essa informação se o item ainda possui quantidade pendente de conferência. Apenas quando todos os itens do palete forem conferidos é que o estoque do palete será conferido. Caso ocorra uma interrupção ou queda de sinal nesse processo, será necessário iniciar novamente a conferência do palete. A unidade de medida da quantidade será solicitada com base no parâmetro principal do processo de conferência. (Não informa, informa quantidade em itens, e informa quantidade em SKUs).
      4.  Informa Itens, Quantidade e Dimensionais: Serão repetidos todos os passos do modo de conferência anterior, sendo que depois de informar a quantidade  será solicitado os dimensionais, com base nos parâmetros atuais de controla/restringe.
        A cada item/quantidade e dimensionais será validado essa informação. Apenas quando todos os itens do palete forem conferidos é que o estoque do palete será conferido. 
    • Alterar a função wms60030_copia_contrato para ler os novos campos criados relacionados ao contrato de origem da cópia e gravar os valores lidos para para o contrato destino da cópia.
    • Realizar os ajustes nas DML (WMSM170) e RNT(WMST170) para prever a leitura/gravação dos novos campos.

    Os parâmetros serão gravados na tabela WMS_PARAMETRO_SEPARACAO, conforme descrição realizada no tópico Dicionário de Dados e na seção Protótipo são exibidas as imagens de como ficará a tela do Contrato - Separação/Conferência (Protótipo 1 e Protótipo 2). 

    1.2 - Ajustes no Contrato - WMS60013 - Inclusão de Parâmetros no Processo de Embarque/Fiscal - WMS60019 - Protótipo 2

    Será criada uma parametrização que permitirá definir como será calculada a quantidade de volumes impressa na Nota Fiscal.

    Para cada tipo de Nota (Retorno simbólico depositante mesmo Estado, Retorno simbólico depositante outro Estado, Retorno depositante mesmo Estado, Retorno depositante outro Estado, Retorno simbólico regime especial, Conta e ordem e Solicitação de faturamento VDP), será possível selecionar as seguintes opções:

    • Fixo 0

    • Fixo 1

    • Quantidade de volumes digitada na solicitação de carga

    • Quantidade de volumes gerados no processo de conferência

    • Quantidade de SKUs expedidos na solicitação de carga

    • Quantidade de itens expedidos na solicitação de carga

    • Quantidade de paletes expedidos na solicitação de carga

    Os parâmetros serão gravados na tabela WMS_PARAMETRO_SEPARACAO, conforme descrição realizada no tópico Dicionário de Dados, e na sessão protótipo são exibidas as imagens de como ficará a tela do contrato - embarque/fiscal (Protótipo 3).

    1.3 - Criação de um Novo Processo de Conferência

    Incluir um novo registro na tabela WMS_TIP_PROCESSO o tipo de processo 315, conforme descrição realizada na tabela a seguir.

    Inclusão de Registro na tabela WMS_TIP_PROCESSO
    Descrição campoValor
    tip_processo315
    descricao_tip_processoCONF MANUAL COLETOR PALETE
    descrição_reduzida_tip_processoCONF.COL PALETE
    instrucao

    EFETUAR A CONFERENCIA DE SOLICITACOES DE CARGA, PELO COLETOR, UTILIZANDO AS REGRAS DA CONFERENCIA MANUAL  PODENDO INFORMAR O PALETE SEPARADO PARA CONFERIR OS ITENS ATRELADOS AO MESMO

    tip_classe_operacaoE
    programa WMS6636
    padrao S


    Para garantir o correto funcionamento dos processos de conferência de expedição já existente e suas validações, será necessário alterar os seguintes fontes:

    • WMS6167 - Validação de operação: Alterar todas as validações para considerar o novo tipo de conferência 315. Utilizar como base o tipo de processo 305, uma vez que essa nova conferência, terá como base esse tipo já existe e mais a possibilidade de informar o palete separado.
    • WMS6377 - Busca de processos da proposta do depositante: Incluir na função wms6377_busca_processos_proposta_depositante o tipo de processo 315.
    • WMS70006 - Wizard: Incluir na função wms70006_carrega_temporaria o novo tipo de processo 315.  
    • WMS70007 - Wizard: Incluir na função wms70007_inclui_estrutura o novo tipo de processo 315.  
    • WMS70007b - Wizard: Incluir em todas as validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMS7001c-  WizardIncluir na função wms7001c_busca_dados o novo tipo de processo 315. Incluir na validação da função wms7001c_validacoes o tipo de processo 315.
    • WMSR120 - Inventário rotativo: Incluir na função wmsr120_analise_inventario_rotativo onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMSR44 - cancelamento de expedição: Incluir na função wmsr44_os_ativ_cria onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMSR60 - Sequencia de execução das atividades de expedição: Incluir nas funções wmsr60_exibe_instrucao_trabalho e wmsr60_verifica_atividades_finalizadas onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMSR70 - Geração de ordem de serviço de expedição: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    •  WMSR88 - Função de wizard: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMS60014 - Valida medição de tempo: Incluir na  função wms60014_valida_medicao_tempo_atividade uma nova consistência para o tipo 315.  
    •  WMS60018 - Contrato ->Separação/Conferência: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMS6008 - Serviço x Atividade: Alterar a função wms6008_valida_medicao_tempo_atividade para incluir o novo tipo de processo criado 315.  
    • WMS6025 - Serviço x Atividade x Proposta: Alterar a função wms6025_valida_medicao_tempo_atividade para incluir o novo tipo de processo criado 315.  
    • WMS6220 - Manutenção tabela WMS_PARAMETRO_SEPARACAO: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  Nos programas, onde está sendo validado o WMS6218, incluir também a validação do novo programa de conferência.
    • WMS6225 - Geração de estrutura de OS: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMS6242 - Capa conferência coletor: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  Deverá ser chamado o programa novo WMS6636.
    • WMS6258 - Capa conferência desktop: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315. Não será possível executar esse processo de conferencia via desktop, apenas coletor.  
    • WMS6345 - Geração de estrutura de OS: Incluir na validações onde está sendo tratado o tipo de processo 305 para tratar o novo tipo de processo 315.  
    • WMS6609 - Análises Tempo Médio Separação: Alterar a função wms66092_carrega_dados_analise para incluir o novo tipo de processo criado 315.  
    • WMS6770 - Registros padrões: Alterar a função wms6770_processa_tip_processos para incluir o novo tipo de processo criado 315.

    2 - Ajustes na Rotina de Separação - WMS6214

    No processo de separação, quando acessar a tela indicando a origem da separação, deverá solicitar o palete antes da etiqueta de estoque.

    Na função wms6214_inicia_movimento existem duas telas que são chamadas:

    • WMS62143 - Etiqueta Origem - Controla SKU 
    • WMS6214k - Etiqueta Origem - Não Controla SKU. 

    Criar duas novas telas (WMS6214t e WMS6214U) com base nas atuais, nas quais serão excluídos os campos área e tipo de estoque que são exibidos atualmente para permitir a inclusão do campo palete destino, conforme Protótipos 4 e 5.

    Para realizar a validação da utilização do palete informado, criar duas funções dentro da nova RNL WMSR137:

    • WMSR137_valida_palete: será chamada após informar o palete(after field do campo). Valida apenas o palete informado, sem saber a relação dele com o estoque que será colocado sobre o mesmo. Deverá ser validado se o mesmo pode ser utilizado seguindo as mesmas regras do WMS6182, campo palete receptor. 

      Bloco de código
      titleExemplo da validação
      collapsetrue
      1) Remover enter no campo 
       
      Criar função idêntica a essa dentro da RNL 
      CALL wms6182_remove_enter(m_identif_palete) 
      RETURNING m_identif_palete   
       
      2) Verificar caracteres especiais 
      
      IF m_identif_palete MATCHES "*'*"
                 OR m_identif_palete MATCHES "*""*"
                 OR m_identif_palete MATCHES "*%*"
                 OR m_identif_palete MATCHES "*(*"
                 OR m_identif_palete MATCHES "*)*"
                 OR m_identif_palete MATCHES "*=*"
                 OR m_identif_palete MATCHES "*|*"
                 OR m_identif_palete MATCHES "*<*"
                 OR m_identif_palete MATCHES "*>*" THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'Palete receptor invalido.'
                    LET m_msg        = 'Nao e permitido informar caracteres especiais no palete receptor.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF 
       
      3) Verificação de inventário no palete 
      #rotina para verificar se o palete esta em processo de inventario 
              IF wmsr51_f2_verifica_emp_palet(p_cod_empresa, m_identif_palete) THEN
                 LET m_titulo     = 'Divis/Fusao estoque'
                 LET m_sub_titulo = ''
                 CALL wms6085_help(m_titulo, m_sub_titulo, 'Nao e possivel realizar divisao/fusao de estoque, pois o palete possui identificacoes de estoque que estao em processo de inventario.')
                 CURRENT WINDOW IS w_WMS6182_principal
                 NEXT FIELD m_identif_palete
              END IF 
       
      4) Verificar se o palete informado é curinga ou permite usar qualquer etiqueta (Cria curinga com o palete) 
      # Validar se o receptor é uma etiqueta curinga
                 IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_palete,TRUE,1) THEN
                    # Se atender estas condições a etiqueta não pode ser utilizada
                    IF wmsm53_wms_etiq_curinga_get_dat_habil() IS NULL THEN
                       LET m_titulo     = 'Divis/Fusao estoque'
                       LET m_sub_titulo = 'Palete receptor invalido'
                       LET m_msg        = 'A etiqueta informada nao esta habilitada.'
                       CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                       CURRENT WINDOW IS w_WMS6182_principal
                       NEXT FIELD m_identif_palete
                    END IF
                 ELSE
                    IF m_indica_aceita_etiq_nao_cadas = 'S' THEN
                       IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                          LET l_endereco         = wmsm53_wms_etiq_curinga_get_endereco()
                       END IF
                       IF wmsm133_wms_identif_estoque_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                          CALL wmsm53_wms_etiq_curinga_set_ctr_ent_sai_veic(wmsm133_wms_identif_estoque_get_ctr_ent_sai_veic_docum())
                          CALL wmsm53_wms_etiq_curinga_set_deposit(wmsm133_wms_identif_estoque_get_depositante())
                       END IF
                       CALL wmsm53_wms_etiq_curinga_set_dat_habil(TODAY)
                       CALL wmsm53_wms_etiq_curinga_set_empresa(p_cod_empresa)
                       CALL wmsm53_wms_etiq_curinga_set_endereco(l_endereco)
                       CALL wmsm53_wms_etiq_curinga_set_etiq_curinga(m_identif_palete)
                       CALL wmsm53_wms_etiq_curinga_set_etiq_pallet(m_identif_palete)
                       CALL wmsm53_wms_etiq_curinga_set_identif('P')
                       CALL wmsm53_wms_etiq_curinga_set_item(m_cod_item)
                       CALL wmsm53_wms_etiq_curinga_set_livre_1(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_2(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_3(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_4(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_5(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_6(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_lote_geracao(1)
                       CALL wmsm53_wms_etiq_curinga_set_sku(l_sku)
                       CALL wmsm53_wms_etiq_curinga_set_utiliz('S')
                       #LET m_etiqueta_tem_estoque = FALSE
                       IF NOT wmst53_wms_etiq_curinga_inclui(TRUE,1) THEN
                          LET m_titulo     = 'Divis/Fusao estoque'
                          LET m_sub_titulo = 'Etiqueta curinga'
                          LET m_msg        = 'Problemas na inclusao da etiqueta curinga.'
                          CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                          CURRENT WINDOW IS w_WMS6182_principal
                          NEXT FIELD m_identif_palete
                       END IF
                    ELSE
                       LET m_titulo     = 'Divis/Fusao estoque'
                       LET m_sub_titulo = 'Etiqueta curinga'
                       LET m_msg        = 'Nova identificacao de estoque nao cadastrada como etiqueta curinga.'
                       CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                       CURRENT WINDOW IS w_WMS6182_principal
                       NEXT FIELD m_identif_palete
                    END IF
                 END IF
              END IF
      
    • WMSR137_valida_palete_com_id: antes de executar o processamento, deverá ser validado novamente, se foi possível utilizar o palete para o processo em questão, similar ao que é realizado no WMS6182 após preencher todos os campos da tela. Nesse ponto, será validado o palete e a ID que o mesmo será atrelado, seja ela física ou virtual.

      Bloco de código
      titleExemplo da validação
      collapsetrue
      Fazer novamente todas as validações da função WMSR137_valida_palete   
       
      Utilizando já o palete e ID que será colocada no palete   
       
      1) Verificar se o Palete já está sendo usado como ID de estoque de outra ID que não a separada
      WHENEVER ERROR CONTINUE
                 SELECT DISTINCT 1
                   FROM estoque_lote_ender
                  WHERE estoque_lote_ender.cod_empresa = p_cod_empresa
                    AND estoque_lote_ender.identif_estoque = m_identif_palete
                    AND qtd_saldo > 0
                 WHENEVER ERROR STOP
                 IF sqlca.sqlcode = 0 THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'ID cedente'
                    LET m_msg        = 'Palete unico nao pode receber outra ID.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF 
      
      2) Verificar depositante do palete 
      IF wmsm117_wms_palete_get_deposit() <> m_deposit THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'Palete receptor invalido.'
                    LET m_msg        = 'Palete receptor informado nao pertence ao mesmo depositante da identificacao cedente.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF
       

       

    Depois de validado o palete que foi informado, realizar os seguintes tratamentos:

    • O palete informado nesse processo será gravado no campo palete da tabela wms_identif_estoque da identificação de estoque que está sendo separada no movimento;
    • Ajustar o programa para executar o processo utilizado GET e SET sem precisar passar mais parâmetros para as funções.
    • As funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque deverão utilizar o palete informado em tela para a criação do palete.
    • Mesmo quando não for criada uma nova ID de estoque, o palete informado deverá ser atrelado como palete do estoque separado.
    • É necessário alterar também a  wmsr41_separacao_picking que chama as funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque.
    • Algumas validações do palete devem ser alteradas: não validar palete misto; não validar capacidade; não validar peso e cubagem. 
    • Quando a etiqueta informada para o palete é a etiqueta de estoque também que está sendo separada, criar uma etiqueta virtual para o estoque para permitir que possa ser utilizado o mesmo palete para outro estoque.

    OBS: lembrar que ao consultar o estoque no WMS6170 pelo equipamento ou palete o mesmo poderá ser visualizado conforme executado na separação.

    3 - Criação de Novo Tipo de Conferência Coletor Com Base no Atual WMS6218 (Conferência Manual Documento) - WMS6636

    Este processo será criado com base no processo já existente de conferência por documento, WMS6218, portanto, será realizada uma cópia do programa e todas as suas telas e renomeados para o WMS6636.

    Na sequência, neste novo programa será disponibilizada a funcionalidade de conferir palete, a qual deverá ser efetuada toda em uma função (WMS6637), para que possa ser reutilizada para algum outro tipo de conferência em projeto posterior.

    A funcionalidade de conferência de palete poderá ser iniciada em dois pontos:

    • No campo Etiqueta Volume  (com esta opção será criado um volume para o palete).
    • No campo EAN/SKU (o volume pode ser diferente do palete).

    Nestes dois pontos será  possível bipar um palete para realizar a conferência automática do mesmo, conforme regras descritas na sequência.

    3.1 - Validações no Palete Informado, Antes de Realizar a Conferência

    WMS6637_valida_palete_conferencia: esta função será responsável por validar o palete antes de efetivamente realizar a conferência do mesmo. 

    Serão validados os seguintes pontos:

    • Verificar se o palete já conferido anteriormente: Mensagem: Esse palete já foi conferido! Deseja cancelar a conferência do mesmo? Em caso afirmativo, será realizado o cancelamento da conferência de todos os itens do palete, similar a retirada de itens de volumes e também será excluído o volume, caso o mesmo fique vazio. Não serão solicitadas informações adicionais, e ao final será enviado a mensagem "Palete cancelado com sucesso" ou "Não foi possível cancelar a conferencia do palete" conforme resultado do processamento da função. E voltará para a tela de palete, onde caso o usuário desejar, poderá realizar novamente a conferência do mesmo.
    • Verificar se existe alguma reserva no palete que não está relacionada o solicitação de carga que está sendo conferida. Mensagem: Não é possível realizar a conferencia desse palete. Existe reserva para mais de um documento.
    • Verificar se existe algum estoque que não está reservado. Mensagem:  Não é possível realizar a conferencia desse palete. Existe estoque sem reserva.
    • Verificar se todos os itens possuem conferência pendente. Mensagem: Não é possível realizar a conferencia desse palete. Nem todos os itens são necessários para o fechamento da conferência. 

    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    1) Verificar se o palete não foi conferido anteriormente
    SELECT  situacao_palete
      FROM WMS_CONFERENCIA_PALETE
     WHERE empresa = 'XX'
       AND palete = 'XXXXXXXXXXXXXXXXXX'
       AND sequencial_conferencia = 99
     
    Quando a situação do palete é F(finalizada). Enviar mensagem em tela solicitado ao usuário se deseja cancelar a conferencia do palete ou não.
     
    Quando a Opções A(andamento), automaticamente cancelar a conferencia de todos os itens e recomeçar o processo de conferência do palete. Isso poderá ocorrer quando o sistema for encerrado indevidamente, onde teve uma queda de sinal. 
     
    2) Verifica se o palete possui alguma reserva para outra SC
    SELECT DISTINCT 1 
     FROM wms_palete
    INNER JOIN wms_identif_estoque
       ON wms_identif_estoque.empresa =  wms_palete.empresa
      AND wms_identif_estoque.palete =  wms_palete.palete
    INNER JOIN est_loc_reser_end
       ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa
      AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
    WHERE wms_palete.empresa = '44' -- Empresa corrente
    AND wms_palete.palete  = '644161110093108381' --Palete em questão
    -- Esse para quando a conferência for por documento
    AND EXISTS (SELECT 1  FROM wms_solic_carga_item_reserva
                 WHERE wms_solic_carga_item_reserva.empresa = est_loc_reser_end.cod_empresa
                   AND wms_solic_carga_item_reserva.reserva = est_loc_reser_end.num_reserva
                   AND wms_solic_carga_item_reserva.tip_reserva = 'E' -- Apenas reservas de estoque
                   AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre <> 73247) -- Número da SC que está sendo conferida
     
    3) -- Verifica se o palete possui alguma quantidade que não está reservada 
    SELECT DISTINCT 1 FROM wms_palete 
     INNER JOIN wms_identif_estoque 
        ON wms_identif_estoque.empresa = wms_palete.empresa 
       AND wms_identif_estoque.palete = wms_palete.palete 
     INNER JOIN estoque_lote_ender 
        ON estoque_lote_ender.cod_empresa = wms_identif_estoque.empresa 
       AND estoque_lote_ender.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN est_loc_reser_end 
        ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa 
       AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN estoque_loc_reser 
        ON est_loc_reser_end.cod_empresa = estoque_loc_reser.cod_empresa 
       AND est_loc_reser_end.num_reserva = estoque_loc_reser.num_reserva 
     WHERE wms_palete.empresa = '44' -- Empresa corrente 
       AND wms_palete.palete = '644090828140540007' --Palete em questão 
     GROUP BY estoque_lote_ender.qtd_saldo 
    HAVING estoque_lote_ender.qtd_saldo <> sum(estoque_loc_reser.qtd_reservada)
     
    4) Verificar se todos os itens possuem conferência pendente
    Copiar as validações padrões da conferência de itens:
    wmsr35_inclui_item_volume_sem_split 
    Essa função devem fazer apenas a parte de validar se o item/quantidade/dimensionais pode ser conferido, não fazendo atualização nos indicativos de conferência
    
     
    Ao final da validação do palete, deverão ser gravados os registros nas tabelas WMS_CONFERENCIA_PALETE, onde o palete deve ficar com a situação A, e na tabela WMS_CONF_PALETE_ITEM_DIMENS todos os itens com situação P. 
    
    Isso para não ser mais necessário ficar buscando sempre a quantidade de itens do palete e conseguir verificar quais itens e conseguir saber quando todos os itens do palete foram conferidos.
     
    -- Itens e quantidades
    SELECT wms_identif_estoque.item,
           wms_identif_estoque.QTD_ORIGEM,
    sum(wms_identif_estoque.QTD_ORIGEM /wms_item_sku.qtd_item) qtd_sku
     FROM wms_palete, 
          wms_identif_estoque,
          wms_item_sku
    WHERE wms_palete.empresa =  wms_identif_estoque.empresa
    AND wms_palete.palete =  wms_identif_estoque.palete
    AND wms_identif_estoque.empresa =   wms_item_sku.empresa
    AND wms_identif_estoque.item =   wms_item_sku.item
    AND wms_identif_estoque.sku =   wms_item_sku.sku
    AND wms_palete.empresa = '44' --empresa corrente
    AND wms_palete.palete =  '644090828140540007' -- palete em questão
    GROUP BY wms_identif_estoque.item,
           wms_identif_estoque.QTD_ORIGEM

     

    3.2 - Realizando a Conferência do Palete

    Deverá ser criada uma função WMS6637_confirma_conferencia_palete. Essa função irá abrir as telas necessárias para a realização da conferência do palete levando em conta o modo de conferência configurado no depositante.

    Poderão ser configuradas 4 opções de conferência de palete, que funcionarão da seguinte forma:

    • Somente pede confirmação(Protótipo 6): envia mensagem para o usuário solicitando a confirmação. Respondendo Sim, o sistema irá realizar o processamento da conferência do palete chamando a função WMS6637_processa_conferencia_palete. Respondendo não, volta para a tela inicial do processo.
    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    wms6085_tela_confirmacao(TITULO,SUBTITULO,MENSAGEM). 
    Atualiza todos os itens do palete como F(Finalizado) na tabela WMS_CONF_PALETE_ITEM_DIMENS
    • Informa quantidade total de SKU (Protótipo 7): antes de abrir essa tela, deve ser verificado se algum dos itens do palete não controla SKU. Se existir algum dos itens que não controla SKU, automaticamente, será aberta a tela para informar os itens e quantidade (opção descrita na sequencia), ou seja, apenas quando todos os itens do palete controlarem SKU essa opção poderá ser utilizada.Essa opção envia mensagem para o usuário solicitando a quantidade de SKUs presentes no palete. O mesmo deverá responder a quantidade total e ela será validada em relação a quantidade esperada, criar a função WMS6637_valida_qtd_palete. Quando informada uma quantidade diferente da esperada será enviada uma mensagem informando "Quantidade de SKUs informada é diferente da quantidade esperada" e volta para o campo Qtd SKUs. Quando informada a quantidade esperada de SKUs o sistema irá realizar o processamento da conferência do palete chamando a função WMS6637_processa_conferencia_palete
      Nessa tela o usuário terá as seguintes opções: Esc - Cancelar (limpa as tabelas do palete) e F4 - Concluir (efetiva a conferencia do palete).
    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    --Verifica se algum dos itens do palete não controla SKU
    SELECT DISTINCT 1
     FROM wms_palete, 
          wms_identif_estoque, 
          wms_item_complemento
    WHERE wms_palete.empresa =  wms_identif_estoque.empresa
    AND wms_palete.palete =  wms_identif_estoque.palete
    AND wms_identif_estoque.empresa =   wms_item_complemento.empresa
    AND wms_identif_estoque.item =   wms_item_complemento.item
    AND wms_palete.empresa = '44' --empresa corrente
    AND wms_palete.palete =  '644090828140540007' --palete em questão
    AND controla_sku = 'N' --indicativo de controle de SKU
    
    --Verifica a quantidade de SKUs do palete
    sum dos SKus da tabela WMS_CONF_PALETE_ITEM_DIMENS para o palete, empresa e sequencial da conferência
     __________________________________
    Utilizar  wms6085_help(TITULO,SUBTITULO,MENSAGEM). 
     
    Atualiza todos os itens do palete como F(Finalizado) na tabela WMS_CONF_PALETE_ITEM_DIMENS
    Chama a função WMSR137_processa_conferencia_palete
    • Informa itens e quantidade(Protótipo 8): com essa opção parametrizada, o sistema deverá abrir uma nova tela, onde deverão ser informados os itens e suas respectivas quantidades conferidas.A unidade de medida da quantidade será solicitada com base no parâmetro principal do processo de conferência. (Não informa, informa quantidade em itens, e informa quantidade em SKUs). Ao informar um item e quantidade será validado se o item já não foi conferido anteriormente (Situação do item é F) . A cada item conferido será verificado se ainda existem itens no palete pendentes de conferência. Caso exista, volta para a tela de itens, caso contrário, informa que "Todos os itens do palete já foram conferidos". Após todos os itens conferidos, o usuário poderá confirmar a conferência do palete que irá chamar a função  WMS6637_processa_conferencia_palete para conferir o palete. 
      Nessa tela o usuário terá as seguintes opções: Esc - Cancelar (limpa as tabelas do palete) e F4 - Concluir (efetiva a conferencia do palete)
    Somente pede confirmação: após bipar o palete, envia mensagem para o usuário "Confirma a conferência do palete XXXXXXX como XX SKUs?" já com o campo de resposta como S. Em caso afirmativo, todos os itens do palete serão listados como conferidos. Caso contrário, volta para a tela principal do processo de conferência em questão.
    Informa quantidade total de SKUapós bipar o palete, abre tela onde deverá ser informada a quantidade total de SKUs do palete independente do item. Não será permitida informar uma quantidade de caixas diferentes da que compõe o palete. Não será exibida a quantidade esperada em nenhuma tecla, caso seja necessário identificar essa informação deverá ser utilizado o WMS6170(desktop) ou WMS6181(coletor) pesquisando pelo palete. Se o palete possuir algum item que não controla SKU, automaticamente, caso essa opção esteja marcada, será utilizada a opção 3"Informa itens e quantidade".
  • Informa itens e quantidadeapós bipar o palete, abre uma tela para informar o código do item e na sequencia a quantidade total do mesmo no palete. A cada item será validado essa informação e não poderá ser informado novamente o mesmo código do item. Apenas quando todos os itens do palete forem conferidos é que o estoque do palete será conferido. Caso ocorra uma interrupção ou queda de sinal nesse processo, será necessário iniciar novamente a conferência do palete.
  • Os parâmetros serão gravados na tabela WMS_PARAMETRO_SEPARACAO, conforme descrição realizada na parte "Dicionário de dados", e na sessão protótipo são exibidas as imagens de como ficará a tela do contrato - separação/conferência (Protótipo 1 e Protótipo 2).

    1.2 - Ajustes na cópia do contrato - WMS60030

    Alterar a função wms60030_copia_contrato para ler os novos campos criados relacionados ao contrato de origem da cópia e gravar os valores lidos para para o contrato destino da cópia.

    2 - Ajustes na rotina de separação - WMS6214

    No processo de separação, quando acessar a tela indicando a origem da separação, deverá solicitar o palete antes da etiqueta de estoque.

    Na função wms6214_inicia_movimento existem duas telas que são chamadas:

    • WMS62143 - Etiqueta Origem - Controla SKU 
    • WMS6214k - Etiqueta Origem - Não Controla SKU. 

    Criar duas novas telas com base nas atuais, onde serão excluídos os campos área e tipo de estoque que são exibidos atualmente para permitir a inclusão do campo palete destino, conforme protótipo 3 e 4:

    Para realizar a validação da utilização do palete informado, criar duas funções dentro da nova RNL WMSRXX1:

    • WMSRXX1_valida_palete: será chamada após informar o palete(after field do campo). Valida apenas o palete informado, sem saber a relação dele com o estoque que será colocado sobre o mesmo. Deverá ser validado se o mesmo pode ser utilizado seguindo as mesmas regras do WMS6182, campo palete receptor. 

      Bloco de código
      titleExemplo da validação
      collapsetrue
      1) Remover enter no campo 
       
      Criar função idêntica a essa dentro da RNL 
      CALL wms6182_remove_enter(m_identif_palete) 
      RETURNING m_identif_palete   
       
      2) Verificar caracteres especiais 
      
      IF m_identif_palete MATCHES "*'*"
                 OR m_identif_palete MATCHES "*""*"
                 OR m_identif_palete MATCHES "*%*"
                 OR m_identif_palete MATCHES "*(*"
                 OR m_identif_palete MATCHES "*)*"
                 OR m_identif_palete MATCHES "*=*"
                 OR m_identif_palete MATCHES "*|*"
                 OR m_identif_palete MATCHES "*<*"
                 OR m_identif_palete MATCHES "*>*" THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'Palete receptor invalido.'
                    LET m_msg        = 'Nao e permitido informar caracteres especiais no palete receptor.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF 
       
      3) Verificação de inventário no palete 
      #rotina para verificar se o palete esta em processo de inventario 
              IF wmsr51_f2_verifica_emp_palet(p_cod_empresa, m_identif_palete) THEN
                 LET m_titulo     = 'Divis/Fusao estoque'
                 LET m_sub_titulo = ''
                 CALL wms6085_help(m_titulo, m_sub_titulo, 'Nao e possivel realizar divisao/fusao de estoque, pois o palete possui identificacoes de estoque que estao em processo de inventario.')
                 CURRENT WINDOW IS w_WMS6182_principal
                 NEXT FIELD m_identif_palete
              END IF 
       
      4) Verificar se o palete informado é curinga ou permite usar qualquer etiqueta (Cria curinga com o palete) 
      # Validar se o receptor é uma etiqueta curinga
                 IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_palete,TRUE,1) THEN
                    # Se atender estas condições a etiqueta não pode ser utilizada
                    IF wmsm53_wms_etiq_curinga_get_dat_habil() IS NULL THEN
                       LET m_titulo     = 'Divis/Fusao estoque'
                       LET m_sub_titulo = 'Palete receptor invalido'
                       LET m_msg        = 'A etiqueta informada nao esta habilitada.'
                       CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                       CURRENT WINDOW IS w_WMS6182_principal
                       NEXT FIELD m_identif_palete
                    END IF
                 ELSE
                    IF m_indica_aceita_etiq_nao_cadas = 'S' THEN
                       IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                          LET l_endereco         = wmsm53_wms_etiq_curinga_get_endereco()
                       END IF
                       IF wmsm133_wms_identif_estoque_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                          CALL wmsm53_wms_etiq_curinga_set_ctr_ent_sai_veic(wmsm133_wms_identif_estoque_get_ctr_ent_sai_veic_docum())
                          CALL wmsm53_wms_etiq_curinga_set_deposit(wmsm133_wms_identif_estoque_get_depositante())
                       END IF
                       CALL wmsm53_wms_etiq_curinga_set_dat_habil(TODAY)
                       CALL wmsm53_wms_etiq_curinga_set_empresa(p_cod_empresa)
                       CALL wmsm53_wms_etiq_curinga_set_endereco(l_endereco)
                       CALL wmsm53_wms_etiq_curinga_set_etiq_curinga(m_identif_palete)
                       CALL wmsm53_wms_etiq_curinga_set_etiq_pallet(m_identif_palete)
                       CALL wmsm53_wms_etiq_curinga_set_identif('P')
                       CALL wmsm53_wms_etiq_curinga_set_item(m_cod_item)
                       CALL wmsm53_wms_etiq_curinga_set_livre_1(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_2(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_3(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_4(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_5(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_livre_6(NULL)
                       CALL wmsm53_wms_etiq_curinga_set_lote_geracao(1)
                       CALL wmsm53_wms_etiq_curinga_set_sku(l_sku)
                       CALL wmsm53_wms_etiq_curinga_set_utiliz('S')
                       #LET m_etiqueta_tem_estoque = FALSE
                       IF NOT wmst53_wms_etiq_curinga_inclui(TRUE,1) THEN
                          LET m_titulo     = 'Divis/Fusao estoque'
                          LET m_sub_titulo = 'Etiqueta curinga'
                          LET m_msg        = 'Problemas na inclusao da etiqueta curinga.'
                          CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                          CURRENT WINDOW IS w_WMS6182_principal
                          NEXT FIELD m_identif_palete
                       END IF
                    ELSE
                       LET m_titulo     = 'Divis/Fusao estoque'
                       LET m_sub_titulo = 'Etiqueta curinga'
                       LET m_msg        = 'Nova identificacao de estoque nao cadastrada como etiqueta curinga.'
                       CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                       CURRENT WINDOW IS w_WMS6182_principal
                       NEXT FIELD m_identif_palete
                    END IF
                 END IF
              END IF
      
    • WMSRXX1_valida_palete_com_id: antes de executar o processamento, deverá ser validado novamente, se foi possível utilizar o palete para o processo em questão, similar ao que é realizado no WMS6182 após preencher todos os campos da tela. Nesse ponto, será validado o palete e a ID que o mesmo será atrelado, seja ela física ou virtual.

      Bloco de código
      titleExemplo da validação
      collapsetrue
      Fazer novamente todas as validações da função WMSRXX1_valida_palete   
       
      Utilizando já o palete e ID que será colocada no palete   
       
      1) Verificar se o Palete já está sendo usado como ID de estoque de outra ID que não a separada
      WHENEVER ERROR CONTINUE
                 SELECT DISTINCT 1
                   FROM estoque_lote_ender
                  WHERE estoque_lote_ender.cod_empresa = p_cod_empresa
                    AND estoque_lote_ender.identif_estoque = m_identif_palete
                    AND qtd_saldo > 0
                 WHENEVER ERROR STOP
                 IF sqlca.sqlcode = 0 THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'ID cedente'
                    LET m_msg        = 'Palete unico nao pode receber outra ID.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF 
      
      2) Verificar depositante do palete 
      IF wmsm117_wms_palete_get_deposit() <> m_deposit THEN
                    LET m_titulo     = 'Divis/Fusao estoque'
                    LET m_sub_titulo = 'Palete receptor invalido.'
                    LET m_msg        = 'Palete receptor informado nao pertence ao mesmo depositante da identificacao cedente.'
                    CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                    CURRENT WINDOW IS w_WMS6182_principal
                    NEXT FIELD m_identif_palete
                 END IF
       

       

    O palete informado nesse processo será gravado no campo palete da tabela wms_identif_estoque da identificação de estoque que está sendo separada no movimento.

    Ajustar o programa para executar o processo utilizado GET e SET sem precisar passar mais parâmetros para as funções.

    As funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque deverão utilizar o palete informado em tela para a criação do palete.

    É necessário alterar também a  wmsr41_separacao_picking que chama as funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque.

    Verificar parametrização que deve ser passada para a função: wmsr18_set_m_verifica_divisao_estoque

    OBS: apenas lembrar que ao consultar o estoque no WMS6170 pelo equipamento ou palete o mesmo poderá ser visualizado conforme executado na separação.

    3 - Ajustes na rotina de conferência - WMS6242

    Em todos os programas de conferência, na tela de processamento, no campo EAN/SKU, será possível bipar um palete para realizar a conferência automática do mesmo. 

    Essa validação apenas será chamada se o parâmetro no contrato estiver ativo, caso contrário, processo atual.

    3.1 - Validações no palete informado, antes de realizar a conferência

    Para realizar a validação da utilização do palete informado criar uma nova função dentro da RNL WMSRXX2. 

     WMSRXX2_valida_palete_conferencia: essa função será responsável por validar o palete antes de efetivamente realizar a conferência do mesmo.

    Todas as validações inviabilizam a conferência do palete e enviam mensagem informando o motivo. Deverão ser validados os seguintes pontos:

    • Verificar se existe alguma reserva no palete que não está relacionada o solicitação de carga/plano que está sendo conferido. Mensagem: Não é possível realizar a conferencia desse palete. Existe reserva para mais de um documento/plano.
    • Verificar se existe algum estoque que não está reservado. Mensagem:  Não é possível realizar a conferencia desse palete. Existe estoque sem reserva.
    • Verificar se todos os itens possuem conferência pendente. Mensagem: Não é possível realizar a conferencia desse palete. Nem todos os itens são necessários para o fechamento da conferência.
    • Verificar se o palete não foi conferido anteriormente. Mensagem: Não é possível realizar a conferencia desse palete. Esse palete já foi conferido.
    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    1) Verifica se o palete possui alguma reserva para outra SC/plano
    SELECT DISTINCT 1 
     FROM wms_palete
    INNER JOIN wms_identif_estoque
       ON wms_identif_estoque.empresa =  wms_palete.empresa
      AND wms_identif_estoque.palete =  wms_palete.palete
    INNER JOIN est_loc_reser_end
       ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa
      AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
    WHERE wms_palete.empresa = '44' -- Empresa corrente
    AND wms_palete.palete  = '644161110093108381' --Palete em questão
    
    --Essa parte final, deve levar em conta o tipo da conferencia - Documento ou plano
    -- Esse para quando a conferência for por documento
    AND EXISTS (SELECT 1  FROM wms_solic_carga_item_reserva
                 WHERE wms_solic_carga_item_reserva.empresa = est_loc_reser_end.cod_empresa
                   AND wms_solic_carga_item_reserva.reserva = est_loc_reser_end.num_reserva
                   AND wms_solic_carga_item_reserva.tip_reserva = 'E' -- Apenas reservas de estoque
                   AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre <> 73247) -- Número da SC que está sendo conferida
     
    -- Esse para quando a conferência for por plano
    AND EXISTS (SELECT 1  
      FROM wms_solic_carga_item_reserva
     WHERE wms_solic_carga_item_reserva.empresa = est_loc_reser_end.cod_empresa
       AND wms_solic_carga_item_reserva.reserva = est_loc_reser_end.num_reserva
       AND wms_solic_carga_item_reserva.tip_reserva = 'E' -- Apenas reservas de estoque
       AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre NOT IN (
    SELECT wms_plano_separacao_carga.trans_solicitacao_carga_mestre 
    FROM wms_plano_separacao_carga, wms_conferencia_separacao
    WHERE wms_plano_separacao_carga.EMPRESA = 'XX'
    AND wms_plano_separacao_carga.PLANO_SEPARACAO = 99
    AND wms_plano_separacao_carga.EMPRESA = wms_conferencia_separacao.empresa
    AND wms_plano_separacao_carga.TRANS_SOLICITACAO_CARGA_MESTRE= wms_conferencia_separacao.TRANS_SOLICITACAO_CARGA_MESTRE
    AND wms_conferencia_separacao.conferencia_plano = 'S'  )-- nem todas as solicitações de carga de um plano podem ser por plano
     
    2) -- Verifica se o palete possui alguma quantidade que não está reservada 
    SELECT DISTINCT 1 FROM wms_palete 
     INNER JOIN wms_identif_estoque 
        ON wms_identif_estoque.empresa = wms_palete.empresa 
       AND wms_identif_estoque.palete = wms_palete.palete 
     INNER JOIN estoque_lote_ender 
        ON estoque_lote_ender.cod_empresa = wms_identif_estoque.empresa 
       AND estoque_lote_ender.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN est_loc_reser_end 
        ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa 
       AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN estoque_loc_reser 
        ON est_loc_reser_end.cod_empresa = estoque_loc_reser.cod_empresa 
       AND est_loc_reser_end.num_reserva = estoque_loc_reser.num_reserva 
     WHERE wms_palete.empresa = '44' -- Empresa corrente 
       AND wms_palete.palete = '644090828140540007' --Palete em questão 
     GROUP BY estoque_lote_ender.qtd_saldo 
    HAVING estoque_lote_ender.qtd_saldo <> sum(estoque_loc_reser.qtd_reservada)
     
    3) Verificar se todos os itens possuem conferência pendente
    - Cada processo de conferência terá sua validação diferenciada. 
    - Ideia é fazer um cursor com os itens/dimensionais do palete e validar se os mesmos podem ser conferidos utilizando a função padrão de cada tipo de conferencia   
    FAZER DESCRITIVO
     
    4) Verificar se o palete não foi conferido anteriormente
    SELECT 1 
      FROM WMS_CONFERENCIA_PALETE
     WHERE empresa = 'XX'
       AND palete = 'XXXXXXXXXXXXXXXXXX'
       AND sequencial_conferencia = 99

    3.2 - Realizando a conferência do palete

    Deverá ser criada uma função WMSRXX2_confirma_conferencia_palete que será utilizada em todos os processos de conferência. Essa função irá abrir as telas necessárias para a realização da conferência do palete, sendo ele coletor ou desktop e levando em conta o modo de conferência configurado no depositante.

    Poderão ser configuradas 3 opções de conferência de palete, que funcionarão da seguinte forma:

    • Somente pede confirmação(Protótipo 5): envia mensagem para o usuário solicitando a confirmação. Respondendo Sim, o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete. Respondendo não, volta para a tela inicial do processo de conferência em questão.
    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    Para os programas utilizar a mensagem padrão:
    Coletor: wms6085_tela_confirmacao(TITULO,SUBTITULO,MENSAGEM). O campo titulo deve ser preenchido com o nome de cada programa chamador
    Desktop: utilizar mensagem em tela (log0040_confirm(6,10,MENSAGEM)), já com a opção SIM selecionada
    Após o código do item, fazer as seguintes verificações:
    - Item pertence ao palete (verifica se encontra registro para o item na WMS_CONF_PALETE_ITEM_DIMENS)
    - Toda a quantidade do item já foi conferido (quando na tabela WMS_CONF_PALETE_ITEM_DIMENS confronta quantidade prevista x já realizada x informada)
     
    Apos informar a quantidade de itens
    --Validação da quantidade e situação do itens no palete com base na tabela WMS_CONF_PALETE_ITEM_DIMENS
    --Ajusta a quantidade e situação do item
    • Informa itens, quantidade e dimensionais (Protótipo 9): o funcionamento dessa opção é idêntico a opção anterior, incluindo a possibilidade de informar os dimensionais o item/sku e quantidade informado anteriormente, os dimensionais serão solicitados em um array no final da tela para simplificar o processo. Será levando em conta a parametrização de controla/restringe dimensionais. Nessa tela o usuário terá as seguintes opções: Esc - Cancelar (limpa as tabelas do palete) e F4 - Concluir (efetiva a conferencia do palete).Informa quantidade total de SKU (Protótipo 6): antes de abrir essa tela, deve ser verificado se algum dos itens do palete não controla SKU. Se existir algum dos itens que não controla SKU, automaticamente, será aberta a tela para informar os itens e quantidade (opção descrita na sequencia), ou seja, apenas quando todos os itens do palete controlarem SKU essa opção poderá ser utilizada.Essa opção envia mensagem para o usuário solicitando a quantidade de SKUs presentes no palete. O mesmo deverá responder a quantidade total e ela será validada em relação a quantidade esperada, criar a função WMSRXX2_valida_qtd_palete. Quando informada uma quantidade diferente da esperada será enviada uma mensagem informando "Quantidade de SKUs informada é diferente da quantidade esperada" e volta para o campo Qtd SKUs. Quando informada a quantidade esperada de SKUs o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete
    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    --Verifica se algum dos itens do palete não controla SKU
    SELECT DISTINCT 1
     FROM wms_palete, 
          wms_identif_estoque, 
          wms_item_complemento
    WHERE wms_palete.empresa =  wms_identif_estoque.empresa
    AND wms_palete.palete =  wms_identif_estoque.palete
    AND wms_identif_estoque.empresa =   wms_item_complemento.empresa
    AND wms_identif_estoque.item =   wms_item_complemento.item
    AND wms_palete.empresa = '44' --empresa corrente
    AND wms_palete.palete =  '644090828140540007' --palete em questão
    AND controla_sku = 'N' --indicativo de controle de SKU
    
    --Verifica a quantidade de SKUs do palete
    SELECT sum(wms_identif_estoque.QTD_ORIGEM /wms_item_sku.qtd_item) 
     FROM wms_palete, 
          wms_identif_estoque,
          wms_item_sku
    WHERE wms_palete.empresa =  wms_identif_estoque.empresa
    AND wms_palete.palete =  wms_identif_estoque.palete
    AND wms_identif_estoque.empresa =   wms_item_sku.empresa
    AND wms_identif_estoque.item =   wms_item_sku.item
    AND wms_identif_estoque.sku =   wms_item_sku.sku
    AND wms_palete.empresa = '44' --empresa corrente
    AND wms_palete.palete =  '644090828140540007' -- palete em questão
     __________________________________
    Para os programas utilizar a mensagem padrão:
    Coletor: wms6085_help(TITULO,SUBTITULO,MENSAGEM). O campo titulo deve ser preenchido com o nome de cada programa chamador
    Desktop: log0030_processa_mensagem

     

    • Informa itens e quantidade: com essa opção parametrizada, o sistema deverá abrir uma nova tela, onde deverão ser informados os itens e suas respectivas quantidades conferidas. Ao informar um item e quantidade será validado se é a mesma é igual ao esperado, se o item já não foi conferido antes e ao final desse processo será gravado um registro na  tabela WMS_CONFERENCIA_PALETE_ITEM

     

    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    --Validação da quantidade do SKU no palete
    SELECT wms_identif_estoque.item, sum(wms_identif_estoque.QTD_ORIGEM) --pode ter mais de uma ID do mesmo item no palete
     FROM wms_palete, 
          wms_identif_estoque,
          wms_item_sku_cod_barras
    WHERE wms_palete.empresa =  wms_identif_estoque.empresa
    AND wms_palete.palete =  wms_identif_estoque.palete
    AND wms_identif_estoque.empresa =   wms_item_sku_cod_barras.empresa
    AND wms_identif_estoque.item =   wms_item_sku_cod_barras.item
    AND wms_identif_estoque.sku =   wms_item_sku_cod_barras.sku
    AND wms_identif_estoque.DEPOSITANTE =   wms_item_sku_cod_barras.depositante
    AND wms_palete.empresa = '44' --empresa corrente
    AND wms_palete.palete =  '644090828140540007' -- palete em questão
    AND wms_item_sku_cod_barras.cod_barras = '100332' --SKU informado na conferência
    group by wms_identif_estoque.item
     
    se sum(wms_identif_estoque.QTD_ORIGEM) <> qtd informada envia mensagem para indicar que o item não pode ser conferido.
    
    
    -- valida se o item já foi conferido
    SELECT 1 
    FROM WMS_CONFERENCIA_PALETE_ITEM
    WHERE empresa = 'XX'
    AND sequencial_conferencia = 99
    AND item = 'XXXX'-- item ERP pego no SQL anterior
     
    Inclusao do registro na tabela WMS_CONFERENCIA_PALETE_ITEM, com situação

     

    envia mensagem para o usuário solicitando a confirmação. Respondendo Sim, o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete. Respondendo não, volta para a tela inicial do processo de conferência em questão.

     

     

     

     3.3 - Realizando a conferência do palete - Função de conferência

    A função WMSRXX2_processa_conf_palete deve ser criada para realizar efetivamente a conferencia de todos os itens do palete. Ela poderá ser chamada por qualquer um dos processos de conferência e irá retornar apenas

    Quando realizada a conferência do palete, o mesmo deverá ser gravado nas novas tabelas para evitar que seja conferido mais vezes

     

    Travar reiniciar a conferencia de itens

    Travar retirar itens de volumes caso seja necessário utilizar a quantidade de itens do palete

    Ao reiniciar a conferencia geral, deve também excluir os paletes conferidos

    Sequencial de conferencia 2 - Após o cancelamento

     

     

    Após o código do item, fazer as seguintes verificações:
    - Item pertence ao palete (verifica se encontra registro para o item na WMS_CONF_PALETE_ITEM_DIMENS)
    - Toda a quantidade do item já foi conferido (quando na tabela WMS_CONF_PALETE_ITEM_DIMENS confronta quantidade prevista x já realizada x informada)
     
    Apos informar a quantidade de itens
    --Validação da quantidade e situação do itens no palete com base na tabela WMS_CONF_PALETE_ITEM_DIMENS
    --Ajusta a quantidade e situação do item


     3.3 - Realizando a Conferência do Palete 

    A função WMSR138_processa_conferencia_palete deve ser criada para realizar efetivamente a conferencia de todos os itens do palete. Ela será chamada ao final de todos os modos de conferência e irá retornar o status final do processo. Essa função deverá fazer um cursor com base no palete e pegar as informações de itens/quantidade/dimensionais do mesmo e chamar a função wmsr35_inclui_item_volume_sem_split. Caso não seja possível fazer esse processo para todos os itens do palete, serão excluídas todas as informações do palete nas tabelas do processo de conferência por palete e será retornado que não foi possível realizar a conferência do palete. Independente de sucesso ou fracasso, ao final desse processo será retornado para a tela de código de barras do volume para continuar/concluir o processo de conferência.

    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    Serão incluídos todos os itens do palete no volume anteriormente aberto, e o volume será fechado
    Ajustar situacao_palete para F na tabela WMS_CONFERENCIA_PALETE e atualizar o código do volume exped onde foram incluídos os itens.
    Volta para a tela Etiqueta de volume
    Verifica se existem itens que estão pendentes para conferencia. Caso não exista, exibir a mensagem de que todos os itens já foram conferidos. Possibilidade de concluir a conferencia

    4 - Impressão da Quantidade de Volumes na Nota Fiscal

    Atualmente a quantidade de volumes da nota fiscal é fixa com base nas regras apresentadas na FAQ: http://tdn.totvs.com/x/MymFD

    Com essa nova parametrização, serão criadas novas possibilidade de calcular os volumes impresso na nota fiscal. Os valores padrões foram deixados como o sistema calcula atualmente.

    Deverá ser ajustada a função wmsr56_busca_peso_volume_solic_carga para calcular a quantidade de volumes tendo por base o parâmetro do contrato e o tipo da nota fiscal. 

    A FAQ http://tdn.totvs.com/x/xyYaDg, explica como configurar para a solicitação de faturamento utilizar ou não a quantidade de volumes do WMS.

    Quando o parâmetro wms_busca_info_volume estiver como S, ajustar a função vdp1285_busca_info_volumes para calcular os volumes de maneira idêntica a função wmsr56_busca_peso_volume_solic_carga.

     

    Protótipo de Tela - Contrato - Protótipo 1

    Image Added 

    Protótipo de Tela - Contrato - Protótipo 2

    Image Added

    Protótipo de Tela - Contrato - Protótipo 3

    Image Added

    Protótipo de Tela - Separação - Protótipo 4 e Protótipo 5

    Image Added

    Protótipo de Tela - Conferência palete: modo confirma - Protótipo 6

    Image Added            

                                                        






     

     

    Protótipo de Tela - Conferência palete: modo quantidade de SKUS - Protótipo 7

    Image Added                                                         

    Protótipo de Tela - Conferência palete: itens e quantidade - Protótipo 8

    Image Added

     

    Protótipo de Tela - Conferência palete: itens, quantidade e dimensionais - Protótipo 9

    Image Added

     

    Dicionário de Dados

    TABELA: WMS_PARAMETRO_SEPARACAO
    CampoDescriçãoTipo

    Obrigatório

    Campo novo?
    EmpresaCódigo da empresaCHAR(02)
    •   
    Não
    DepositanteCódigo do depositanteCHAR(15)
    •   
    Não
    ....    
    informa_quantidade_conferenciaIndica como será realizada a conferência dos itensCHAR(01)
    •   
    Não
    permt_plnjt_endereco_nao_docaIndica se permite ou não planejar a conferência para endereços diferentes de doca/statgeCHAR(01)
    •   
    Não
    ...    

    inf_palete_destino_separacao

    Informa o palete destino no processo de separaçãoCHAR(01)
    •   
    Sim
    modo_conf_palete

    Indica o modo que será realizada a conferência do palete - Valores possíveis:

    1 - Somente pede confirmação

    2 - Informa quantidade total de SKUs (default)

    3- Informa itens e quantidades

    4 - Informa itens, quantidades e dimensionais

    CHAR(01)
    •   
    Sim
    .....    
    or_qtd_vol_nf_ret_sim_me

    Origem quantidade de volumes nota de Retorno simbólico depositante mesmo estado

    Valor default : 1

    Para todas as notas o valor pode ser:

    0 - Fixo 0
    1 - Fixo 1
    2 - Quantidade de volumes digitada na solicitação de carga
    3 - Quantidade de itens expedidos na solicitação de carga
    4 - Quantidade de SKUs expedidos na solicitação de carga
    5 - Quantidade de volumes gerados no processo de conferência
    6 - Quantidade de paletes expedidos na solicitação de carga

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_ret_sim_oe

    Origem quantidade de volumes nota de Retorno simbólico depositante outro estado

    Valor default : 1

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_ret_dep_me

    Origem quantidade de volumes nota de Retorno depositante mesmo estado

    Valor default : 5

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_ret_dep_oe

    Origem quantidade de volumes nota de Retorno depositante outro estado

    Valor default : 5

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_reg_esp

    Origem quantidade de volumes nota de Regime especial

    Valor default : 1

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_conta_ordem

    Origem quantidade de volumes nota de Conta e ordem

    Valor default : 5

    CHAR(01)
    •   
    Sim
    or_qtd_vol_nf_solic_fat

    Origem quantidade de volumes Solicitação de faturamento do VDP

    Valor default : 5

    CHAR(01)
    •   
    Sim
    TABELA CRIADA: WMS_CONFERENCIA_PALETE
    NOME
    DESCRIÇÃO
    TIPOChave PrimáriaOBRIGATÓRIO
    empresaEmpresaCHAR(02)
    •   
    •   
    trans_solicitacao_carga_mestreNúmero da Solicitação de cargaINTEGER
    •   
    •   
    sequencial_conferenciaSequencial da conferenciaINTEGER
    •   
    •   
    paleteCódigo do palete conferidoCHAR(20)
    •   
    •   
    situacao_paleteSituação da conferência do palete. Opções A(andamento) F(finalizada)CHAR(01)
    •   
    •   
    volume_expedNúmero do volume exped onde será colocado o paleteINTEGER
    •   
    •   
    TABELA CRIADA: WMS_CONF_PALETE_ITEM_DIMENS
    NOME
    DESCRIÇÃO
    TIPOChave primáriaOBRIGATÓRIO
    empresaEmpresaCHAR(02)
    •   
    •   
    sequencial_dimensionalSequencial único de conferencia por dimensionalSERIAL
    •   
    •   
    trans_solicitacao_carga_mestreNúmero da Solicitação de cargaINTEGER
    •   
    •   
    sequencial_conferenciaSequencial da conferenciaINTEGER
    •   
    •   
    paleteCódigo do palete conferidoCHAR(20)
    •   
    •   

    item

    Código do item ERPCHAR(15)
    •   
    •   
    situacaoSituação da conferência do item. Opções: Opções P(pendente) F(finalizada)CHAR(01)
    •   
    •   
    qtd_itemQuantidade de itens no palete - Total a ser conferidoDECIMAL(15,3)
    •   
    •   
    qtd_item_conferidaQuantidade de itens no palete - Total já conferidoDECIMAL(15,3)
    •   
    •   
    qtd_skuQuantidade de SKus do item no palete - Total a ser conferidoDECIMAL(15,3)
    •   
    •   
    qtd_sku_conferidaQuantidade de SKus do item no palete - Total já conferidoDECIMAL(15,3)
    •   
    •   
    situacaoSituação da conferência do item. Opções: Opções P(pendente) F(finalizada)CHAR(01)
    •   
    •   
    loteLote do estoqueCHAR(15)
    •   
    •   
    volumeVolume do estoqueINTEGER
    •   
    •   
    data_producaoData de produção do estoqueDATE
    •   
    •   
    data_validadeData de validade do estoqueDATE
    •   
    •   
    pecaNúmero de peça do estoqueCHAR(15)
    •   
    •   
    serieNúmero de série do estoqueCHAR(25)
    •   
    •   
    comprimentoComprimento do estoqueDECIMAL(15,3)
    •   
    •   
    larguraLargura do estoqueDECIMAL(15,3)
    •   
    •   
    alturaAltura do estoqueDECIMAL(15,3)
    •   
    •   
    diametroDiâmetro do estoqueDECIMAL(15,3)
    •   
    •   

    Criar um índice com os seguintes campos: empresa, trans_solicitacao_carga_mestre,sequencial_conferencia, palete

    Protótipo de Tela - Contrato - Protótipo 1

    Image Removed 

    Protótipo de Tela - Contrato - Protótipo 2

    Image Removed

    Protótipo de Tela - Separação - Protótipo 3 e Protótipo 4

    Image Removed

    Protótipo de Tela - Conferencia palete: modo confirma - Protótipo 5

    Image Removed            

                                                        Image Removed

     

     

    Protótipo de Tela - Conferencia palete: modo quantidade de SKUS - Protótipo 5

    Image Removed                                                             Image Removed

     

     

     

     

     

     

    Dicionário de Dados

     

    TABELA: WMS_PARAMETRO_SEPARACAO
    CampoDescriçãoTipo

    Obrigatório

    Campo novo?
    EmpresaCódigo da empresaCHAR(02)
    •   
    Não
    DepositanteCódigo do depositanteCHAR(15)
    •   
    Não
    ....    
    informa_quantidade_conferenciaIndica como será realizada a conferência dos itensCHAR(01)
    •   
    Não
    permt_plnjt_endereco_nao_docaIndica se permite ou não planejar a conferência para endereços diferentes de doca/statgeCHAR(01)
    •   
    Não
    ...    

    inf_palete_destino_separacao

    Informa o palete destino no processo de separaçãoCHAR(01)
    •   
    Sim
    permite_conf_paletePermite realizar a conferência informando o paleteCHAR(01)
    •   
    Sim
    modo_conf_paleteIndica o modo que será realizada a conferência do paleteCHAR(01)
    •   
    Sim
    TABELA CRIADA: WMS_CONFERENCIA_PALETE
    NOME
    DESCRIÇÃO
    TIPOChave PrimáriaOBRIGATÓRIO
    empresaEmpresaCHAR(02)
    •   
    •   
    paleteCódigo do palete conferidoCHAR(18)
    •   
    •   
    sequencial_conferenciaSequencial da conferenciaINTEGER
    •   
    •   
    situacao_paleteSituação da conferência do palete. Opções A(andamento) F(finalizada)CHAR(01)
    •   
    •   

    trans_solicitacao_carga_mestre

    Número da Solicitação de carga, quando a conferência é por documentoINTEGER
    •   
    •   
    plano_separacaoNúmero do plano de separação, quando conferência é por planoINTEGER
    •   
    •   
    TABELA CRIADA: WMS_CONFERENCIA_PALETE_ITEM
    NOME
    DESCRIÇÃO
    TIPOChave primáriaOBRIGATÓRIOempresaEmpresaCHAR(02)
    •   
    •   
    paleteCódigo do palete conferidoCHAR(18)
    •   
    •   
    sequencial_conferenciaSequencial da conferenciaINTEGER
    •   
     

    item

    Código do item ERPCHAR(15)
    •   
     

     

     Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.