MaAvalSC6
Avalia se um item de pedido de venda (SC6) tem condicoes de gerar liberacao na SC9. Par natural do MaLibDoFat — chame antes pra checar antes de liberar.
Assinatura: MaAvalSC6(nRecSC6) -> lOk
Retorna: Logical
MaAvalSC6 verifica se um item de pedido (SC6) tem todas as condicoes para gerar liberacao (SC9): cliente ativo, produto ativo, estoque presente em estrutura, sem bloqueio cadastral. Retorna .T. se ok, .F. se algum requisito impede.
Faz par com MaLibDoFat — geralmente voce avalia primeiro com MaAvalSC6, e se passa, libera com MaLibDoFat.
Sintaxe
SC6->(DBSetOrder(1))
SC6->(DBSeek(xFilial("SC6") + cPedido))
While !SC6->(Eof()) .And. SC6->C6_NUM == cPedido
If MaAvalSC6(SC6->(RecNo()))
// pode liberar
MaLibDoFat(SC6->(RecNo()), SC6->C6_QTDVEN, ;
@lCred, @lEst, .F., .T., .T., .F.)
Else
ConOut("Item " + SC6->C6_ITEM + " bloqueado")
EndIf
SC6->(DBSkip())
EndDo
O que ela checa
- Item nao esta cancelado (
C6_BLQdiferente de "R") - Quantidade vendida (
C6_QTDVEN) maior que zero - Saldo do item nao foi totalmente liberado/faturado
- Cliente nao esta bloqueado fiscal
- Produto ainda existe e nao esta inativo
Pegadinhas
- Funcao interna do FATXFUN — sem doc oficial dedicada no TDN; assinatura derivada do uso real em DTs.
- Position SC6 antes — usa RecNo da SC6, entao tem que estar posicionado.
- Nao verifica credito/estoque — isso e responsabilidade do MaLibDoFat. MaAvalSC6 so checa o cadastral.
- Combinar com regras de negocio — em customizacoes, valide antes (PE/regras) e use MaAvalSC6 como ultima checagem.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nRecSC6 | Numeric | sim | RecNo do item SC6 a avaliar. |