Histórico da Página
...
Para que o processo funcione corretamente, esta consulta deve trazer obrigatoriamente uma estrutura de campos com as seguintes denominações:
Campo | Descrição | Valores |
---|---|---|
ZON_ORDEM | Ordem Zona Armazenagem | 00 - Zona do produto, 01...99 - Zona alternativa |
SLD_ORDEM | Ordem Saldo | 01 - Saldo produto, 02 - Saldo misto, 03 - Saldo outro produto, 99 - Sem saldo |
MOV_ORDEM | Ordem Movimento | 01 - Movimento pendente produto, 99 - Sem movimento pendente |
DCP_PEROCP | Indicador de percentual de ocupação | 0 - Não possui, 1 - Produto, 2 - Genérico, 3 - Outro produto |
PRD_ORDEM | Ordem Produto | 01 - Exclusivo produto, 02 - Qualquer produto |
SLD_PRODUT | Saldo do produto no endereço | Este 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_PRODUT | Saldo 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_OUTROS | Saldo de outros produtos no endereço | Este 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_OUTROS | Saldo 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_LOCALIZ | Endereço | |
BE_CODCFG | Código de configuração do endereço | |
RECNOSBE | Recno da SBE |
06. VERSÕES
Protheus 11.80.13 e 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
...
language | cpp |
---|---|
title | Exemplo |
linenumbers | true |
------
#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> |