Rapihin setup/member/lot-parking + fitur intercom, exclude WIP controller & file sampah dari git
Kumpulan perubahan yang udah numpuk di working tree: refactor Setup (Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru (ParkingUtilsServices, NetworkService), model/migration lot-parking & DHCP reservation, dan fitur baru Intercom (controller/model/migration/ view). ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) - versi yang bener ada di server, jadi dikeluarin dari git (ditambahin ke .gitignore) biar gak numpuk nindihin punya server pas git pull di sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang bukan source code. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
This commit is contained in:
@@ -7,116 +7,104 @@
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class MakeStikerServices
|
||||
{
|
||||
public function stikerCreate($request, Carbon $awal, Carbon $akhir)
|
||||
{
|
||||
Log::info(json_encode($sticker));
|
||||
return DB::transaction(function () use ($sticker) {
|
||||
Log::info("Data yang akan di proses : " . json_encode($request));
|
||||
return DB::transaction(function () use ($request) {
|
||||
// LOCK index agar aman
|
||||
$index = DB::table("indexnum")->where("nama", "sticker")->lockForUpdate()->first();
|
||||
$mountYearNow = Carbon::now()->format("m/Y");
|
||||
// $index = DB::table("indexnum")->where("nama", "sticker")->lockForUpdate()->first();
|
||||
// $mountYearNow = Carbon::now()->format("m-Y");
|
||||
// $nextIndex = str_pad($index->value + 1, 4, "0", STR_PAD_LEFT);
|
||||
|
||||
$nextIndex = str_pad($index->value + 1, 4, "0", STR_PAD_LEFT);
|
||||
// Ambil sequence Stiker dan Identitas
|
||||
// $seqTrans = DB::table("indexnum")->select("value")->where("nama", "sticker")->first();
|
||||
// $seqId = DB::table("indexnum")->select("value")->where("nama", "identitas")->first();
|
||||
|
||||
$seqTrans = DB::table("indexnum")->select("value")->where("nama", "sticker")->first();
|
||||
$seqId = DB::table("indexnum")->select("value")->where("nama", "identitas")->first();
|
||||
$notrans = $seqTrans->value . "/STK/" . $mountYearNow;
|
||||
$noid = $seqId->value . "/IDT/" . $mountYearNow;
|
||||
// Parsing format stiker dan identitas
|
||||
// $notrans = $seqTrans->value . "-STK-" . $mountYearNow;
|
||||
// $noid = $seqId->value . "-IDT-" . $mountYearNow;
|
||||
|
||||
$transStiker = TransaksiStiker::where("notrans", $sticker->notrans)->first();
|
||||
$detailTransStiker = DetailTransaksiStiker::where("notrans", $sticker->notrans)->first();
|
||||
Log::info(json_encode($transStiker));
|
||||
Log::info(json_encode($detailTransStiker));
|
||||
// HEADER
|
||||
// $periode = explode(" - ", $dataStiker["periode"]);
|
||||
// $awal = Carbon::createFromFormat("d-m-Y H:i", $periode[0]);
|
||||
// $akhir = Carbon::createFromFormat("d-m-Y H:i", $periode[1]);
|
||||
$user = Auth::user();
|
||||
$dateNow = Carbon::now()->format("Y-m-d H:i:s");
|
||||
|
||||
// Parcing data yang diterima
|
||||
$dataStiker = $request["dataSticker"];
|
||||
$dataVehicle = $request["dataVehicle"];
|
||||
$dataCard = $request["dataCard"];
|
||||
|
||||
try {
|
||||
$dataStiker = [
|
||||
"jenis_transaksi" => $dataStiker["jenis_transaksi"], // 0 = transaksi baru , 1 = perpanjangan
|
||||
"notrans" => $notrans,
|
||||
"no_id" => $noid,
|
||||
"notrans" => $dataStiker["notrans"],
|
||||
"no_id" => $dataStiker["no_id"],
|
||||
"nama" => $dataStiker["nama"],
|
||||
"alamat" => $dataStiker["address"] ?? "",
|
||||
"telepon" => $dataStiker["phone"] ?? "",
|
||||
"unit_kerja" => $dataStiker["depart"],
|
||||
"jenis_stiker" => $dataStiker["member"],
|
||||
"awal" => $awal,
|
||||
"akhir" => $akhir,
|
||||
"awal" => $dataStiker["awal"],
|
||||
"akhir" => $dataStiker["akhir"],
|
||||
"harga" => $dataStiker["harga"] ?? 0,
|
||||
"keterangan" => $dataStiker["note"] ?? "",
|
||||
"tanggal" => $dateNow,
|
||||
"operator" => $user->nomer,
|
||||
"operator" => $user?->nomer ?? "",
|
||||
];
|
||||
|
||||
DB::table("transaksi_stiker")->insert($dataStiker);
|
||||
// DETAIL
|
||||
DB::table("detail_transaksi_stiker")->insert([
|
||||
"notrans" => $notrans,
|
||||
"nopol" => $detailTransStiker->nopol,
|
||||
"jenis_mobil" => $detailTransStiker->jenis_mobil,
|
||||
"adm" => $detailTransStiker->adm,
|
||||
"kategori" => $detailTransStiker->kategori,
|
||||
"jenis_member" => $detailTransStiker->jenis_member,
|
||||
"akses" => $detailTransStiker->akses,
|
||||
"akses_out" => $detailTransStiker->akses_out,
|
||||
"status" => $detailTransStiker->status,
|
||||
"merk" => $detailTransStiker->merk,
|
||||
"tipe" => $detailTransStiker->tipe,
|
||||
"tahun" => $detailTransStiker->tahun,
|
||||
"warna" => $detailTransStiker->warna,
|
||||
"keterangan" => $detailTransStiker->keterangan,
|
||||
]);
|
||||
|
||||
DB::table("transaksi_stiker")->insert($dataStiker);
|
||||
|
||||
if ($dataVehicle) {
|
||||
if (!empty($dataVehicle)) {
|
||||
foreach ($dataVehicle as $nopol) {
|
||||
$dataVehicle = [
|
||||
"notrans" => $notrans,
|
||||
Log::info(json_encode($nopol));
|
||||
$produkMember = explode(" - ", $nopol["member"]);
|
||||
$insertVehicle = [
|
||||
"notrans" => $nopol["notrans"],
|
||||
"nopol" => $nopol["nopol"],
|
||||
"jenis_mobil" => $nopol["vehicle"],
|
||||
"jenis_member" => $nopol["member"],
|
||||
"jenis_member" => $produkMember[0],
|
||||
"merk" => $nopol["merk"],
|
||||
];
|
||||
DB::table("detail_transaksi_stiker")->insert($dataVehicle);
|
||||
DB::table("detail_transaksi_stiker")->insert($insertVehicle);
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ($dataCard) {
|
||||
if (!empty($dataCard)) {
|
||||
foreach ($dataCard as $cardNumber) {
|
||||
$dataCard = [
|
||||
"notrans" => $noid,
|
||||
$insertCard = [
|
||||
"notrans" => $cardNumber["no_id"],
|
||||
"no_card" => $cardNumber["nocard"],
|
||||
"no_urut" => $cardNumber["nourut"],
|
||||
];
|
||||
|
||||
DB::table("card_member")->insert($dataCard);
|
||||
DB::table("card_member")->insert($insertCard);
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
DB::table("indexnum")
|
||||
->where("nama", "sticker")
|
||||
->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||
DB::table("indexnum")
|
||||
->where("nama", "identitas")
|
||||
->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||
$response = true;
|
||||
$msg = "Data berhasil di simpan";
|
||||
// DB::table("indexnum")
|
||||
// ->where("nama", "sticker")
|
||||
// // ->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||
// ->update(["value" => $newNoTrans]);
|
||||
// DB::table("indexnum")
|
||||
// ->where("nama", "identitas")
|
||||
// // ->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||
// ->update(["value" => $newNoID]);
|
||||
|
||||
return response()->json([
|
||||
"status" => true,
|
||||
"message" => "Data berhasil di simpan",
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
$response = false;
|
||||
$msg = "Gagal menyimpan data " . $e->getMessage() . $e->getLine();
|
||||
return response()->json([
|
||||
"status" => false,
|
||||
"message" => "Gagal menyimpan data " . $e->getMessage() . $e->getLine(),
|
||||
]);
|
||||
}
|
||||
|
||||
DB::table("indexnum")
|
||||
->where("nama", "sticker")
|
||||
->update(["value" => $nextIndex]);
|
||||
|
||||
return $notrans;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user