Árvore de páginas


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

NomeTipoDescriçãoObrigatório
lRetLó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

------