forked from admin/services_core
big update base struktur tahap 1
This commit is contained in:
@@ -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,
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user