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 | Valor |
---|---|
BF_LOCALIZ | Código do Endereço |
BF_LOTECTL | Lote |
B8_DTVALID | Data de Validade * |
BF_NUMLOTE | Sublote |
BF_NUMSERI | Número de Série |
BF_SALDO | Saldo Disponível ** |
BF_QTDSPR | Saldo RF Saída *** |
BF_ESTFIS | Estrutura Física |
RECNOSBF | Recno da SBF |
* A data de validade somente se aplica aos produtos que controlam lote; nos demais casos poderá ser retornado espaço em branco neste campo.
...
//-- Query não possui o campo BF_QTDSPR, saldo será descontado pelo padrão
cQuery := "SELECT SBF.BF_ESTFIS,SBF.BF_LOCALIZ,"
cQuery += " SBF.BF_LOTECTL,SBF.BF_NUMLOTE,SBF.BF_NUMSERI,"
cQuery += " SBF.R_E_C_N_O_ AS RECNOSBF,"
cQuery += " (SBF.BF_QUANT - SBF.BF_EMPENHO) BF_SALDO,"
If lRastro
cQuery += " SB8.B8_DTVALID"
Else
cQuery += " ' ' B8_DTVALID"
EndIf
cQuery += " FROM "+RetSqlName("SBF")+" SBF"
If lRastro
cQuery += " INNER JOIN "+RetSqlName("SB8")+" SB8"
cQuery += " ON SB8.B8_FILIAL = '"+xFilial("SB8")+"'"
cQuery += " AND SB8.B8_PRODUTO = SBF.BF_PRODUTO"
cQuery += " AND SB8.B8_LOCAL = SBF.BF_LOCAL"
cQuery += " AND SB8.B8_LOTECTL = SBF.BF_LOTECTL"
cQuery += " AND SB8.B8_NUMLOTE = SBF.BF_NUMLOTE"
cQuery += " AND SB8.B8_SALDO > 0"
cQuery += " AND SB8.D_E_L_E_T_ = ' '"
EndIf
cQuery += " WHERE SBF.BF_FILIAL = '"+xFilial("SBF")+"'"
cQuery += " AND SBF.BF_LOCAL = '"+cArmazem+"'"
cQuery += " AND SBF.BF_PRODUTO = '"+cProduto+"'"
cQuery += " AND SBF.BF_QUANT > 0"
cQuery += " AND (SBF.BF_QUANT - SBF.BF_EMPENHO) > 0"
cQuery += " AND SBE.BE_STATUS <> '3'" //-- Não pode estar bloqueado
If nRegraWMS <> 4
cQuery += " AND SBF.BF_ESTFIS = '"+cEstFis+"'"
EndIf
cQuery += " AND SBF.D_E_L_E_T_ = ' '"
cQuery := ChangeQuery(cQuery)
DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasSld,.F.,.T.)
//-- Ajustando o tamanho dos campos da query
TcSetField(cAliasSld,'BF_SALDO', 'N',aTamSX3[1],aTamSX3[2])
TcSetField(cAliasSld,'B8_DTVALID','D',8,0)
TcSetField(cAliasSld,'RECNOSBF', 'N',10,0)
Return cAliasSld
------
09. ASSUNTOS RELACIONADOS
...