SF2 e o cabecalho da NF de saida — a NF que sua empresa emite. Cliente, total, status SEFAZ, chave de acesso NFe. Coracao do fluxo de receita.
Campos principais
| Campo | Tipo | Descricao |
|---|
| F2_FILIAL | C | Filial |
| F2_DOC | C | Numero NF |
| F2_SERIE | C | Serie |
| F2_CLIENTE | C | Cliente (SA1) |
| F2_LOJA | C | Loja cliente |
| F2_EMISSAO | D | Emissao |
| F2_VALMERC | N | Valor mercadorias |
| F2_VALBRUT | N | Bruto |
| F2_VALICM | N | ICMS |
| F2_VALIPI | N | IPI |
| F2_FRETE | N | Frete |
| F2_TPFRETE | C | C=CIF, F=FOB |
| F2_TRANSP | C | Transportadora |
| F2_CHVNFE | C | Chave acesso NFe |
| F2_STATUS | C | 100=autorizada SEFAZ |
| F2_TIPO | C | N=Normal, D=Devolucao, B=Bonificacao, C=Complementar |
| F2_MENNOTA | M | Texto observacoes DANFE |
Indices
| Ordem | Chave |
|---|
| 1 | F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA+F2_FORMUL+F2_TIPO |
| 2 | F2_FILIAL+F2_CLIENTE+F2_LOJA+F2_DOC |
| 3 | F2_FILIAL+F2_EMISSAO+F2_DOC |
Codigo tipico
// Buscar NF
SF2->(DBSetOrder(1))
If SF2->(DBSeek(xFilial("SF2") + cDoc + cSerie + cCli + cLoja))
nTotal := SF2->F2_VALBRUT
cChave := SF2->F2_CHVNFE
cStatus := SF2->F2_STATUS // 100 = autorizada
EndIf
// Faturamento do mes
SF2->(DBSetOrder(3))
SF2->(DBSeek(xFilial("SF2") + DToS(FirstDate(dDataBase))))
While !SF2->(Eof()) .And. SF2->F2_EMISSAO <= LastDate(dDataBase)
nFatMes += SF2->F2_VALBRUT
SF2->(DBSkip())
EndDo
Tabelas relacionadas
| Tabela | Relacao |
|---|
| SD2 | Itens da NF |
| SA1 | Cliente |
| SE1 | Titulos a receber gerados |
| SC5 | Pedido origem (C5_NOTA) |
Pegadinhas
- F2_STATUS = "100" significa autorizada SEFAZ — outros codigos indicam rejeicao/pendencia.
- F2_CHVNFE so preenchida apos retorno SEFAZ — pode estar vazia se ainda em processamento.
- NF cancelada nao apaga SF2 — gera evento SF2_TPESPNF.
- F2_TIPO = D (devolucao) inverte fluxo financeiro.
Veja também