commit9
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-30 20:02:30 +02:00
parent 6d14b4e6f0
commit c6373365bf
225 changed files with 15365 additions and 285 deletions
+4
View File
@@ -35,13 +35,16 @@ class RequisitionWorkflow
$tax = 0;
/** @var list<array{description: string, category: string, purchase_type: string, quantity: string, unit: string, unit_price: string, tax_rate: string, equipment_id?: int, spare_part_id?: int, production_area?: string, downtime_started_at?: string|null}> $lines */
$lines = $data['items'];
$oldLines = $existing ? $requisition->items()->get()->keyBy('id')->all() : [];
foreach ($lines as $line) {
$line = app(RequisitionCatalogue::class)->line($user, $line, $oldLines);
app(EquipmentWorkflow::class)->line($line, (int) $user->department_id, $data['priority']);
$price = BigDecimal::of($line['unit_price'])->multipliedBy(100)->toScale(0)->toInt();
$lineSubtotal = BigDecimal::of($line['quantity'])->multipliedBy($price)->toScale(0, RoundingMode::HalfUp)->toInt();
$lineTax = BigDecimal::of($lineSubtotal)->multipliedBy($line['tax_rate'])->dividedBy(100, 0, RoundingMode::HalfUp)->toInt();
$items[] = [
'tenant_id' => $user->tenant_id,
...(! empty($line['catalogue_entry_id']) ? ['catalogue_entry_id' => $line['catalogue_entry_id'], 'catalogue_snapshot' => $line['catalogue_snapshot']] : []),
'description' => $line['description'], 'category' => $line['category'],
'purchase_type' => $line['purchase_type'], 'quantity' => $line['quantity'], 'unit' => $line['unit'],
'equipment_id' => $line['equipment_id'] ?? null, 'spare_part_id' => $line['spare_part_id'] ?? null, 'production_area' => $line['production_area'] ?? null, 'downtime_started_at' => $line['downtime_started_at'] ?? null,
@@ -59,6 +62,7 @@ class RequisitionWorkflow
'cost_center_id' => $data['cost_center_id'], 'priority' => $data['priority'],
'needed_by' => $data['needed_by'], 'justification' => $data['justification'],
'subtotal_minor' => $subtotal, 'tax_minor' => $tax, 'total_minor' => $subtotal + $tax,
...($existing ? [] : ['comparison_policy' => app(ComparisonPolicy::class)->company(Tenant::query()->findOrFail($user->tenant_id))]),
])->save();
if (! $existing) {
$requisition->update(['number' => sprintf('REQ-%s-%06d', now()->format('Y'), $requisition->id)]);