where('approval_status', 'PENDING'); if (isset($request->kodcaw)) $query->where('kodcaw', '=', $request->kodcaw); $listapproval = $query->paginate(5); return response()->json($listapproval,200); } public function createAutoSerahan(Request $request) { $current = Carbon::now(); DB::connection('mysql7')->beginTransaction(); try{ $deno_pendser = DenoPendSer::on('mysql7')->create([ 'tarikh' => $current->toDateString(), 'masa' => $current->toTimeString(), 'kodcaw' => $request->kodcaw, 'kodlaluan' => $request->teller, 'amaun' => $request->amaun, 'bd1' => 0, 'bd5' => 0, 'bd10' => 0, 'bd20' => 0, 'bd50' => 0, 'bd100' => 0, 'txtring1' => isset($request->txtring1) ? $request->txtring1 : 0, 'txtring5' => isset($request->txtring5) ? $request->txtring5 : 0, 'txtring10' => isset($request->txtring10) ? $request->txtring10 : 0, 'txtring20' => isset($request->txtring20) ? $request->txtring20 : 0, 'txtring50' => isset($request->txtring50) ? $request->txtring50 : 0, 'txtring100' => isset($request->txtring100) ? $request->txtring100 : 0, 'txtring1000' => isset($request->txtring1000) ? $request->txtring1000 : 0, 'txtsen1' => isset($request->txtsen1) ? $request->txtsen1 : 0, 'txtsen5' => isset($request->txtsen5) ? $request->txtsen5 : 0, 'txtsen10' => isset($request->txtsen10) ? $request->txtsen10 : 0, 'txtsen20' => isset($request->txtsen20) ? $request->txtsen20 : 0, 'txtsen50' => isset($request->txtsen50) ? $request->txtsen50 : 0, 'jenis' =>$request->jenis, 'recno' => 0, 'update' => 0 ]); if($request->version == 'v3'){ $approval = ApprovalWithdrawal::on('mysql7')->create([ 'kodcaw' => $request->kodcaw, 'pc_name' => $request->teller, 'operasi_name' => null, 'amount' => $request->amaun, 'approval_status' => 'PENDING', 'approval_timestamp' => null, 'gldetail_id_v3' => 0, 'gldetail_id_v2' => 0, 'denopendser_id_v3' => $deno_pendser->id, 'denopendser_id_v2' => 0, 'updated_serahan_v2' => 0, 'updated_pendahuluan_v3' => 0, 'created_at' => $current, 'updated_at' => $current, ]); DB::connection('mysql7')->commit(); return response()->json(['status' => 'success','id' => $approval->id]); }else{ ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ 'denopendser_id_v2' => $deno_pendser->id, ]); DB::connection('mysql7')->commit(); return response()->json(['status' => 'success']); } }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); return response()->json(['status' => 'failed','message' => $e->getMessage()]); } } private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); $bakiawal = $vault['bakiawal']; $keluar = $vault['keluar']; $masuk = $vault['masuk']; $bakiakhir = $vault['bakiakhir']; $pendahuluan = $vault['pendahuluan']; $serahan = $vault['serahan']; $totpanjaran = $vault['totpanjar']; DB::connection($cawangan['mysql'])->beginTransaction(); DB::connection('mysql7')->beginTransaction(); try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); if($jenis == 'pendahuluan'){ $totalpendahuluan = $amaun + $pendahuluan; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->first(); $this->updateDenominasi($kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $kodcaw, 'tarikh' => $current->toDateString(), 'dtacct' => '1000/010', 'ktacct' => '7000/102', 'descpt' => 'Auto Pendahuluan Daripada V2', 'pendahuluan' => $amaun, 'teller' => $teller . ' (AUTO V2)', 'date_created' => $current ]); DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->update(array( 'recno' => $gldetail->id, 'update' => 1 )); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'pendahuluan' => $totalpendahuluan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_pendahuluan_v3' => 1, 'gldetail_id_v3' => $gldetail->id )); }else if($jenis == 'serahan'){ $totalserahan = $amaun + $serahan; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->first(); $this->updateDenominasi($kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $kodcaw, 'tarikh' => $current->toDateString(), 'dtacct' => '1000/010', 'ktacct' => '1000/020', 'descpt' => 'Auto Serahan Kepada V3', 'serahan' => $amaun, 'teller' => $teller . ' (AUTO V3)', 'date_created' => $current ]); DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->update(array( 'recno' => $gldetail->id, 'update' => 1 )); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'serahan' => $totalserahan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_serahan_v2' => 1, 'gldetail_id_v2' => $gldetail->id )); } // Commit transactions DB::connection($cawangan['mysql'])->commit(); DB::connection('mysql7')->commit(); }catch(\Exception $e){ DB::connection($cawangan['mysql'])->rollBack(); DB::connection('mysql7')->rollBack(); throw $e; } } public function autoSerahanApproval(Request $request){ $current = Carbon::now(); DB::connection('mysql7')->beginTransaction(); try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); if($approval->approval_status == 'PENDING' && $request->sendApproval == 'ACCEPTED'){ $approval->operasi_name = $request->operasi_name; $approval->approval_status = 'APPROVED'; $approval->approval_timestamp = $current; $approval->save(); $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); DB::connection('mysql7')->commit(); return response()->json(['status' => 'success'],200); }else{ $approval->operasi_name = $request->operasi_name; $approval->approval_status = 'REJECTED'; $approval->approval_timestamp = $current; $approval->save(); DB::connection('mysql7')->commit(); return response()->json(['status' => 'success'],200); } }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); return response()->json(['status' => 'error','message' =>$e->getMessage(), 'line' => $e->getLine()]); } } private function updateDenominasi($kodcaw,$denopendser){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); Log::debug($denopendser); $k1 = $denopendser['k1']; $txtring1 = $denopendser['k1'] * 1; $k5 = $denopendser['k5']; $txtring5 = $denopendser['k5'] * 5; $k01 = $denopendser['k01']; $txtsen1 = $denopendser['k01'] * 0.01; $k05 = $denopendser['k05']; $txtsen5 = $denopendser['k05'] * 0.05; $k010 = $denopendser['k010']; $txtsen10 = $denopendser['k010'] * 0.10; $k020 = $denopendser['k020']; $txtsen20 = $denopendser['k020'] * 0.20; $k050 = $denopendser['k050']; $txtsen50 = $denopendser['k050'] * 0.50; $k10 = $denopendser['k10']; $txtring10 = $denopendser['k10'] * 10; $k20 = $denopendser['k20']; $txtring20 = $denopendser['k20'] * 20; $k50 = $denopendser['k50']; $txtring50 = $denopendser['k50'] * 50; $k100 = $denopendser['k100']; $txtring100 = $denopendser['k100'] * 100; $totalkeping = $k01 + $k05 + $k010 + $k020 + $k050 + $k1 + $k5 + $k10 + $k20 + $k50 + $k100; Denominasi::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()]])->update(array( 'bd1' => 0, 'b1'=> 0, 'bd5'=> 0, 'b5'=> 0, 'bd10'=> 0, 'b10'=> 0, 'bd20'=> 0, 'b20'=> 0, 'bd50'=> 0, 'b50'=> 0, 'bd100'=> 0, 'b100'=> 0, 'txtring1'=> $txtring1, 'k1'=> $k1, 'txtring5'=> $txtring5, 'k5'=> $k5, 'txtsen1'=> $txtsen1, 'k01'=> $k01, 'txtsen5'=> $txtsen5, 'k05'=> $k05, 'txtsen10'=> $txtsen10, 'k010'=> $k010, 'txtsen20'=> $txtsen20, 'k020'=> $k020, 'txtsen50'=> $txtsen50, 'k050'=> $k050, 'txtring10'=> $txtring10, 'k10'=> $k10, 'txtring20'=> $txtring20, 'k20'=> $k20, 'txtring50'=> $txtring50, 'k50'=> $k50, 'txtring100'=> $txtring100, 'k100'=> $k100, 'jumlahbundle'=> 0, 'txtjumlah'=> $totalkeping, 'jumlahkeping' => $totalkeping )); } }