Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAWMS - Gestão de Armazenagem |
Função: | WMSV090 - Conferência do Recebimento (Coletor) |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
Este Ponto de Entrada permite efetuar as validações complementares do produto na Conferência de Recebimento.
Localizado logo após as validações do código do produto, que são padrão WMS.
Nome | Tipo | Descrição |
---|---|---|
cConferen | Caractere | Código da conferência de recebimento |
cProduto | Caractere | Produto a ser conferido |
cLote | Caractere | Lote a ser conferido* |
cSublote | Caractere | Sub-lote a ser conferido* |
nQuant | Numérico | Quantidade a ser conferida* |
* Apenas quando o código de barras do produto retornar estes elementos. Do contrário, sempre serão recebidos em branco/zerados.
Lógico - .T. ou .F.
12.1.7 ou superiores
Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização
#INCLUDE "PROTHEUS.CH" User Function WV090VLP() Local aAreaAnt := GetArea() Local lRet := .T. Local cEmbarque := PARAMIXB[1] Local cProduto := PARAMIXB[2] Local cLote := PARAMIXB[3] Local cSubLote := PARAMIXB[4] Local nQuant := PARAMIXB[5] Local cAliasQry := GetNextAlias() Local cQuery := "" Local aTamSX3 := {} cQuery := "SELECT SUM(DCY_QTORIG) DCY_QTORIG," cQuery += " SUM(DCY_QTCONF) DCY_QTCONF" cQuery += " FROM " + RetSqlName('DCY') cQuery += " WHERE DCY_FILIAL = '"+xFilial('DCY')+"'" cQuery += " AND DCY_EMBARQ = '"+cEmbarque+"'" cQuery += " AND DCY_PROD = '"+cProduto+"'" cQuery += " AND DCY_PRDORI = '"+cProduto+"'" If !Empty(cLote) // Quando o código de barras retorna lote/sublote/qtde cQuery += " AND (DCY_LOTE = '"+cLote+"'" cQuery += "OR DCY_LOTE = ' ')" // Pré-nota sem informar lote EndIf If !Empty(cSubLote) cQuery += " AND (DCY_SUBLOT = '"+cSubLote+"'" cQuery += " OR DCY_SUBLOT = ' ')" EndIf cQuery += " AND D_E_L_E_T_ = ' '" cQuery := ChangeQuery(cQuery) DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasQry,.F.,.T.) // Ajusta o tamanho dos campos no cursor aTamSX3 := TamSx3('DCY_QTORIG') TcSetField(cAliasQry,'DCY_QTORIG','N',aTamSX3[1],aTamSX3[2]) TcSetField(cAliasQry,'DCY_QTCONF','N',aTamSX3[1],aTamSX3[2]) If !(cAliasQry)->(Eof()) If QtdComp((cAliasQry)->DCY_QTORIG) <= 0 WmsMessage("Produto nao pertence a conferencia!") lRet := .F. ElseIf QtdComp((cAliasQry)->DCY_QTORIG) == QtdComp((cAliasQry)->DCY_QTCONF) WmsMessage("A conferencia deste produto ja foi finalizada!") lRet := .F. ElseIf QtdComp((cAliasQry)->DCY_QTORIG) < QtdComp((cAliasQry)->DCY_QTCONF + nQuant) WmsMessage("Quantidade informada mais a conferida ultrapassa o total do(s) documento(s)!") lRet := .F. EndIf EndIf RestArea(aAreaAnt) Return lRet |
<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> |