01. DADOS GERAIS
Produto: | TOTVS Logística WMS
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Logística |
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) : | - |
02. DESCRIÇÃO
Este Ponto de Entrada permite efetuar as validações complementares do produto na Conferência de Recebimento.
03. LOCALIZAÇÃO
Localizado logo após as validações do código do produto, que são padrão WMS.
04. PARÂMETROS
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.
05. RETORNO
Lógico - .T. ou .F.
06. VERSÕES
Protheus 12.1.17 ou superiores.
07. OBSERVAÇÃO
Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização
08. EXEMPLO
------
#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
------