| Server IP : 139.59.63.204 / Your IP : 216.73.217.62 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Invoice;
use App\Models\Product;
use App\Models\LineItem;
use App\Models\InvoiceTemplate;
use Illuminate\Support\Arr;
use Auth;
use Mail;
use App\Mail\DailyActivitesMail;
use Carbon\Carbon;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
$cust_ids = Arr::flatten(Auth::user()->customer->toArray());
$now = Carbon::now()->toDateString();
$yesterday = Carbon::yesterday()->toDateString();
//graph
$start = Carbon::now()->startOfMonth()->subMonthsNoOverflow()->toDateString();
$end = Carbon::now()->subMonthsNoOverflow()->endOfMonth()->toDateString();
$user_id = auth()->user()->id;
$graphPrices = LineItem::where('posted_by', $user_id)->select(
\DB::raw('sum(price) as sums'),
\DB::raw('DATE_FORMAT(created_at,"%d") as day')
)
->whereDate('created_at','>=', $start)->whereDate('created_at','<=', $end)
->groupBy('day')
->orderBy('created_at', 'ASC')
->get();//->keyBy('day')
$arr = array([0,0]);
foreach($graphPrices as $g)
{
$newarr = array_map('intval', [$g->day,$g->sums]);
$arr[]= $newarr;
}
//total products
$total_products = Product::where(['status'=>1,'posted_by'=> $user_id])->count('*');
$low_products = Product::where(['status'=>1,'posted_by'=> $user_id])->where('qty','>=',0)->where('qty','<=',5)->count('*');
//\DB::enableQueryLog();
$today_sales = LineItem::where('posted_by', $user_id)->select(
\DB::raw('sum(price) as sums')
)->whereDate('created_at','=', $now)
->first();
$yesterday_sales = LineItem::where('posted_by', $user_id)->select(
\DB::raw('sum(price) as sums')
)->whereDate('created_at','=', $yesterday)
->first();
$yesterday_invoices = Invoice::whereIn('customer_id',$cust_ids)->where('type',1)->whereDate('created_at','=', $yesterday)->count('*');
$cust_ids = Arr::flatten(Auth::user()->customer->toArray());
$invoices = Invoice::whereIn('customer_id',$cust_ids)->orderBy('created_at', 'DESC')
//latest('created_at')
->take(5)->get();
return view('dashboard',compact('invoices','arr','total_products','low_products','yesterday_sales','today_sales','yesterday_invoices'));
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function profile()
{
$id = auth()->user()->id;
$user = User::findOrFail($id);
// $invoice_templates = InvoiceTemplate::get(['img','name']);
return view('admin.profile',compact('user'));
}
public function setting()
{
$id = auth()->user()->id;
$user = User::findOrFail($id);
$invoice_templates = InvoiceTemplate::get(['img','name']);
return view('admin.settings',compact('user','invoice_templates'));
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function updateProfile(Request $request ,$id)
{
$this->validate($request,[
'name' => 'required_if:mode,profile|string|max:255',
'email' => 'required_if:mode,profile|string|email|max:255|unique:users,email,'.$id,
'phone' => 'digits:10',
'gst' => 'numeric|required_if:mode,setting',
'business' => 'required|string|max:255',
'logo' => 'image',
// 'industry_type'=>'required',
'address' => 'string|max:255',
'city' => 'string',
'state' => 'string',
'country' => 'string',
'pin' => 'digits:6',
'invoice_template'=>'string|required_if:mode,setting',
]);
$id = trim($id);
$user = User::findOrFail($id);
//image upload
if($request->has('logo'))
{
$image = $request->file('logo');
$img_name = strtolower(str_replace(" ","_" ,$request->name)).time();
$ext = $image->getClientOriginalExtension();
$logo = $img_name.".".$ext;
$path = 'public/uploads/logo';
$image->move($path,$logo);
$user->logo = $path.'/'.$logo;
}
if($request->mode == 'profile')
{
$user->name = $request->name;
$user->email = $request->email;
$user->phone = $request->phone;
$user->address = $request->address;
$user->city = $request->city;
$user->state = $request->state;
$user->country = $request->country;
$user->pin = $request->pin;
$user->business = $request->business;
}
else if($request->mode == 'setting')
{
$user->gst_percent = $request->gst;
// $user->industry_type=$request->industry_type;
$user->invoice_template = $request->invoice_template;
}
if($user->save())
{
return redirect()->back()->with('success','Profile Updated Successfully!!');
}
return redirect()->back()->with('fail','Fail!! To Update Profile');
}
public function sendDailyActivites()
{
$now = Carbon::now()->toDateString();
$cust_ids = Arr::flatten(Auth::user()->customer->toArray());
$user_id = auth()->user()->id;
$today_sales = LineItem::where('posted_by', $user_id)->select(
\DB::raw('sum(price) as sums')
)->whereDate('created_at','=', $now)
->first();
$today_invoices = Invoice::whereIn('customer_id',$cust_ids)->where('type',1)->whereDate('created_at','=', $now)->count('*');
$data["email"] = auth()->user()->email;
$data["title"] = "Today's activity details from EFB Billing";
$data["today_sales"] = !is_null($today_sales->sums)?$today_sales->sums:0;
$data["today_invoices"] = $today_invoices;
Mail::to( $data["email"])->send(new DailyActivitesMail($data));
}
}