@foreach($variables['raw_materials'] as $index => $rm)
@php
$existingDetail = null;
if(isset($data->details)) {
$existingDetail = $data->details->where('raw_material_id', $rm->id)->first();
}
// Get conversion data
$hasConversion = $rm->conversion_factor_utuh_pakai && $rm->conversion_factor_utuh_pakai > 0;
$conversionFactor = $hasConversion ? $rm->conversion_factor_utuh_pakai : 1;
$uomUtuh = $rm->uom_utuh ?? $rm->uom;
$uomPakai = $rm->uom_pakai ?? $rm->uom;
// Get store raw material mapping for SPB suggestions
$mapping = $variables['mappings']->get($rm->id);
$hasMapping = $mapping && $mapping->is_active;
$showSPB = $hasMapping && ($mapping->spb_flag ?? false);
@endphp
{{ $index + 1 }}
@if(!$hasConversion)
@endif
|
{{ $rm->code }}
@if(!$hasConversion)
Tidak ada mapping
@endif
|
{{ $rm->name }}
@if(!$hasConversion)
⚠️ Menggunakan rasio 1:1 (tidak akurat!)
@endif
|
{{ $uomPakai }}
@if($hasConversion)
1 {{ $uomUtuh }} = {{ $conversionFactor }} {{ $uomPakai }}
@endif
|
- + -
Tidak Diketahui
Belum Pernah
|
|
|
|
|
@if($showSPB)
-
Open SPB: 0.00
@else
-
@endif
|
@if($showSPB && $mapping->tipe_dokumen)
@if($mapping->tipe_dokumen == 'DO')
{{ $mapping->period->code }}
@else
{{ $rm->tipe_doi }}
@endif
{{ $mapping->tipe_dokumen }}
@else
-
@endif
|
@if($showSPB)
-
@else
-
@endif
|
@if($showSPB)
@else
-
@endif
|
@php
$mapping = $variables['mappings']->get($rm->id);
$hasInvMatrix = $mapping && $mapping->inv_matrix_flag;
$hasRestan = $mapping && $mapping->adj_restan_flag;
$hasExtras = $mapping && $mapping->adj_extras_flag;
$hasRingkas = $mapping && $mapping->adj_ringkas_flag;
$hasSelisih = $mapping && $mapping->adj_selisih_flag;
$hasAnyAdjustment = $hasRestan || $hasExtras || $hasRingkas || $hasSelisih;
@endphp
@if($hasInvMatrix && $hasAnyAdjustment)
@if($hasExtras)
@else
@endif
@if($hasRestan)
@else
@endif
@if($hasRingkas)
@else
@endif
@if($hasSelisih)
@else
@endif
@elseif($hasInvMatrix && !$hasAnyAdjustment)
No adjustment columns enabled for this item
@else
Adjustment not available for this material
@endif
|
@if($data->id > 0)
@else
-
@endif
|
{{-- FSTR Sub-lines: Display FSTR components (WIP items) for this RM --}}
@php
// Get all FSTR components (WIP items) that belong to this RM
// Example: DRY0048 (parent) has WIP0029, WIP0030, WIP0031 (components)
// Filter only components with input_lsm_flag = true to show in LSM input
$fstrComponents = $rm->components()
->where('delete_flag', 0)
->where('input_lsm_flag', true)
->with('component')
->get()
->filter(function($comp) {
return $comp->component !== null; // Remove components with null component
});
@endphp
@foreach($fstrComponents as $fstrComponent)
@php
$fstr = $fstrComponent->component; // Changed from parent to component
// Skip if component is null (filtered out)
if (!$fstr) continue;
$componentQtyPerUnit = $fstrComponent->qty;
// Check if this FSTR is also a FSTR (has components)
$isFSTR = $fstr->components()->where('delete_flag', 0)->exists();
// Get existing FSTR qty_pakai from SO detail if exists
$existingFstrQty = 0;
if ($existingDetail && $existingDetail->fstr_qty_pakai) {
$fstrQtyData = is_string($existingDetail->fstr_qty_pakai)
? json_decode($existingDetail->fstr_qty_pakai, true)
: $existingDetail->fstr_qty_pakai;
$existingFstrQty = $fstrQtyData[$fstr->id] ?? 0;
}
@endphp
|
FSTR:
{{ $fstr->code }}
|
{{ $fstr->name }}
Menggunakan {{ number_format($componentQtyPerUnit, 4) }} {{ $rm->uom_pakai ?? $rm->uom }} per unit
|
{{-- FSTR qty_pakai input --}}
|
Input qty FSTR akan otomatis menambah qty_pakai bahan baku di atas
|
@endforeach
@endforeach