Server IP : 213.176.29.180 / Your IP : 3.23.103.14 Web Server : Apache System : Linux 213.176.29.180.hostiran.name 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64 User : webtaragh ( 1001) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/webtaragh/public_html/whmcs/feeds/../modules/reports/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php use WHMCS\Carbon; use WHMCS\Database\Capsule; if (!defined("WHMCS")) { die("This file cannot be accessed directly"); } $dateFilter = Carbon::create( $year, $month, 1 ); /** @var Carbon $today */ $startOfMonth = $dateFilter->startOfMonth()->toDateTimeString(); $endOfMonth = $dateFilter->endOfMonth()->toDateTimeString(); $reportdata["title"] = "Daily Performance for " . $months[(int) $month] . " " . $year; $reportdata["description"] = "This report shows a daily activity summary for a given month."; $reportdata["monthspagination"] = true; $reportdata["tableheadings"] = array( "Date", "Completed Orders", "New Invoices", "Paid Invoices", "Opened Tickets", "Ticket Replies", "Cancellation Requests", ); $reportvalues = array(); $dateFormat = Capsule::raw('date_format(`date`, "%e")'); $reportvalues['orders_active'] = Capsule::table('tblorders') ->where('status', 'Active') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->groupBy($dateFormat) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`date`, "%e") as day'))->all(); $reportvalues['invoices_new'] = Capsule::table('tblinvoices') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->groupBy($dateFormat) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`date`, "%e") as day'))->all(); $reportvalues['invoices_paid'] = Capsule::table('tblinvoices') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->groupBy(Capsule::raw('date_format(`datepaid`, "%e")')) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`datepaid`, "%e") as day'))->all(); $reportvalues['tickets_new'] = Capsule::table('tbltickets') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->groupBy($dateFormat) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`date`, "%e") as day'))->all(); $reportvalues['tickets_staff_replies'] = Capsule::table('tblticketreplies') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->where('admin', '!=', '') ->groupBy($dateFormat) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`date`, "%e") as day'))->all(); $reportvalues['cancellations_new'] = Capsule::table('tblcancelrequests') ->whereBetween( 'date', [ $startOfMonth, $endOfMonth ] ) ->groupBy($dateFormat) ->orderBy('date') ->pluck(Capsule::raw('count(id) as total'), Capsule::raw('date_format(`date`, "%e") as day'))->all(); for ($day = 1; $day <= $dateFilter->endOfMonth()->day; $day++) { $date = Carbon::create($year, $month, $day); $daytext = $date->format('l'); $date = $date->toDateString(); $neworders = isset($reportvalues['orders_active'][$day]) ? $reportvalues['orders_active'][$day] : '0'; $newinvoices = isset($reportvalues['invoices_new'][$day]) ? $reportvalues['invoices_new'][$day] : '0'; $paidinvoices = isset($reportvalues['invoices_paid'][$day]) ? $reportvalues['invoices_paid'][$day] : '0'; $newtickets = isset($reportvalues['tickets_new'][$day]) ? $reportvalues['tickets_new'][$day] : '0'; $ticketreplies = isset($reportvalues['tickets_staff_replies'][$day]) ? $reportvalues['tickets_staff_replies'][$day] : '0'; $cancellations = isset($reportvalues['cancellations_new'][$day]) ? $reportvalues['cancellations_new'][$day] : '0'; $reportdata["tablevalues"][] = array( $daytext.' '.fromMySQLDate($date), $neworders, $newinvoices, $paidinvoices, $newtickets, $ticketreplies, $cancellations, ); $chartdata['rows'][] = array( 'c'=>array( array('v' => fromMySQLDate($date)), array('v' => (int)$neworders), array('v' => (int)$newinvoices), array('v' => (int)$paidinvoices), array('v' => (int)$newtickets), array('v' => (int)$ticketreplies), array('v' => (int)$cancellations) ) ); } $chartdata['cols'][] = array('label'=>'Day','type'=>'string'); $chartdata['cols'][] = array('label'=>'Completed Orders','type'=>'number'); $chartdata['cols'][] = array('label'=>'New Invoices','type'=>'number'); $chartdata['cols'][] = array('label'=>'Paid Invoices','type'=>'number'); $chartdata['cols'][] = array('label'=>'Opened Tickets','type'=>'number'); $chartdata['cols'][] = array('label'=>'Ticket Replies','type'=>'number'); $chartdata['cols'][] = array('label'=>'Cancellation Requests','type'=>'number'); $args = array(); $args['legendpos'] = 'right'; $reportdata["headertext"] = $chart->drawChart('Area',$chartdata,$args,'400px');