Path : /var/www/html/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/moneyexchange/app/Http/Controllers/ExchangeController.php |
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use App\Models\Bank; use App\Models\BankAccount; use App\Models\Transaction; use App\Models\BankAccountTransaction; use App\Models\Currency; use App\Models\User; use App\Models\Setting; use App\Models\MoneyExchangeList; use App\Http\Controllers\Controller; use Intanode\ReceiptPrinter\ReceiptPrinter as ReceiptPrinter; use App\Exports\TransactionExport; use App\Exports\TransactionExport1; use Maatwebsite\Excel\Facades\Excel; use Carbon\Carbon; // use Illuminate\Support\Facades\Mail; // use App\Mail\BankMail; class ExchangeController 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(); $datas['user_id'] = Auth::id(); // dd($datas); $bankAccountExchangeFrom = BankAccount::where('is_bank', false)->where('is_active', true)->where('responsible_by_user_id',$datas['user_id'])->where('currency_id',$datas['exchange_from_id'])->orderBy('id','desc')->first(); $bankAccountExchangeTo = BankAccount::where('is_bank', false)->where('is_active', true)->where('responsible_by_user_id',$datas['user_id'])->where('currency_id',$datas['exchange_to_id'])->orderBy('id','desc')->first(); if($bankAccountExchangeFrom && $bankAccountExchangeTo) { $datas['amount'] = $datas['exchange_from_amount']; $datas['amount_after_exchange'] = $datas['exchange_to_amount']; $datas['bank_account_id'] = $bankAccountExchangeFrom->id; $datas['already_print'] = false; $t = Transaction::create($datas); //update receive bank $t1 = BankAccountTransaction::create(['bank_account_id'=>$bankAccountExchangeFrom->id, 'transaction_type'=>'in', 'credit_before_transaction'=>$bankAccountExchangeFrom->credit, 'credit_after_transaction'=>$bankAccountExchangeFrom->credit+$datas['amount'], 'user_id'=>Auth::id(), 'amount'=>$datas['amount'], 'note'=>'t-'.$t->id, 'transaction_id'=>$t->id ]); $bankAccountExchangeFrom->credit = $bankAccountExchangeFrom->credit+$datas['amount']; $bankAccountExchangeFrom->save(); //update bank after give to customer exchange $t2 =BankAccountTransaction::create(['bank_account_id'=>$bankAccountExchangeTo->id, 'transaction_type'=>'out', 'credit_before_transaction'=>$bankAccountExchangeTo->credit, 'credit_after_transaction'=>$bankAccountExchangeTo->credit-$datas['amount_after_exchange'], 'user_id'=>Auth::id(), 'amount'=>$datas['amount_after_exchange'], 'note'=>'t-'.$t->id, 'transaction_id'=>$t->id ]); $bankAccountExchangeTo->credit = $bankAccountExchangeTo->credit-$datas['amount_after_exchange']; $bankAccountExchangeTo->save(); // update credit after transaction $t->credit_khr = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',3)->where('is_active', true)->first()->credit??0; $t->credit_usd = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',1)->where('is_active', true)->first()->credit??0; $t->credit_thb = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',2)->where('is_active', true)->first()->credit??0; $t->credit_thb = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',2)->where('is_active', true)->first()->credit??0; $t->credit_thb = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',2)->where('is_active', true)->first()->credit??0; $t->credit_thb = BankAccount::where('responsible_by_user_id', $datas['user_id'])->where('is_bank', false)->where('currency_id',2)->where('is_active', true)->first()->credit??0; $t->save(); return redirect()->route('exchange-money.create',$t->id)->with('success', __('message.exchange money').' '.__('message.saved successfully')); } else { return redirect()->route('exchange-money.create')->with('error', __('message.bank account configuration is not correct for this user')); } } public function transaction(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'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $perpage = $request->get('perpage')??25; if(Auth::user()->role_id==2){ $datas = Transaction::query(); $bankAccounts= BankAccount::all(); } else { $datas = Transaction::where('user_id',Auth::id()); $bankAccounts= BankAccount::all(); } if($bank_account_id){ $datas->where('bank_account_id', $bank_account_id); } if($user_id){ $datas->where('user_id', $user_id); } 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"); } $transactions = $datas->orderBy('id', 'desc')->paginate($perpage); $users = User::all(); return view('moneyExchange.transaction', ['transactions'=> $transactions,'perpage'=>$perpage,'start_date'=>$start_date, 'end_date'=>$end_date, 'bankAccounts'=>$bankAccounts,'bank_account_id'=>$bank_account_id,'users'=>$users,'user_id'=>$user_id]); } public function transactionDownload(Request $request) { return Excel::download(new TransactionExport($request->get('start_date'), $request->get('end_date'), $request->get("bank_account_id"),$request->get("user_id")), 'transactions-report-'.$request->get('start_date')."-".$request->get('end_date').'-'.$request->get("bank_account_id").'-'.$request->get('user_id').'.xlsx'); } public function transactionDownload1(Request $request) { return Excel::download(new TransactionExport1($request->get('start_date'), $request->get('end_date'), $request->get("bank_account_id"),$request->get("user_id")), 'transactions-report-'.$request->get('start_date')."-".$request->get('end_date').'-'.$request->get("bank_account_id").'-'.$request->get('user_id').'.xlsx'); } public function create($transaction_id=null) { $currencies = Currency::all(); $moneyExchangeLists = MoneyExchangeList::where('is_active',true)->orderBy('order')->get(); $transactions = Transaction::where('user_id',Auth::id())->orderBy('id','desc')->take(5)->get(); $already_print= null; if($transaction_id) { $transaction = Transaction::findOrFail($transaction_id); $already_print = $transaction->already_print; $transaction->already_print = true; $transaction->save(); } return view('moneyExchange.form' , ['currencies'=>$currencies,'transactions'=>$transactions,'transaction_id'=>$transaction_id,'already_print'=>$already_print]); } public function report(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'); $is_bank = $request->get('is_bank'); // dd($is_bank); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } if(Auth::user()->role_id==2){ if($user_id){ $bankAccounts = BankAccount::where('responsible_by_user_id',Auth::id()); } else{ $bankAccounts = BankAccount::query(); } } else{ $bankAccounts = BankAccount::where('responsible_by_user_id',Auth::id()); } if($is_bank!=null){ $bankAccounts->where('is_bank',$is_bank)->get(); } else{ $bankAccounts->get(); } // $datas = Transaction::where('user_id',Auth::id()); $users = User::all(); if($bank_account_id){ $ba= BankAccount::findOrFail($bank_account_id); $currencies = Currency::where('id',$ba->currency_id)->get(); } else{ $currencies = Currency::all(); } return view('moneyExchange.report', ['start_date'=>$start_date, 'end_date'=>$end_date, 'bankAccounts'=>$bankAccounts,'bank_account_id'=>$bank_account_id,'users'=>$users,'user_id'=>$user_id,'currencies'=>$currencies,'is_bank'=>$is_bank]); } public function invoice($transaction_id=null) { $transaction = Transaction::findOrFail($transaction_id); $now = Carbon::now(); $created_at = Carbon::parse($transaction->created_at)->addMinutes(5); if($created_at<=$now){ return redirect()->back()->with('error', __("message.can't delete")); } if($transaction->already_print==false){ $transaction->already_print = true; $transaction->save(); } $shop_name = Setting::where('name','shop_name')->firstOrFail(); $logo = Setting::where('name','logo')->firstOrFail(); $phone = Setting::where('name','phone')->firstOrFail(); $address = Setting::where('name','address')->firstOrFail(); return view('moneyExchange.invoice' , ['transaction_id'=>$transaction_id,'transaction'=>$transaction,'shop_name'=>$shop_name->value,'logo'=>$logo->value,'phone'=>$phone->value,'address'=>$address->value]); } public function profitReport(Request $request) { $start_date = $request->get('start_date'); $end_date = $request->get('end_date'); $is_bank = $request->get('is_bank'); $user_id = $request->get('user_id'); if($start_date=="" && $end_date=="") { $start_date = date('Y-m-d'); $end_date = date('Y-m-d'); } $currencies = Currency::all(); $users = User::all(); $mainCurrency = Currency::where('is_main_currency',true)->first(); if(empty($mainCurrency)) { $mainCurrency = Currency::orderBy('id')->first(); } return view('moneyExchange.profitReport' , ['start_date'=>$start_date,'end_date'=>$end_date,'is_bank'=>$is_bank,'currencies'=>$currencies,'users'=>$users,'user_id'=>$user_id,'mainCurrency'=>$mainCurrency]); } }