Path : /var/www/html/mini-moneyexchange/app/Http/Controllers/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/mini-moneyexchange/app/Http/Controllers/BankAccountController.php |
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use App\Models\BankAccount; use App\Models\BankAccountTransaction; use App\Models\Bank; use App\Models\User; use App\Models\Currency; use App\Models\BankAccountTransactionType; use App\Http\Controllers\Controller; // use Illuminate\Support\Facades\Mail; // use App\Mail\BankMail; class BankAccountController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function store(Request $request) { $datas = $request->all(); if($request->hasFile('feature_image')){ $datas['logo'] = $this->uploadImage($request); } $datas['user_id'] = Auth::id(); $bankAccounts = BankAccount::create($datas); return redirect()->route('bank-accounts.index')->with('success', __('message.bank account').' '.__('message.created successfully')); } public function index(Request $request) { $perpage = $request->get('perpage')??25; $responsible_by_user_id = $request->get('responsible_by_user_id'); $currency_id = $request->get('currency_id'); $is_bank = $request->get('is_bank'); $datas = BankAccount::where('is_bank',true); if($is_bank!=null){ $datas->where('is_bank',$is_bank); } if($responsible_by_user_id) { $datas->where('responsible_by_user_id',$responsible_by_user_id); } if($currency_id){ $datas->where('currency_id',$currency_id); } $bankAccounts = $datas->orderBy('id', 'desc')->paginate($perpage); $users = User::all(); $currencies = Currency::all(); return view('bankAccount.bankAccountList', ['bankAccounts'=> $bankAccounts,'perpage'=>$perpage,'users'=>$users,'responsible_by_user_id'=>$responsible_by_user_id,'is_bank'=>$is_bank,'currency_id'=>$currency_id,'currencies'=>$currencies]); } public function create() { $banks = Bank::all(); $currencies = Currency::all(); $users = User::all(); return view('bankAccount.bankAccountForm' , ['banks'=>$banks,'currencies'=>$currencies,'users'=>$users]); } public function edit($id) { $bankAccount = BankAccount::where("id", $id)->firstOrFail(); $banks = Bank::all(); $currencies = Currency::all(); $users = User::all(); return view('bankAccount.bankAccountForm', ['bankAccount'=> $bankAccount, 'banks'=>$banks,'currencies'=>$currencies,'users'=>$users]); } public function update(Request $request, $id) { $bankAccount = BankAccount::where("id", $id)->firstOrFail(); $datas = $request->all(); if($request->hasFile('feature_image')){ $datas['logo'] = $this->uploadImage($request); } $bankAccount->update($datas); return redirect()->route('bank-accounts.index')->with('success', __('message.bank account').' '.__('message.updated successfully')); } public function destroy($id) { $bank = BankAccount::findOrFail($id); if(count($bank->bankAccountTransaction)){ return redirect()->route('bank-accounts.index')->with('error', __('message.bank account').' '.__("message.can't delete")); } $bank->delete(); return redirect()->route('bank-accounts.index')->with('success', __('message.bank account').' '.__('message.deleted successfully')); } public function show(Request $request){ return redirect()->route('bank-accounts.index'); } private function uploadImage(Request $request) { $image = $request->file('feature_image'); $name = time().'.'.$image->getClientOriginalName(); $destinationPath = public_path('images/'); $image->move($destinationPath, $name); return 'images/'.$name; } public function bankAccountDepositWithdraw($id, Request $request) { $type = $request->get('type')=='deposit'?'deposit':'withdraw'; $bankAccount = BankAccount::findOrFail($id); $bankAccountTransactionTypes = BankAccountTransactionType::where('is_active',true)->orderBy('order')->get(); return view('bankAccount.bankAccountDepositWithdrawForm' , ['bankAccount'=>$bankAccount, 'type'=>$type,'bankAccountTransactionTypes'=>$bankAccountTransactionTypes]); } public function bankAccountDepositWithdrawStore($id, Request $request) { $datas = $request->all(); $bankAccount = BankAccount::findOrFail($id); $bankAccountTransactionType = BankAccountTransactionType::findOrFail($datas['bank_account_transaction_type_id']); $myBankAccount = BankAccount::where('is_bank',$bankAccount->is_bank)->where('currency_id',$bankAccount->currency_id)->where('is_active',true)->where('bank_id',$bankAccount->bank_id)->orderBy('id','desc')->where('responsible_by_user_id',Auth::id())->firstOrFail(); $datas['credit_before_transaction'] = $bankAccount->credit; $type = $datas['type']=='deposit'?'in':'out'; $mybankType = ''; $mybankBeforeTransaction= $myBankAccount->credit; if($type=='in'){ $mybankType = 'out'; $datas['credit_after_transaction'] = $bankAccount->credit + $datas['amount']; if($bankAccountTransactionType->return_credit){ $myBankAccount->credit = $myBankAccount->credit -$datas['amount']; } } else { $mybankType = 'in'; $datas['credit_after_transaction'] = $bankAccount->credit - $datas['amount']; if($bankAccountTransactionType->return_credit){ $myBankAccount->credit = $myBankAccount->credit + $datas['amount']; } } $datas['bank_account_id'] = $id; $datas['user_id'] = Auth::id(); $datas['transaction_type'] = $type; $bankAccount->credit = $datas['credit_after_transaction']; // dd($datas,$bankAccount); $bankAccount->save(); $bankAccountTransaction = BankAccountTransaction::create($datas); // create bank transaction for owner bank (ex: vault) if($bankAccountTransactionType->return_credit){ if($bankAccount->id!=$myBankAccount->id) { $myBankAccount->save(); BankAccountTransaction::create([ 'bank_account_id'=>$myBankAccount->id, 'transaction_type'=>$mybankType, 'credit_before_transaction'=>$mybankBeforeTransaction, 'credit_after_transaction'=>$myBankAccount->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>'transfer from:'.$bankAccountTransaction->id, 'transaction_id'=>null ]); } } return redirect()->back()->with('success', __('message.credit').' '.__('message.updated successfully')); } }