@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 Custo directo e diário QA
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.

Perímetros explicitamente compostos

@foreach($c['orders'] as $o)

Ordem #{{ $o->order_id }} · {{ $o->reason }}

@endforeach
@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'] }}

@endif
Origens 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); @endphp

Proposta #{{ $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())
@endif @if(!$closed&&!$isPart&&$data['permissions']['post']&&$r?->decision==='approved'&&!$p->journal_id&&$p->prepared_by===auth()->id())
@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'])
@endif @foreach($data['period_checks'] as $p)@php $r=collect($data['period_reviews'])->firstWhere('check_id',$p->id); @endphp

Conferê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())
@endif @if(!$closed&&$r?->decision==='approved'&&$data['permissions']['period_close']&&$p->prepared_by===auth()->id())
@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); @endphp @include('accounting.receipt-recovery')