@php $c=$data['cost'];$id=$c['order_id'];$source=$c['source'];$facts=$c['facts'];$closed=collect($data['periods'])->where('period_key','QA-2026-10')->sortByDesc('version')->first()?->status==='closed';$money=fn($n)=>($n<0?'-':'').number_format(intdiv(abs($n),100),0,',',' ').','.str_pad((string)(abs($n)%100),2,'0',STR_PAD_LEFT).' MZN'; @endphp
Diário · Balancete e razão QA · Perfis do ensaio Oficina → custo directo validado → Contabilidade EXCLUSIVAMENTE SINTÉTICO. Custo directo conhecido do perímetro seleccionado, não custo completo, margem, stock valorizado ou salário. Contas artificiais; nenhuma execução monetária.
Empresa #{{ $c['scope']['company_id'] }} / unidade #{{ $c['scope']['unit_id'] }}. Validar o custo não lança automaticamente. Capturar, rever e aplicar são decisões individuais.
@if($facts)Conferência da ordem #{{ $id }} {{ $facts['conference']['order']['reference'] }} · cálculo #{{ $facts['conference']['calculation']['id']??'pendente' }} / versão {{ $facts['conference']['calculation']['version']??'—' }} · decisão {{ $facts['conference']['decision']['decision']??'pendente' }}
Conhecidos {{ $facts['conference']['snapshot']['known_subtotal_exact']??'—' }} MZN; total seleccionado {{ $facts['conference']['snapshot']['selected_direct_total_exact']??'indisponível' }} MZN.
@if($c['pending']){{ $c['pending'] }}
@endifOrigens verificadas, taxas, decisões e versões {{ json_encode($facts,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE) }}
@if($source)Impacto proposto: D QA-CUSTO-DIRECTO {{ $money($source['principal_minor']) }} / C QA-COMPENSACAO-ENSAIO {{ $money($source['principal_minor']) }}. Sem alterar a origem ou criar dívida.
@if(!$closed&&$data['permissions']['prepare']&&!count($data['book']['journals']))@endif @endif
@if($closed)Período QA fechado; conservar a consulta e os comprovativos. Sem reabertura.
@endif @endif
@if($c['accounting_state']==='requires_correction')A fonte actual difere do custo lançado ou está pendente. Não criar outro reconhecimento; a conferência do período exige uma resolução explícita.
@endif
@if(config('cost_ledger.correction_enabled')===true)@include('accounting.cost-correction')@endif
Propostas e conferência contabilística @foreach($data['book']['proposals'] as $p)@php $snap=json_decode($p->snapshot,true);$isPart=in_array($snap['source']['effect_type'],['journal.reversal','journal.replacement','workshop.direct_cost.reversal','workshop.direct_cost.replacement','industry.cost.reversal','industry.cost.replacement'],true);$r=collect($data['book']['reviews'])->firstWhere('proposal_id',$p->id); @endphpProposta #{{ $p->id }} · versão da captura {{ $p->capture_version }} {{ $p->reason }} · preparador #{{ $p->prepared_by }} · revisão exacta {{ $p->revision }}
@foreach($snap['lines'] as $l){{ $l['account_code'] }} — D {{ $money($l['debit_minor']) }} / C {{ $money($l['credit_minor']) }} @endforeach Fotografia imutável capturada {{ json_encode($snap,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE) }} @if($r){{ $r->decision }} por #{{ $r->reviewed_by }} · {{ $r->reason }}
@endif
@if(!$closed&&!$isPart&&$data['permissions']['validate']&&!$r&&$p->prepared_by!==auth()->id())DecisãoEscolher Aprovar versão exacta Recusar Fundamento independente Registar conferência — sem aplicar @endif
@if(!$closed&&!$isPart&&$data['permissions']['post']&&$r?->decision==='approved'&&!$p->journal_id&&$p->prepared_by===auth()->id())Fundamento da aplicação Revalidar e aplicar este custo uma vez @endif @endforeach
Lançamentos e histórico por origem Débitos {{ $money($data['book']['totals']['debit_minor']) }} · créditos {{ $money($data['book']['totals']['credit_minor']) }}.
@foreach($data['book']['journals'] as $j)Lançamento #{{ $j->id }} · {{ $j->journal_on }} · {{ $money($j->debit_minor) }} Proposta #{{ $j->proposal_id }} · revisão #{{ $j->review_id }} · aplicador #{{ $j->posted_by }} · {{ $j->reason }}
{{ json_encode(json_decode($j->snapshot,true),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE) }} @endforeach @foreach($data['book']['events'] as $e)#{{ $e->id }} · {{ $e->kind }} · autor #{{ $e->actor_id }} · {{ $e->reason }}
@endforeach
Conferência e fecho do período composto Inclui todas as fontes compostas da empresa/unidade. Custo pendente, alterado ou ainda não lançado impede o fecho; ocultar uma linha na página não a exclui da conferência.
@if(!$closed&&$data['permissions']['period_prepare'])Fundamento Capturar conferência do período @endif
@foreach($data['period_checks'] as $p)@php $r=collect($data['period_reviews'])->firstWhere('check_id',$p->id); @endphpConferência #{{ $p->id }} {{ $p->reason }} · versão {{ $p->revision }}
Impacto e fotografia do período {{ $p->snapshot }} @if($r){{ $r->decision }} · autor #{{ $r->actor_id }} · {{ $r->reason }}
@endif
@if(!$closed&&!$r&&$data['permissions']['period_validate']&&$p->prepared_by!==auth()->id())DecisãoEscolher Aprovar Recusar Fundamento Conferir período sem fechar @endif
@if(!$closed&&$r?->decision==='approved'&&$data['permissions']['period_close']&&$p->prepared_by===auth()->id())Fundamento Revalidar e fechar o período QA @endif @endforeach @foreach($data['period_closures'] as $c)Fecho #{{ $c->id }} · {{ $c->period_key }} v{{ $c->period_version }} · {{ $c->reason }}
@endforeach
@php $pages=array_merge([$data['cost']['pagination']['last_page'],$data['book']['pagination']['last_page']],array_column($data['pagination'],'last_page'),array_column($data['book']['evidence_pagination'],'last_page'));$page=$data['book']['pagination']['page'];$last=max($pages); @endphpPágina {{ $page }} de {{ $last }} · cada lista limitada a25 registos
@foreach([-1=>'Anterior',1=>'Seguinte'] as $delta=>$label)@if($page+$delta>=1&&$page+$delta<=$last){{ $label }} @endif @endforeach
@include('accounting.receipt-recovery')