Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Logística WMS

Linha de Produto:

Linha Protheus

Segmento:

Logística

Módulo:TOTVS WMS - Linha Protheus - WMS Protheus (SIGAWMS)
Função:

WMSDTRCESTOQUEENDEREÇO (METHOD UpdSaldo)

País:Todos Países
Ticket:14545124
Requisito/Story/Issue (informe o requisito relacionado) :DLOGWMSMSP-14221


02. DESCRIÇÃO

Este Ponto de Entrada permite preencher campos customizados na tabela D14, após atualização de saldo.

03. LOCALIZAÇÃO

Localizado na rotina WMSDTRCESTOQUEENDEREÇO (METHOD UpdSaldo).

04. PARÂMETROS

NomeTipoDescrição

cTipo

Caractere

Tipo de movimento gerado (499 - Entrada / 999 - Saída).

lEstoqueLógicoConsiderar quantidade em estoque.
lEntprevLógicoConsiderar quantidade de entrada prevista.
lSaiprevLógicoConsiderar quantidade de saída prevista.
lEmpenhoLógicoConsiderar quantidade empenhada.
lBloqueioLógicoConsiderar quantidade bloqueada.
lEmpPrevLógicoConsiderar quantidade empenho previsto.
self:nquantObjetoObjeto com  dados da quantidade do produto (Tabela D14)
nQtd2UMNuméricoUnidade de medida a se considerada(1 - Primeira unidade / 2 - Segunda unidade)
Self:oEnderecoObjetoObjeto com  dados do endereço do produto (Tabela SBF)
Self:oProdLoteObjetoObjeto com dados do lote do produto (Tabela SB8)

05. RETORNO

Não se aplica.

06. VERSÕES

Protheus 12.1.17 ou superiores.

07. OBSERVAÇÃO

Não se aplica.

08. EXEMPLO

------

#

#INCLUDE 'TOTVS.CH'
/*/{Protheus.doc} WMSATD14
Ponto de entrada após a atualização do saldo no D14
@type function
@version V.12.1.27
@author Reinaldo Dias
@since 16/06/2022
/*/
User Function WMSATD14() //{cTipo,lEstoque,lEntPrev,lSaiPrev,lEmpenho,lBloqueio,lEmpPrev,Self:nQuant,nQtd2UM,Self:oEndereco,Self:oProdLote}
    Local aArea     := { GetArea(), SBE->(GetArea()) }
    Local cTipo     := PARAMIXB[1]
    Local lEstoque  := PARAMIXB[2]
    Local lEntPrev  := PARAMIXB[3]
    Local lSaiPrev  := PARAMIXB[4]
    Local lEmpenho  := PARAMIXB[5]
    Local lBloqueio := PARAMIXB[6]
    Local lEmpPrev  := PARAMIXB[7]
    Local nQuant    := PARAMIXB[8]
    Local nQtd2UM   := PARAMIXB[9]
    Local oEndereco := PARAMIXB[10]
    Local oProdLote := PARAMIXB[11]
   
    If (D14->D14_QTDEST > 0 .Or. D14->D14_QTDEPR > 0 .Or. D14->D14_QTDSPR > 0 .Or. D14->D14_QTDEMP > 0 .Or. D14->D14_QTDPEM > 0 .Or. D14->D14_QTDBLQ > 0)
        SBE->(DBSetOrder(1))//BE_FILIAL+BE_LOCAL+BE_LOCALIZ+BE_ESTFIS
        If SBE->(DBSeek(xFilial("SBE")+D14->D14_LOCAL+D14->D14_ENDER+D14->D14_ESTFIS)) .And. SBE->BE_STATUS == "1"
            RecLock("SBE",.F.)
            SBE->BE_STATUS := "2"
            MsUnlock()
        Endif
    Endif
   
    If FunName() == "QIEA215" .and. FWIsInCallStack ("MakeArmaz") .and. D14->(!Eof()) .and. cTipo == "499" .and. lEstoque .and. !lEntPrev .and. lSaiPrev .and. D14->D14_LOCAL <> "98" .and. Alltrim(D14->D14_ENDER) $ "R010101|R010102"
        RecLock("D14",.F.)
        D14->D14_QTDEPR += nQuant
        D14->D14_QTDEP2 += nQtd2UM
        MsUnlock()
    Endif

    AEval(aArea, {|area| RestArea(area)})

Return Nil                                                      

------