Árvore de páginas

Versões comparadas

Chave

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


01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS Logística WMS

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoLogística

Módulo:SIGAWMS - Gestão de Armazenagem
Função:

-

País:Todos Países
Ticket:-
Requisito/Story/Issue (informe o requisito relacionado) :-


02. DESCRIÇÃO

Este Ponto de Entrada permite monitorar a consulta de endereços para armazenagem do produto.

03. LOCALIZAÇÃO

Localizado na busca de endereços disponíveis para gerar os movimentos de endereçamento.

04. PARÂMETROS

NomeTipoDescrição

cProduto

Caractere

Código do produto a ser armazenado

cLocDest

Caractere

Armazém destino

cEstDestCaractereEstrutura física destino
cLoteCtlCaractereLote do produto
cNumLoteCaractereSublote do produto

05. RETORNO

NomeTipoDescrição
cAliasSBECaractereDeverá retornar o alias da consulta criada para a busca de endereços

Para que o processo funcione corretamente, esta consulta deve trazer obrigatoriamente uma estrutura de campos com as seguintes denominações:

CampoDescriçãoValores
ZON_ORDEMOrdem Zona Armazenagem00 - Zona do produto, 01...99 - Zona alternativa
SLD_ORDEMOrdem Saldo01 - Saldo produto, 02 - Saldo misto, 03 - Saldo outro produto, 99 - Sem saldo
MOV_ORDEMOrdem Movimento01 - Movimento pendente produto, 99 - Sem movimento pendente
DCP_PEROCPIndicador de percentual de ocupação0 - Não possui, 1 - Produto, 2 - Genérico, 3 - Outro produto
PRD_ORDEMOrdem Produto01 - Exclusivo produto, 02 - Qualquer produto
SLD_PRODUTSaldo do produto no endereçoEste não deve ser incrementado pelo saldo de rádio frequência (RF) pendente de entrada, o qual deverá estar contido no campo MOV_PRODUT
MOV_PRODUTSaldo RF do produto (pendente de entrada)Campo não obrigatório. Caso exista um campo na consulta com este nome, o seu valor será utilizado para incrementar o saldo presente no endereço; caso contrário, será utilizada a regra padrão para consulta de saldo RF.
SLD_OUTROSSaldo de outros produtos no endereçoEste não deve ser incrementado pelo saldo de rádio frequência (RF) pendente de entrada, o qual deverá estar contido no campo MOV_OUTROS
MOV_OUTROSSaldo RF de outros produtos (pendente de entrada)Campo não obrigatório. Caso exista um campo na consulta com este nome, o seu valor será utilizado para incrementar o saldo de outros produtos presente no endereço; caso contrário, será utilizada a regra padrão para consulta de saldo RF.
BE_LOCALIZEndereço
BE_CODCFGCódigo de configuração do endereço
RECNOSBERecno da SBE

06. VERSÕES

11.80.13 e superiores.

07. OBSERVAÇÃO

Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização

08. EXEMPLO

Bloco de código
languagecpp
titleExemplo
linenumberstrue
#INCLUDE "PROTHEUS.CH"
User Function WMSQYEND()
Local aAreaAnt  := GetArea()
Local cProduto  := PARAMIXB[1]
Local cLocDest  := PARAMIXB[2]
Local cEstDest  := PARAMIXB[3]
Local cQuery    := ""
Local cAliasSBE := GetNextAlias()
Local aTamSX3   := TamSx3('BF_QUANT')

   cQuery := "SELECT"
	cQuery += " '00' ZON_ORDEM,"
	cQuery += "  99  SLD_ORDEM,"
	cQuery += "  99  MOV_ORDEM,"
	cQuery += "  0   DCP_PEROCP,"
	//Se foi informado o produto no endereço ele tem prioridade
	cQuery += " CASE WHEN SBE.BE_CODPRO = '"+Space(TamSx3("BE_CODPRO")[1])+"' THEN 2 ELSE 1 END PRD_ORDEM,"
	cQuery += " (SELECT SUM(BF_QUANT)"
	cQuery +=   " FROM "+RetSqlName("SBF")
	cQuery +=  " WHERE BF_FILIAL  = '"+xFilial("SBF")+"'"
	cQuery +=    " AND BF_LOCAL   = '"+cLocDest+"'"
	cQuery +=    " AND BF_ESTFIS  = '"+cEstDest+"'"
	cQuery +=    " AND BF_PRODUTO = '"+cProduto+"'"
	cQuery +=    " AND BF_QUANT   > 0"
	cQuery +=    " AND BF_LOCAL   = SBE.BE_LOCAL" 
	cQuery +=    " AND BF_LOCALIZ = SBE.BE_LOCALIZ"
	cQuery +=    " AND D_E_L_E_T_ = ' ') SLD_PRODUT,"
	//Pegando as informações do endereço
	cQuery += " SBE.BE_LOCALIZ, SBE.BE_CODCFG, SBE.R_E_C_N_O_ RECNOSBE"
	cQuery +=  " FROM "+RetSqlName("SBE")+" SBE"
	//Filtros em cima da SBE - Endereços
	cQuery += " WHERE SBE.BE_FILIAL  = '"+xFilial("SBE")+"'"
	cQuery +=   " AND SBE.BE_LOCAL   = '"+cLocDest+"'"
	cQuery +=   " AND (SBE.BE_CODPRO = ' ' OR SBE.BE_CODPRO = '"+cProduto+"')"
	cQuery +=   " AND SBE.BE_ESTFIS  = '"+cEstDest+"'"
	cQuery +=   " AND SBE.BE_STATUS  <> '3'"
	cQuery +=   " AND SBE.D_E_L_E_T_ = ' '"
	//Gerando a ordenação dos endereços
	cQuery += " ORDER BY ZON_ORDEM, PRD_ORDEM, SLD_ORDEM, MOV_ORDEM, BE_LOCALIZ"
	cQuery := ChangeQuery(cQuery)
	DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasSBE,.F.,.T.)
	//-- Ajustando o tamanho dos campos da query
	TcSetField(cAliasSBE,'PRD_ORDEM','N',5,0)
	TcSetField(cAliasSBE,'SLD_ORDEM','N',5,0)
	TcSetField(cAliasSBE,'MOV_ORDEM','N',5,0)
	TcSetField(cAliasSBE,'DCP_PEROCP','N',5,0)
	TcSetField(cAliasSBE,'SLD_PRODUT','N',aTamSX3[1],aTamSX3[2])
 
RestArea(aAreaAnt)
Return cAliasSBE


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>