Produto:

Protheus.

Ocorrência:

A261LOC: Cria no SB2 o produto no item da transferência.

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

SintaxeA261LOC - Cria no SB2 o produto no item da transferência ( < PARAMIXB[1]> , < PARAMIXB[2]> , < PARAMIXB[3]> ) --> Nil

Parâmetro:

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]CaracterCódigo do Produto.
X
PARAMIXB[2]CaracterLocal Informado pelo usuário.
X
PARAMIXB[3]NuméricoTipo de Movimento: 1 - Movimento de Origem ; 2 - Movimento de Destino
X

Retorno:

Nil(nulo)

  • Nil

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

Observações: