Passo a passo: | Localização: Localizado na função A261Almox( ) antes da validação do produto origem / local origem na tabela SB2. Em que ponto: O objetivo deste ponto de entrada é criar na tabela SB2 o produto de origem e local de origem informados no item da transferência antes da validação de armazém da função A261Almox( ). Programa fonte: MATA261.PRX Sintaxe: A261LOC - Cria no SB2 o produto no item da transferência ( < PARAMIXB[1]> , < PARAMIXB[2]> , < PARAMIXB[3]> ) --> Nil Parâmetro: Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
PARAMIXB[1] | Caracter | Código do Produto. |
| X |
| PARAMIXB[2] | Caracter | Local Informado pelo usuário. |
| X |
| PARAMIXB[3] | Numérico | Tipo de Movimento: 1 - Movimento de Origem ; 2 - Movimento de Destino |
| X |
|
Retorno: Nil(nulo) Exemplo: /*/{Protheus.doc} User Function A261LOC Executado ao digitar o campo local de estoque Não espera retorno @type Function @author TOTVS /*/
User Function A261LOC() Local aArea := GetArea() Local aAreaNNR := NNR->(GetArea()) Local aAreaSB1 := SB1->(GetArea()) Local aAreaSB2 := SB2->(GetArea()) Local aAreas := {aAreaNNR, aAreaSB1, aAreaSB2, aArea} Local cProduto := ParamIXB[1] Local cLocal := ParamIXB[2] Local nTipo := ParamIXB[3] Local lProduto := .F. Local lLocal := .F.
NNR->(DbSetOrder(1)) //NNR_FILIAL+NNR_CODIGO SB1->(DbSetOrder(1)) //B1_FILIAL+B1_COD SB2->(DbSetOrder(1)) //B2_FILIAL+B2_COD+B2_LOCAL
If SB1->(DbSeek(FWXFilial('SB1')+cProduto)) lProduto := .T. EndIf If NNR->(DbSeek(FWXFilial('NNR')+cLocal)) lLocal := .T. EndIf
If lProduto .And. lLocal .And. !SB2->(DbSeek(FWXFilial('SB2')+cProduto+cLocal)) cTitulo := 'Criar Saldo' cMsg := 'O Saldo do produto '+cProduto+' no armazem '+cLocal+' de ' cMsg += IIf(nTipo == 1, 'origem', 'destino')+' ainda não existe. ' cMsg += 'Gostaria de criá-lo?' If MsgYesNo(cMsg, cTitulo) CriaSB2(cProduto, cLocal) EndIf EndIf
AEval(aAreas, {|x| RestArea(x)}) Return |
---|
|