Report - orders for the last past 14 days

This commit is contained in:
Daniel Camargo 2014-02-22 18:25:08 -03:00
parent 3354fa1163
commit b51c75415a
4 changed files with 61 additions and 0 deletions

View File

@ -12,6 +12,12 @@ class Controller_community extends Crunchbutton_Controller_Account {
c::view()->page = 'community'; c::view()->page = 'community';
// Report with the orders from the last 14 days
if( $slug == 'report' ){
$this->report();
exit;
}
if( $slug ){ if( $slug ){
$permission = "community-communities-{$slug}"; $permission = "community-communities-{$slug}";
@ -128,5 +134,23 @@ class Controller_community extends Crunchbutton_Controller_Account {
return $info; return $info;
} }
public function report(){
$interval = 14;
$communities = Restaurant::getCommunities();
$orders = [];
$days = [];
foreach ( $communities as $community ) {
$orders[ $community ] = Restaurant::getOrdersFromLastDaysByCommunity( $community, $interval );
}
$today = new DateTime( $time, new DateTimeZone( 'America/Los_Angeles' ) );
for( $i = 0; $i <= $interval; $i++ ){
$days[] = $today->format( 'm/d/Y' );
$today->modify( '-1 day' );
}
c::view()->days = $days;
c::view()->orders = $orders;
c::view()->layout('layout/csv');
c::view()->display('community/csv', ['display' => true, 'filter' => false]);
}
} }

View File

@ -1627,6 +1627,13 @@ class Crunchbutton_Restaurant extends Cana_Table_Trackchange {
return Hour::restaurantClosesIn( $this ); return Hour::restaurantClosesIn( $this );
} }
public function getOrdersFromLastDaysByCommunity( $community, $days = 14 ){
$query = "SELECT SUM(1) orders, DATE_FORMAT( o.date, '%m/%d/%Y' ) day FROM `order` o
INNER JOIN restaurant r ON r.id_restaurant = o.id_restaurant AND r.community = '$community'
WHERE o.date > DATE_SUB(CURDATE(), INTERVAL $days DAY) AND o.name NOT LIKE '%test%' GROUP BY day ORDER BY o.date ASC";
return c::db()->get( $query );
}
// Return minutes left to open // Return minutes left to open
public function opensIn( $dt = null ) { public function opensIn( $dt = null ) {
if( $this->open_for_business ){ if( $this->open_for_business ){

View File

@ -0,0 +1,26 @@
<?
$separator = ',';
$headers = [ 'Date' ];
foreach( $this->orders as $communities => $day ){
$headers[] = $communities;
}
echo implode( $separator, $headers ) . "\n";
// print dates
$content = [];
foreach( $this->days as $day ){
ob_start();
echo $day . $separator;
foreach( $this->orders as $communities => $days ){
foreach( $days as $orders ){
if( $orders->day == $day ){
echo $orders->orders;
}
}
echo $separator;
}
$output = ob_get_clean();
$output = preg_replace('/\n|\r|\t/i', '', $output);
echo "$output\n";
}
?>

View File

@ -19,6 +19,10 @@
} }
?> ?>
</select> </select>
<br/><br/><br/>
<a class="btn btn-default" href="/community/report/">
<i class="icon-cloud-download"></i> Report (orders for the past 14 days by community)</a>
</div> </div>
</div> </div>
</div> </div>