public static function getAppStats($arrStats, $beginDate, $endDate) { //customer acquisition per day // $ll = new LL_Account(); // $arrw = $ll->getWhere("(macc_acquire_date BETWEEN '$beginDate' AND '$endDate')","macc_acquire_date"); // pr($arrw); // echo count($arrw); $data = array(); //for begin date sampai end date day by day $start = strtotime($beginDate); $finish = strtotime($endDate); while ($start < $finish) { $label = date("d", $start); $start = strtotime('+1 day', $start); $xLabels[] = $label; foreach ($arrStats as $ll => $arrw) { $data[$ll][$label] = 0; $data["Transactions Value"][$label] = 0; } } // pr($xLabels); //manage data $arrData2 = array(); $colors = array("#00c0ef", "#00a65a", "#f39c12", "#dd4b39"); // pr($arrStats); foreach ($arrStats as $ll => $arrw) { foreach ($arrw as $w) { if ($ll == "Transactions Nr.") { $curdate = date("d", strtotime($w->TransactionDateTime)); $data[$ll][$curdate]++; $data["Transactions Value"][$curdate] += $w->Cash_Value / 1000; } } // pr($data); $arr = array_values($data[$ll]); // pr($arr); $c = new Charting(); $c->label = "Nr"; $c->data = $arr; $c->color = array_pop($colors); $arrData2[] = $c; $arr = array_values($data["Transactions Value"]); // pr($arr); $c = new Charting(); $c->label = "Value"; $c->data = $arr; $c->color = array_pop($colors); $arrData2[] = $c; } Charting::chartJSLine("300px", $xLabels, $arrData2, "false", 1, 0, "User Statistic", "info", 1); // pr($data); return $data; }
public static function getAcquire($beginDate, $endDate) { //customer acquisition per day $ll = new LL_Account(); $arrw = $ll->getWhere("(macc_acquire_date BETWEEN '{$beginDate}' AND '{$endDate}')", "macc_acquire_date"); // pr($arrw); // echo count($arrw); $data = array(); //for begin date sampai end date day by day $start = strtotime($beginDate); $finish = strtotime($endDate); while ($start <= $finish) { $label = date("d", $start); $start = strtotime('+1 day', $start); $xLabels[] = $label; $data[$label] = 0; } // pr($xLabels); //manage data foreach ($arrw as $w) { $curdate = date("d", strtotime($w->macc_acquire_date)); $data[$curdate]++; } // pr($data); $arr = array_values($data); // pr($arr); $c = new Charting(); $c->label = "User Acquisition"; $c->data = $arr; $c->color = "#AAAAAA"; $arrData2[] = $c; Charting::chartJSLine("300px", $xLabels, $arrData2, "false", 0, 0, "User Acquisition", "info", 0); return $arrw; }
function demographic() { $bulan = addslashes($_GET['m']); if ($bulan == "") { $bulan = date("F Y"); $days_ago = date('Y-m-01'); // hard-coded '01' for first day $days_now = date('Y-m-t'); } else { $bulan = urldecode($bulan); $days_ago = date('Y-m-01', strtotime($bulan)); // hard-coded '01' for first day $days_now = date('Y-m-t', strtotime($bulan)); } $numberDays = cal_days_in_month(CAL_GREGORIAN, date('n', strtotime($bulan)), date('Y', strtotime($bulan))); $days_ago = date('Y-m-01', strtotime($bulan)); // hard-coded '01' for first day $days_now = date('Y-m-01', strtotime('+1 month', strtotime($bulan))); $t = time(); //male female $ll = new LL_Account(); global $db; $query3 = "Select (Select count(*) from {$ll->table_name} where macc_gender='Male' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}')) AS Male,\n(Select count(*) from {$ll->table_name} where macc_gender='Female' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}')) AS Female "; $gender = $db->query($query3, 1); // pr($gender); // macc_lyb_status $query4 = "Select (Select count(*) from {$ll->table_name} where macc_lyb_status='LYB Club' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}')) AS Club,\n(Select count(*) from {$ll->table_name} where macc_lyb_status='The Body Shop Friend' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}')) AS Stampcard,\n(Select count(*) from {$ll->table_name} where macc_lyb_status='LYB Fan' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}')) AS Fan "; $lyb = $db->query($query4, 1); // pr($lyb); //macc_address_city // $query5="SELECT DISTINCT macc_address_city FROM {$ll->table_name} "; // // $cities = $db->query($query5,2); //// pr($cities); // // foreach($cities as $number=>$city){ // if($city->macc_address_city!="") { // $city->macc_address_city = str_replace(".","",$city->macc_address_city); // $city->macc_address_city = str_replace(",","",$city->macc_address_city); // $text[] = "(Select count(*) as count from {$ll->table_name} where macc_address_city='{$city->macc_address_city}' AND (macc_acquire_date BETWEEN '$days_ago' AND '$days_now')) AS " . str_replace("/", "", str_replace(" ", "", str_replace("-", "", $city->macc_address_city))); // } //// if($number>10)break; // } //// pr($text); // $imp = "Select ". implode(",",$text)." ORDER BY count DESC"; global $db; $q = "SELECT macc_address_city,COUNT(*) as count FROM {$ll->table_name} GROUP BY macc_address_city ORDER BY count DESC LIMIT 0,20"; $arrSl = $db->query($q, 2); // pr($arrSl); // echo $imp; // $nrcities = $db->query($imp,2); // pr($nrcities); ?> <div class="row"> <div class="col-md-12"> <h1> Demographic Dashboard <small><?php echo $bulan; ?> </small> </h1> <ol class="breadcrumb"> <li> <?php echo Lang::t('Select Timeframe'); ?> </li> <li class="active"> <?php $start = new DateTime('11 months ago'); // So you don't skip February if today is day the 29th, 30th, or 31st $start->modify('first day of this month'); $end = new DateTime(); $interval = new DateInterval('P1M'); $period = new DatePeriod($start, $interval, $end); ?> <select id="apptimeselector_<?php echo $t; ?> "> <?php foreach ($period as $dt) { ?> <option value="<?php echo urlencode($dt->format('F Y')); ?> " <?php if ($dt->format('F Y') == $bulan) { echo "selected"; } ?> > <?php echo $dt->format('F Y') . "<br>"; ?> </option> <?php } ?> </select> <script> $("#apptimeselector_<?php echo $t; ?> ").change(function(){ var slc = $("#apptimeselector_<?php echo $t; ?> ").val(); openLw("Demographic","<?php echo _SPPATH; ?> BIWebDemographic/demographic?m="+slc,"fade"); }); </script> </li> </ol> </div> </div> <?php $arrUserswPic = $ll->getWhere("macc_foto != '' AND (macc_acquire_date BETWEEN '{$days_ago}' AND '{$days_now}') ORDER BY macc_acquire_date DESC LIMIT 0,8"); $arrUsers = $ll->getOrderBy(" macc_acquire_date DESC LIMIT 0,8"); ?> <div class="row"> <!--<div class="col-md-6"> <div class="box box-danger"> <div class="box-header with-border"> <h3 class="box-title">Latest Members</h3> <div class="box-tools pull-right"> <span class="label label-danger">8 New Members</span> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i> </button> <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i> </button> </div> </div> <div class="box-body no-padding"> <ul class="users-list clearfix"> <?php foreach ($arrUsers as $user) { if ($user->macc_foto == "") { $url = _SPPATH . "images/noimage.jpg"; } else { $url = "http://43.231.128.129/" . $user->macc_foto; } ?> <li> <img src="<?php echo $url; ?> " alt="<?php echo $user->macc_first_name . " " . $user->macc_last_name; ?> "> <a class="users-list-name" href="#"><?php echo $user->macc_first_name . " " . $user->macc_last_name; ?> </a> <span class="users-list-date"><?php echo ago(strtotime($user->macc_acquire_date)); ?> </span> </li> <?php } ?> </ul> </div> <div class="box-footer text-center"> <a href="javascript::" class="uppercase">View All Users</a> </div> </div> </div> --> <div class="col-md-6"> <!-- USERS LIST --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">Latest Customers</h3> <!--<div class="box-tools pull-right"> <span class="label label-danger">8 New Members</span> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i> </button> <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i> </button> </div>--> </div> <!-- /.box-header --> <div class="box-body no-padding"> <ul class="users-list clearfix"> <?php foreach ($arrUserswPic as $user) { ?> <li style="height: 160px;"> <img src="<?php echo _LOKASI; echo $user->macc_foto; ?> " alt="User Image"> <span class="users-list-name" ><?php echo $user->macc_first_name . " " . $user->macc_last_name; ?> </span> <span class="users-list-date"><?php echo ago(strtotime($user->macc_acquire_date)); ?> </span> </li> <?php } ?> </ul> <!-- /.users-list --> </div> <!-- /.box-body --> <div class="box-footer text-center"> <a href="javascript:openLw('LL_Account', '<?php echo _SPPATH; ?> LLAccWeb/LL_Account', 'fade'); activkanMenuKiri('LL_Account');" class="uppercase">View All Customers</a> </div> <!-- /.box-footer --> </div> <!--/.box --> </div> <?php $arrColor = array("#00a65a", "#00c0ef"); $c = new Charting(); $c->color = array_pop($arrColor); $c->label = "Male"; $c->value = $gender->Male; $arrData[] = $c; $c = new Charting(); $c->color = array_pop($arrColor); $c->label = "Female"; $c->value = $gender->Female; $arrData[] = $c; ?> <div class="col-md-3"><?php Charting::morrisDonut("287px", $arrData, 1, "Gender", "default"); ?> </div> <?php $arrColor = array("#4da65a", "#7bcd03", "#53ddde"); $arrData = array(); $c = new Charting(); // $c->color = array_pop($arrColor); $c->color = "#e90057"; $c->label = "Fan"; $c->value = $lyb->Fan; $arrData[] = $c; $c = new Charting(); // $c->color = array_pop($arrColor); $c->color = "#cd6949"; $c->label = "Club"; $c->value = $lyb->Club; $arrData[] = $c; $c = new Charting(); // $c->color = array_pop($arrColor); $c->color = "#f4bb1b"; $c->label = "Stampcard"; $c->value = $lyb->Stampcard; $arrData[] = $c; ?> <div class="col-md-3"><?php Charting::morrisDonut("287px", $arrData, 1, "Member Type", "default"); ?> </div> <?php $arrData = array(); $arrlegend = array(); foreach ($arrSl as $attr => $value) { if ($value->macc_address_city == "") { $value->macc_address_city = "Unknown"; } $c = new Charting(); $c->color = "#" . $this->random_color(); $c->label = str_replace(" ", "_", $value->macc_address_city); $c->value = $value->count; $arrData[] = $c; // $arrlegend[$attr] = $value; } // asort($arrlegend); //pr($arrlegend); // $arrlegend = array_reverse($arrlegend,1); // $arrData = array(); // foreach($arrSl as $attr=>$value){ // $c = new Charting(); // $c->color = "#".$this->random_color(); // // $c->label = str_replace(" ","_",$value->macc_address_city); // $c->value = $value->count; // //// $c->label = ucwords(strtolower(str_replace("_"," ",$attr))); //// $c->value = $value; // $arrData[] = $c; // $arrColors[$attr] = $c->color; //// $arrlegend[$attr] = $value; // } ?> </div> <div class="row"> <div class="col-md-12"> <div class="box box-default"> <div class="box-header with-border"> <h3 class="box-title">Locations</h3> <div class="box-tools pull-right"> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i> </button> <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> </div> </div> <div class="box-body chart-responsive"> <div class="col-md-6"> <?php Charting::morrisDonut("300px", $arrData, 0, "Locations", "default", 0); ?> </div> <div class="col-md-6"> <?php ?> <ul class="nav nav-pills nav-stacked"> <?php foreach ($arrSl as $attr => $value) { if ($value->macc_address_city == "") { $value->macc_address_city = "Unknown"; } ?> <li style="line-height: 30px;"> <div style="margin-top:5px; float: left; width: 20px; height: 20px; background-color: <?php echo $arrColors[$attr]; ?> ;"></div> <?php echo ucwords(str_replace("_", " ", strtolower($value->macc_address_city))); ?> <span class="pull-right "> <?php echo $value->count; ?> </span></li> <?php } ?> </ul> </div> </div> <!-- /.box-body --> </div> </div> </div> <style> ul.legend li{ list-style: none; line-height: 30px; } ul.legend li div{ float: left; margin-top: 10px; margin-right: 15px; } .legend-item{ float: left; margin: 10px; line-height: 30px; margin-right: 5px; } .legend-item div{ float: left; margin-top: 10px; margin-right: 5px; } .breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; } .breadcrumb { float: right; background: transparent; margin-top: 0; margin-bottom: 0; font-size: 12px; padding: 7px 5px; position: absolute; top: 15px; right: 10px; border-radius: 2px; } .users-list-name{ white-space: nowrap; } </style> <?php }
public static function getAppStats($arrStats, $beginDate, $endDate) { //customer acquisition per day // $ll = new LL_Account(); // $arrw = $ll->getWhere("(macc_acquire_date BETWEEN '$beginDate' AND '$endDate')","macc_acquire_date"); // pr($arrw); // echo count($arrw); $data = array(); //for begin date sampai end date day by day $start = strtotime($beginDate); $finish = strtotime($endDate); while ($start < $finish) { $label = date("d", $start); $start = strtotime('+1 day', $start); $xLabels[] = $label; foreach ($arrStats as $ll => $arrw) { $data[$ll][$label] = 0; } } // pr($xLabels); //manage data $arrData2 = array(); $colors = array_reverse(array("#CCCCCC", "#00a65a", "#f39c12", "#dd4b39")); // pr($arrStats); foreach ($arrStats as $ll => $arrw) { foreach ($arrw as $w) { if ($ll == "Orders") { $curdate = date("d", strtotime($w->detail_date)); $data[$ll][$curdate] += $w->detail_price_total; } if ($ll == "Active Users") { $curdate = date("d", strtotime($w->log_date)); $data[$ll][$curdate]++; } if ($ll == "New Devices") { $curdate = date("d", strtotime($w->firstlogin)); $data[$ll][$curdate]++; } if ($ll == "Active Devices") { $curdate = date("d", strtotime($w->log_date)); $data[$ll][$curdate]++; } } // pr($data); $arr = array_values($data[$ll]); // pr($arr); $c = new Charting(); $c->label = $ll; $c->data = $arr; $c->color = array_pop($colors); $arrData2[] = $c; } // Charting::chartJSLine("300px",$xLabels,$arrData2,"false",1,1); Charting::chartJSLine("300px", $xLabels, $arrData2, "true", 0, 0, "User Statistic", "info", 1); // pr($data); return $data; }
function campaign() { $c = new Charting(); $c->color = "#dceade"; $c->label = "enak"; $c->value = 15; $arrData[] = $c; $c = new Charting(); $c->color = "#ff0011"; $c->label = "ga enak"; $c->value = 35; $arrData[] = $c; $c = new Charting(); $c->color = "#6688aa"; $c->label = "biasa"; $c->value = 75; $arrData[] = $c; ?> <div class="col-md-6"><?php Charting::morrisDonut("300px", $arrData, 1, "Ini morris", "default"); ?> </div> <div class="col-md-6"><?php Charting::chartJSPie("300px", $arrData, 50, 1, 1, "Bagan keren"); ?> </div><?php //for line and area $xLabels = array("Jan", "Feb", "Mar", "April", "May"); $c = new Charting(); $c->label = "Shoes"; $c->data = array(10, 15, 30, 12, 21); $c->color = "rgba(255,132,123,0.8)"; $c->strokeColor = "red"; $c->fillColor = "pink"; $c->pointColor = "orange"; $c->pointHighlightStroke = "blue"; $c->pointStrokeColor = "black"; $arrData2[] = $c; $c = new Charting(); $c->label = "Apparel"; $c->data = array(13, 25, 10, 12, 23); $c->color = "rgba(255,243,123,0.8)"; $c->strokeColor = "green"; $arrData2[] = $c; $c = new Charting(); $c->label = "Books"; $c->data = array(11, 15, 16, 13, 33); $c->color = "rgba(145,255,255,0.8)"; $arrData2[] = $c; ?> <div class="col-md-6"><?php Charting::chartJSLine("300px", $xLabels, $arrData2, "false", 1, 1, "data kedua", "info"); ?> </div> <style> ul.legend li{ list-style: none; line-height: 30px; } ul.legend li div{ float: left; margin-top: 10px; margin-right: 15px; } .legend-item{ float: left; margin: 10px; line-height: 30px; margin-right: 20px; } .legend-item div{ float: left; margin-top: 10px; margin-right: 5px; } </style> <div class="col-md-6"> <?php Charting::chartJSBar("300px", $xLabels, $arrData2, "false", 1, 1, "data terakhir", "danger"); ?> </div><?php }
public static function getAppStats($arrStats, $beginDate, $endDate) { //customer acquisition per day // pr($arrStats); $data = array(); //for begin date sampai end date day by day $start = strtotime($beginDate); $finish = strtotime($endDate); while ($start < $finish) { $label = date("d", $start); $start = strtotime('+1 day', $start); $xLabels[] = $label; foreach ($arrStats as $ll => $arrw) { $data[$ll][$label] = 0; $data["Transactions Value"][$label] = 0; } } //manage data $arrData2 = array(); $colors = array("#00c0ef", "#00a65a", "#f39c12", "#dd4b39"); foreach ($arrStats as $ll => $arrw) { $curdate = date("d", strtotime($arrw->date)); $data["Transactions Value"][$curdate] = $arrw->total_sales / 1000; $arr = array_values($data["Transactions Value"]); } $c = new Charting(); $c->label = "Value"; $c->data = $arr; $c->color = array_pop($colors); $arrData2[] = $c; Charting::chartJSLine("300px", $xLabels, $arrData2, "false", 1, 0, "User Statistic", "info", 1); // pr($data); return $data; }