01. DADOS GERAIS

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) :-


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 Montagem de Carga (OMSA200), 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.

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

12.1.23 e 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




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