update material index

This commit is contained in:
Wian Drs
2026-07-02 23:34:17 +07:00
parent af1c98b38b
commit b0f3f03b73
3 changed files with 83 additions and 8 deletions
+54
View File
@@ -10,6 +10,60 @@ use DB;
class MaterialService
{
public function list(array $filters = [])
{
$serialized = TechnicianMaterial::query()
->select([
'id',
'user_id',
'barcode_id',
'inventory_item_id',
'material_name',
'serial_number',
'status',
'assigned_at',
'assigned_by',
'created_at',
'updated_at',
DB::raw('NULL as unit'),
DB::raw('NULL as qty_received'),
DB::raw('NULL as qty_used'),
DB::raw('NULL as qty_remaining'),
DB::raw("'serialized' as type"),
]);
$consumable = TechnicianConsumable::query()
->select([
'id',
'user_id',
'barcode_id',
'inventory_item_id',
'material_name',
DB::raw('NULL as serial_number'),
'status',
'assigned_at',
'assigned_by',
'created_at',
'updated_at',
'unit',
'qty_received',
'qty_used',
'qty_remaining',
DB::raw("'consumable' as type"),
]);
if (!empty($filters['user_id'])) {
$serialized->where('user_id', $filters['user_id']);
$consumable->where('user_id', $filters['user_id']);
}
$query = $serialized->unionAll($consumable);
return DB::query()
->fromSub($query, 'materials')
->orderByDesc('created_at')
->paginate($filters['per_page'] ?? 15);
}
/*
|--------------------------------------------------------------------------
| ASSIGN MATERIAL (AUTO DETECT TYPE)