Penambahan Stiker Harian
This commit is contained in:
101
app/Services/MakeStikerServices.php
Normal file
101
app/Services/MakeStikerServices.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\DetailTransaksiStiker;
|
||||
use App\Models\TransaksiStiker;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class MakeStikerServices
|
||||
{
|
||||
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' => $transStiker->jenis_stiker,
|
||||
'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,
|
||||
]);
|
||||
|
||||
// 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