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/TransferController.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\Transfer; use Carbon\Carbon; use App\Http\Controllers\Controller; // use Illuminate\Support\Facades\Mail; // use App\Mail\BankMail; class TransferController 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(); if($datas['transaction_type']=='transferOut') { $bankAccountCash = BankAccount::where('is_bank', false)->where('is_active', true)->where('responsible_by_user_id',Auth::id())->where('currency_id', $datas['currency_id'])->orderBy('id','desc')->first(); $bankAccount = BankAccount::where('is_bank', true)->where('bank_id', $datas['bank_id'])->where('is_active', true)->where('responsible_by_user_id',Auth::id())->where('currency_id', $datas['currency_id'])->orderBy('id','desc')->first(); $datas['from_bank_account_id'] = $bankAccount->id; if($bankAccountCash && $bankAccount){ $bankAccountCash->credit = $bankAccountCash->credit + ($datas['amount']+$datas['fee']+$datas['partner_fee']); $bankAccountCash->save(); $bankAccount->credit = $bankAccount->credit-($datas['amount']+$datas['partner_fee']); $bankAccount->save(); $transfer = Transfer::create($datas); BankAccountTransaction::create([ 'bank_account_id'=>$bankAccountCash->id, 'transaction_type'=>'in', 'credit_before_transaction'=>$bankAccountCash->credit-($datas['amount']+$datas['fee']+$datas['partner_fee']), 'credit_after_transaction'=>$bankAccountCash->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); BankAccountTransaction::create([ 'bank_account_id'=>$bankAccount->id, 'transaction_type'=>'out', 'credit_before_transaction'=>$bankAccount->credit+($datas['amount']+$datas['partner_fee']), 'credit_after_transaction'=>$bankAccount->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); return redirect()->route('transfer-out')->with('success', __('message.transfer out').' '.__('message.created successfully')); } else { return redirect()->route('transfer-out')->with('error', __('message.bank account configuration is not correct for this user')); } } elseif($datas['transaction_type']=='transferIn') { $bankAccountCash = BankAccount::where('is_bank', false)->where('is_active', true)->where('responsible_by_user_id',Auth::id())->where('currency_id', $datas['currency_id'])->orderBy('id','desc')->first(); $bankAccount = BankAccount::where('is_bank', true)->where('bank_id', $datas['bank_id'])->where('is_active', true)->where('responsible_by_user_id',Auth::id())->where('currency_id', $datas['currency_id'])->orderBy('id','desc')->first(); $datas['to_bank_account_id'] = $bankAccount->id; if($bankAccountCash && $bankAccount){ $bankAccountCash->credit = $bankAccountCash->credit - ($datas['amount']); $bankAccountCash->save(); $bankAccount->credit = $bankAccount->credit+($datas['amount']+$datas['fee']); $bankAccount->save(); $transfer = Transfer::create($datas); BankAccountTransaction::create([ 'bank_account_id'=>$bankAccountCash->id, 'transaction_type'=>'out', 'credit_before_transaction'=>$bankAccountCash->credit+($datas['amount']), 'credit_after_transaction'=>$bankAccountCash->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); BankAccountTransaction::create([ 'bank_account_id'=>$bankAccount->id, 'transaction_type'=>'in', 'credit_before_transaction'=>$bankAccount->credit-($datas['amount']+$datas['fee']), 'credit_after_transaction'=>$bankAccount->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); return redirect()->route('transfer-in')->with('success', __('message.transfer in').' '.__('message.created successfully')); } else { return redirect()->route('transfer-in')->with('error', __('message.bank account configuration is not correct for this user')); } } elseif($datas['transaction_type']=='retransferOut') { $bankAccount = BankAccount::findOrFail($datas['from_bank_account_id']); if($bankAccount){ $bankAccount->credit = $bankAccount->credit-($datas['amount']+$datas['partner_fee']); $bankAccount->save(); $transfer = Transfer::create($datas); BankAccountTransaction::create([ 'bank_account_id'=>$datas['from_bank_account_id'], 'transaction_type'=>'out', 'credit_before_transaction'=>$bankAccount->credit+($datas['amount']+$datas['partner_fee']), 'credit_after_transaction'=>$bankAccount->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); return redirect()->route('retransfer-out')->with('success', __('message.re-transfer out').' '.__('message.created successfully')); } else { return redirect()->route('re-transfer-out')->with('error', __('message.bank account configuration is not correct for this user')); } } elseif($datas['transaction_type']=='retransferIn') { $bankAccount = BankAccount::findOrFail($datas['to_bank_account_id']); if($bankAccount){ $bankAccount->credit = $bankAccount->credit+($datas['amount']); $bankAccount->save(); $transfer = Transfer::create($datas); BankAccountTransaction::create([ 'bank_account_id'=>$datas['to_bank_account_id'], 'transaction_type'=>'in', 'credit_before_transaction'=>$bankAccount->credit-($datas['amount']), 'credit_after_transaction'=>$bankAccount->credit, 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>$datas['note']??null, 'transfer_id'=>$transfer->id ]); return redirect()->route('retransfer-in')->with('success', __('message.re-transfer in').' '.__('message.created successfully')); } else { return redirect()->route('re-transfer-in')->with('error', __('message.bank account configuration is not correct for this user')); } } } public function destroy($id) { $transfer = Transfer::findOrFail($id); if($transfer->created_at->format('d/m/Y')!=Carbon::today()->format('d/m/Y')){ return redirect()->back()->with('error',__("message.can't delete")); } foreach($transfer->bankAccountTransactions as $index=>$bankAccountTransaction) { $diffCredit = $bankAccountTransaction->credit_before_transaction-$bankAccountTransaction->credit_after_transaction; $bankAccountTransaction->bankAccount->credit = $bankAccountTransaction->bankAccount->credit+$diffCredit; $bankAccountTransaction->bankAccount->save(); $bankAccountTransaction->delete(); } $transfer->delete(); if($transfer->transaction_type=='transferOut') { return redirect()->back()->with('success', __('message.transfer out').' '.__('message.deleted successfully')); } elseif($transfer->transaction_type=='transferIn') { return redirect()->back()->with('success', __('message.transfer in').' '.__('message.deleted successfully')); } elseif($transfer->transaction_type=='retransferOut') { return redirect()->back()->with('success', __('message.re-transfer out').' '.__('message.deleted successfully')); } elseif($transfer->transaction_type=='retransferIn') { return redirect()->back()->with('success', __('message.re-transfer in').' '.__('message.deleted successfully')); } return redirect()->back()->with('success', __('message.transfer in').' '.__('message.deleted successfully')); } public function transferOut(Request $request) { if(Auth::user()->role_id!=2){ $bankAccounts = BankAccount::where('is_active',true)->where('responsible_by_user_id',Auth::id())->get(); } else{ $bankAccounts = BankAccount::where('is_active',true)->get(); } $banks= Bank::where('show_as_bank',true)->get(); $currencies = Currency::all(); return view('transfer.transferOut', ['bankAccounts'=> $bankAccounts,'currencies'=>$currencies, 'banks'=>$banks]); } public function transferIn(Request $request) { if(Auth::user()->role_id!=2){ $bankAccounts = BankAccount::where('is_active',true)->where('responsible_by_user_id',Auth::id())->get(); } else{ $bankAccounts = BankAccount::where('is_active',true)->get(); } $banks= Bank::where('show_as_bank',true)->get(); $currencies = Currency::all(); return view('transfer.transferIn', ['bankAccounts'=> $bankAccounts,'currencies'=>$currencies, 'banks'=>$banks]); } public function reTransferOut(Request $request) { if(Auth::user()->role_id!=2){ $bankAccounts = BankAccount::where('is_active',true)->where('is_bank',true)->where('responsible_by_user_id',Auth::id())->get(); } else{ $bankAccounts = BankAccount::where('is_active',true)->where('is_active',true)->where('is_bank',true)->get(); } $banks= Bank::where('show_as_bank',true)->get(); $currencies = Currency::all(); return view('transfer.reTransferOut', ['bankAccounts'=> $bankAccounts,'currencies'=>$currencies, 'banks'=>$banks]); } public function reTransferIn(Request $request) { if(Auth::user()->role_id!=2){ $bankAccounts = BankAccount::where('is_active',true)->where('is_bank',true)->where('responsible_by_user_id',Auth::id())->get(); } else{ $bankAccounts = BankAccount::where('is_active',true)->where('is_bank',true)->get(); } $banks= Bank::where('show_as_bank',true)->get(); $currencies = Currency::all(); return view('transfer.reTransferIn', ['bankAccounts'=> $bankAccounts,'currencies'=>$currencies, 'banks'=>$banks]); } public function transferInTransaction(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $bank_account_id = $request->get('bank_account_id'); $user_id = $request->get('user_id'); $currency_id = $request->get('currency_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $perpage = $request->get('perpage')??25; $datas = Transfer::where('transaction_type','transferIn'); if($start_date!=null){ $datas->whereDate("created_at", ">=", $start_date." 00:00:00"); } if($end_date!=null){ $datas->whereDate("created_at", "<=", $end_date." 23:59:59"); } if($user_id) { $datas->where('user_id',$user_id); } if(Auth::user()->role_id!=2){ $datas->where("user_id", Auth::id()); } $transactions = $datas->orderBy('id', 'desc')->paginate($perpage); $users = User::all(); $currencies = Currency::all(); return view('transfer.transactions.transferInTransaction', ['transactions'=> $transactions,'start_date'=>$start_date,'end_date'=>$end_date,'perpage'=>$perpage,'users'=>$users,'user_id'=>$user_id,'currency_id'=>$currency_id,'currencies'=>$currencies]); } public function transferOutTransaction(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $bank_account_id = $request->get('bank_account_id'); $currency_id = $request->get('currency_id'); $user_id = $request->get('user_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $perpage = $request->get('perpage')??25; $datas = Transfer::where('transaction_type','transferOut'); if($start_date!=null){ $datas->whereDate("created_at", ">=", $start_date." 00:00:00"); } if($end_date!=null){ $datas->whereDate("created_at", "<=", $end_date." 23:59:59"); } if($currency_id) { $datas->where('currency_id',$currency_id); } if($user_id) { $datas->where('user_id',$user_id); } if(Auth::user()->role_id!=2){ $datas->where("user_id", Auth::id()); } $transactions = $datas->orderBy('id', 'desc')->paginate($perpage); $currencies = Currency::all(); $users = User::all(); return view('transfer.transactions.transferOutTransaction', ['transactions'=> $transactions,'start_date'=>$start_date,'end_date'=>$end_date,'perpage'=>$perpage,'users'=>$users,'user_id'=>$user_id,'currency_id'=>$currency_id,'currencies'=>$currencies]); } public function reTransferInTransaction(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $bank_account_id = $request->get('bank_account_id'); $currency_id = $request->get('currency_id'); $user_id = $request->get('user_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $perpage = $request->get('perpage')??25; $datas = Transfer::where('transaction_type','reTransferIn'); if($start_date!=null){ $datas->whereDate("created_at", ">=", $start_date." 00:00:00"); } if($end_date!=null){ $datas->whereDate("created_at", "<=", $end_date." 23:59:59"); } if($currency_id) { $datas->where('currency_id',$currency_id); } if($user_id) { $datas->where('user_id',$user_id); } if(Auth::user()->role_id!=2){ $datas->where("user_id", Auth::id()); } $transactions = $datas->orderBy('id', 'desc')->paginate($perpage); $currencies = Currency::all(); $users = User::all(); return view('transfer.transactions.reTransferInTransaction', ['transactions'=> $transactions,'start_date'=>$start_date,'end_date'=>$end_date,'perpage'=>$perpage,'users'=>$users,'user_id'=>$user_id,'currency_id'=>$currency_id,'currencies'=>$currencies]); } public function reTransferOutTransaction(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $bank_account_id = $request->get('bank_account_id'); $currency_id = $request->get('currency_id'); $user_id = $request->get('user_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $perpage = $request->get('perpage')??25; $datas = Transfer::where('transaction_type','reTransferOut'); if($start_date!=null){ $datas->whereDate("created_at", ">=", $start_date." 00:00:00"); } if($end_date!=null){ $datas->whereDate("created_at", "<=", $end_date." 23:59:59"); } if($currency_id) { $datas->where('currency_id',$currency_id); } if($user_id) { $datas->where('user_id',$user_id); } if(Auth::user()->role_id!=2){ $datas->where("user_id", Auth::id()); } $transactions = $datas->orderBy('id', 'desc')->paginate($perpage); $currencies = Currency::all(); $users = User::all(); return view('transfer.transactions.reTransferOutTransaction', ['transactions'=> $transactions,'start_date'=>$start_date,'end_date'=>$end_date,'perpage'=>$perpage,'users'=>$users,'user_id'=>$user_id,'currency_id'=>$currency_id,'currencies'=>$currencies]); } public function transferReport(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $bank_account_id = $request->get('bank_account_id'); $currency_id = $request->get('currency_id'); $user_id = $request->get('user_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $datas = Transfer::whereIn('transaction_type',['transferIn','transferOut']); if($start_date!=null){ $datas->whereDate("created_at", ">=", $start_date." 00:00:00"); } if($end_date!=null){ $datas->whereDate("created_at", "<=", $end_date." 23:59:59"); } if($currency_id) { $datas->where('currency_id',$currency_id); } if($user_id) { $datas->where('user_id',$user_id); } $currencies = Currency::all(); $users = User::all(); $bankAccounts = BankAccount::all(); return view('transfer.reports.transferReport', ['datas'=> $datas, 'start_date'=>$start_date, 'end_date'=>$end_date, 'bank_account_id'=>$bank_account_id, 'currency_id'=>$currency_id, 'user_id'=>$user_id, 'datas'=>$datas,'users'=>$users,'currencies'=>$currencies,'bankAccounts'=>$bankAccounts]); } }