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.
Protheus 12.1.17 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.
Else
If QtdComp((cAliasQry)->DCY_QTORIG) == QtdComp((cAliasQry)->DCY_QTCONF)
WmsMessage("A conferencia deste produto ja foi finalizada!")
lRet := .F.
Else
If 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> |