Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização

...

Bloco de código
languagecpp
titleExemplo
linenumberstrue
collapsetrue
#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

...