StockPurchase (Ordem de Compra)
O StockPurchase representa uma ordem de compra de produtos junto a fornecedores.
Descricao
A ordem de compra controla o processo de aquisicao de produtos, desde a solicitacao ate o recebimento, com geracao automatica de contas a pagar e entrada de estoque.
Dados
Informacoes da Compra
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| reference | Texto | Auto | Numero da ordem |
| status | Selecao | Sim | Status da compra |
| date | Data | Sim | Data da ordem |
| expected_date | Data | Nao | Previsao de entrega |
| received_date | Data | Auto | Data do recebimento |
| notes | Texto | Nao | Observacoes |
Valores
| Campo | Tipo | Descricao |
|---|---|---|
| subtotal | Monetario | Soma dos itens |
| discount | Monetario | Desconto total |
| shipping | Monetario | Frete |
| other_costs | Monetario | Outros custos |
| total | Monetario | Total da compra |
Status
| Status | Descricao |
|---|---|
| draft | Rascunho |
| pending | Aguardando aprovacao |
| approved | Aprovada |
| ordered | Pedido enviado ao fornecedor |
| partial_received | Parcialmente recebida |
| received | Totalmente recebida |
| canceled | Cancelada |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|---|---|
| Account | Sim | Conta do petshop |
| Store | Sim | Filial |
| Provider | Sim | Fornecedor |
| User | Sim | Usuario responsavel |
Possui
| Entidade | Descricao |
|---|---|
| PurchaseItems | Itens da compra |
| PurchaseReceivings | Recebimentos |
| FinancialTransactions | Contas a pagar |
| StockInvoices | Notas fiscais |
PurchaseItem
Dados
| Campo | Tipo | Descricao |
|---|---|---|
| sale_product_id | Referencia | Produto |
| quantity | Decimal | Quantidade solicitada |
| received_quantity | Decimal | Quantidade recebida |
| unit_cost | Monetario | Custo unitario |
| discount | Monetario | Desconto do item |
| total | Monetario | Total do item |
| status | Selecao | pending, partial, received, canceled |
Ciclo de Vida
Fluxo de Compra
Aprovacao
Regras de Aprovacao
| Condicao | Acao |
|---|---|
| Valor ate X | Aprovacao automatica |
| Valor acima de X | Requer aprovador |
| Fornecedor novo | Requer aprovador |
Alcadas
Pode-se configurar alcadas de aprovacao por valor:
| Valor | Aprovador |
|---|---|
| Ate R$ 1.000 | Gerente de loja |
| R$ 1.000 a R$ 5.000 | Diretor |
| Acima de R$ 5.000 | Proprietario |
Recebimento
PurchaseReceiving
Cada recebimento registra:
| Campo | Tipo | Descricao |
|---|---|---|
| date | Data | Data do recebimento |
| invoice_number | Texto | Numero da NF |
| items | Array | Itens e quantidades recebidas |
| notes | Texto | Observacoes |
Recebimento Parcial
Permite receber quantidades parciais:
Ordem: 100 unidades
Recebimento 1: 60 unidades (status = partial_received)
Recebimento 2: 40 unidades (status = received)
Divergencias
| Tipo | Tratamento |
|---|---|
| Quantidade menor | Ajustar ordem ou aguardar restante |
| Quantidade maior | Recusar excedente ou ajustar ordem |
| Produto errado | Recusar e solicitar troca |
| Avaria | Registrar e solicitar credito |
Geracao de Estoque
Ao Receber
Para cada item recebido:
StockTransaction tipo "entry"
quantity: quantidade_recebida
unit_cost: custo_unitario
reference: ordem_compra
Atualizacao de Custo
O custo do produto pode ser atualizado:
| Opcao | Comportamento |
|---|---|
| Manter | Mantem custo atual |
| Atualizar | Usa custo da compra |
| Media | Calcula novo custo medio |
Geracao Financeira
Ao Receber
Gera transacao financeira:
FinancialTransaction
type: expense
status: pending
value: total_recebido
due_date: conforme condicao de pagamento
provider_id: fornecedor
Condicoes de Pagamento
| Condicao | Vencimento |
|---|---|
| A vista | Data do recebimento |
| 30 dias | 30 dias apos recebimento |
| 30/60/90 | Gera 3 parcelas |
Sugestao de Compra
Baseada em Estoque Minimo
Sistema sugere compra quando:
estoque_atual <= estoque_minimo
Quantidade Sugerida
quantidade = estoque_maximo - estoque_atual
Ou baseada em:
- Historico de vendas
- Sazonalidade
- Lead time do fornecedor
Cotacao
Processo de Cotacao
- Criar solicitacao de cotacao
- Enviar para fornecedores
- Receber propostas
- Comparar precos
- Selecionar melhor oferta
- Gerar ordem de compra
Comparativo
| Fornecedor | Preco | Prazo | Frete | Total |
|---|---|---|---|---|
| Fornecedor A | R$ 100 | 7 dias | R$ 20 | R$ 120 |
| Fornecedor B | R$ 95 | 14 dias | R$ 30 | R$ 125 |
Integracao com NF-e
Importacao de XML
Ao receber NF-e do fornecedor:
- Importar XML
- Vincular a ordem de compra
- Validar itens e quantidades
- Confirmar recebimento
Conciliacao
Sistema compara:
- Produtos da ordem vs NF
- Quantidades
- Valores
- Impostos
Validacoes
| Campo | Regra |
|---|---|
| provider_id | Obrigatorio |
| items | Minimo 1 item |
| date | Obrigatorio |
Validacoes de Item
| Campo | Regra |
|---|---|
| product | Obrigatorio |
| quantity | Maior que zero |
| unit_cost | Maior que zero |
Relatorios
| Relatorio | Descricao |
|---|---|
| Compras por periodo | Total comprado por periodo |
| Compras por fornecedor | Ranking de fornecedores |
| Itens mais comprados | Produtos mais adquiridos |
| Evolucao de precos | Historico de precos |
Permissoes
| Acao | Descricao |
|---|---|
| Criar | Criar ordem de compra |
| Editar | Alterar ordem |
| Aprovar | Aprovar ordem |
| Receber | Registrar recebimento |
| Cancelar | Cancelar ordem |