Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Logística WMS

Linha de Produto:

Linha Protheus

Segmento:

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

Protheus 11.80.13 ou superiores.

07. OBSERVAÇÃO

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

08. EXEMPLO

------

#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

------