Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAOMS - Gestão de Distribuição |
Função: | OMSA200 - Montagem de Carga |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
Este Ponto de Entrada permite manipular a geração de carga para os Pedidos selecionados, possibilitando gerar mais de uma carga com a gama de Pedidos.
Este Ponto de Entrada é acionado após clicar na opção Salvar, localizada na rotina OMSA200 (Montagem de Carga), mais precisamente no momento em que a carga será efetivamente gravada, impactando também na geração de carga via Execauto.
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. |
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, |
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. |
Protheus 12.1.23 ou superiores.
Não se aplica.
------
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
------
<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> |