SC9 — Liberacao de Pedidos

Liberacoes do pedido — gerada apos MATA460 ou MaLibDoFat. Cada item liberado gera 1 SC9 com status de bloqueio (credito, estoque). Pre-requisito pra gerar NF.

SC9 e a "ponte" entre o pedido (SC5/SC6) e a NF (SF2/SD2). Antes de faturar, voce libera — gera SC9. Bloqueios (credito, estoque) ficam aqui em campos especificos. Pedidos sem SC9 nao podem virar NF.

Campos principais

CampoTipoDescricao
C9_FILIALCFilial
C9_PEDIDOCPedido (link SC5)
C9_ITEMCItem do pedido (link SC6)
C9_SEQUENCSequencia de liberacao (se parcial)
C9_PRODUTOCProduto
C9_QTDLIBNQuantidade liberada
C9_PRCVENNPreco unitario
C9_BLCREDCBloqueio de credito (01, 02, 04, 09 — ver MaLibDoFat)
C9_BLESTCBloqueio de estoque (02 = sem saldo)
C9_BLOQUEICBloqueio manual
C9_CARGACCarga (TMS)
C9_LOTECTLCLote (se rastreado)
C9_NFISCALCNF gerada (apos MATA440)
C9_SERIENFCSerie da NF

Status de bloqueio em C9_BLCRED

CodigoSignificado
(vazio)Sem bloqueio — pode faturar
01Bloqueio por valor (limite insuficiente)
02Bloqueio por estoque (com MV_BLQCRED = T)
04Limite vencido (A1_VENCLC)
09Liberacao rejeitada manualmente

Indices

OrdemChave
1C9_FILIAL+C9_PEDIDO+C9_ITEM+C9_SEQUEN
2C9_FILIAL+C9_CLIENTE+C9_LOJA+C9_PEDIDO
3C9_FILIAL+C9_PRODUTO+C9_PEDIDO

Codigo tipico

// Verificar se pedido pode ser faturado
Static Function PodeFaturar(cNumPed)
    Local lOk := .T.

    SC9->(DBSetOrder(1))
    SC9->(DBSeek(xFilial("SC9") + cNumPed))
    While !SC9->(Eof()) .And. SC9->C9_PEDIDO == cNumPed
        If !Empty(SC9->C9_BLCRED) .Or. !Empty(SC9->C9_BLEST)
            lOk := .F.
            Exit
        EndIf
        SC9->(DBSkip())
    EndDo
Return lOk

Tabelas relacionadas

TabelaRelacao
SC5/SC6Pedido origem
SF2/SD2NF gerada apos faturar
SA1Cliente (para validar credito)

Pegadinhas

Veja também