Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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
titleIMPORTANTE!

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

NomeTipoDescrição
aArrayGeraArrayArray de itens de pedido selecionados para a geração da carga.
cVeiculoCaractere

Código do veículo informado para a carga.

cTranspCaractereCódigo da transportadora informada para a carga,

05. RETORNO

NomeTipoDescrição
aCargasArrayArray 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

...

languagecpp
titleExemplo
linenumberstrue
collapsetrue

...

------

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>