01. DADOS GERAIS
Produto: | TOTVS OMS
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Logística |
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) : | - |
02. DESCRIÇÃO
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.
03. LOCALIZAÇÃO
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.
IMPORTANTE!
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 ou superiores.
07. OBSERVAÇÃO
Não se aplica.
08. EXEMPLO
------
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
------