1
0

big update base struktur tahap 1

This commit is contained in:
Wian Drs
2026-07-27 16:24:09 +07:00
parent 2b3592c4c2
commit 1dd02baa72
169 changed files with 24405 additions and 977 deletions
+45 -18
View File
@@ -2,10 +2,9 @@
namespace App\Services\Material;
use App\Models\TechnicianMaterial;
use App\Models\TechnicianConsumable;
use App\Models\MaterialMovement;
use Carbon\Carbon;
use App\Models\TechnicianConsumable;
use App\Models\TechnicianMaterial;
use DB;
class MaterialService
@@ -52,11 +51,36 @@ class MaterialService
DB::raw("'consumable' as type"),
]);
if (!empty($filters['user_id'])) {
if (! empty($filters['user_id'])) {
$serialized->where('user_id', $filters['user_id']);
$consumable->where('user_id', $filters['user_id']);
}
if (! empty($filters['search'])) {
$search = $filters['search'];
$serialized->where(function ($query) use ($search) {
$query->where('barcode_id', 'ILIKE', "%$search%")
->orWhere('material_name', 'ILIKE', "%$search%");
});
$consumable->where(function ($query) use ($search) {
$query->where('barcode_id', 'ILIKE', "%$search%")
->orWhere('material_name', 'ILIKE', "%$search%");
});
}
if (! empty($filters['status'])) {
$serialized->where('status', $filters['status']);
$consumable->where('status', $filters['status']);
}
if (($filters['type'] ?? null) === 'serialized') {
$consumable->whereRaw('1 = 0');
}
if (($filters['type'] ?? null) === 'consumable') {
$serialized->whereRaw('1 = 0');
}
$query = $serialized->unionAll($consumable);
return DB::query()
@@ -64,6 +88,7 @@ class MaterialService
->orderByDesc('created_at')
->paginate($filters['per_page'] ?? 15);
}
/*
|--------------------------------------------------------------------------
| ASSIGN MATERIAL (AUTO DETECT TYPE)
@@ -73,7 +98,7 @@ class MaterialService
{
return DB::transaction(function () use ($data) {
$type = $data['type'];
$type = $data['type'];
// type dari API Gudang: serialized / consumable
/*
@@ -154,7 +179,7 @@ class MaterialService
if ($serialized) {
$serialized->update([
'user_id' => $data['to_user_id']
'user_id' => $data['to_user_id'],
]);
MaterialMovement::create([
@@ -173,7 +198,7 @@ class MaterialService
$consumable = TechnicianConsumable::where('barcode_id', $barcode)->first();
$consumable->update([
'user_id' => $data['to_user_id']
'user_id' => $data['to_user_id'],
]);
MaterialMovement::create([
@@ -207,7 +232,7 @@ class MaterialService
$serialized->update([
'user_id' => null,
'status' => 'returned'
'status' => 'returned',
]);
MaterialMovement::create([
@@ -226,7 +251,7 @@ class MaterialService
$consumable->update([
'user_id' => null,
'status' => 'returned'
'status' => 'returned',
]);
MaterialMovement::create([
@@ -249,6 +274,7 @@ class MaterialService
->get()
->map(function ($item) {
$item->type = 'serialized';
return $item;
});
@@ -256,6 +282,7 @@ class MaterialService
->get()
->map(function ($item) {
$item->type = 'consumable';
return $item;
});
@@ -272,15 +299,15 @@ class MaterialService
->map(function ($item) {
return [
'barcode_id' => $item->barcode_id,
'type' => $item->movement_type,
'from_user_id' => $item->from_user_id,
'to_user_id' => $item->to_user_id,
'ticket_id' => $item->ticket_id,
'qty' => $item->qty,
'description' => $item->description,
'created_at' => $item->created_at,
'barcode_id' => $item->barcode_id,
'type' => $item->movement_type,
'from_user_id' => $item->from_user_id,
'to_user_id' => $item->to_user_id,
'ticket_id' => $item->ticket_id,
'qty' => $item->qty,
'description' => $item->description,
'created_at' => $item->created_at,
];
});
}
}
}