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
Nome | Tipo | Descrição |
---|---|---|
cViagId | Caractere | Código da viagem |
cTransp | Caractere | Código da transportadora |
cPlaca | Caractere | Placa do veículo |
cRegId | Caractere | Id da região |
05. RETORNO
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
aRetorno | Array | 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}
------