htmlspecialchars((string)$v,ENT_QUOTES|ENT_SUBSTITUTE,'UTF-8');$json=static fn($v)=>json_encode($v,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR); $money=static fn($v)=>($v<0?'-':'').intdiv(abs($v),100).','.str_pad((string)(abs($v)%100),2,'0',STR_PAD_LEFT); $can=fn($a)=>in_array($a,$settings['can'],true);$actor=$settings['actor_id'];$open=($data['cycle']['periods'][0]->status??null)==='open'; $form=function($action,$body,$label)use($e,$json){echo '
';}; ?>Stock e valorização QA
Voltar aos percursos QA

Stock físico → valorização → diário

Exclusivamente sintético. Taxa de ensaio, contas artificiais e MZN. Conferir o impacto não move quantidades nem cria obrigação ou pagamento.

Livro · artigo · armazém · unidade · período ·

Balancete · Razão de stock

Taxa por UN, com revisão distinta

A última versão tem de estar aprovada. Uma taxa ausente ou uma sucessora pendente deixa a valorização incompleta. Correcção após lançamento não faz parte deste ensaio.

Versãoversion) ?> · unit_minor)) ?> MZN/UN · autorprepared_by) ?> · review->decision??'pendente de revisão') ?> · reason) ?>

review&&$can('validate')&&$r->prepared_by!==$actor){foreach(['approved'=>'Aprovar taxa','rejected'=>'Recusar taxa']as$decision=>$label)$form('rate-validate',['rate_id'=>$r->id,'version'=>$r->version,'decision'=>$decision],$label);} ?>

Movimentos efectivos e dependências

Saldo físico: milésimos de UN. Cada movimento é conferido individualmente; não há valorização em lote.

OrigemQuantidade em milésimosValor MZNConferência
#
Versões e dependências actuais
$source['effect_type'],'source_id'=>$m['id'],'journal_on'=>$source['stock_movement_on'],'period_key'=>$source['permitted_period_key'],'rule_key'=>$source['effect_type']],'Preparar conferência deste movimento'); ?>

Propostas e impacto contabilístico

Conferir débito/crédito, origem, taxa, dependências e versão antes de decidir. A aplicação volta a validar o estado actual.

snapshot,true);$review=collect($data['ledger']['reviews'])->firstWhere('proposal_id',$p->id); ?>

Propostaid) ?> · capturacapture_version) ?>

Origem · autorprepared_by) ?> · decision??'sem revisão') ?>journal_id?' · lançamento #'.$e($p->journal_id):'' ?>

  • : débito / crédito MZN
Fotografia completa da conferência
journal_id&&!$review&&$can('validate')&&$p->prepared_by!==$actor){foreach(['approved'=>'Aprovar esta versão','rejected'=>'Recusar esta versão']as$decision=>$label)$form('validate',['proposal_id'=>$p->id,'revision'=>$p->revision,'decision'=>$decision],$label);}if($open&&!$p->journal_id&&($review->decision??null)==='approved'&&$can('post')&&$p->prepared_by===$actor)$form('post',['proposal_id'=>$p->id,'revision'=>$p->revision],'Aplicar exactamente este impacto'); ?>

Conferência e fecho do período QA

$data['stock']['book']['period_key']],'Preparar conferência do período'); ?> firstWhere('check_id',$c->id); ?>

Conferênciaid) ?> · autorprepared_by) ?> · decision??'pendente') ?>

Factos e impacto do fecho
snapshot) ?>
prepared_by!==$actor)$form('period-validate',['check_id'=>$c->id,'revision'=>$c->revision,'decision'=>'approved'],'Aprovar conferência exacta do período');if($open&&($r->decision??null)==='approved'&&$can('period_close')&&$c->prepared_by===$actor)$form('period-close',['check_id'=>$c->id,'revision'=>$c->revision],'Confirmar fecho QA'); ?>

Recuperar comprovativo sem executar

Uma resposta perdida não autoriza repetição automática. Consulte a chave do pedido no domínio certo; ausência de comprovativo não prova falha.