where('approval_status', 'PENDING'); if (isset($request->kodcaw)) $query->where('kodcaw', '=', $request->kodcaw); $listapproval = $query->get(); 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' => $request->bd1, 'bd5' => $request->bd5, 'bd10' => $request->bd10, 'bd20' => $request->bd20, 'bd50' => $request->bd50, 'bd100' => $request->bd100, 'txtring1' => $request->txtring1, 'txtring5' => $request->txtring5, 'txtring10' => $request->txtring10, 'txtring20' => $request->txtring20, 'txtring50' => $request->txtring50, 'txtring100' => $request->txtring100, 'txtring1000' => $request->txtring1000, 'txtsen1' => $request->txtsen1, 'txtsen5' => $request->txtsen5, 'txtsen10' => $request->txtsen10, 'txtsen20' => $request->txtsen20, 'txtsen50' => $request->txtsen50, 'jenis' =>$request->jenis, 'recno' =>$request->recno, 'update' => '0' ]); ApprovalWithdrawal::on('mysql7')->create([ 'kodcaw' => $request->kodcaw, 'pc_name' => $request->username, 'operasi_name' => null, 'amount' => $request->amount, 'approval_status' => 'PENDING', 'approval_timestamp' => null, 'gldetail_id' => 0, 'denopendser_id' => $deno_pendser->id, 'updated_serahan_v2' => 0, 'updated_pendahuluan_v3' => 0, 'created_at' => $current, 'updated_at' => $current, ]); DB::connection('mysql7')->commit(); return response()->json('success'); }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); return response()->json($e->getMessage()); } } private function autoSerahanEngine($jenis, $request){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$request->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',$request->id)->first(); if($jenis == 'pendahuluan'){ $totalpendahuluan = $request->amaun + $pendahuluan; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); $this->updateDenominasi($request->kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $request->kodcaw, 'tarikh' => $current->toDateString(), 'dtacct' => $request->dtacct, 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'pendahuluan' => $request->amaun, 'teller' => $request->teller . ' (AUTO V3)', 'date_created' => $current ]); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'pendahuluan' => $totalpendahuluan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->update(array( 'updated_pendahuluan_v3' => 1, 'gldetail_id' => $gldetail->id )); }else if($jenis == 'serahan'){ $totalserahan = $request->amaun + $serahan; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); $this->updateDenominasi($request->kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $request->kodcaw, 'tarikh' => $current->toDateString(), 'dtacct' => $request->dtacct, 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'serahan' => $request->amaun, 'teller' => $request->teller . ' (AUTO V3)', 'date_created' => $current ]); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'serahan' => $totalserahan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->update(array( 'updated_serahan_v2' => 1, 'gldetail_id' => $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); $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request); DB::connection('mysql7')->commit(); return response()->json('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('rejected',200); } }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); return response()->json($e->getMessage()); } } private function updateDenominasi($kodcaw,$denopendser){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $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'=> $request->txtring1, 'k1'=> $k1, 'txtring5'=> $request->txtring5, 'k5'=> $k5, 'txtsen1'=> $request->txtsen1, 'k01'=> $k01, 'txtsen5'=> $request->txtsen5, 'k05'=> $k05, 'txtsen10'=> $request->txtsen10, 'k010'=> $k010, 'txtsen20'=> $request->txtsen20, 'k020'=> $k020, 'txtsen50'=> $request->txtsen50, 'k050'=> $k050, 'txtring10'=> $request->txtring10, 'k10'=> $k10, 'txtring20'=> $request->txtring20, 'k20'=> $k20, 'txtring50'=> $request->txtring50, 'k50'=> $k50, 'txtring100'=> $request->txtring100, 'k100'=> $k100, 'txtring1000'=> $request->txtring1000, 'k1000'=> $request->k1000, 'jumlahbundle'=> 0, 'txtjumlah'=> $totalkeping, 'jumlahkeping' => $totalkeping )); } }