Árvore de páginas

Ponto de Entrada - LJX904ES

Este Ponto de Entrada é executado na rotina Lj904XES, para calculos adicionais do saldo em estoque do produto; informações, estas utilizadas nas rotinas LOJA900A  - Produtos e LOJA900C - Estoque/Preço.

Descrição:

Atualizações\Cadastros

Localização:

E-commerce

Eventos:

Monitor Serv. CiaShop

Programa Fonte:

LOJA900A  - Produtos

LOJA900C - Estoque/Preço

LOJX904 - Funções e-commerce

Função:

Protheus

Parâmetos:

Nome

Tipo

Descrição

cProduto 

 Caractere

Codigo do produto no ERP

lAltera 

Lógico

Houve alteração no saldo em estoque no processamento padrão?

nSaldo

Numérico

Saldo em estoque apurado no processamento padrão

Retorno:

Nome

Tipo

Descrição

Obrigatório

 aRet

 Array

array unidimensional, devendo conter a seguinte estrutura
aRet[1] - Númerico - Saldo Final Apurado
aRet[2] - Lógico - Houve alteração de saldo em estoque (caso afirmativo é gerado o XML de atualização de estoque)

Sim 

 

Exemplo:

#Include 'Protheus.ch'

User Function LJX904ES()

 Local cProduto := ""

 Local lAltera := .f.

 Local nSaldo := 0

 Local aRet := {0, .F.}

 Local nSaldoAtu := 0

 Local lAlteraAtu := .f.

 Local aAreaSB1 := SB1->(GetArea())

 Local nSaldoEnv := 0 //Saldo enviado

If ValType(PARAMIXB) == "A" .AND. Len(PARAMIXB) >= 3 .AND. ;

    ValType(PARAMIXB[1]) == "C" .AND. ValType(PARAMIXB[2]) == "L" .and.;

    ValType(PARAMIXB[3]) == "N"

    cProduto := PARAMIXB[1]

    lAltera := PARAMIXB[2]

     nSaldo := PARAMIXB[3]

    aRet := {nSaldo, lAltera}

    SB1->(DbSetOrder(1))

    SB1->(Dbseek(xFilial("SB1") + cProduto))

    nSaldoEnv := SB1->B1_UECSALD //campo de controle do usuário

    //Abate 2 unidades do saldo em Estoque

    nSaldoAtu := -2

 //Adiciona o local de Estoque

    aRet[1] := Max(aRet[1] + nSaldoAtu,0) //coloca max para não negativar o saldo

   If aRet[1] <> nSaldoEnv

   //Sinaliza que houve alteração do saldo

       aRet[2] := .T.

   EndIf

    RecLock("SB1", .F.)

 //Atualiza a quantidade enviada

   SB1->B1_UECSALD := aRet[1]

   SB1->(MsUnLock())

EndIf

RestArea(aAreaSB1)

Return aRet