Accept isolated budget versus actual trial with documented capture limitation

This commit is contained in:
2026-10-28 17:07:37 +02:00
parent 4a94e8a054
commit 04870f012d
28 changed files with 774 additions and 9 deletions
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace Tests\Support;
use App\Modules\Industry\{IndustrialCosts,IndustrialBudgets};
use App\Shared\Context\CompanyContext;
use Illuminate\Support\Str;
final class IndustrialBudgetFixture {
public static function create(?array $base=null): array {
$f=IndustrialCostFixture::create($base);
foreach(['manager'=>['industrial_budgets.view','industrial_budgets.prepare','industrial_budget_comparisons.view','industrial_budget_comparisons.prepare'],'reader'=>['industrial_budgets.view','industrial_budgets.validate','industrial_budget_comparisons.view']] as $who=>$rights)foreach($rights as $p)IdentityFixture::grant($f[$who]->id,$f['tenant'],$f['company'],$p,$f['unit']);
$c=app(IndustrialCosts::class);$result=$c->calculate($f['lot'],$f['manager']->id,['version'=>1,'previous_id'=>null,'currency'=>'MZN','refs'=>$f['refs']],(string)Str::uuid())['id'];
app(CompanyContext::class)->selectFor($f['reader']->id,$f['tenant'],$f['company'],$f['unit']);$c->decide($f['lot'],$f['reader']->id,['type'=>'result','id'=>$result,'version'=>1,'decision'=>'approved','reason'=>'Resultado sintético exacto conferido.'],(string)Str::uuid());
app(CompanyContext::class)->selectFor($f['manager']->id,$f['tenant'],$f['company'],$f['unit']);return $f+compact('result');
}
}