Pular para o conteúdo principal

StockConversion (Conversao de Estoque)

O StockConversion representa a transformacao de um produto em outro, como fracionar embalagens ou montar kits.

Descricao

A conversao de estoque permite transformar produtos, como abrir um pacote de racao de 15kg em 3 pacotes de 5kg, ou montar um kit de higiene a partir de produtos individuais.

Dados

Informacoes da Conversao

CampoTipoObrigatorioDescricao
referenceTextoAutoCodigo de referencia
typeSelecaoSimTipo de conversao
statusSelecaoSimStatus
dateDataSimData da conversao
notesTextoNaoObservacoes

Tipos de Conversao

TipoDescricaoExemplo
fractioningFracionamento1 pacote 15kg -> 3 de 5kg
groupingAgrupamento3 de 5kg -> 1 de 15kg
kit_assemblyMontagem de kitProdutos -> Kit
kit_disassemblyDesmontagem de kitKit -> Produtos
transformationTransformacaoMateria-prima -> Produto final

Status

StatusDescricao
draftRascunho
pendingAguardando execucao
doneExecutada
canceledCancelada

Relacionamentos

Pertence a

EntidadeObrigatorioDescricao
AccountSimConta do petshop
StoreSimFilial
DepositNaoDeposito
UserSimUsuario responsavel

Possui

EntidadeDescricao
ConversionInputsProdutos de entrada
ConversionOutputsProdutos de saida

ConversionInput (Entrada)

Dados

CampoTipoDescricao
sale_product_idReferenciaProduto consumido
quantityDecimalQuantidade consumida
unit_costMonetarioCusto unitario
total_costMonetarioCusto total

ConversionOutput (Saida)

Dados

CampoTipoDescricao
sale_product_idReferenciaProduto gerado
quantityDecimalQuantidade gerada
unit_costMonetarioCusto unitario calculado
total_costMonetarioCusto total

Fluxo de Conversao

Calculo de Custos

Custo Total de Entrada

custo_entrada = soma(quantidade * custo_unitario) de cada entrada

Rateio para Saidas

O custo de entrada e distribuido entre as saidas:

Por Quantidade

custo_saida = custo_entrada * (qtd_saida / qtd_total_saidas)

Por Valor

Se saidas tem precos diferentes, ratear proporcionalmente ao valor:

custo_saida = custo_entrada * (valor_saida / valor_total_saidas)

Exemplo - Fracionamento

Entrada:
1x Racao Premium 15kg @ R$ 150,00 = R$ 150,00

Saidas (por quantidade):
3x Racao Premium 5kg
Custo cada: R$ 150 / 3 = R$ 50,00

Exemplo - Kit

Entradas:
1x Shampoo @ R$ 20,00
1x Condicionador @ R$ 15,00
1x Escova @ R$ 10,00
Total: R$ 45,00

Saida:
1x Kit Banho
Custo: R$ 45,00

Tipos de Conversao

Fracionamento

Divide um produto em unidades menores:

EntradaSaida
1x Produto GNx Produto P

Regras:

  • Produto de saida deve ter mesma categoria
  • Quantidade de saida deve ser multipla
  • Custo e dividido proporcionalmente

Agrupamento

Combina unidades menores em uma maior:

EntradaSaida
Nx Produto P1x Produto G

Regras:

  • Produto de saida deve ter mesma categoria
  • Custo e somado

Montagem de Kit

Combina produtos diferentes em um kit:

EntradaSaida
Produto A1x Kit
Produto B
Produto C

Regras:

  • Kit deve estar cadastrado como produto
  • Custo do kit = soma dos componentes
  • Pode ter margem adicional

Desmontagem de Kit

Separa kit em componentes:

EntradaSaida
1x KitProduto A
Produto B
Produto C

Movimentacoes Geradas

Ao Executar

Para cada entrada:
StockTransaction tipo "exit" (conversao)

Para cada saida:
StockTransaction tipo "entry" (conversao)

Referencia Cruzada

Todas as transacoes ficam vinculadas a conversao para rastreabilidade.

Validacoes

CampoRegra
typeObrigatorio
inputsMinimo 1 entrada
outputsMinimo 1 saida
estoqueEntrada deve ter estoque suficiente

Validacoes de Custo

RegraDescricao
Entrada = SaidaCusto total entrada deve igualar custo total saida
ToleranciaDiferenca maxima de R$ 0,01 (arredondamento)

Regras de Negocio

Estoque Minimo

Nao permite conversao se:

  • Estoque de entrada for insuficiente
  • Conversao deixaria estoque negativo

Lotes

Se produto tem controle de lote:

  • Deve especificar lote de entrada
  • Pode definir lote de saida

Reversao

Conversoes executadas podem ser revertidas:

  • Cria conversao inversa
  • Restaura estoques originais
  • Registra referencia a conversao original

Templates de Conversao

ConversionTemplate

Para conversoes frequentes, pode-se criar templates:

CampoDescricao
nameNome do template
typeTipo de conversao
inputsProdutos e quantidades de entrada
outputsProdutos e quantidades de saida

Exemplo

Template: Fracionar Racao Premium
Tipo: Fracionamento
Entrada: 1x Racao Premium 15kg
Saidas: 3x Racao Premium 5kg

Permissoes

AcaoDescricao
CriarCriar conversao
EditarAlterar rascunho
ExecutarExecutar conversao
ReverterReverter conversao
CancelarCancelar conversao