Á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:OMSXCPL7 - Monitor de Cargas
País:Todos Países
Ticket:-
Requisito/Story/Issue (informe o requisito relacionado) :-


02. DESCRIÇÃO

Este Ponto de Entrada permite efetuar os tratamentos necessários para validar se a carga pode ser gerada para uma viagem.

Quando se tem várias validações, principalmente questões de análise de crédito/financeiro, deverá gerar o bloqueio e evitar que uma carga seja
carregada/gerada.

Neste Ponto de Entrada será apresentado o código da viagem, transportadora, a placa e a região da viagem.

03. LOCALIZAÇÃO

Localizado na função GeraCarga da rotina OMSXCPL7, antes da gravação da carga e seus itens (DAK e DAI).

04. PARÂMETROS

NomeTipoDescrição
cViagIdCaractereCódigo da viagem
cTranspCaractereCódigo da transportadora
cPlacaCaractere

Placa do veículo

cRegIdCaractereId da região

05. RETORNO

NomeTipoDescriçãoObrigatório
aRetornoArray

Array contendo na primeira posição uma informação lógica que indica se deve ou não ser gerada a carga e na segunda posição a mensagem de inconsistência para quando o retorno for Falso.

Sim

06. VERSÕES

Protheus 12.1.23 ou superiores.

07. OBSERVAÇÃO

Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock /Customização.

A emissão de mensagens será efetuada pelo Ponto de Entrada. Caso este retorne Falso, não será necessário efetuar emissão de mensagens na
funcionalidade de integração com o TOTVS Logística Cockpit.

08. EXEMPLO

------

#include 'protheus.ch' #
include 'parmtype.ch'
#DEFINE ENTER Chr(10)+Chr(13)

user function OMSCPL7D()
Local aAreaDK0 := getArea()
Local cCodViag := PARAMIXB[1] //DK0_VIAGID
Local cCodTras := PARAMIXB[2] //DK0_TRANSP
Local cCodPlac := PARAMIXB[3] //DK0_PLACA
Local cCodRegi := PARAMIXB[4] //DK0_REGID
Local lRet := .T. Local cMsgPedi := ""
Local cErro := ""

dbSelectArea("DK1")
DK1→ (dbSetOrder(1))
If DK1(dbSeek(xFilial("DK1")+ cCodRegi+cCodViag))
         While DK1→ (!Eof()) .AND. xFilial("DK1") <> DK1→ DK1_FILIAL .AND. DK1→ DK1_REGID == cCodRegi .AND. DK1→ DK1_VIAGID == cCodViag
                    IF DK1→ DK1_FILPED == cFilAnt
                             cMsgPedi += "→ Filial Atual: "+cFilAnt+"
→ Filial Pedido: "+DK1->DK1_FILPED+" → Nr. Pedido: "+DK1→DK1_PEDIDO+ENTER
          EndIF
          DK1→ (DbSkip())
          EndDo
EndIF

IF !Empty(cMsgPedi) .AND. !IsBlind()
        If APMSGYESNO("Existe(m) pedido(s) com divergência de Filial. Deseja continuar gerando a carga("+Alltrim(cCodViag)+")?"+ENTER+cMsgPedi)
                 lRet := .T.
        Else
        cErro += "PE OMSCPL7D: Problema na geração da carga."
        lRet := .F.
        EndIF

        EndIF RestArea(aAreaDK0)

return {lRet, cErro}

------