Finalize value on all-report
This commit is contained in:
Regular → Executable
+175
-74
@@ -10,93 +10,194 @@
|
||||
|
||||
class MakeStikerServices
|
||||
{
|
||||
public function stikerExtend($sticker, Carbon $awal, Carbon $akhir)
|
||||
public function stikerCreate($request, Carbon $awal, Carbon $akhir)
|
||||
{
|
||||
Log::info(json_encode($sticker));
|
||||
return DB::transaction(function () use ($sticker) {
|
||||
|
||||
// LOCK index agar aman
|
||||
$index = DB::table('indexnum')
|
||||
->where('nama', 'sticker')
|
||||
->lockForUpdate()
|
||||
->first();
|
||||
$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);
|
||||
|
||||
// update index
|
||||
DB::table('indexnum')
|
||||
->where('nama', 'sticker')
|
||||
->update(['value' => $nextIndex]);
|
||||
$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;
|
||||
|
||||
$notrans = sprintf(
|
||||
'%s/STK/%s/%s',
|
||||
$nextIndex,
|
||||
Carbon::now()->format('m'),
|
||||
Carbon::now()->format('Y')
|
||||
);
|
||||
|
||||
$transStiker = TransaksiStiker::where('notrans', $sticker->notrans)->first();
|
||||
$detailTransStiker = DetailTransaksiStiker::where('notrans', $sticker->notrans)->first();
|
||||
$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
|
||||
DB::table('transaksi_stiker')->insert([
|
||||
'notrans' => $notrans,
|
||||
'nama' => $transStiker->nama,
|
||||
'alamat' => $transStiker->alamat,
|
||||
'telepon' => $transStiker->telepon,
|
||||
'jenis_transaksi' => $transStiker->jenis_transaksi,
|
||||
'harga' => $transStiker->harga,
|
||||
'keterangan' => $transStiker->keterangan,
|
||||
'tanggal' => Carbon::now(),
|
||||
'awal' => Carbon::now()->startOfMonth(),
|
||||
'akhir' => Carbon::now()->endOfMonth(),
|
||||
'maks' => $transStiker->maks,
|
||||
'no_id' => $transStiker->no_id,
|
||||
'unit_kerja' => $transStiker->unit_kerja,
|
||||
'no_induk' => $transStiker->no_induk,
|
||||
'area' => $transStiker->area,
|
||||
'jenis_stiker' => 1,
|
||||
'unitno' => $transStiker->unitno,
|
||||
'exit_pass' => $transStiker->exit_pass,
|
||||
'hari_ke' => $transStiker->hari_ke,
|
||||
'jenis_langganan' => $transStiker->jenis_langganan,
|
||||
'no_kuitansi' => $transStiker->no_kuitansi,
|
||||
'tgl_edited' => Carbon::now(),
|
||||
'tipe_exit_pass' => $transStiker->tipe_exit_pass,
|
||||
'seq_code' => $transStiker->seq_code,
|
||||
'reserved' => $transStiker->reserved,
|
||||
'batasan_jam' => $transStiker->batasan_jam,
|
||||
'batasan_awal' => $transStiker->batasan_awal,
|
||||
'batasan_akhir' => $transStiker->batasan_akhir,
|
||||
'asuransi' => $transStiker->asuransi,
|
||||
'visitor' => $transStiker->visitor,
|
||||
'operator' => 'Automatic'
|
||||
]);
|
||||
|
||||
// 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,
|
||||
]);
|
||||
try {
|
||||
$dataStiker = [
|
||||
"jenis_transaksi" => $dataStiker["jenis_transaksi"], // 0 = transaksi baru , 1 = perpanjangan
|
||||
"notrans" => $notrans,
|
||||
"no_id" => $noid,
|
||||
"nama" => $dataStiker["nama"],
|
||||
"alamat" => $dataStiker["address"] ?? "",
|
||||
"telepon" => $dataStiker["phone"] ?? "",
|
||||
"unit_kerja" => $dataStiker["depart"],
|
||||
"jenis_stiker" => $dataStiker["member"],
|
||||
"awal" => $awal,
|
||||
"akhir" => $akhir,
|
||||
"harga" => $dataStiker["harga"] ?? 0,
|
||||
"keterangan" => $dataStiker["note"] ?? "",
|
||||
"tanggal" => $dateNow,
|
||||
"operator" => $user->nomer,
|
||||
];
|
||||
|
||||
DB::table('indexnum')
|
||||
->where('nama', 'sticker')
|
||||
->update(['value' => $nextIndex]);
|
||||
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) {
|
||||
foreach ($dataVehicle as $nopol) {
|
||||
$dataVehicle = [
|
||||
"notrans" => $notrans,
|
||||
"nopol" => $nopol["nopol"],
|
||||
"jenis_mobil" => $nopol["vehicle"],
|
||||
"jenis_member" => $nopol["member"],
|
||||
"merk" => $nopol["merk"],
|
||||
];
|
||||
DB::table("detail_transaksi_stiker")->insert($dataVehicle);
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ($dataCard) {
|
||||
foreach ($dataCard as $cardNumber) {
|
||||
$dataCard = [
|
||||
"notrans" => $noid,
|
||||
"no_card" => $cardNumber["nocard"],
|
||||
"no_urut" => $cardNumber["nourut"],
|
||||
];
|
||||
|
||||
DB::table("card_member")->insert($dataCard);
|
||||
}
|
||||
} 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";
|
||||
} catch (Exception $e) {
|
||||
$response = false;
|
||||
$msg = "Gagal menyimpan data " . $e->getMessage() . $e->getLine();
|
||||
}
|
||||
|
||||
DB::table("indexnum")
|
||||
->where("nama", "sticker")
|
||||
->update(["value" => $nextIndex]);
|
||||
|
||||
return $notrans;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function stikerExtend($sticker, Carbon $awal, Carbon $akhir)
|
||||
{
|
||||
Log::info(json_encode($sticker));
|
||||
return DB::transaction(function () use ($sticker) {
|
||||
// LOCK index agar aman
|
||||
$index = DB::table("indexnum")->where("nama", "sticker")->lockForUpdate()->first();
|
||||
|
||||
$nextIndex = str_pad($index->value + 1, 4, "0", STR_PAD_LEFT);
|
||||
|
||||
// update index
|
||||
DB::table("indexnum")
|
||||
->where("nama", "sticker")
|
||||
->update(["value" => $nextIndex]);
|
||||
|
||||
$notrans = sprintf("%s-STK-%s-%s", $nextIndex, Carbon::now()->format("m"), Carbon::now()->format("Y"));
|
||||
|
||||
$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
|
||||
DB::table("transaksi_stiker")->insert([
|
||||
"notrans" => $notrans,
|
||||
"nama" => $transStiker->nama,
|
||||
"alamat" => $transStiker->alamat,
|
||||
"telepon" => $transStiker->telepon,
|
||||
"jenis_transaksi" => $transStiker->jenis_transaksi,
|
||||
"harga" => $transStiker->harga,
|
||||
"keterangan" => $transStiker->keterangan,
|
||||
"tanggal" => Carbon::now(),
|
||||
"awal" => Carbon::now()->startOfMonth(),
|
||||
"akhir" => Carbon::now()->endOfMonth(),
|
||||
"maks" => $transStiker->maks,
|
||||
"no_id" => $transStiker->no_id,
|
||||
"unit_kerja" => $transStiker->unit_kerja,
|
||||
"no_induk" => $transStiker->no_induk,
|
||||
"area" => $transStiker->area,
|
||||
"jenis_stiker" => 1,
|
||||
"unitno" => $transStiker->unitno,
|
||||
"exit_pass" => $transStiker->exit_pass,
|
||||
"hari_ke" => $transStiker->hari_ke,
|
||||
"jenis_langganan" => $transStiker->jenis_langganan,
|
||||
"no_kuitansi" => $transStiker->no_kuitansi,
|
||||
"tgl_edited" => Carbon::now(),
|
||||
"tipe_exit_pass" => $transStiker->tipe_exit_pass,
|
||||
"seq_code" => $transStiker->seq_code,
|
||||
"reserved" => $transStiker->reserved,
|
||||
"batasan_jam" => $transStiker->batasan_jam,
|
||||
"batasan_awal" => $transStiker->batasan_awal,
|
||||
"batasan_akhir" => $transStiker->batasan_akhir,
|
||||
"asuransi" => $transStiker->asuransi,
|
||||
"visitor" => $transStiker->visitor,
|
||||
"operator" => "Automatic",
|
||||
]);
|
||||
|
||||
// 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("indexnum")
|
||||
->where("nama", "sticker")
|
||||
->update(["value" => $nextIndex]);
|
||||
|
||||
return $notrans;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user