Files
SGF/tests/Support/IndustrialBudgetFixture.php
T

15 lines
1.2 KiB
PHP

<?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');
}
}