01. DADOS GERAIS
Produto: | TOTVS OMS
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Logística |
Módulo: | SIGAOMS - Gestão de Distribuição |
Função: | - |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
02. DESCRIÇÃO
A partir dos Pontos de Entrada OM200CAR e OM200QRY é permitido modificar o filtro de Pedidos válidos para inclusão em montagem de carga. Desta forma, é possível selecionar os Pedidos bloqueados, situação não permitida na busca padrão.
Na liberação desses Pedidos bloqueados ocorre o processo de estorno, necessário para definir quais lotes serão utilizados para atender o Pedido e, então, uma nova inclusão da liberação do Pedido. Durante esse estorno, há a remoção dos Pedidos das montagens de carga e, não existindo mais Pedidos na montagem de carga, esta é excluída.
Assim, este Ponto de Entrada permite armazenar as informações do Pedido estornado e não excluir a montagem de carga.
Os processos de estorno e reinclusão da liberação dos Pedidos continuam sendo executados.
Para o funcionamento completo deste Ponto de Entrada é necessário gerar o Ponto de Entrada M440SC9I. O exemplo para o funcionamento, conforme a necessidade, será exibido mais abaixo.
03. LOCALIZAÇÃO
Localizado durante o estorno do Pedido, executado na liberação de estoque/crédito, antes de apagar as informações da carga da liberação do Pedido (SC9) e de remover o relacionamento entre o Pedido e a montagem de carga.
04. PARÂMETROS
Não se aplica.
05. RETORNO
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
lRet | Lógico | Se verdadeiro, não efetua a exclusão da montagem de carga (DAK). | Sim |
06. VERSÕES
Protheus 12.1.27 ou superiores
07. OBSERVAÇÃO
Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização
08. EXEMPLO
------
#INCLUDE "PROTHEUS.CH"
Static cFilCarPE := '' //Filial da carga
Static cCargaPE := '' //Número da carga
Static cSeqCarPE := '' //Sequência da carga
Static cSeqEntPE := '' //Sequência de entrega
Static nQtdeLib := 0 //Qtde a ser liberada
Static aDAI := {} //informações da DAI a ser excluída temporariamente
User Function OMSNEDAK()
Local nX := 0
cFilCarPE := ParamIXb[1]
cCargaPE := ParamIXb[2]
cSeqCarPE := ParamIXb[3]
cSeqEntPE := ParamIXb[4]
nQtdeLib := ParamIxb[5]
For nX := 1 to DAI->(FCount())
Aadd(aDAI, {DAI→ (Field(nX)), DAI→ (FieldGet(nX))})
Next nX
Return .T.
//===========================================
User Function M440SC9I()
Local nX Local cCampo := ''
If Len(aDAI) > 0 .And. !Empty(cFilCarPE).And. !Empty(cCargaPE) .And. !Empty(cSeqCarPE) .And. !Empty(cSeqEntPE)
//Grava as informações da carga na liberação do pedido.
SC9->C9_CARGA := cCargaPE
SC9->C9_SEQCAR := cSeqCarPE
SC9->C9_SEQENT := cSeqEntPE
nQtdeLib -= SC9->C9_QTDLIB
//Inclui a DAI. A SC9 estará posicionada e a DAK já existirá.
DAI→ (dbSetOrder(1)) //DAI_FILIAL+DAI_COD+DAI_SEQCAR+DAI_SEQUEN+DAI_PEDIDO
If !DAI→ (dbSeek(cFilCarPE + cCargaPE + cSeqCarPE + cSeqEntPE + SC9->C9_PEDIDO))
RecLock("DAI",.T.)
For nX := 1 to len(aDAI)
cCampo := aDAI[nX,1]
DAI->&(cCampo) := aDAI[nX,2]
Next nX
DAI->DAI_PESO := 0
DAI->DAI_CAPVOL := 0
MsUnlock()
EndIf
//Atualiza os acumulados do DAI
OsAvalDAI("DAI",1,,,,cFilCarPE)
If nQtdeLib == 0
aSize(aDAI,0)
cFilCarPE := ''
CargaPE := ''
cSeqCarPE := ''
cSeqEntPE := '
EndIf
EndIf Return
------