Files
SGF/resources/views/accounting/industrial-correction.blade.php
2026-11-04 09:37:20 +02:00

13 lines
4.4 KiB
PHP

@php $c=$i;$c['original_journal']=$i['journal'];$source=$i['source']; @endphp
@php $original=$c['original_journal']; @endphp
@if($original&&$source)<section><h2>Correcção explícita do resultado industrial lançado</h2><p>Original #{{ $original->id }}: {{ $money($original->debit_minor) }}. Resultado industrial actual validado: {{ $money($source['principal_minor']) }}. Diferença: {{ $money($source['principal_minor']-$original->debit_minor) }}.</p><p>O original permanece imutável. O par contém estorno integral e substituição; nenhuma das partes pode ser revista ou aplicada isoladamente.</p>
@if(!$closed&&$c['accounting_state']==='requires_future_correction'&&$data['permissions']['correct_prepare']&&!collect($data['correction_results'])->contains('original_journal_id',$original->id))<form data-action="correct-prepare"><input type="hidden" name="journal_id" value="{{ $original->id }}"><label>Data explícita da correcção<input type="date" name="journal_on" value="2026-10-29" required></label><label>Período aberto do original<input name="period_key" value="QA-2026-10" required></label><label>Fundamento do par<textarea name="reason" required minlength="3" maxlength="2000"></textarea></label><button>Capturar estorno e substituição — sem aplicar</button></form>@endif
@foreach($data['corrections'] as $group)@php $reverse=json_decode($group->reverse_snapshot,true);$replacement=json_decode($group->replacement_snapshot,true); @endphp<article><h3>Grupo #{{ $group->id }} · original #{{ $group->original_journal_id }}</h3><p>Autor #{{ $group->prepared_by }} · {{ $group->reason }} · versão exacta <code>{{ $group->revision }}</code></p><p>Estorno {{ $money($reverse['impact']['debit_minor']) }} · substituição {{ $money($replacement['impact']['debit_minor']) }} · diferença {{ $money($replacement['impact']['debit_minor']-$reverse['impact']['debit_minor']) }}.</p><h4>Estorno</h4><ul>@foreach($reverse['lines'] as $line)<li>{{ $line['account_code'] }} — D {{ $money($line['debit_minor']) }} / C {{ $money($line['credit_minor']) }}</li>@endforeach</ul><h4>Substituição</h4><ul>@foreach($replacement['lines'] as $line)<li>{{ $line['account_code'] }} — D {{ $money($line['debit_minor']) }} / C {{ $money($line['credit_minor']) }}</li>@endforeach</ul><details><summary>Fotografias do original, fonte actual, contas e período</summary><pre>{{ json_encode(['reverse'=>$reverse,'replacement'=>$replacement],JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE) }}</pre></details>
@foreach([$group->reverse_review,$group->replacement_review] as $review)@if($review)<p>Proposta #{{ $review->proposal_id }} · {{ $review->decision }} · revisor #{{ $review->reviewed_by }} · {{ $review->reason }}</p>@endif @endforeach
@if($group->result)<p>Par aplicado: resultado #{{ $group->result->id }}, estorno #{{ $group->result->reverse_journal_id }} e substituição #{{ $group->result->replacement_journal_id }} · autor #{{ $group->result->actor_id }} · {{ $group->result->created_at }} · {{ $group->result->reason }}</p>
@elseif(!$group->current)<p class="notice">Captura superada; conservar o histórico e conferir o grupo actual.</p>
@elseif(!$closed)
@if($data['permissions']['correct_validate']&&!$group->reverse_review&&!$group->replacement_review&&$group->prepared_by!==auth()->id())<form data-action="correct-validate"><input type="hidden" name="correction_id" value="{{ $group->id }}"><input type="hidden" name="revision" value="{{ $group->revision }}"><label>Decisão do par completo<select name="decision" required><option value="">Escolher</option><option value="approved">Aprovar as quatro linhas exactas</option><option value="rejected">Recusar o par</option></select></label><label>Fundamento independente<textarea name="reason" required minlength="3" maxlength="2000"></textarea></label><button>Registar conferência do par — sem aplicar</button></form>@endif
@if($data['permissions']['correct_post']&&$group->prepared_by===auth()->id()&&$group->reverse_review?->decision==='approved'&&$group->replacement_review?->decision==='approved')<form data-action="correct-post"><input type="hidden" name="correction_id" value="{{ $group->id }}"><input type="hidden" name="revision" value="{{ $group->revision }}"><label>Fundamento da aplicação conjunta<textarea name="reason" required minlength="3" maxlength="2000"></textarea></label><button>Revalidar e aplicar o par numa transacção</button></form>@endif
@endif</article>@endforeach</section>@endif