Histórico da Página
...
Este Ponto de Entrada é acionado após clicar na opção Salvar, localizada na rotina OMSA200 (Montagem de Carga (OMSA200), mais mais precisamente no momento em que a carga será efetivamente gravada, impactando também na geração de carga via Execauto.
Informações | ||
---|---|---|
| ||
Após a finalização do processamento, no qual é realizado o refresh da tela de seleção de Pedidos para a montagem de carga, na grade de Cargas constará apenas a última carga gerada. Caso seja necessário fechar a tela de seleção de Pedidos após as cargas já terem sido geradas, pode ser utilizado o Ponto de Entrada OM200DLG. O objetivo deste Ponto de Entrada é apenas realizar a quebra de cargas conforme uma regra customizada, prevendo o cálculo correto de volume, peso, quantidades e valores. Caso seja necessário alterar alguma outra informação da carga, deve ser utilizado o Ponto de Entrada OS200DAK. |
04. PARÂMETROS
Nome | Tipo | Descrição |
---|---|---|
aArrayGera | Array | Array de itens de pedido selecionados para a geração da carga. |
cVeiculo | Caractere | Código do veículo informado para a carga. |
cTransp | Caractere | Código da transportadora informada para a carga, |
05. RETORNO
Nome | Tipo | Descrição |
---|---|---|
aCargas | Array | Array contendo os Pedidos agrupados por carga, onde cada nível do array representa uma carga e cada subnível desta carga deve constar as informações do Pedido, no mesmo formato do aArrayGera recebido por parâmetro. |
06. VERSÕES
Protheus 12.1.23 e ou superiores.
07. OBSERVAÇÃO
Não se aplica.
08. EXEMPLO
...
language | cpp |
---|---|
title | Exemplo |
linenumbers | true |
collapse | true |
...
------
User Function OM200GEC()
...
Local
...
aArrayGera
...
:=
...
PARAMIXB[1]
...
//Array
...
de
...
pedidos
...
Local
...
cVeiculo
...
:=
...
PARAMIXB[2]
...
//Código
...
do
...
veículo
...
Local
...
cTransp
...
:=
...
PARAMIXB[3]
...
//Código
...
da
...
transportadora
...
Local
...
aPedidos
...
:=
...
{}
...
Local
...
aCargas
...
:=
...
{}
...
Local
...
nI
...
:=
...
0
...
Local
...
nQtdPedidos
...
:=
...
0
For nI :=
...
1
...
To
...
Len(aArrayGera)
...
//Percorre
...
o
...
array
...
para
...
realizar
...
as
...
quebras.
aAdd(aPedidos,aArrayGera[nI])
...
//Cria
...
novo
...
array
...
com
...
os
...
pedidos
...
que
...
formarão
...
uma
...
carga
nQtdPedidos++
...
If nQtdPedidos ==
...
3
...
.Or.
...
nI
...
==
...
Len(aArrayGera)
...
//Neste
...
exemplo
...
cada
...
carga
...
poderá
...
conter
...
no
...
máximo
...
3
...
pedidos
Aadd(aCargas,{aPedidos})
...
//Adiciona
...
os
...
pedidos
...
em
...
um
...
subnível
...
do
...
array
nQtdPedidos := 0 //Zera
...
os
...
agrupadores
...
para
...
definir
...
o
...
próximo
...
conjunto
...
de
...
pedidos
...
para
...
a
...
nova
...
carga
aPedidos :=
...
{}
...
EndIf
Next nI
Return aCargas
------
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |