Árvore de páginas


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

NomeTipoDescrição
cConferenCaractereCódigo da conferência de recebimento
cProdutoCaractereProduto a ser conferido
cLoteCaractereLote a ser conferido*
cSubloteCaractereSub-lote a ser conferido*
nQuantNuméricoQuantidade 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

------