RELATÓRIO DE RASTREABILIDADE POR ORDEM DE PRODUÇÃO

Gerado em: {{ \Carbon\Carbon::now()->format('d/m/Y H:i:s') }}

ISO 9001:2015 - Requisito de Rastreabilidade | Lotes Consumidos na Fabricação

DADOS DA ORDEM DE PRODUÇÃO

Número OP: {{ $ordem->numero_ordem }}
Data Emissão: {{ $ordem->data_emissao->format('d/m/Y') }}
Data Prevista: {{ $ordem->data_prevista_conclusao ? $ordem->data_prevista_conclusao->format('d/m/Y') : '-' }}
Status: @if($ordem->status == 'ABERTA') Aberta @elseif($ordem->status == 'EM_PRODUCAO') Em Produção @elseif($ordem->status == 'CONCLUIDA') Concluída @elseif($ordem->status == 'CANCELADA') Cancelada @else {{ $ordem->status }} @endif
Prioridade: @if($ordem->prioridade == 'ALTA') Alta @elseif($ordem->prioridade == 'MEDIA') Média @else Normal @endif
@if($ordem->orcamento)

CLIENTE / ORÇAMENTO

Cliente: {{ $ordem->orcamento->cliente->razao_social ?? 'Cliente não informado' }}
@if($ordem->orcamento->cliente->cnpj)
CNPJ: {{ $ordem->orcamento->cliente->cnpj }}
@endif
Orçamento: Orçamento #{{ $ordem->orcamento->id }}
Pedido Cliente: {{ $ordem->orcamento->numero_pedido_cliente ?? '-' }}
@endif
PRODUTOS FABRICADOS NESTA OP
@forelse($ordem->itens as $item) @empty @endforelse
Código Produto Qtd. Planejada Qtd. Produzida Unidade Status
{{ $item->produto->codigo }} {{ $item->produto->nome }} {{ number_format($item->quantidade, 2, ',', '.') }} {{ number_format($item->quantidade_produzida ?? 0, 2, ',', '.') }} {{ $item->produto->unidade ?? 'UN' }} @php $percentual = $item->quantidade > 0 ? ($item->quantidade_produzida / $item->quantidade) * 100 : 0; @endphp @if($percentual >= 100) Concluído @elseif($percentual > 0) {{ number_format($percentual, 0) }}% @else Pendente @endif
Nenhum produto definido
LOTES CONSUMIDOS NA PRODUÇÃO (MATÉRIA-PRIMA)
@if($ordem->lotesConsumidos->count() > 0) @foreach($ordem->lotesConsumidos as $opLote) @endforeach
Código Lote Produto/Material Fornecedor Qtd. Consumida Data Fabricação Data Validade Certificado
{{ $opLote->lote->codigo_lote }} {{ $opLote->lote->produto->codigo }}
{{ Str::limit($opLote->lote->produto->nome, 30) }}
@if($opLote->lote->fornecedor) {{ Str::limit($opLote->lote->fornecedor->razao_social, 20) }} @else Produção Própria @endif {{ number_format($opLote->quantidade_consumida, 2, ',', '.') }}
{{ $opLote->lote->produto->unidade ?? 'UN' }}
@if($opLote->lote->data_fabricacao) {{ $opLote->lote->data_fabricacao->format('d/m/Y') }} @else - @endif @if($opLote->lote->data_validade) {{ $opLote->lote->data_validade->format('d/m/Y') }} @if($opLote->lote->isVencido())
VENCIDO @endif @else - @endif
{{ $opLote->lote->numero_certificado ?? '-' }}
TOTAL DE LOTES: {{ $ordem->lotesConsumidos->count() }} lotes
RASTREABILIDADE DETALHADA DOS LOTES
@if(isset($rastreabilidades) && count($rastreabilidades) > 0) @foreach($rastreabilidades as $loteId => $rastreabilidade) @php $loteAtual = $ordem->lotesConsumidos->firstWhere('lote_id', $loteId)->lote; @endphp

{{ $rastreabilidade['resumo']['codigo_lote'] }} → {{ $rastreabilidade['resumo']['produto'] }}

Origem (Montante):
Fornecedor: {{ $rastreabilidade['montante']['fornecedor']->razao_social ?? 'Produção Própria' }}
Compra: @if($rastreabilidade['montante']['compra']) NF {{ $rastreabilidade['montante']['compra']->numero_nota_fiscal ?? 'S/N' }} @else Entrada manual @endif
Data Entrada: {{ \Carbon\Carbon::parse($rastreabilidade['montante']['data_entrada'])->format('d/m/Y') }}
Uso (Jusante):
Qtd. Consumida nesta OP: {{ number_format($ordem->lotesConsumidos->firstWhere('lote_id', $loteId)->quantidade_consumida, 2, ',', '.') }}
Total OPs usando este lote: {{ $rastreabilidade['jusante']['ordens_producao']->count() }}
Qtd. Total Consumida: {{ number_format($rastreabilidade['jusante']['quantidade_consumida'], 2, ',', '.') }}
@endforeach @endif @else
Informação: Nenhum lote foi consumido nesta ordem de produção ainda.
Os lotes são vinculados quando há movimentações de estoque para esta OP.
@endif @if($ordem->observacoes)
OBSERVAÇÕES

{{ $ordem->observacoes }}

@endif