// ==============
// === report ===
// ==============
include_once($_SERVER['DOCUMENT_ROOT']."/account/func/func.php");
include_once($_SERVER['DOCUMENT_ROOT']."/account/func/func.eMailing.php");
class Report {
var $mass_client='';
var $mass_order='';
var $mass_order_grafic='';
var $time='';
function put_time($time) {
$this->time = $time;
}
function make() {
$kk=0;
foreach ($this->time as $Time) {
// Äåíü
$sql0 = "SELECT s.title, s.id, sum(o.total) as Total, count(o.total) as quant
FROM catalogs_orders as o
RIGHT JOIN zlo_order_status as s ON s.id=o.`status` AND $Time
WHERE s.id IN (1,2,4,5)
GROUP BY s.id
ORDER BY s.id ASC";
$result0 = mysql_query($sql0) or die(mysql_error());
if (mysql_affected_rows()!=0) {
while ($report=mysql_fetch_assoc($result0)) {
if($kk==0) {
$this->mass_order[$report['id']]['title'][]=$report['title'];
$this->mass_client[$report['id']]['title'][]=$report['title'];
}
if ($report['Total']==0) {
$this->mass_order[$report['id']]['total'][]=freandlyDigits($report['Total']);
} else {
$this->mass_order[$report['id']]['total'][]="(".$report['quant'].")".freandlyDigits($report['Total'])."";
}
$sql00="SELECT o.*, u.*
FROM catalogs_orders as o
LEFT JOIN zlo_users as u ON u.id=o.`user_id`
WHERE o.`status`='".$report['id']."'
AND $Time
ORDER BY total DESC
LIMIT 1";
$result00 = mysql_query($sql00) or die(mysql_error());
if (mysql_affected_rows()!=0) {
$client=mysql_fetch_assoc($result00);
list($client['name'])=explode(" ", $client['name']);
$this->mass_client[$report['id']]['total'][]="".$client['name']."";
} else {
$this->mass_client[$report['id']]['total'][]='';
}
}
$kk=1;
}
}
}
function html_report($mass) {
$i=1;
$html="
| Ñòàòóñ | Äåíü | Íåäåëÿ | Ìåñÿö |
";
foreach($mass as $ids) { $i++;
if($i==2) { $class='style="background:#D8E9FB;"'; } else { $class='';}
$html.="";
if($i==2) { $i=0;}
foreach($ids as $id) {
foreach($id as $c=>$values) {
if($values==NULL) {$values = '0';}
$html.="| ".$values." | ";
}
}
$html.="
";
}
$html.="
";
return $html;
}
function get_mass_order() {
return $this->mass_order;
}
function get_mass_client() {
return $this->mass_client;
}
function get_mass_order_grafic() {
return $this->mass_order_grafic;
}
function needUpdate() {
// ïðîâåðÿåì èëè îòñûëàëñÿ îò÷åò
$sql = "SELECT * FROM zlo_report_history WHERE `date`='".date('Y-m-d')."' ";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()==0) {
return 1;
} else {
return 0;
}
}
function email() {
// Åñëè åñòü ôàéë îòñûëàåì
if(is_file($_SERVER['DOCUMENT_ROOT'].'/xml/'.date('Y').'/'.date('m').'/grafic_report_'.date('Y-m').'-'.(date('d')-1).'.png')) {
$this->mass_client='';
$this->mass_order='';
$time='';
$time['day'] = "( o.`mktime` BETWEEN ".mktime(0, 0, 0, date('n'), date('j')-1, date('Y'))." AND ".mktime(0, 0, 0, date('n'), date('j'), date('Y')).") ";
$time['week'] = "( o.`mktime` BETWEEN ".strtotime("last Monday")." AND ".mktime(0, 0, 0, date('n'), date('j')-1, date('Y')).") ";
$time['month'] = "( o.`mktime` BETWEEN ".mktime(0, 0, 0, date('n'), 1, date('Y'))." AND ".mktime(0, 0, 0, date('n'), date('j')-1, date('Y')).") ";
Report::put_time($time);
Report::make();
$subject='Îò÷åò ïî extremstyle.ua çà '.(date('d')-1).'/'.date('m/Y');
$mail="";
// === êëèåíòû ===
$mail.="
";
$mail.="ÒÎÏ êëèåíòîâ çà ïåðèîä: ";
$mail.= Report::html_report(Report::get_mass_client());
$mail.="
";
$mail.="
";
// === ïðîäàæè ===
$mail.="
";
$mail.="Ïðîäàæè çà ïåðèîä: ";
$mail.= Report::html_report(Report::get_mass_order());
$mail.="
";
$mail.="
";
// === ãðàôèê ===
$mail.="
";
$mail.="
Ãðàôèê: ";
$mail.="

";
// ëåãåíäà
$mail.="
";
$mail.="
íîâûé";
$mail.="
ïîäòâåðæäåí";
$mail.="
îòìåíåí";
$mail.="
âûïîëíåí";
$mail.="
";
$mail.="
";
$mail.="
";
$mail.="
";
// Ðàññûëêà óâåäîìëåíèé àäìèíàì
$sql = "SELECT * FROM zlo_report_users WHERE email!='' ";
$result = mysql_query($sql) or die(mysql_error());
while ($admin=mysql_fetch_assoc($result)) {
sendMail ($admin['email'], $admin['username'], 'registration@extremstyle.ua', 'extremstyle.ua', $subject, $mail);
}
// Åñëè åñòü ôàéë çàïèñóåì çàäàíèå êàê ÑÄÅËÀÍÎÅ â áàçó
$sql = "INSERT INTO zlo_report_history (`date`) values ('".date('Y-m-d')."') ";
$result = mysql_query($sql) or die(mysql_error());
}
}
function build_grafic(){
$this->mass_order_grafic='';
for($i=1; $i<=date('d'); $i++){
// íà êîæäûé äåíü
$Time="o.`mktime` BETWEEN ".mktime(0, 0, 0, date('n'), $i, date('Y'))." AND ".mktime(0, 0, 0, date('n'), $i+1, date('Y'))." ";
$sql0 = "SELECT s.title, s.id, sum(o.total) as Total, count(o.total) as quant
FROM catalogs_orders as o
RIGHT JOIN zlo_order_status as s ON s.id=o.`status` AND $Time
WHERE s.id IN (1,2,4,5)
GROUP BY s.id
ORDER BY s.id ASC";
$result0 = mysql_query($sql0) or die(mysql_error());
if (mysql_affected_rows()!=0) {
while ($report=mysql_fetch_assoc($result0)) {
$this->mass_order_grafic[$report['title']][]=$report['quant'];
}
}
}
?>
}
}
?>