"",9=>"îòìåíåí",10=>"âûïîëíåí"); $array_cause = array(1=>"Íåò òîâàðà",2=>"Íåò îïëàòû",3=>"Ïåðåäóìàë",4=>"Êóïèë â äðóãîì ìåñòå",5=>"Ïîäüåäåò â ìàã.",6=>"Äóáëü çàêàçà.",7=>"Äðóãîå"); function get_day($datestamp, $num_week, $num_day){ $year = date("Y", $datestamp); $month = date("m", $datestamp); $day = date("d", $datestamp); $days = array("sunday","monday","wednesday","thursday","friday","saturday"); $weeks = array("first","second","third","fourth","fifth"); $date = date("d-m-Y",strtotime($weeks[$num_week-1]." ".$days[$num_day], mktime(0,0,0,$month,0,$year))); return $date; } $arr = array(); if(isset($_POST['y'],$_POST['m'],$_POST['w'])){ if($_POST['y']>0 && $_POST['m']==0 && $_POST['w']==0){ $date[0] = mktime(0, 0, 0, 1, 1, $_POST['y']); $date[1] = mktime(0, 0, 0, 1, 1, $_POST['y2']); $date['days'] = floor(($date[1] - $date[0]) / (3600 * 24) / 30); for($i=0;$i<$date['days'];$i++){ //echo date("d-m-Y",strtotime('+'.$i.' month', $date[0])) . "
"; $arr[] = array('date_start' => date("d-m-Y",strtotime('+'.$i.' month', $date[0])), 'date_end' => date("d-m-Y",strtotime('+'. $i+1 .' month', $date[0]))); } } if($_POST['y']>0 && $_POST['m']>0 && $_POST['w']==0){ $date[0] = mktime(0, 0, 0, $_POST['m'], 1, $_POST['y']); $date[1] = mktime(0, 0, 0, $_POST['m2'], 1, $_POST['y2']); $date['days'] = floor(($date[1] - $date[0]) / (3600 * 24) / 30); if($_POST['m2']>2)$date['days']++; for($i=0;$i<$date['days'];$i++){ $arr[] = array('date_start' => date("d-m-Y",strtotime('+'.$i.' month', $date[0])), 'date_end' => date("d-m-Y",strtotime('+'. $i+1 .' month', $date[0]))); } } if($_POST['y']>0 && $_POST['m']>0 && $_POST['w']>0){ $date_start = get_day(mktime(0, 0, 0, $_POST['m'], date("d"), $_POST['y']),$_POST['w'],1); $date_end = get_day(mktime(0, 0, 0, $_POST['m2'], date("d"), $_POST['y2']),$_POST['w2'],1); $date[0] = strtotime($date_start); $date[1] = strtotime($date_end); $date['days'] = floor(($date[1] - $date[0]) / (3600 * 24) / 7); for($i=0;$i<$date['days'];$i++){ $arr[] = array('date_start' => date("d-m-Y",strtotime('+'.$i.' week', $date[0])), 'date_end' => date("d-m-Y",strtotime('+'. $i+1 .' week', $date[0]))); } } //print_r($arr); if(isset($arr) && count($arr)>0){ foreach($arr as $key=>$row){ $m = explode('-',$row['date_start']); $mktime_start = mktime(0, 0, 0, $m[1], $m[0], $m[2]); $m = explode('-',$row['date_end']); $mktime_end = mktime(0, 0, 0, $m[1], $m[0], $m[2]); $arr[$key]['rubrics'] = (!isset($_POST['rubrics'])) ? array(array('id'=>0,'name'=>"Íåò ðóáðèêè")) : $objCatalogs->db->getAll("select id,name from catalogs_rubrics where id in (".implode(',',$_POST['rubrics']).")",array(),DB_FETCHMODE_ASSOC); foreach($arr[$key]['rubrics'] as $keyr=>$rowr){ $sum = array();$count = array(); foreach($array_label as $keyl=>$label){ $row_l = $objCatalogs->db->getRow("SELECT o.label, COUNT( o.id ) AS count, SUM( o.total ) AS sum FROM catalogs_orders o LEFT JOIN catalogs_orders_products op ON op.order_id = o.id LEFT JOIN catalogs_modifications m ON m.id = op.product_id LEFT JOIN catalogs_products p ON p.id = m.product_id where ".(($rowr['id']>0) ? "p.rubric_id='".$rowr['id']."' and" : '')." o.label='".$keyl."' and (o.mktime>='".$mktime_start."' and o.mktime<='".$mktime_end."') GROUP BY o.label",array(),DB_FETCHMODE_ASSOC); $sum[] = $row_l['sum']; $count[] = $row_l['count']; $arr[$key]['rubrics'][$keyr]['metka'][] = array('label' => $keyl,'count'=>$row_l['count'],'sum'=>$row_l['sum']); } foreach($array_cause as $keyc=>$cause){ $row_c = $objCatalogs->db->getRow("SELECT o.cause, COUNT( o.id ) AS count, SUM( o.total ) AS sum FROM catalogs_orders o LEFT JOIN catalogs_orders_products op ON op.order_id = o.id LEFT JOIN catalogs_modifications m ON m.id = op.product_id LEFT JOIN catalogs_products p ON p.id = m.product_id where p.rubric_id='".$rowr['id']."' and o.cause='".$keyc."' and (o.mktime>='".$mktime_start."' and o.mktime<='".$mktime_end."') GROUP BY o.cause",array(),DB_FETCHMODE_ASSOC); $arr[$key]['rubrics'][$keyr]['otmena'][] = array('cause' => $cause,'count'=>$row_c['count'],'sum'=>$row_c['sum']); } $arr[$key]['rubrics'][$keyr]['sum'] = array_sum($sum); $arr[$key]['rubrics'][$keyr]['count'] = array_sum($count); /* $arr[$key]['rubrics'][$keyr]['metka'] = $objCatalogs->db->getAll("select o.label,count(o.id) as count,sum(o.total) as sum from catalogs_orders o left join catalogs_orders_products op on op.order_id=o.id left join catalogs_products p on p.id=op.product_id and p.rubric_id=? where o.mktime>='".$mktime_start."' and o.mktime<='".$mktime_end."' GROUP BY o.label",array($rowr['id']),DB_FETCHMODE_ASSOC);*/ } } } /* print"
";
print_r($arr);
print"
";*/ $objCatalogs->tpl->assign('orders',$arr); } //print_r($arr); $year = range(2008,date("Y")); $objCatalogs->tpl->assign('year_ot',$year); $year = range(2008,date("Y")+1); $objCatalogs->tpl->assign('year_do',$year); $week = range(1,4); $objCatalogs->tpl->assign('week_ot',$week); $week = range(1,5); $objCatalogs->tpl->assign('week_do',$week); $objCatalogs->viewRubricsAll(); $objCatalogs->tpl->assign('tpl',"stat2.tpl"); ?>