Viewing file: UserController.php (24.62 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Http\Requests\UserRequest;
use App\Models\User;
use App\Models\Transaction;
use App\Models\Payment;
use App\Models\Campaign;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; //using simple qurey
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
/**
* Display a listing of the users
*
* @param \App\Models\User $model
* @return \Illuminate\View\View
*/
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$role=auth()->user()->role;
$parent_id=auth()->user()->id;
if($role=="Super Admin"){
$userList = User::where('role','!=',"Super Admin")->get();
}
else {
$userList = User::where('role','!=',"Super Admin")->Where('role','!=',"Admin")->get();
}
// $userList = User::all();
return view('users.index',['user'=> $userList]);
}
//
public function addUser()
{
return view('users.addUser');
}
/**
* Update the profile
*
* @param \App\Http\Requests\UserRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
public function insertUser(UserRequest $req)
{
$parent_id=auth()->user()->id;
$user = new User();
$user->name = $req->name;
$user->email = "test@email.com";
// $user->password = $req->password;
$user->password = Hash::make($req->password);
$user->phone = $req->phone;
$user->role = $req->role;
$user->parent_id = $parent_id;
// if($req->role=="Select Role"){
// return back()->withStatus(__('Please Select a valid role.'));
// }else{
$user->save();
return back()->withStatus(__('User Added successfully.'));
// }
}
public function addBalance($user_id,$add_balance,$add_amount,$add_method)
{
$now_date= date('d/m/Y h:i:s a', time() + 6*3600);
$customer=User::find($user_id);
$cus_balance=$customer['balance']+$add_balance;
$cus_amount_due=$customer['amount_due']+$add_balance-$add_amount;
// Customer Balance Update
$customer->balance = $cus_balance;
$customer->amount_due = $cus_amount_due;
$customer->save();
// Reseller Balance Update
$reseller_id=auth()->user()->id;
$rese_role=auth()->user()->role;
// if($rese_role=="Super Admin" || $rese_role=="Admin")
// {
// $reseller=User::find($reseller_id);
// $reseller->balance = 0;
// $reseller->save();
// }
// else
// {
// $reseller=User::find($reseller_id);
// $reseller_balance=$reseller['balance']-$add_balance;
// $reseller->balance = $reseller_balance;
// $reseller->save();
// }
// add new transaction
if ($add_amount!=0) {
// balance transc
$transaction = new Transaction();
$transaction->user_id = $user_id;
$transaction->user_name = $customer['name'];
$transaction->phone = $customer['phone'];
// $transaction->tx_date = $now_date;
$transaction->tx_type = "Balance";
$transaction->amount = $add_balance;
$transaction->save();
// Payment transac
$transaction = new Transaction();
$transaction->user_id = $user_id;
$transaction->user_name = $customer['name'];
$transaction->phone = $customer['phone'];
// $transaction->tx_date = $now_date;
$transaction->tx_type = "Payment";
$transaction->amount = $add_amount;
$transaction->save();
}
else{
// balance transc
$transaction = new Transaction();
$transaction->user_id = $user_id;
$transaction->user_name = $customer['name'];
$transaction->phone = $customer['phone'];
// $transaction->tx_date = $now_date;
$transaction->tx_type = "Balance";
$transaction->amount = $add_balance;
$transaction->save();
}
return response()->json($customer);
}
public function PUBG()
{
return view('pubg');
}
public function getAll()
{
$role=auth()->user()->role;
$parent_id=auth()->user()->id;
$balance_list = Transaction::select("phone", DB::raw("sum(amount) as total_balance"))
->where('tx_type','Balance')
// ->Where('tx_date', 'like', '%' . date('Y-m-d') . '%')
// ->orderBy('tx_date','desc')
// ->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$Payment_list = Transaction::select("phone", DB::raw("sum(amount) as total_payment"))
->where('tx_type','Payment')
->groupBy('phone')
->get();
$bl_list=array();
$transaction_list=array();
for($i=0;$i<count($balance_list);$i++)
{
$c=0;
for ($j=0; $j <count($Payment_list) ; $j++) {
if ($balance_list[$i]['phone']==$Payment_list[$j]['phone']) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,$Payment_list[$j]['total_payment']);
$total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$total_due);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
$c=1;
break;
} else {
continue;
}
}
if ($c==0) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,0); //total payment
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
return view('reports.accounting',['transaction'=> $transaction_list]);
}
// make payment
public function addPayment($phone,$add_amount,$add_method)
{
$now_date= date('d/m/Y h:i:s a', time() + 6*3600);
$customer=User::where('phone',$phone)->get();
$cus_amount_due=$customer[0]['amount_due']-$add_amount;
$cus=User::find($customer[0]['id']);
$cus->amount_due=$cus_amount_due;
$cus->save();
// var_dump($phone);
// User::where('phone',$phone)->update(['amount_due' => $cus_amount_due]);;
// Payment transac
$transaction = new Transaction();
$transaction->user_id = $customer[0]['id'];
$transaction->user_name = $customer[0]['name'];
$transaction->phone = $customer[0]['phone'];
// $transaction->tx_date = $now_date;
$transaction->tx_type = "Payment";
$transaction->amount = $add_amount;
$transaction->save();
return response()->json($customer);
}
// Search with role
public function filterRole($role)
{
$parent_id=auth()->user()->id;
$reseller_role=auth()->user()->role;
if ($reseller_role=="Admin") {
if ($role=="All") {
$userList = User::where('role','!=',"Admin")->get();
}else{
$userList = User::where('role','=',$role)->get();
}
}else{
if ($role=="All") {
$userList = User::where('parent_id','=',$parent_id)->get();
}else{
$userList = User::where('parent_id','=',$parent_id)->where('role','=',$role)->get();
}
}
$user_id=array();
for($i=0;$i<count($userList);$i++)
{
array_push($user_id,$userList[$i]['id']);
}
// var_dump($user_id);
// $user=DB::select("select phone,sum(amount) from transactions where user_id in (select id from users where parent_id='$parent_id')group by phone");
$balance_list = Transaction::select("phone", DB::raw("sum(amount) as total_balance"))
->where('tx_type','Balance')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$Payment_list = Transaction::select("phone",DB::raw("sum(amount) as total_payment"))
->where('tx_type','Payment')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$bl_list=array();
$transaction_list=array();
for($i=0;$i<count($balance_list);$i++)
{
$c=0;
for ($j=0; $j <count($Payment_list) ; $j++) {
if ($balance_list[$i]['phone']==$Payment_list[$j]['phone']) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,$Payment_list[$j]['total_payment']);
$total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$total_due);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
$c=1;
break;
} else {
continue;
}
}
if ($c==0) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,0); //total payment
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
return response()->json($transaction_list);
}
// Filter by payment status
public function paymentStatus($status)
{
$parent_id=auth()->user()->id;
$reseller_role=auth()->user()->role;
if ($reseller_role=="Admin") {
$userList = User::where('role','!=',"Admin")->get();
}else{
$userList = User::where('parent_id','=',$parent_id)->get();
}
$user_id=array();
for($i=0;$i<count($userList);$i++)
{
array_push($user_id,$userList[$i]['id']);
}
// var_dump($user_id);
// $user=DB::select("select phone,sum(amount) from transactions where user_id in (select id from users where parent_id='$parent_id')group by phone");
$balance_list = Transaction::select("phone", DB::raw("sum(amount) as total_balance"))
->where('tx_type','Balance')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$Payment_list = Transaction::select("phone",DB::raw("sum(amount) as total_payment"))
->where('tx_type','Payment')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$bl_list=array();
$transaction_list=array();
// All
if ($status==="All") {
for($i=0;$i<count($balance_list);$i++)
{
$c=0;
for ($j=0; $j <count($Payment_list) ; $j++) {
if ($balance_list[$i]['phone']==$Payment_list[$j]['phone']) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,$Payment_list[$j]['total_payment']);
$total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$total_due);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
$c=1;
break;
} else {
continue;
}
}
if ($c==0) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,0); //total payment
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
}
// Paid
if ($status==="Paid") {
if ($reseller_role=="Admin") {
$Paidusers = User::where('role','!=',"Admin")->where('amount_due','=',0)->get();
}else{
$Paidusers = User::where('parent_id','=',$parent_id)->where('amount_due','=',0)->get();
}
$user_id=array();
for($i=0;$i<count($Paidusers);$i++)
{
array_push($user_id,$Paidusers[$i]['id']);
}
$paid_list = Transaction::select("phone", DB::raw("sum(amount) as total_amount"))
->where('tx_type','Payment')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
for ($pa=0; $pa <count($paid_list) ; $pa++) {
array_push($bl_list,$paid_list[$pa]['phone']);
array_push($bl_list,$paid_list[$pa]['total_amount']); //total transaction balance
array_push($bl_list,$paid_list[$pa]['total_amount']); //total paid amount
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,0); //total due amount
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
// all unpaid
else {
if ($reseller_role=="Admin") {
$dueUsers = User::where('role','!=',"Admin")->where('amount_due','>',0)->get();
}else{
$dueUsers = User::where('parent_id','=',$parent_id)->where('amount_due','>',0)->get();
}
$user_id=array();
for($i=0;$i<count($dueUsers);$i++)
{
array_push($user_id,$dueUsers[$i]['id']);
}
$balance_list = Transaction::select("phone", DB::raw("sum(amount) as total_balance"))
->where('tx_type','Balance')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$Payment_list = Transaction::select("phone",DB::raw("sum(amount) as total_payment"))
->where('tx_type','Payment')
->whereIn('user_id',$user_id)
->groupBy('phone')
->get();
$bl_list=array();
$transaction_list=array();
for($i=0;$i<count($balance_list);$i++)
{
$c=0;
for ($j=0; $j <count($Payment_list) ; $j++) {
if ($balance_list[$i]['phone']==$Payment_list[$j]['phone']) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,$Payment_list[$j]['total_payment']);
$total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$total_due);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
$c=1;
break;
} else {
continue;
}
}
if ($c==0) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,0); //total payment
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
}
return response()->json($transaction_list);
}
public function filterDate($from_date,$to_date)
{
$parent_id=auth()->user()->id;
$reseller_role=auth()->user()->role;
if ($reseller_role=="Admin") {
$userList = User::where('role','!=',"Admin")->get();
}
else{
$userList = User::where('parent_id','=',$parent_id)->get();
}
$user_id=array();
for($i=0;$i<count($userList);$i++)
{
array_push($user_id,$userList[$i]['id']);
}
$from_date=$from_date.'%';
$to_date=$to_date.'%';
// var_dump($user_id);
// $user=DB::select("select phone,sum(amount) from transactions where user_id in (select id from users where parent_id='$parent_id')group by phone");
$balance_list = Transaction::select("phone", DB::raw("sum(amount) as total_balance"))
->where('tx_type','Balance')
->whereIn('user_id',$user_id)
->whereDate('tx_date', '>=', $from_date)
->whereDate('tx_date', '<=', $to_date)
// ->whereBetween(date('tx_date'), [$from_date, $to_date])
->groupBy('phone')
->get();
$Payment_list = Transaction::select("phone",DB::raw("sum(amount) as total_payment"))
->where('tx_type','Payment')
->whereIn('user_id',$user_id)
// ->whereBetween(date('tx_date'), [$from_date, $to_date])
->whereDate('tx_date', '>=', $from_date)
->whereDate('tx_date', '<=', $to_date)
->groupBy('phone')
->get();
$bl_list=array();
$transaction_list=array();
for($i=0;$i<count($balance_list);$i++)
{
$c=0;
for ($j=0; $j <count($Payment_list) ; $j++) {
if ($balance_list[$i]['phone']==$Payment_list[$j]['phone']) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,$Payment_list[$j]['total_payment']);
$total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$total_due);
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
$c=1;
break;
}
else{
continue;
}
}
if ($c==0) {
array_push($bl_list,$balance_list[$i]['phone']);
array_push($bl_list,$balance_list[$i]['total_balance']);
array_push($bl_list,0); //total payment
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($bl_list,$balance_list[$i]['total_balance']); //due amount
array_push($transaction_list,$bl_list);
unset($bl_list);
$bl_list=array();
}
}
// elseif ($j==count($Payment_list)-1) {
$pl_list=array();
for ($k=0; $k <count($Payment_list) ; $k++) {
for ($l=0; $l <count($balance_list) ; $l++) {
// only payment
if (in_array($Payment_list[$k]['phone'],$transaction_list[$k],true)) {
continue;
}
else{
array_push($pl_list,$Payment_list[$k]['phone']);
array_push($pl_list,0);
// array_push($bl_list,0);
array_push($pl_list,$Payment_list[$k]['total_payment']);
// $total_due=$balance_list[$i]['total_balance']-$Payment_list[$j]['total_payment'];
array_push($pl_list,0);
array_push($transaction_list,$pl_list);
unset($pl_list);
$pl_list=array();
$c=1;
break;
}
}
}
// }
return response()->json($transaction_list);
}
public function getAllTransaction()
{
$pid_list = Campaign::select('pid')->where('pid','!=','')->groupBy('pid')->get();
$campaignid_list = Campaign::select('campaignid')->where('campaignid','!=','')->groupBy('campaignid')->get();
$zoneid_list = Campaign::select('zoneid')->where('zoneid','!=','')->groupBy('zoneid')->get();
$transaction_list = Campaign::limit(100)->get();
// var_dump($pid_list[0]);
// return view('users.index',['user'=> $userList]);
return view('reports.transaction',['transaction'=> $transaction_list,'pid_list'=>$pid_list,'campaignid_list'=>$campaignid_list,'zoneid_list'=>$zoneid_list]);
}
public function filterTransaction(Request $request)
{
// $from_date=$req->input('from_date');
// var_dump($req->input('from_date'));
$from_date = $request->input('from_date');
$to_date =$request->input('to_date');
$vmsisdn =$request->input('vmsisdn');
$hook =$request->input('hook');
$pid = $request->input('pid');
$campaign_id =$request->input('campaign_id');
$zone_id =$request->input('zone_id');
$msisdn =$request->input('msisdn');
$message =$request->input('message');
// $vmsisdn_con="=";
// $hook_con="=";
// $pid_con="=";
// $campaign_con="=";
// $zone_con="=";
// if ($hook==="all") {
// $hook="0";
// $hook_con="!=";
// }
// if ($pid==="all") {
// $pid="0";
// $pid_con="!=";
// }
// if ($campaign_id==="all") {
// $campaign_id="0";
// $campaign_con="!=";
// }
// if ($zone_id==="all") {
// $zone_id="0";
// $zone_con="!=";
// }
// if ($vmsisdn=="") {
// $vmsisdn="0";
// $vmsisdn_con="!=";
// }
$query = Campaign::query();
if ($hook!=="all") {
$query->where('hooked',$hook);
}
if ($pid!=="all") {
$query->where('pid',$pid);
}
if ($campaign_id!=="all") {
$query->where('campaignid',$campaign_id);
}
if ($zone_id!=="all") {
$query->where('zoneid',$zone_id);
}
if ($vmsisdn!="") {
$query->where('vmsisdn',$vmsisdn);
}
if ($message !=="all") {
$query->where('message',$message);
}
if ($msisdn =="yes") {
$query->where('vmsisdn','>',0);
}
if ($msisdn =="no") {
$query->whereNull('vmsisdn');
// $query->Where('vmsisdn','Not Like','%0%');
}
// ->where('zoneid',$zone_con,$zone_id)
// ->where('campaignid',$campaign_con,$campaign_id)
// ->where('pid',$pid_con,$pid)
// ->where('vmsisdn',$vmsisdn_con,$vmsisdn)
$transaction_list= $query->whereDate('time', '>=', $from_date)->whereDate('time', '<=', $to_date)->get();
return response()->json($transaction_list);
}
}
|