Siopas Inventory PETI for ISTW Website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

189 lines
6.9 KiB

<?php
namespace App\Http\Controllers\API\v1\PeminjamanApi;
use App\Models\BarangMasuk;
use App\Models\asset_status;
use Illuminate\Http\Request;
use App\Helpers\ResponseFormatter;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;
use Illuminate\Database\QueryException;
class PeminjamanApiController extends Controller
{
public function index()
{
$peminjaman = \App\Models\asset_status::with([
'peti.customer:id,name,code_customer,lot_no,address',
// 'peti.customer',
'peti.tipe_peti:id,type,size_peti,description',
'warehouse',
'warehouseEnter'
])->get();
// Menghapus atribut yang terkait dengan "enter"
foreach ($peminjaman as $peminjamanItem) {
unset($peminjamanItem->enter_at);
unset($peminjamanItem->enter_pic);
unset($peminjamanItem->enter_warehouse);
unset($peminjamanItem->kondisi_peti);
}
return ResponseFormatter::success([
'message' => 'Data peminjaman berhasil diambil',
'asset_status' => $peminjaman,
]);
}
public function getWarehouseEnter()
{
$warehouse = \App\Models\m_warehouse::get();
return ResponseFormatter::success([
'message' => 'Data warehouse berhasil diambil',
'warehouse' => $warehouse,
]);
}
public function show($id)
{
$peminjaman = asset_status::with(['peti.customer', 'peti.tipe_peti', 'warehouse'])->find($id);
return ResponseFormatter::success([
'message' => 'Data peminjaman berhasil diambil ID',
'asset_status' => $peminjaman
]);
}
// public function store(Request $request)
// {
// $mobile_id = $request->input('mobile_id');
// $peti_id = $request->input('peti_id');
// $customer_id = $request->input('customer_id');
// $warehouse_id = $request->input('warehouse_id');
// $exit_at = $request->input('exit_at');
// $exit_pic = $request->input('exit_pic');
// $exit_warehouse = $request->input('exit_warehouse');
// $est_pengembalian = $request->input('est_pengembalian');
// $created_by = $request->input('created_by');
// $created_at = $request->input('created_at');
// $existingRecord = asset_status::where('mobile_id', $mobile_id)
// ->where('peti_id', $peti_id)
// ->first();
// if ($existingRecord) {
// $existingRecord->exit_at = $exit_at;
// $existingRecord->exit_pic = $exit_pic;
// $existingRecord->exit_warehouse = $exit_warehouse;
// $existingRecord->est_pengembalian = $est_pengembalian;
// $existingRecord->created_by = $created_by;
// $existingRecord->created_at = $created_at;
// $existingRecord->save();
// return ResponseFormatter::success([
// 'message' => 'Data peminjaman berhasil ditambahkan',
// 'peminjam' => $existingRecord
// ]);
// } else {
// $newRecord = new asset_status;
// $newRecord->mobile_id = $mobile_id;
// $newRecord->peti_id = $peti_id;
// $newRecord->customer_id = $customer_id;
// $newRecord->warehouse_id = $warehouse_id;
// $newRecord->exit_at = $exit_at;
// $newRecord->exit_pic = $exit_pic;
// $newRecord->exit_warehouse = $exit_warehouse;
// $newRecord->est_pengembalian = $est_pengembalian;
// $newRecord->created_by = $created_by;
// $newRecord->created_at = $created_at;
// $newRecord->save();
// return ResponseFormatter::success([
// 'message' => 'Data peminjaman berhasil ditambahkan',
// 'peminjam' => $newRecord
// ]);
// }
// }
public function store(Request $request)
{
try {
DB::beginTransaction();
$mobile_id = $request->input('mobile_id');
$peti_id = $request->input('peti_id');
$customer_id = $request->input('customer_id');
$warehouse_id = $request->input('warehouse_id');
$exit_at = $request->input('exit_at');
$exit_pic = $request->input('exit_pic');
$exit_warehouse = $request->input('exit_warehouse');
$est_pengembalian = $request->input('est_pengembalian');
$created_by = $request->input('created_by');
$created_at = $request->input('created_at');
$existingRecord = asset_status::where('mobile_id', $mobile_id)
->where('peti_id', $peti_id)
->first();
if ($existingRecord) {
$data = [
'exit_at' => $exit_at,
'exit_pic' => $exit_pic,
'exit_warehouse' => $exit_warehouse,
'est_pengembalian' => $est_pengembalian,
'created_by' => $created_by,
'created_at' => $created_at,
];
asset_status::where('mobile_id', $mobile_id)
->where('peti_id', $peti_id)
->update($data);
DB::commit();
return ResponseFormatter::success([
'message' => 'Data peminjaman berhasil diupdate',
'peminjam' => asset_status::where('mobile_id', $mobile_id)
->where('peti_id', $peti_id)
->first(),
]);
} else {
$data = [
'mobile_id' => $mobile_id,
'peti_id' => $peti_id,
'customer_id' => $customer_id,
'warehouse_id' => $warehouse_id,
'exit_at' => $exit_at,
'exit_pic' => $exit_pic,
'exit_warehouse' => $exit_warehouse,
'est_pengembalian' => $est_pengembalian,
'created_by' => $created_by,
'created_at' => $created_at,
];
asset_status::create($data);
DB::commit();
return ResponseFormatter::success([
'message' => 'Data peminjaman berhasil ditambahkan',
'peminjam' => asset_status::where('mobile_id', $mobile_id)
->where('peti_id', $peti_id)
->first(),
]);
}
} catch (QueryException $e) {
DB::rollBack();
// Log the error for further investigation
Log::error('Error processing request: ' . $e->getMessage());
return ResponseFormatter::error([
'message' => 'Error while processing the request.',
'error' => $e->getMessage()
]);
}
}
}