Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAWMS - Gestão de Armazenagem |
Função: | - |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
Este Ponto de Entrada permite que a operação de um armazém receba os produtos unitizados e realize o processo de conferência do recebimento, sem que haja
a necessidade de abrir os invólucros.
Localizado logo após a leitura e a validação do tipo e identificador do unitizador.
Nome | Tipo | Descrição |
---|---|---|
cEmbarque | Caractere | Código de montagem da conferência |
cTipUni | Caractere | Tipo do unitizador |
cIdUnit | Caractere | ID do unitizador |
cArmazem | Caractere | Armazém da conferência |
cEndereco | Caractere | Endereço da conferência |
Nome | Tipo | Descrição |
---|---|---|
cPrdOri | Caractere | Código do produto origem¹ |
cProduto | Caractere | Código do produto |
cLoteCtl | Caractere | Número de lote do produto |
cSubLote | Caractere | Número de sublote do produto |
nQtConf | Numérico | Quantidade conferida |
¹ Quando não for um produto componente, é o próprio código do produto.
Os valores retornados pelo PE devem possuir o mesmo tamanho dos campos correspondentes na tabela DCZ. Caso contrário, poderão ser gerados error.logs ou inconsistências na base de dados. |
12.1.17 e superiores.
Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização.
#INCLUDE "PROTHEUS.CH" User Function WV090UNI() Local cEmbarque := PARAMIXB[1] Local cTipUni := PARAMIXB[2] Local cIdUnit := PARAMIXB[3] Local cArmazem := PARAMIXB[4] Local cEndereco := PARAMIXB[5] Local cSeekZZZ := "" Local nTamPrd := TamSX3("DCZ_PROD" )[1] Local nTamLot := TamSX3("DCZ_LOTE" )[1] Local nTamSub := TamSX3("DCZ_SUBLOT")[1] Local aItensUni := {} Local aItem := {} // Busca o documento que faz parte da conferência DCX->(DbSetOrder(1)) If DCX->(DbSeek(xFilial("DCX")+cEmbarque)) cSeekZZZ := xFilial("ZZZ")+DCX->DCX_DOC+DCX->DCX_SERIE+DCX->DCX_FORNEC+DCX->DCX_LOJA+cIdUnit // Busca na tabela específica todos os itens que fazem parte daquele documento + etiqueta ZZZ->(DbSetOrder(1)) ZZZ->(DbSeek(cSeekZZZ)) While !ZZZ->(Eof()) .And. ZZZ->ZZZ_FILIAL+ZZZ->ZZZ_DOC+ZZZ->ZZZ_SERIE+ZZZ->ZZZ_FORNEC+ZZZ->ZZZ_LOJA+ZZZ->ZZZ_IDUNIT == cSeekZZZ // Adiciona o item relacionado à etiqueta no array auxiliar AAdd(aItem,PadR(ZZZ->ZZZ_PRDORI ,nTamPrd)) AAdd(aItem,PadR(ZZZ->ZZZ_PRODUT ,nTamPrd)) AAdd(aItem,PadR(ZZZ->ZZZ_LOTECTL,nTamLot)) AAdd(aItem,PadR(ZZZ->ZZZ_SUBLOT ,nTamSub)) AAdd(aItem,ZZZ->ZZZ_QUANT) // Adiciona o item no array principal de retorno AAdd(aItensUni,aItem) ZZZ->(DbSkip()) EndDo EndIf Return aItensUni |
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |