From ca13acb74e4beb2c0b7afca5a48bcde9f7eb39d5 Mon Sep 17 00:00:00 2001 From: nala Date: Sun, 25 Oct 2026 22:02:44 +0200 Subject: [PATCH] Preserva entrega A aceite de servicos em rascunho --- AGENTS.md | 4 + README.md | 22 +- app/Modules/Identity/Services/Audit.php | 2 +- .../Identity/Services/IdentityWorkflow.php | 1 + app/Modules/Services/DraftValues.php | 58 +++++ .../Services/Http/ServiceController.php | 46 ++++ app/Modules/Services/ServiceAccess.php | 52 +++++ app/Modules/Services/ServicePermissions.php | 22 ++ app/Modules/Services/ServiceWorkflow.php | 163 ++++++++++++++ ...0_25_030000_create_services_delivery_a.php | 140 ++++++++++++ docs/SERVICES_A_DELIVERY.md | 82 +++++++ docs/SERVICES_WORKFLOW_SPEC.md | 40 +++- docs/proofs/a-01-precision-refused.png | Bin 0 -> 68686 bytes docs/proofs/a-02-draft-pending.png | Bin 0 -> 91115 bytes docs/proofs/a-03-history-and-pending.png | Bin 0 -> 81420 bytes docs/proofs/a-04-read-only.png | Bin 0 -> 84523 bytes docs/proofs/a-concurrency.json | 16 ++ docs/proofs/a-durable-capture.json | 18 ++ docs/proofs/a-http-results.json | 10 + resources/css/app.css | 1 + resources/js/ServicesWorkspace.jsx | 106 +++++++++ resources/js/app.jsx | 11 +- routes/web.php | 9 + scripts/a-concurrency-proof.php | 39 ++++ scripts/a-concurrency-worker.php | 21 ++ scripts/a-http-proof.mjs | 50 +++++ scripts/a-proof-metrics.php | 13 ++ scripts/a-status.php | 11 + scripts/prepare-browser-fixture.php | 4 +- tests/Feature/ServicesDeliveryATest.php | 207 ++++++++++++++++++ tests/Support/ServicesFixture.php | 21 ++ 31 files changed, 1152 insertions(+), 17 deletions(-) create mode 100644 app/Modules/Services/DraftValues.php create mode 100644 app/Modules/Services/Http/ServiceController.php create mode 100644 app/Modules/Services/ServiceAccess.php create mode 100644 app/Modules/Services/ServicePermissions.php create mode 100644 app/Modules/Services/ServiceWorkflow.php create mode 100644 database/migrations/2026_10_25_030000_create_services_delivery_a.php create mode 100644 docs/SERVICES_A_DELIVERY.md create mode 100644 docs/proofs/a-01-precision-refused.png create mode 100644 docs/proofs/a-02-draft-pending.png create mode 100644 docs/proofs/a-03-history-and-pending.png create mode 100644 docs/proofs/a-04-read-only.png create mode 100644 docs/proofs/a-concurrency.json create mode 100644 docs/proofs/a-durable-capture.json create mode 100644 docs/proofs/a-http-results.json create mode 100644 resources/js/ServicesWorkspace.jsx create mode 100644 scripts/a-concurrency-proof.php create mode 100644 scripts/a-concurrency-worker.php create mode 100644 scripts/a-http-proof.mjs create mode 100644 scripts/a-proof-metrics.php create mode 100644 scripts/a-status.php create mode 100644 tests/Feature/ServicesDeliveryATest.php create mode 100644 tests/Support/ServicesFixture.php diff --git a/AGENTS.md b/AGENTS.md index 4914ae9..1ced4e1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,3 +16,7 @@ - As alterações usam o token do contexto revisto, validação de permissões no servidor e auditoria na mesma transacção. Não remover os triggers de imutabilidade ou de auditoria append-only. - Provas de navegador usam browser-testing na porta 8001 e apenas sgf_tempo_test, com sessões/cache isolados e CSRF activo. Parar a prova antes de executar testes que recriam a base de testes. - Em 25 de Outubro de 2026, o utilizador aceitou e deu por concluído o incremento local de entrada, contexto e permissões no âmbito demonstrado e com os limites de docs/IDENTITY_DELIVERY.md. Preservar essa entrega como base. Serviços permanece apenas em especificação; não há autorização para implementação financeira ou publicação. +- Autorização posterior: implementar exclusivamente a entrega A de docs/SERVICES_WORKFLOW_SPEC.md. Clientes/serviços são da empresa; prestações e facturação permanecem rascunhos da unidade. A autorização não abrange B/C, emissão fiscal, confirmação de operações, lançamentos, recebimentos, reconciliação, fecho ou publicação. +- As novas concessões de A foram especificamente confirmadas para as contas existentes ID 1 e ID 2, na empresa ID 1 / unidade ID 1, após conferência. Não inferir direitos dos emails, nomes ou concessões de identidade; qualquer nova aplicação inicial exige confirmação específica. +- Em A, quantidades/preços são cadeias decimais exactas com até 16 algarismos inteiros e 8 decimais. Não usar float, moeda por omissão, imposto desconhecido como zero ou arredondamentos silenciosos. Histórico/eventos/outbox/pendências são transaccionais; não processar contabilidade nesta entrega. +- Em 25 de Outubro de 2026, o utilizador aceitou a entrega A no âmbito demonstrado e com os limites de docs/SERVICES_A_DELIVERY.md e autorizou um checkpoint Git exclusivamente local, sem credenciais ou dados locais. Preservar esta base aceite. Não avançar para B/C nem publicar. diff --git a/README.md b/README.md index 819c1fc..b5a6301 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,27 @@ Primeiro percurso funcional local, sobre a fundação existente e o roteiro v0.9 de 25 de Outubro de 2026. Laravel modular com React, independente do InvesteMoz. Versões e lockfiles preservados; sem módulos financeiros, integrações externas ou publicação. -**Estado:** incremento local de entrada, contexto e permissões aceite e concluído pelo utilizador em 25 de Outubro de 2026, com os limites de [IDENTITY_DELIVERY.md](docs/IDENTITY_DELIVERY.md). Preservar esta base. Serviços mantém-se apenas em especificação; implementação financeira e publicação não estão autorizadas. +**Base aceite:** incremento local de entrada, contexto e permissões aceite e concluído pelo utilizador em 25 de Outubro de 2026, com os limites de [IDENTITY_DELIVERY.md](docs/IDENTITY_DELIVERY.md). Preservar esta base. A autorização posterior de serviços está delimitada abaixo. + +**Entrega A aceite em 25 de Outubro de 2026:** serviços em rascunho, no âmbito demonstrado e com os limites de [SERVICES_A_DELIVERY.md](docs/SERVICES_A_DELIVERY.md). B/C, operações financeiras confirmadas e publicação continuam sem autorização. O checkpoint aceite `26b80df` permanece preservado. + +## Usar a entrega A + +Actualizar o navegador e entrar normalmente. Seleccionar a empresa e a unidade autorizadas. Os novos menus são **Clientes**, **Serviços**, **Prestações em rascunho** e **Rascunhos de facturação**. + +1. Criar o cliente (apenas nome obrigatório) e o serviço. São cadastros da empresa, reutilizados entre unidades. +2. Criar uma prestação em rascunho na unidade seleccionada, escolhendo o cliente e as linhas de serviço existentes. +3. Preencher quantidades/preços como texto decimal com ponto, até 16 algarismos inteiros e 8 decimais. Valores vazios ficam pendentes. Não há moeda por omissão. +4. Guardar e usar **Preparar rascunho de facturação**. O servidor reutiliza cliente, linhas, moeda indicada e versão da prestação, sem emitir factura. +5. Consultar pendências e **Histórico e captura durável**. A base aritmética não é um total fiscal ou valor definitivo a pagar. + +Uma prestação alterada não reescreve silenciosamente o rascunho de facturação: aparece uma pendência. **Actualizar explicitamente da prestação** cria outra versão com os dados de origem revistos. + +**Gerir acessos desta área** permite conceder/revogar apenas acções que o gestor possui no mesmo âmbito. Clientes/serviços têm âmbito de empresa; os dois tipos de rascunho têm âmbito de unidade. Os acessos de identidade continuam no menu anterior **Acessos**. + +As novas concessões foram confirmadas especificamente para os registos existentes de Osmane (16 concessões) e Samira (4 de consulta), na Tempo Lda/SEGI. Nenhuma conta foi criada nesta entrega e nenhum dado de demonstração foi colocado em desenvolvimento. + +Consultar estado local, sem mostrar segredos: `sgf.ps1 php scripts/a-status.php`. Não repetir `a-access-plan.php --apply` sem nova confirmação específica caso os direitos tenham sido entretanto alterados. ## Abrir e parar diff --git a/app/Modules/Identity/Services/Audit.php b/app/Modules/Identity/Services/Audit.php index c3cb728..d58cca1 100644 --- a/app/Modules/Identity/Services/Audit.php +++ b/app/Modules/Identity/Services/Audit.php @@ -9,7 +9,7 @@ final class Audit public static function record(string $action, ?int $actor, ?int $tenant = null, ?int $company = null, ?int $unit = null, ?int $subject = null, array $details = []): void { // Explicit allowlist: credentials, session/context tokens and request bodies never enter audit. - $safe = array_intersect_key($details, array_flip(['before_name', 'after_name', 'permission', 'reason', 'operator', 'grants'])); + $safe = array_intersect_key($details, array_flip(['before_name', 'after_name', 'permission', 'reason', 'operator', 'grants', 'area', 'record_id', 'version', 'event_id'])); DB::table('identity_audit')->insert([ 'action' => $action, 'actor_id' => $actor, 'tenant_id' => $tenant, 'company_id' => $company, 'unit_id' => $unit, 'subject_id' => $subject, diff --git a/app/Modules/Identity/Services/IdentityWorkflow.php b/app/Modules/Identity/Services/IdentityWorkflow.php index c81eed0..f53714e 100644 --- a/app/Modules/Identity/Services/IdentityWorkflow.php +++ b/app/Modules/Identity/Services/IdentityWorkflow.php @@ -112,6 +112,7 @@ final class IdentityWorkflow $members = DB::table('company_memberships as m')->join('users as u', 'u.id', '=', 'm.user_id') ->where('m.tenant_id', $ids['tenant_id'])->where('m.company_id', $ids['company_id'])->select('u.id', 'u.name', 'u.email')->orderBy('u.name')->get(); $grants = DB::table('permission_grants')->where('tenant_id', $ids['tenant_id'])->where('company_id', $ids['company_id']) + ->whereIn('permission', array_merge(Permissions::COMPANY, Permissions::UNIT)) ->where(fn ($q) => $q->whereNull('unit_id')->orWhereIn('unit_id', $allowedUnits))->get(['id', 'user_id', 'unit_id', 'permission']); return ['members' => $members, 'grants' => $grants, 'catalogue' => ['company' => Permissions::COMPANY, 'unit' => Permissions::UNIT]]; } diff --git a/app/Modules/Services/DraftValues.php b/app/Modules/Services/DraftValues.php new file mode 100644 index 0000000..4446688 --- /dev/null +++ b/app/Modules/Services/DraftValues.php @@ -0,0 +1,58 @@ + 'Use uma cadeia decimal com ponto, até 16 algarismos inteiros e 8 decimais; sem expoentes ou arredondamento.']); + } + $decimal = BigDecimal::of($value); + if ($positive && $decimal->isLessThanOrEqualTo(BigDecimal::zero())) { throw ValidationException::withMessages([$field => 'A quantidade deve ser superior a zero quando preenchida.']); } + return (string) $decimal->stripTrailingZeros(); + } + + public static function lines(array $lines, array $scope): array + { + $result = []; + foreach ($lines as $index => $line) { + $service = DB::table('a_services')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('id', $line['service_id'])->first(); + abort_unless($service, 403, 'Serviço fora da empresa autorizada.'); + $result[] = ['service_id' => (int) $service->id, 'service_name' => $service->name, + 'description' => $line['description'] ?? null, + 'quantity' => self::decimal($line['quantity'] ?? null, "lines.$index.quantity", true), + 'unit_price' => self::decimal($line['unit_price'] ?? null, "lines.$index.unit_price")]; + } + return $result; + } + + public static function pending(array $data): array + { + $pending = ['tax_rule_pending' => 'Imposto por definir e validar; não foi considerado zero.', + 'accounting_rule_pending' => 'Regras contabilísticas por validar; nenhum lançamento foi produzido.']; + if (empty($data['currency'])) { $pending['currency_missing'] = 'Moeda não indicada; nenhuma moeda foi presumida.'; } + else { $pending['currency_validation_pending'] = 'Moeda indicada pelo utilizador; a sua aplicabilidade e a moeda funcional continuam por validar.'; } + foreach ($data['lines'] as $index => $line) { + if ($line['quantity'] === null) { $pending["quantity_missing_$index"] = 'Quantidade por preencher na linha '.($index + 1).'.'; } + if ($line['unit_price'] === null) { $pending["price_missing_$index"] = 'Preço proposto por preencher na linha '.($index + 1).'.'; } + } + return $pending; + } + + public static function base(array $data): ?string + { + $sum = BigDecimal::zero(); + foreach ($data['lines'] ?? [] as $line) { + if ($line['quantity'] === null || $line['unit_price'] === null) { return null; } + $sum = $sum->plus(BigDecimal::of($line['quantity'])->multipliedBy($line['unit_price'])); + } + return (string) $sum->stripTrailingZeros(); + } +} diff --git a/app/Modules/Services/Http/ServiceController.php b/app/Modules/Services/Http/ServiceController.php new file mode 100644 index 0000000..ca18f25 --- /dev/null +++ b/app/Modules/Services/Http/ServiceController.php @@ -0,0 +1,46 @@ +json(['records' => $workflow->list($area, $request->user()->id)]); } + public function show(Request $request, string $area, int $id, ServiceWorkflow $workflow) { return response()->json($workflow->show($area, $id, $request->user()->id)); } + public function create(Request $request, string $area, ServiceWorkflow $workflow) { return $this->save($request, $area, null, $workflow); } + public function update(Request $request, string $area, int $id, ServiceWorkflow $workflow) { return $this->save($request, $area, $id, $workflow); } + + private function save(Request $request, string $area, ?int $id, ServiceWorkflow $workflow) + { + abort_unless(in_array($area, ServicePermissions::AREAS, true), 404); + $rules = ['name' => ServicePermissions::unitScoped($area) ? 'sometimes|required|string|max:255' : 'required|string|max:255', + 'description' => 'nullable|string|max:2000', 'version' => $id ? 'required|integer|min:1' : 'prohibited']; + if ($area === 'clients') { unset($rules['description']); } + if (ServicePermissions::unitScoped($area)) { + $rules += ['currency' => 'nullable|string|regex:/^[A-Z]{3}$/', 'lines' => $area === 'service_drafts' ? 'required|array|min:1|max:100' : 'sometimes|array|min:1|max:100', + 'lines.*' => 'array:service_id,service_name,description,quantity,unit_price', 'lines.*.service_id' => 'required|integer|min:1', + 'lines.*.service_name' => 'sometimes|string|max:255', 'lines.*.description' => 'nullable|string|max:2000', 'lines.*.quantity' => 'nullable|string|max:30', 'lines.*.unit_price' => 'nullable|string|max:30']; + if ($area === 'service_drafts') { $rules['client_id'] = 'required|integer|min:1'; } + else { $rules['source_id'] = $id ? 'prohibited' : 'required|integer|min:1'; $rules['reload_source'] = 'sometimes|boolean'; } + } + $unknown = array_diff(array_keys($request->all()), array_keys($rules)); + abort_if($unknown !== [], 422, 'Campo não suportado ou identificador protegido.'); + $data = $request->validate($rules); + $key = (string) $request->header('Idempotency-Key', ''); + return response()->json($workflow->save($area, $id, $request->user()->id, $data, $key), $id ? 200 : 201); + } + + public function accesses(Request $request, string $area, ServiceAccess $access) { return response()->json($access->listing($area, $request->user()->id)); } + public function changeAccess(Request $request, string $area, ServiceAccess $access) + { + $data = $request->validate(['email' => 'required|email|max:255', 'action' => 'required|string', 'grant' => 'required|boolean', 'reason' => 'required|string|max:500']); + abort_if(array_diff(array_keys($request->all()), ['email','action','grant','reason']) !== [], 422); + $access->change($area, $request->user()->id, $data); + return response()->json(['ok' => true]); + } +} diff --git a/app/Modules/Services/ServiceAccess.php b/app/Modules/Services/ServiceAccess.php new file mode 100644 index 0000000..3b058a6 --- /dev/null +++ b/app/Modules/Services/ServiceAccess.php @@ -0,0 +1,52 @@ +workflow->scope($area, $actor, 'manage'); + $grants = DB::table('permission_grants as g')->join('users as u', 'u.id', '=', 'g.user_id')->where('g.tenant_id', $scope['tenant_id'])->where('g.company_id', $scope['company_id'])->where('g.unit_id', $scope['unit_id'])->whereIn('g.permission', array_map(fn ($action) => "$area.$action", ServicePermissions::ACTIONS)) + ->orderBy('u.name')->get(['g.id','g.permission','g.unit_id','u.name','u.email']); + $actions = array_values(array_filter(ServicePermissions::ACTIONS, fn ($action) => $this->permissions->has($actor, $scope['tenant_id'], $scope['company_id'], "$area.$action", $scope['unit_id']))); + return ['grants' => $grants, 'actions' => $actions, 'scope' => $scope]; + } + + public function change(string $area, int $actor, array $input): void + { + $scope = $this->workflow->scope($area, $actor, 'manage'); $selected = $this->context->unitId(); + DB::transaction(function () use ($area, $actor, $input, $scope, $selected): void { + DB::table('companies')->where('id', $scope['company_id'])->lockForUpdate()->firstOrFail(); + $this->context->selectFor($actor, $scope['tenant_id'], $scope['company_id'], $selected); + $this->workflow->scope($area, $actor, 'manage'); + $permission = "$area.".$input['action']; + abort_unless(in_array($input['action'], ServicePermissions::ACTIONS, true), 422); + $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], $permission, $scope['unit_id']); + $target = DB::table('users')->where('email', mb_strtolower($input['email']))->first(['id']); + abort_unless($target, 422, 'Utilizador inexistente; nenhuma conta é criada por concessão.'); + $this->permissions->require($target->id, $scope['tenant_id'], $scope['company_id'], 'company.view'); + if ($scope['unit_id']) { $this->permissions->require($target->id, $scope['tenant_id'], $scope['company_id'], 'unit.view', $scope['unit_id']); } + $query = DB::table('permission_grants')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->where('user_id', $target->id); + if ($input['grant']) { + if ($input['action'] !== 'view') { $this->permissions->require($target->id, $scope['tenant_id'], $scope['company_id'], "$area.view", $scope['unit_id']); } + DB::table('permission_grants')->insertOrIgnore($scope + ['user_id' => $target->id, 'permission' => $permission, 'created_at' => now(), 'updated_at' => now()]); + $changed = [['permission' => $permission, 'unit_id' => $scope['unit_id']]]; + } else { + $query->whereIn('permission', $input['action'] === 'view' ? array_map(fn ($action) => "$area.$action", ServicePermissions::ACTIONS) : [$permission]); + $changed = $query->get(['permission','unit_id'])->map(fn ($row) => (array) $row)->all(); + foreach ($changed as $row) { $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], $row['permission'], $scope['unit_id']); } + $query->delete(); + } + Audit::record($input['grant'] ? 'a.access.granted' : 'a.access.revoked', $actor, $scope['tenant_id'], $scope['company_id'], $scope['unit_id'], $target->id, + ['permission' => $permission, 'reason' => $input['reason'], 'grants' => $changed]); + }); + } +} diff --git a/app/Modules/Services/ServicePermissions.php b/app/Modules/Services/ServicePermissions.php new file mode 100644 index 0000000..21deacd --- /dev/null +++ b/app/Modules/Services/ServicePermissions.php @@ -0,0 +1,22 @@ + 'Clientes', 'services' => 'Serviços', 'service_drafts' => 'Prestações em rascunho', 'billing_drafts' => 'Rascunhos de facturação']; + + public static function unitScoped(string $area): bool { return in_array($area, ['service_drafts', 'billing_drafts'], true); } + public static function catalogue(bool $unit): array + { + $result = []; + foreach (self::AREAS as $area) { + if (self::unitScoped($area) === $unit) { + foreach (self::ACTIONS as $action) { $result[] = "$area.$action"; } + } + } + return $result; + } +} diff --git a/app/Modules/Services/ServiceWorkflow.php b/app/Modules/Services/ServiceWorkflow.php new file mode 100644 index 0000000..d70ac81 --- /dev/null +++ b/app/Modules/Services/ServiceWorkflow.php @@ -0,0 +1,163 @@ +context->identifiers(); + abort_unless($this->context->userId() === $actor, 403); + $unit = ServicePermissions::unitScoped($area) ? $this->context->unitId() : null; + abort_if(ServicePermissions::unitScoped($area) && $unit === null, 403, 'Seleccione uma unidade autorizada para esta área.'); + $this->permissions->require($actor, $ids['tenant_id'], $ids['company_id'], "$area.view", $unit); + $this->permissions->require($actor, $ids['tenant_id'], $ids['company_id'], "$area.$action", $unit); + return $ids + ['unit_id' => $unit]; + } + + private function query(string $area, array $scope) + { + return DB::table('a_'.$area)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id']); + } + + public function list(string $area, int $actor): array + { + $scope = $this->scope($area, $actor, 'view'); + return $this->query($area, $scope)->orderByDesc('id')->get()->map(fn ($item) => $this->describe($area, $item))->all(); + } + + public function show(string $area, int $id, int $actor): array + { + $scope = $this->scope($area, $actor, 'view'); + $record = $this->query($area, $scope)->where('id', $id)->first(); + abort_unless($record, 403, 'Registo fora do âmbito autorizado.'); + $result = $this->describe($area, $record); + $result['history'] = DB::table('a_history')->where('area', $area)->where('record_id', $id)->orderBy('version') + ->get(['id','version','actor_id','snapshot','created_at'])->map(function ($row) { + $row->snapshot = json_decode($row->snapshot, true); + $row->event = DB::table('a_events as e')->join('a_outbox as o', 'o.event_id', '=', 'e.id')->where('e.history_id', $row->id) + ->first(['e.id','e.type','e.schema_version','o.state']); + return $row; + })->all(); + return $result; + } + + private function describe(string $area, object $row): array + { + $result = (array) $row; + $result['data'] = json_decode($row->data, true, 32, JSON_THROW_ON_ERROR); + $result['version'] = (int) $row->version; + $result['base_amount'] = ServicePermissions::unitScoped($area) ? DraftValues::base($result['data']) : null; + $history = DB::table('a_history')->where('area', $area)->where('record_id', $row->id)->where('version', $row->version)->value('id'); + $result['pending'] = $history ? DB::table('a_pending')->where('history_id', $history)->pluck('message', 'code')->all() : []; + return $result; + } + + public function save(string $area, ?int $id, int $actor, array $input, string $key): array + { + $action = $id === null ? 'create' : 'edit'; + $scope = $this->scope($area, $actor, $action); + $selectedUnit = $this->context->unitId(); + abort_unless((bool) preg_match('/^[a-zA-Z0-9-]{8,100}$/D', $key), 422, 'É necessária uma chave de repetição válida.'); + $hash = hash('sha256', json_encode($this->canonical([$area, $id, $scope, $input]), JSON_THROW_ON_ERROR)); + return DB::transaction(function () use ($area, $id, $actor, $input, $key, $scope, $selectedUnit, $hash, $action): array { + DB::table('companies')->where('id', $scope['company_id'])->where('tenant_id', $scope['tenant_id'])->lockForUpdate()->firstOrFail(); + $this->context->selectFor($actor, $scope['tenant_id'], $scope['company_id'], $selectedUnit); + $this->scope($area, $actor, $action); + $previous = DB::table('a_commands')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('command_key', $key)->first(); + if ($previous) { + abort_unless((int) $previous->actor_id === $actor && hash_equals($previous->request_hash, $hash), 409, 'Chave repetida com conteúdo ou autor diferente.'); + return json_decode($previous->result, true, 32, JSON_THROW_ON_ERROR) + ['replayed' => true]; + } + $old = $id ? $this->query($area, $scope)->where('id', $id)->first() : null; + if ($id) { + abort_unless($old, 403, 'Registo fora do âmbito autorizado.'); + abort_unless((int) $old->version === (int) ($input['version'] ?? 0), 409, 'O registo mudou. Reabra-o antes de guardar.'); + } + $version = $old ? (int) $old->version + 1 : 1; + $values = $this->normalise($area, $input, $scope, $old); + $data = $values['data']; $values['data'] = json_encode($data === [] ? new \stdClass() : $data, JSON_THROW_ON_ERROR); + $values += ['version' => $version, 'updated_at' => now()]; + if ($id) { $this->query($area, $scope)->where('id', $id)->update($values); } + else { $id = DB::table('a_'.$area)->insertGetId($scope + $values + ['created_at' => now()]); } + $record = $this->query($area, $scope)->where('id', $id)->first(); + $snapshot = (array) $record; $snapshot['data'] = $data; + $pending = ServicePermissions::unitScoped($area) ? DraftValues::pending($data) : []; + if ($area === 'billing_drafts') { + $current = DB::table('a_service_drafts')->where('id', $record->source_id)->value('version'); + if ((int) $current !== (int) $data['source_version']) { $pending['source_changed'] = 'A prestação tem uma versão mais recente. Reveja ou actualize explicitamente os dados de origem.'; } + } + $snapshot['pending'] = $pending; + $history = DB::table('a_history')->insertGetId($scope + ['area' => $area, 'record_id' => $id, 'version' => $version, + 'actor_id' => $actor, 'snapshot' => json_encode($snapshot, JSON_THROW_ON_ERROR), 'created_at' => now()]); + foreach ($pending as $code => $message) { DB::table('a_pending')->insert(['history_id' => $history, 'code' => $code, 'message' => $message, 'created_at' => now()]); } + $affected = []; + if ($area === 'service_drafts' && $old) { + foreach (DB::table('a_billing_drafts')->where('source_id', $id)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->get(['id','version']) as $billing) { + $billingHistory = DB::table('a_history')->where('area', 'billing_drafts')->where('record_id', $billing->id)->where('version', $billing->version)->value('id'); + DB::table('a_pending')->insertOrIgnore(['history_id' => $billingHistory, 'code' => 'source_changed', 'message' => 'A prestação de origem foi alterada; os dados deste rascunho não foram reescritos.', 'created_at' => now()]); + $affected[] = $billing->id; + } + } + $event = DB::table('a_events')->insertGetId(['history_id' => $history, 'type' => "a.$area.".($old ? 'updated' : 'created'), + 'schema_version' => 1, 'payload' => json_encode(['snapshot' => $snapshot, 'affected_billing_drafts' => $affected], JSON_THROW_ON_ERROR), 'created_at' => now()]); + DB::table('a_outbox')->insert(['event_id' => $event, 'state' => 'captured', 'created_at' => now()]); + Audit::record("a.$area.".($old ? 'updated' : 'created'), $actor, $scope['tenant_id'], $scope['company_id'], $scope['unit_id'], + details: ['area' => $area, 'record_id' => $id, 'version' => $version, 'event_id' => $event]); + $result = ['id' => $id, 'version' => $version, 'event_id' => $event]; + DB::table('a_commands')->insert(['tenant_id' => $scope['tenant_id'], 'company_id' => $scope['company_id'], 'actor_id' => $actor, + 'command_key' => $key, 'request_hash' => $hash, 'result' => json_encode($result, JSON_THROW_ON_ERROR), 'created_at' => now()]); + return $result + ['replayed' => false]; + }); + } + + private function normalise(string $area, array $input, array $scope, ?object $old): array + { + if (! ServicePermissions::unitScoped($area)) { + return ['name' => trim($input['name']), 'data' => $area === 'clients' ? [] : ['description' => $input['description'] ?? null]]; + } + $oldData = $old ? json_decode($old->data, true) : []; + $actor = $this->context->userId(); + foreach (['clients.view', 'services.view'] as $permission) { $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], $permission); } + $source = null; + if ($area === 'billing_drafts') { + $sourceId = $old ? $old->source_id : $input['source_id']; + $source = DB::table('a_service_drafts')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->where('id', $sourceId)->first(); + abort_unless($source, 403, 'Prestação fora da unidade autorizada.'); + $reload = ! $old || ($input['reload_source'] ?? false); + if ($reload) { $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], 'service_drafts.view', $scope['unit_id']); } + $base = $reload ? json_decode($source->data, true) : $oldData; + $clientId = $reload ? $source->client_id : $old->client_id; + $lines = $input['lines'] ?? $base['lines']; + $allowedIds = array_column($base['lines'], 'service_id'); + foreach ($lines as $line) { abort_unless(in_array((int) $line['service_id'], $allowedIds, true), 422, 'Use os serviços da prestação de origem.'); } + $currency = array_key_exists('currency', $input) ? $input['currency'] : ($base['currency'] ?? null); + $sourceVersion = $reload ? (int) $source->version : (int) $oldData['source_version']; + } else { + $clientId = $input['client_id']; $lines = $input['lines']; $currency = $input['currency'] ?? null; + } + $client = DB::table('a_clients')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('id', $clientId)->first(); + abort_unless($client, 403, 'Cliente fora da empresa autorizada.'); + $data = ['description' => $input['description'] ?? ($base['description'] ?? ($oldData['description'] ?? null)), 'currency' => $currency, + 'lines' => DraftValues::lines($lines, $scope), 'client_name' => $client->name, 'tax_status' => 'pending', 'accounting_status' => 'not_processed']; + $result = ['client_id' => (int) $clientId, 'state' => 'draft', 'data' => $data, + 'name' => trim($input['name'] ?? ($old?->name ?? ($area === 'billing_drafts' ? 'Rascunho da prestação #'.$source->id : 'Prestação de '.$client->name)))]; + if ($source) { $result['source_id'] = $source->id; $result['data']['source_version'] = $sourceVersion; } + return $result; + } + + private function canonical(mixed $value): mixed + { + if (! is_array($value)) { return $value; } + if (! array_is_list($value)) { ksort($value); } + return array_map(fn ($entry) => $this->canonical($entry), $value); + } +} diff --git a/database/migrations/2026_10_25_030000_create_services_delivery_a.php b/database/migrations/2026_10_25_030000_create_services_delivery_a.php new file mode 100644 index 0000000..ee01a87 --- /dev/null +++ b/database/migrations/2026_10_25_030000_create_services_delivery_a.php @@ -0,0 +1,140 @@ +id(); + $table->unsignedBigInteger('tenant_id'); + $table->unsignedBigInteger('company_id'); + $table->unsignedBigInteger('unit_id')->nullable(); + $table->foreign(['tenant_id', 'company_id'])->references(['tenant_id', 'id'])->on('companies')->restrictOnDelete(); + $table->foreign(['tenant_id', 'company_id', 'unit_id'])->references(['tenant_id', 'company_id', 'id'])->on('units')->restrictOnDelete(); + $table->string('name'); + $table->unsignedInteger('version')->default(1); + $table->jsonb('data'); + if (in_array($area, ['service_drafts', 'billing_drafts'], true)) { + $table->unsignedBigInteger('client_id'); + $table->foreign(['tenant_id', 'company_id', 'client_id'])->references(['tenant_id', 'company_id', 'id'])->on('a_clients')->restrictOnDelete(); + $table->string('state')->default('draft'); + } + if ($area === 'billing_drafts') { + $table->unsignedBigInteger('source_id'); + $table->foreign(['tenant_id', 'company_id', 'unit_id', 'source_id'])->references(['tenant_id', 'company_id', 'unit_id', 'id'])->on('a_service_drafts')->restrictOnDelete(); + } + $table->timestampsTz(); + $table->unique(['tenant_id', 'company_id', 'id']); + $table->unique(['tenant_id', 'company_id', 'unit_id', 'id']); + }); + $unitCheck = in_array($area, ['service_drafts', 'billing_drafts'], true) ? 'IS NOT NULL' : 'IS NULL'; + DB::statement("ALTER TABLE a_$area ADD CHECK (unit_id $unitCheck AND version > 0 AND jsonb_typeof(data) = 'object')"); + if (in_array($area, ['service_drafts', 'billing_drafts'], true)) { DB::statement("ALTER TABLE a_$area ADD CHECK (state = 'draft')"); } + } + Schema::create('a_history', function (Blueprint $table): void { + $table->id(); + $table->unsignedBigInteger('tenant_id'); $table->unsignedBigInteger('company_id'); $table->unsignedBigInteger('unit_id')->nullable(); + $table->string('area', 30); $table->unsignedBigInteger('record_id'); $table->unsignedInteger('version'); + $table->unsignedBigInteger('actor_id'); $table->jsonb('snapshot'); $table->timestampTz('created_at')->useCurrent(); + $table->unique(['area', 'record_id', 'version']); + $table->foreign(['tenant_id', 'company_id'])->references(['tenant_id', 'id'])->on('companies')->restrictOnDelete(); + }); + Schema::create('a_events', function (Blueprint $table): void { + $table->id(); $table->foreignId('history_id')->unique()->constrained('a_history')->restrictOnDelete(); + $table->string('type', 80); $table->unsignedInteger('schema_version')->default(1); + $table->jsonb('payload'); $table->timestampTz('created_at')->useCurrent(); + }); + Schema::create('a_outbox', function (Blueprint $table): void { + $table->foreignId('event_id')->primary()->constrained('a_events')->restrictOnDelete(); + $table->string('state')->default('captured'); $table->timestampTz('created_at')->useCurrent(); + }); + DB::statement("ALTER TABLE a_outbox ADD CHECK (state = 'captured')"); + Schema::create('a_pending', function (Blueprint $table): void { + $table->id(); $table->foreignId('history_id')->constrained('a_history')->restrictOnDelete(); + $table->string('code', 80); $table->string('message', 500); $table->timestampTz('created_at')->useCurrent(); + $table->unique(['history_id', 'code']); + }); + Schema::create('a_commands', function (Blueprint $table): void { + $table->id(); $table->unsignedBigInteger('tenant_id'); $table->unsignedBigInteger('company_id'); + $table->unsignedBigInteger('actor_id'); $table->string('command_key', 100); $table->string('request_hash', 64); + $table->jsonb('result'); $table->timestampTz('created_at')->useCurrent(); + $table->unique(['tenant_id', 'company_id', 'command_key']); + }); + DB::unprepared(<<<'SQL' + CREATE OR REPLACE FUNCTION sgf_a_record_guard() RETURNS trigger LANGUAGE plpgsql AS $$ + DECLARE line jsonb; field text; value text; + BEGIN + IF TG_OP = 'INSERT' AND NEW.version <> 1 THEN RAISE EXCEPTION 'SGF_A_INITIAL_VERSION'; END IF; + IF TG_OP = 'UPDATE' THEN + IF NEW.id IS DISTINCT FROM OLD.id OR NEW.tenant_id IS DISTINCT FROM OLD.tenant_id OR NEW.company_id IS DISTINCT FROM OLD.company_id OR NEW.unit_id IS DISTINCT FROM OLD.unit_id THEN + RAISE EXCEPTION 'SGF_A_IMMUTABLE_SCOPE'; + END IF; + IF NEW.version <> OLD.version + 1 THEN RAISE EXCEPTION 'SGF_A_VERSION_REQUIRED'; END IF; + IF TG_TABLE_NAME = 'a_billing_drafts' THEN + IF NEW.source_id IS DISTINCT FROM OLD.source_id THEN RAISE EXCEPTION 'SGF_A_IMMUTABLE_SOURCE'; END IF; + END IF; + END IF; + IF TG_TABLE_NAME IN ('a_service_drafts','a_billing_drafts') THEN + IF (NEW.data - ARRAY['description','currency','lines','client_name','source_version','tax_status','accounting_status']) <> '{}'::jsonb THEN RAISE EXCEPTION 'SGF_A_UNSUPPORTED_DATA'; END IF; + IF NEW.data->>'tax_status' IS DISTINCT FROM 'pending' OR NEW.data->>'accounting_status' IS DISTINCT FROM 'not_processed' THEN RAISE EXCEPTION 'SGF_A_DRAFT_ONLY'; END IF; + IF NEW.data->>'currency' IS NOT NULL AND NEW.data->>'currency' !~ '^[A-Z]{3}$' THEN RAISE EXCEPTION 'SGF_A_CURRENCY'; END IF; + IF jsonb_typeof(NEW.data->'lines') IS DISTINCT FROM 'array' OR jsonb_array_length(NEW.data->'lines') < 1 THEN RAISE EXCEPTION 'SGF_A_LINES'; END IF; + FOR line IN SELECT * FROM jsonb_array_elements(NEW.data->'lines') LOOP + IF (line - ARRAY['service_id','service_name','description','quantity','unit_price']) <> '{}'::jsonb THEN RAISE EXCEPTION 'SGF_A_UNSUPPORTED_LINE_DATA'; END IF; + IF NOT EXISTS(SELECT 1 FROM a_services s WHERE s.id = (line->>'service_id')::bigint AND s.tenant_id = NEW.tenant_id AND s.company_id = NEW.company_id) THEN RAISE EXCEPTION 'SGF_A_FOREIGN_SERVICE'; END IF; + FOREACH field IN ARRAY ARRAY['quantity','unit_price'] LOOP + value := line->>field; + IF value IS NOT NULL THEN + IF jsonb_typeof(line->field) <> 'string' OR value !~ '^(0|[1-9][0-9]{0,15})(\.[0-9]{1,8})?$' THEN RAISE EXCEPTION 'SGF_A_DECIMAL_PRECISION'; END IF; + IF field = 'quantity' AND value::numeric <= 0 THEN RAISE EXCEPTION 'SGF_A_QUANTITY'; END IF; + END IF; + END LOOP; + END LOOP; + END IF; + RETURN NEW; + END; $$; + CREATE OR REPLACE FUNCTION sgf_a_history_guard() RETURNS trigger LANGUAGE plpgsql AS $$ + DECLARE item record; target text; + BEGIN + target := CASE NEW.area WHEN 'clients' THEN 'a_clients' WHEN 'services' THEN 'a_services' WHEN 'service_drafts' THEN 'a_service_drafts' WHEN 'billing_drafts' THEN 'a_billing_drafts' ELSE NULL END; + IF target IS NULL THEN RAISE EXCEPTION 'SGF_A_AREA'; END IF; + EXECUTE format('SELECT tenant_id,company_id,unit_id,version FROM %I WHERE id=$1', target) INTO item USING NEW.record_id; + IF item IS NULL OR item.tenant_id IS DISTINCT FROM NEW.tenant_id OR item.company_id IS DISTINCT FROM NEW.company_id OR item.unit_id IS DISTINCT FROM NEW.unit_id OR item.version IS DISTINCT FROM NEW.version THEN RAISE EXCEPTION 'SGF_A_HISTORY_SCOPE'; END IF; + RETURN NEW; + END; $$; + SQL); + foreach (['clients', 'services', 'service_drafts', 'billing_drafts'] as $area) { + DB::statement("CREATE TRIGGER a_{$area}_guard BEFORE INSERT OR UPDATE ON a_$area FOR EACH ROW EXECUTE FUNCTION sgf_a_record_guard()"); + } + DB::statement('CREATE TRIGGER a_history_scope BEFORE INSERT ON a_history FOR EACH ROW EXECUTE FUNCTION sgf_a_history_guard()'); + foreach (['a_history', 'a_events', 'a_outbox', 'a_pending', 'a_commands'] as $table) { + DB::statement("CREATE TRIGGER {$table}_append_only BEFORE UPDATE OR DELETE ON $table FOR EACH ROW EXECUTE FUNCTION sgf_append_only_audit()"); + } + $company = ['company.view','company.edit','unit.create','access.manage']; $unit = ['unit.view','unit.edit']; + foreach (['clients','services','service_drafts','billing_drafts'] as $area) { + foreach (['view','create','edit','manage'] as $action) { + if (in_array($area, ['clients','services'], true)) { $company[] = "$area.$action"; } else { $unit[] = "$area.$action"; } + } + } + $companySql = "'".implode("','", $company)."'"; $unitSql = "'".implode("','", $unit)."'"; + DB::statement('ALTER TABLE permission_grants DROP CONSTRAINT permission_grants_scope_check'); + DB::statement("ALTER TABLE permission_grants ADD CONSTRAINT permission_grants_scope_check CHECK ((permission IN ($companySql) AND unit_id IS NULL) OR (permission IN ($unitSql) AND unit_id IS NOT NULL))"); + } + + public function down(): void + { + if (DB::table('permission_grants')->whereNotIn('permission', ['company.view','company.edit','unit.create','access.manage','unit.view','unit.edit'])->exists()) { + throw new RuntimeException('Remove explicit A grants through an approved procedure before rolling back.'); + } + foreach (['a_commands','a_pending','a_outbox','a_events','a_history','a_billing_drafts','a_service_drafts','a_services','a_clients'] as $table) { Schema::dropIfExists($table); } + DB::statement('DROP FUNCTION IF EXISTS sgf_a_record_guard()'); DB::statement('DROP FUNCTION IF EXISTS sgf_a_history_guard()'); + DB::statement('ALTER TABLE permission_grants DROP CONSTRAINT permission_grants_scope_check'); + DB::statement("ALTER TABLE permission_grants ADD CONSTRAINT permission_grants_scope_check CHECK ((permission IN ('company.view','company.edit','unit.create','access.manage') AND unit_id IS NULL) OR (permission IN ('unit.view','unit.edit') AND unit_id IS NOT NULL))"); + } +}; diff --git a/docs/SERVICES_A_DELIVERY.md b/docs/SERVICES_A_DELIVERY.md new file mode 100644 index 0000000..ea89248 --- /dev/null +++ b/docs/SERVICES_A_DELIVERY.md @@ -0,0 +1,82 @@ +# Entrega A — serviços em rascunho + +25 de Outubro de 2026. Entrega A aceite pelo utilizador no âmbito demonstrado e com os limites documentados. O checkpoint `26b80df` foi preservado; versões, manifests e lockfiles não foram alterados. + +## Aceitação + +Em 25 de Outubro de 2026 (Africa/Johannesburg), o utilizador declarou: «Aceito a entrega A no âmbito demonstrado e com os limites documentados. Regista a aceitação e preserva um checkpoint Git local, sem credenciais ou dados locais. Não avances ainda para B/C nem publiques.» + +Esta aceitação encerra apenas A. O checkpoint contém código, migração, documentação e provas sintéticas; exclui configurações privadas, credenciais, bases, sessões, logs e o plano operacional específico de concessões locais. Não autoriza B/C ou publicação. + +## Percurso funcional + +Depois de entrar e seleccionar empresa/unidade autorizadas, estão disponíveis Clientes, Serviços, Prestações em rascunho e Rascunhos de facturação, conforme concessões explícitas. + +- Clientes e serviços pertencem à empresa e são reutilizados entre unidades. Nome é o único campo obrigatório do cliente. +- Prestações e rascunhos de facturação pertencem à unidade autorizada. A facturação reutiliza cliente, linhas, moeda indicada e versão da prestação. +- Consulta, criação, edição e gestão de concessões são separadas nas quatro áreas. Direitos de identidade não concedem automaticamente direitos de A. Gestores só delegam direitos que possuem no mesmo âmbito. +- Alterações preservam versões, histórico, eventos duráveis, outbox, pendências e resultado idempotente na mesma transacção. Repetir o comando não duplica o registo ou evento; versões e contextos antigos são recusados. +- Alterar a prestação gera uma pendência nos rascunhos de facturação associados. Actualizar explicitamente da prestação cria outra versão, preservando a anterior. + +Quantidades e preços são cadeias decimais não negativas, com até 16 algarismos inteiros e 8 decimais; quantidade preenchida deve ser positiva. Entradas excedentes são recusadas, sem arredondamento. Produtos e somas derivados usam aritmética decimal exacta, podendo exigir mais casas. A base aritmética não é total fiscal nem valor definitivo a pagar. Moeda não é presumida; imposto desconhecido não é zero. Mesmo com código de moeda preenchido permanece pendente a sua validação. Regras fiscais e contabilísticas continuam explicitamente pendentes. + +Não há confirmação financeira, emissão de factura, lançamento contabilístico, recebimento, correcção financeira, reconciliação ou fecho. O outbox fica em captura durável, sem processamento contabilístico. B/C dependem de regras e autorização próprias. + +## Migração e preservação de dados + +Aplicada em `sgf_tempo_dev`, pelo wrapper de migrações e proprietário separado, a migração aditiva `2026_10_25_030000_create_services_delivery_a` (batch 4). A aplicação conserva o papel `sgf_dev_app`, sem administração PostgreSQL. + +O delta cria nove tabelas: `a_clients`, `a_services`, `a_service_drafts`, `a_billing_drafts`, `a_history`, `a_events`, `a_outbox`, `a_pending` e `a_commands`. Amplia o catálogo permitido de concessões, sem conceder acessos automaticamente. Inclui relações de âmbito, protecção SQL contra transferências de pertença, validação de dados e protecção append-only. O escopo Eloquent não é a única fronteira de isolamento. + +Não foi executado reset/fresh/wipe em desenvolvimento. As duas contas, tenant, empresa, unidade e oito concessões de identidade foram preservados. Após a implementação, as nove tabelas de A estavam vazias em desenvolvimento: as demonstrações usaram exclusivamente `sgf_tempo_test`. + +## Concessões especificamente confirmadas + +As contas foram conferidas antes da aplicação; nenhuma foi criada ou associada por suposição. O utilizador confirmou exactamente estas contas e concessões: + +| Conta existente | Clientes / serviços — Tempo Lda, empresa 1 | Prestações / facturação em rascunho — SEGI, unidade 1 | +| --- | --- | --- | +| ID 1 — Osmane Nala, nala@tempo.co.mz | Consulta, criação, edição e gestão em cada área | Consulta, criação, edição e gestão em cada área | +| ID 2 — Samira Nal, onala@me.com | Consulta em cada área | Consulta em cada área | + +Foram aplicadas e auditadas 16 concessões para Osmane e 4 para Samira, mantendo as oito anteriores (28 no total). Não há direitos implícitos noutras unidades ou poderes financeiros. Os emails apenas identificaram as contas nesta operação confirmada; não determinam privilégios durante a execução da aplicação. + +O plano operacional local `scripts/a-access-plan.php` conserva a pré-visualização e as verificações da operação, mas fica excluído do checkpoint por conter identificações locais. Não repetir `--apply` após alterações posteriores dos direitos sem nova confirmação específica. `scripts/a-status.php` permite verificar estado sem apresentar segredos. + +## Verificação realizada + +- Suite completa: **44 testes, 273 asserções, todos aprovados**, incluindo a fundação anterior. +- Compilação Vite: aprovada. Nenhuma dependência ou versão foi substituída. +- Testes de isolamento entre empresas, inclusive do mesmo tenant, e unidades; identificadores manipulados; consulta sem escrita; ausência de herança implícita; limites de delegação; versões/contextos antigos; alterações SQL em massa; histórico imutável; rollback integral com falha injectada no outbox. +- Dois processos PHP concorrentes: criação repetida produziu um registo/evento; edição concorrente terminou em 200/409, com apenas uma nova versão/evento. [Resultado](proofs/a-concurrency.json). +- HTTP com login real de contas sintéticas: leitura 200, alteração/gestão recusadas 403, concessão/revogação efectivas no pedido seguinte da mesma sessão, contexto/versão antigos 409, protecção CSRF 419 e cookie de sessão terminada 401. [Resultado](proofs/a-http-results.json). +- Captura durável na prova: 9 versões, 9 eventos, 9 entradas de outbox, 9 resultados de comandos, sem eventos órfãos; estado apenas `captured`. [Métricas](proofs/a-durable-capture.json). +- `verify-foundation.php` confirmou isolamento de papéis e ausência de contas sintéticas na base de desenvolvimento. + +A prova visual utilizou uma instância isolada na porta 8001, ligada apenas a `sgf_tempo_test`, com sessões/cache próprios, CSRF activo e utilizadores sintéticos equivalentes. Incluiu login pelo formulário, criação de cliente/serviço/prestação, recusa de precisão excessiva, preparação e edição de rascunho de facturação, histórico e gestão delimitada de acessos. O utilizador de consulta viu os registos sem botões de criação, edição ou gestão. Não se tratou apenas de `actingAs`. + +Provas: [precisão recusada](proofs/a-01-precision-refused.png), [rascunho](proofs/a-02-draft-pending.png), [histórico e pendências](proofs/a-03-history-and-pending.png), [consulta](proofs/a-04-read-only.png). + +A instância de prova foi parada e a suite executada novamente para limpar os dados sintéticos na base de testes. A aplicação normal permaneceu na porta 8000, sem alteração de ligação ou dados de demonstração na Tempo Lda/SEGI. Não foram terminados processos de outros projectos. + +## Ficheiros e utilização + +Implementação em `app/Modules/Services` (permissões, valores, workflow, acessos e controlador), migração acima, `resources/js/ServicesWorkspace.jsx`, integração em `app.jsx`, CSS e rotas. A fundação de identidade foi reutilizada; a auditoria recebeu metadados de A e a listagem antiga de acessos ficou delimitada ao seu catálogo. + +Testes em `tests/Feature/ServicesDeliveryATest.php` e `tests/Support/ServicesFixture.php`; procedimentos de prova em `scripts/a-concurrency-proof.php`, `a-concurrency-worker.php`, `a-http-proof.mjs` e `a-proof-metrics.php`, com preparação de fixtures sintéticas adaptada. README e especificação foram actualizados. + +Para utilizar, actualizar o navegador em http://127.0.0.1:8000, entrar normalmente e seleccionar Tempo Lda/SEGI. Seguir o percurso do [README](../README.md). Não executar os scripts de fixtures para criar dados reais. A recuperação local assistida da identidade mantém-se documentada em [IDENTITY_WORKFLOW.md](IDENTITY_WORKFLOW.md); não há recuperação por email. + +Comandos de verificação, a partir do projecto: + +```powershell +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 test +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 npm run build +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 php scripts/a-status.php +``` + +As provas destrutivas continuam bloqueadas fora de `sgf_tempo_test`. Parar a instância de navegador de testes antes de executar a suite que recria essa base. Os scripts de prova de concorrência e métricas têm também verificação própria do destino. Não mudar a aplicação normal para a base de testes. + +## Limites e próxima decisão + +A entrega A foi aceite com estes limites. Não define regime fiscal, numeração, moeda funcional, plano de contas, reconhecimento ou arredondamento fiscal. Não inclui emissão, processamento contabilístico ou processamento externo do outbox. Não foi publicada nem iniciado outro incremento. A especificação B/C permanece como proposta, sem autorização de execução. diff --git a/docs/SERVICES_WORKFLOW_SPEC.md b/docs/SERVICES_WORKFLOW_SPEC.md index 3b88349..649644c 100644 --- a/docs/SERVICES_WORKFLOW_SPEC.md +++ b/docs/SERVICES_WORKFLOW_SPEC.md @@ -19,7 +19,7 @@ O incremento de entrada, contexto e permissões tem implementação e provas té O utilizador aceitou e deu por concluído o incremento local de entrada, contexto e permissões em 25 de Outubro de 2026, no âmbito demonstrado e com os limites de IDENTITY_DELIVERY.md. Preservar essa entrega como base. Limites conhecidos: âmbito local, sem MFA/RLS de produção, sem criação geral de contas pela interface e com procedimentos locais assistidos de recuperação. A aceitação está registada separadamente do cenário de serviços. -Nesta etapa está autorizada apenas a especificação de serviços. As entregas A/B/C abaixo são um plano para decisões posteriores, não uma ordem para as implementar agora. +Na revisão inicial estava autorizada apenas a especificação. Posteriormente o utilizador autorizou executar exclusivamente A através do prompt de execução anexado, mantendo B/C fora do âmbito. A implementação de A e as provas estão documentadas em SERVICES_A_DELIVERY.md; isso não constitui aceitação automática de A nem autoriza B/C ou publicação. ## Resultado pretendido @@ -108,6 +108,10 @@ Não acrescentar já contratos recorrentes, horas, equipas de projecto, custos, Identificadores de tenant, empresa e unidade vêm do contexto autorizado. Cliente e serviço devem pertencer à empresa da prestação. Uma escolha de cliente reutiliza o cadastro; documentos confirmados futuros preservam a fotografia histórica necessária em vez de dependerem do cadastro mutável. +Na entrega A, clientes e serviços pertencem à empresa e são reutilizados entre as suas unidades. Não criar cópias por unidade nem exigir unit_id nesses cadastros. Prestações e rascunhos de facturação pertencem à empresa e à unidade autorizada: o vínculo à unidade não pode ser transferido por edição de um formulário. + +O nome será o único campo obrigatório introduzido pelo utilizador no cadastro de cliente nesta fase. Identificadores, empresa, papel de cliente e metadados de autoria/versão são controlados pelo servidor. Não exigir dados fiscais ou contactos para guardar esse cadastro mínimo; a ausência dos dados necessários a documentos futuros permanece uma pendência, não uma indicação de validade fiscal. + ## Estados propostos - Prestação: rascunho, confirmada ou cancelada antes de confirmação. Uma correcção posterior referencia a prestação confirmada; não elimina a origem. @@ -122,11 +126,11 @@ O primeiro incremento não deve apresentar os estados futuros como capacidades j ## Regras técnicas propostas 1. Guardar preços, quantidades e montantes com precisão controlada; usar brick/math existente no servidor e cadeias decimais nas APIs. Não usar o JavaScript como autoridade financeira. -2. Validar escala e arredondamento explicitamente. A política financeira/fiscal precisa de aprovação; não depender de coerção silenciosa da base. +2. Validar escala explicitamente e rejeitar valores que excedam a precisão suportada antes de persistir, sem arredondamento silencioso. Não presumir moeda nem converter imposto desconhecido em zero. Guardar o rascunho incompleto com pendências explícitas quando necessário. A política financeira/fiscal de arredondamento continua por validar; não depender de coerção silenciosa da base. 3. Negar por omissão cada acção e verificar empresa, unidade, registo e permissão no servidor. As concessões actuais de identidade não concedem acesso automático às novas áreas. 4. Recusar um formulário com contexto ou versão desactualizados. Mudança de empresa/unidade não relocaliza registos nem reaproveita silenciosamente autorizações anteriores. 5. Usar chaves de idempotência por empresa/operação/conteúdo para comandos repetíveis. Repetição idêntica recupera o resultado; conteúdo diferente com a mesma chave origina conflito. -6. Confirmar alteração, evento durável e trabalho pendente na mesma transacção. A outbox é uma proposta técnica a implementar no núcleo, sem exigir Redis ou novo fornecedor. +6. Confirmar alteração, histórico, evento durável e trabalho pendente na mesma transacção desde a entrega A. A outbox integra a proposta de captura inicial, sem exigir Redis ou novo fornecedor. B acrescenta processamento contabilístico sobre essa base, sem reconstruir eventos históricos ou inferir acontecimentos a partir do último estado de um rascunho. 7. Não duplicar efeitos contabilísticos quando um evento é repetido ou uma interface comercial é activada posteriormente. 8. Sem plano de contas, classificação, imposto, moeda ou reconhecimento aprovados, criar pendências explícitas. Não escolher contas transitórias para ocultar lacunas. 9. Manter auditoria das alterações relevantes, sem palavras-passe, tokens ou raciocínio interno da IA. @@ -151,21 +155,37 @@ Separar consulta e alteração de cadastros, criação/edição/confirmação de As concessões serão dados parametrizados, mas o catálogo cobre apenas acções suportadas. Gestão de acessos não implica capacidade financeira. Não ampliar automaticamente os direitos de Osmane ou Samira. A matriz concreta e a autoridade inicial de concessão das novas acções precisam de aprovação antes da disponibilização. +### Matriz delimitada para a entrega A + +| Área | Âmbito dos registos e das concessões | Osmane | Samira | +| --- | --- | --- | --- | +| Clientes | Tempo Lda, cadastro partilhado pelas unidades | Consultar, criar, editar e gerir estas concessões | Apenas consultar | +| Serviços | Tempo Lda, catálogo partilhado pelas unidades | Consultar, criar, editar e gerir estas concessões | Apenas consultar | +| Prestações em rascunho | Tempo Lda / SEGI | Consultar, criar, editar e gerir estas concessões | Apenas consultar | +| Rascunhos de facturação | Tempo Lda / SEGI | Consultar, criar, editar e gerir estas concessões | Apenas consultar | + +Separar consulta, criação, edição e gestão de concessões em cada área; não introduzir um papel universal. A autoridade sobre os cadastros de empresa não concede autoridade sobre prestações/rascunhos de outras unidades. Os clientes e serviços, sendo cadastros de empresa, não ficam artificialmente privados da SEGI. + +Estas são novas concessões, cuja atribuição inicial deve ser explícita e auditada. Não as derivar dos actuais company.edit/access.manage ou da identidade/email das pessoas. O gestor só pode delegar direitos que possui, no mesmo âmbito. Não incluir confirmação financeira/documental, recebimentos, correcções, reconciliação, lançamentos ou fecho. Após conferir as contas existentes e obter confirmação específica, foram aplicadas 16 concessões à conta ID 1 (Osmane Nala) e 4 de consulta à conta ID 2 (Samira Nal), sem criar ou associar outra conta por suposição. Ver SERVICES_A_DELIVERY.md para âmbitos e evidências. + ## Entregas verificáveis ### A Cadastros e preparação operacional -Proposta para a primeira implementação: +Âmbito delimitado para a primeira implementação, sujeito à autorização de execução: -- Contraparte/cliente e serviço mínimos. -- Prestação em rascunho, reutilizando esses cadastros e o contexto existente. -- Rascunho de facturação ligado à prestação, sem emissão fiscal ou numeração definitiva. -- Captura durável dos acontecimentos abrangidos e pendências explícitas de classificação, sem inventar lançamentos. +- Contraparte/cliente e serviço mínimos, partilhados pela empresa; nome como único campo obrigatório do cliente. +- Prestação em rascunho na unidade autorizada, reutilizando esses cadastros e o contexto existente. +- Rascunho de facturação na mesma unidade, ligado à prestação, sem emissão fiscal ou numeração definitiva. +- Histórico, captura durável dos acontecimentos abrangidos e pendências explícitas de classificação desde A, sem inventar lançamentos. B reutiliza essa base e acrescenta o processamento contabilístico. +- Valores de precisão controlada, sem arredondamentos silenciosos, moeda presumida ou imposto desconhecido convertido em zero. - Permissões, auditoria, controlo de versão/contexto e repetição segura desde estes primeiros comandos. - Dados sintéticos e provas apenas na base de testes; nenhuma factura ou recebimento real em desenvolvimento. Critério: percurso cliente → serviço → prestação → rascunho reproduzível, com origem preservada, acessos indevidos recusados e informação insuficiente assinalada. Isto não é ainda o circuito financeiro completo. +A não emite facturas nem produz lançamentos contabilísticos. Documentos confirmados, recebimentos, correcções, reconciliação e fecho permanecem exclusivamente em B/C. + ### B Documentos e contabilidade permanente Após validar campos/regras aplicáveis: confirmação documental, fotografia histórica, eventos/outbox, consumidor repetível, regras de contabilização e pendências. Demonstrar contabilidade permanente mesmo sem interface comercial de Contabilidade contratada. @@ -196,7 +216,7 @@ Estas entregas partilham o mesmo núcleo. Não criam três produtos ou versões ## Decisões pendentes antes das entregas correspondentes -Para A: aprovar esta delimitação e a matriz de permissões/autoridade inicial; confirmar quais dados mínimos do cliente são indispensáveis para um rascunho (a proposta inicial exige apenas nome). +Para A: o utilizador autorizou a execução e confirmou especificamente a aplicação das novas concessões após conferência das contas. A implementação usa nome como único campo obrigatório do cliente, cadeias decimais até 16 algarismos inteiros/8 decimais, validação anterior à persistência e protecção também na base, sem arredondamento silencioso. O delta aditivo e os resultados constam de SERVICES_A_DELIVERY.md. A aceitação deste incremento é distinta da aceitação anterior de identidade. Para B/C: responsáveis de validação contabilística/fiscal, documentos e numeração, regime/impostos aplicáveis, moeda funcional, plano de contas, reconhecimento, arredondamento, evidências de recebimento/reconciliação, corte e regras de fecho/correcção. O exemplo de teste não decide estas matérias. @@ -204,4 +224,4 @@ Não seleccionar fornecedor, API bancária ou integração de pagamento. Não co ## Estado desta etapa -Especificação proposta para revisão. Nenhuma migração, cadastro, documento, evento financeiro ou lançamento foi criado nesta etapa. O incremento de identidade está aceite e concluído; qualquer implementação posterior exige autorização sobre uma entrega concreta. O utilizador manteve expressamente serviços apenas em especificação e não autorizou implementação financeira ou publicação. Não implementar a entrega A nesta revisão documental. +Entrega A implementada após autorização concreta e aceite pelo utilizador em 25 de Outubro de 2026, no âmbito demonstrado e com os limites do relatório SERVICES_A_DELIVERY.md. A base de identidade aceite foi preservada. B/C permanecem apenas em especificação: não foram implementados documentos confirmados, emissão fiscal, lançamentos, recebimentos, correcções, reconciliação ou fecho. Não há autorização para avançar para B/C ou publicar. diff --git a/docs/proofs/a-01-precision-refused.png b/docs/proofs/a-01-precision-refused.png new file mode 100644 index 0000000000000000000000000000000000000000..f73ad9c4fa2b464db0af27bb2856da63a5f615b6 GIT binary patch literal 68686 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

ed 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�fV^{$nX{| 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 literal 0 HcmV?d00001 diff --git a/docs/proofs/a-03-history-and-pending.png b/docs/proofs/a-03-history-and-pending.png new file mode 100644 index 0000000000000000000000000000000000000000..daa4060553ae164486eb936e9a5a87f44211d65f GIT binary patch literal 81420 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

esUC`#$DF%uJzTiv`0WHHDv2g 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 literal 0 HcmV?d00001 diff --git a/docs/proofs/a-04-read-only.png b/docs/proofs/a-04-read-only.png new file mode 100644 index 0000000000000000000000000000000000000000..6b7fb95808d93390e78ed5021a7df8006db82ed7 GIT binary patch literal 84523 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�Ax}=F7UO} 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:#123f35;color:#f7fcf9;padding:70px 12%;display:flex;flex-direction:column;justify-content:center}.login-layout>aside h1{font-size:clamp(2.2rem,4vw,3.8rem);margin:80px 0 20px}.login-layout>aside p{color:#bddecf;max-width:350px}.login-layout>aside small{color:#8ab8a4;margin-top:auto;padding-top:60px}.login-card{align-self:center;padding:60px 12%;max-width:650px}.login-card h2{font-size:2rem;letter-spacing:-.04em}.login-card form{margin-top:30px}.login-card .primary{width:100%;padding:14px}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:#123f35;color:#f5fbf7;padding:32px 20px;display:flex;flex-direction:column}.sidebar .brand{padding:0 12px}.sidebar-label{font-size:.63rem;letter-spacing:.12em;color:#8bb7a6;margin:55px 12px 12px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{background:none;border:none;color:#b9d5c9;text-align:left;padding:13px 14px}.sidebar nav button.active{background:#275b4b;color:#fff}.sidebar-bottom{margin-top:auto;padding:40px 10px 0}.sidebar-bottom strong,.sidebar-bottom small{display:block;overflow-wrap:anywhere}.sidebar-bottom small{font-size:.75rem;color:#9cbeb0;margin:6px 0 20px}.sidebar-bottom button{background:none;color:#c3ddcf;border-color:#477667;font-size:.8rem}.workspace{flex:1;min-width:0}.workspace header{background:white;border-bottom:1px solid #dce6e1;padding:24px 40px;display:flex;justify-content:space-between;gap:15px}.workspace header strong,.workspace header .muted{display:block;margin-top:5px}.workspace header strong{font-size:1.15rem}.workspace header .muted{font-size:.85rem}.local-badge{align-self:flex-start;font-size:.7rem;padding:7px 10px;border:1px solid #d8e5de;border-radius:20px;color:#58746a;white-space:nowrap}.workspace main{padding:30px 40px;max-width:1250px}.context-card{background:#e9f0ec;border:1px solid #d9e5df;border-radius:10px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-bottom:35px}.context-card label{margin-bottom:4px}.context-card p{grid-column:1/-1;font-size:.75rem;color:#64796f;margin-bottom:0}.panel{background:white;border:1px solid #dce6e1;border-radius:10px;padding:28px;margin-bottom:22px}.page-title{margin:35px 0 25px}.page-title h1{margin:10px 0}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel form{max-width:650px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.actions{display:flex;gap:12px;flex-wrap:wrap}.alert{border-radius:8px;padding:14px 18px;margin-bottom:20px;font-size:.9rem}.error{background:#fff0ec;border:1px solid #edc5b8;color:#943d27}.success{background:#e9f5ec;border:1px solid #bfdec8;color:#2a6540}.unit-list{list-style:none;padding:0;margin-bottom:30px}.unit-list li{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:15px;border-bottom:1px solid #e7ede9}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.85rem}th{background:#f3f7f4;color:#5d7468;font-size:.75rem}th,td{padding:14px;border-bottom:1px solid #e3eae5}td small{display:block;color:#6d8176;margin-top:4px}footer{padding:10px 40px 30px;color:#7a8d82;font-size:.72rem}.loading{padding:15vh 10%}@media(max-width:800px){.login-layout{grid-template-columns:1fr}.login-layout>aside{padding:35px}.login-layout>aside h1{font-size:2rem;margin:30px 0 10px}.login-layout>aside small{padding-top:20px}.login-card{padding:35px;max-width:none}.sidebar{width:170px;padding:25px 10px}.workspace header{padding:22px}.workspace main{padding:22px}.summary-grid{grid-template-columns:1fr}}@media(max-width:560px){.shell{display:block}.sidebar{width:100%;padding:15px}.sidebar .brand{font-size:1.1rem}.sidebar .brand span,.sidebar-label,.sidebar-bottom strong,.sidebar-bottom small{display:none}.sidebar nav{flex-direction:row;flex-wrap:wrap;margin-top:15px}.sidebar nav button{padding:8px}.sidebar-bottom{padding:5px 0 0}.sidebar-bottom button{font-size:.7rem}.context-card,.form-grid{grid-template-columns:1fr}.workspace header{padding:18px}.workspace main{padding:18px}.panel{padding:20px}.local-badge{display:none}footer{padding:18px}} .setup-pending{max-width:900px;margin:10vh auto;padding:25px}.setup-pending pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#edf3ef;border:1px solid #d6e3da;padding:18px;border-radius:7px;font-size:.85rem;line-height:1.6} +.a-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0}.a-heading h1{margin:8px 0}.a-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px}.a-list{padding:18px}.a-list>button{display:block;width:100%;text-align:left;margin:8px 0;font-weight:400}.a-list>button strong,.a-list>button small{display:block;overflow-wrap:anywhere}.a-list>button small{font-size:.7rem;color:#6b7e76;margin-top:6px}.a-list>button.chosen{border-color:#26775b;background:#eff8f2}.a-detail{min-width:0}.a-detail h2{overflow-wrap:anywhere}.a-draft-notice{background:#fff7e6;border:1px solid #ead7ad;color:#7d6125;padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:.85rem}.a-line{border:1px solid #d7e4dc;border-radius:8px;margin:22px 0;padding:18px}.a-line legend{font-size:.8rem;color:#567563}.a-pending{background:#fff8eb;border-left:3px solid #d2a34c;padding:12px 20px;margin:22px 0}.a-pending h3{font-size:.9rem}.a-pending li{font-size:.85rem;line-height:1.7}.a-form-actions{margin-top:25px}.a-history{margin-top:28px;border-top:1px solid #e0e9e3;padding-top:18px}.a-history summary{cursor:pointer;color:#31654c;font-size:.85rem}.a-history>div{padding:18px 0;border-bottom:1px solid #e4ece6}.a-history pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.72rem;background:#f4f7f4;padding:12px}@media(max-width:1100px){.a-grid{grid-template-columns:1fr}.a-list{display:flex;flex-wrap:wrap;gap:8px}.a-list h2{width:100%}.a-list>button{width:auto;max-width:100%;flex:1 1 180px}}@media(max-width:700px){.a-heading{display:block}.a-heading>.actions{margin-bottom:20px}} diff --git a/resources/js/ServicesWorkspace.jsx b/resources/js/ServicesWorkspace.jsx new file mode 100644 index 0000000..dc20e9f --- /dev/null +++ b/resources/js/ServicesWorkspace.jsx @@ -0,0 +1,106 @@ +import React, { useEffect, useState } from 'react'; + +export const serviceAreas = { clients: 'Clientes', services: 'Serviços', service_drafts: 'Prestações em rascunho', billing_drafts: 'Rascunhos de facturação' }; +const actions = { view: 'Consultar', create: 'Criar', edit: 'Editar', manage: 'Gerir concessões' }; +const isDraft = area => area === 'service_drafts' || area === 'billing_drafts'; +const newLine = () => ({ service_id: '', quantity: '', unit_price: '', description: '' }); + +export default function ServicesWorkspace({ area, context, can, api, perform, busy, initialId, navigate }) { + const unit = isDraft(area) ? context.unit?.id ?? null : null; + const allowed = action => can(`${area}.${action}`, unit); + const [records, setRecords] = useState([]); + const [selected, setSelected] = useState(null); + const [form, setForm] = useState(null); + const [references, setReferences] = useState({ clients: [], services: [], source: [] }); + const [error, setError] = useState(''); + const [key, setKey] = useState(() => crypto.randomUUID()); + const [access, setAccess] = useState(false); + const path = `/api/a/${area}`; + + async function load() { const result = await api(path); setRecords(result.records); } + async function open(id) { setError(''); try { setSelected(await api(`${path}/${id}`)); setForm(null); } catch (e) { setError(e.message); } } + useEffect(() => { load().catch(e => setError(e.message)); if (initialId) open(initialId); }, [area, context.token]); + + async function start(record = null) { + setError(''); setAccess(false); + try { + if (isDraft(area)) { + const [clients, services, source] = await Promise.all([ + api('/api/a/clients'), api('/api/a/services'), area === 'billing_drafts' ? api('/api/a/service_drafts') : Promise.resolve({ records: [] }) + ]); + setReferences({ clients: clients.records, services: services.records, source: source.records }); + } + setSelected(record); + setForm(record ? { name: record.name, description: record.data.description || '', client_id: record.client_id || '', source_id: record.source_id || '', currency: record.data.currency || '', lines: record.data.lines?.map(line => ({ ...line, quantity: line.quantity ?? '', unit_price: line.unit_price ?? '' })) || [newLine()] } + : { name: '', description: '', client_id: '', source_id: '', currency: '', lines: [newLine()] }); + setKey(crypto.randomUUID()); + } catch (e) { setError(e.message); } + } + + async function save(event) { + event.preventDefault(); + let body = { name: form.name.trim() }; + if (area === 'services') body.description = form.description || null; + if (isDraft(area)) { + body = { ...(form.name.trim() ? { name: form.name.trim() } : {}), description: form.description || null }; + if (area === 'billing_drafts' && !selected) body.source_id = Number(form.source_id); + else { + body.currency = form.currency || null; + body.lines = form.lines.map(line => ({ service_id: Number(line.service_id), description: line.description || null, quantity: line.quantity || null, unit_price: line.unit_price || null })); + if (area === 'service_drafts') body.client_id = Number(form.client_id); + } + } + if (selected) body.version = selected.version; + await perform(async () => { + const result = await api(selected ? `${path}/${selected.id}` : path, selected ? 'PATCH' : 'POST', body, context.token, key); + await load(); await open(result.id); setKey(crypto.randomUUID()); + }, 'Rascunho ou cadastro guardado com histórico e captura durável.'); + } + + async function prepareBilling() { + await perform(async () => { + const result = await api('/api/a/billing_drafts', 'POST', { source_id: selected.id }, context.token, key); + navigate('billing_drafts', result.id); + }, 'Rascunho de facturação preparado a partir da prestação. Nenhuma factura foi emitida.'); + } + function changeLine(index, field, value) { setForm({ ...form, lines: form.lines.map((line, n) => n === index ? { ...line, [field]: value } : line) }); } + + if (!allowed('view')) return

{serviceAreas[area]}

Sem consulta autorizada neste contexto.

; + return <> +

ENTREGA A · PREPARAÇÃO

{serviceAreas[area]}

{isDraft(area) ? `Unidade: ${context.unit?.name || 'não seleccionada'}` : 'Cadastro partilhado pelas unidades da empresa'}

{allowed('create') && }{allowed('manage') && }
+ {error &&
{error}
} + {isDraft(area) &&
Apenas rascunhos. Sem emissão fiscal, confirmação de serviço ou lançamentos contabilísticos.
} + {access ? : <> +

Registos

{!records.length &&

Ainda não há registos neste âmbito.

}{records.map(record => )}
+ {form ?

{selected ? 'Editar' : 'Criar'} {isDraft(area) ? 'rascunho' : 'cadastro'}

+ {area !== 'clients' &&