} $weekend = $lastday; $weekstart = date("Y-m-d", strtotime($lastday . " - 6 days")); $curbiweek = __getCurBiweek(); $curbiweekse = explode(",", $curbiweek); $biweekstart = $curbiweekse[0]; $biweekend = $curbiweekse[1]; if ($today < INTOHALFMONTHLYBIWEEKDAY) { $biweekstart0 = date("Y-m-d", strtotime($biweekstart . " - 2 weeks")); $biweekend0 = date("Y-m-d", strtotime($biweekstart0 . " + 2 weeks - 1 day")); if ($biweekend == '2016-11-30') { $biweekstart0 = '2016-10-30'; $biweekend0 = '2016-11-12'; } } else { $se = __getPreBiweek($curbiweek); $se = explode(",", $se); $biweekstart0 = $se[0]; $biweekend0 = $se[1]; } $zconn = new zmysqlConn(); /* * flag = 0 ~ till today group by agent * flag = 1 ~ weekly group by agent * flag = 2 ~ monthly group by agent * flag = 3,4 ~ biweekly group by office (3 means this 2 weeks, 4 means the 2 weeks before) */ /* * normal top10s */ $_sql_ = "SELECT %d, '%s', stats.agentid, accounts.username, agents.ag1stname, companies.officename, \n\t\tsum(sales_number - chargebacks) as sales \n\tFROM stats, accounts, agents, companies \n\tWHERE %s\n\t\tand stats.agentid = accounts.id and agents.id = stats.agentid \n\t\tand agents.companyid = companies.id \n\t\tAND agentid > 0 \n\t\tAND companies.id != 98 \n\tGROUP BY agentid ORDER BY `sales` desc LIMIT 10";
function __getPeriods() { $lastday = date("Y-m-d", strtotime(date('Y-m-d') . " Sunday")); if (date("w") == 0) { $lastday = date("Y-m-d", strtotime($lastday . " + 6 days")); } else { $lastday = date("Y-m-d", strtotime($lastday . " - 1 days")); } $weekend = $lastday; $weekstart = date("Y-m-d", strtotime($lastday . " - 6 days")); $periods = array(); for ($i = 0; $i < 52; $i++) { $oneweek = date("Y-m-d", strtotime($lastday . " - " . (7 * $i + 6) . " days")) . ',' . date("Y-m-d", strtotime($lastday . " - " . 7 * $i . " days")); $v = "[W]{$oneweek}"; switch ($i) { case 0: $v = 'THIS WEEK'; break; case 1: $v = 'LAST WEEK'; break; default: break; } $periods += array($oneweek => $v); } $curbiweek = __getCurBiweek(); $curbiweekse = explode(",", $curbiweek); $biweekstart = $curbiweekse[0]; $biweekend = $curbiweekse[1]; $periods += array($biweekstart . "," . $biweekend => "[2W]" . $biweekstart . "," . $biweekend); /* * and after 2016-11-30, biweek should be 1-15, and 16-the end of a month */ for ($i = 1; $i <= 26; $i++) { $biweek = null; if (date("Y-m-d") < INTOHALFMONTHLYBIWEEKDAY) { $biweek = date("Y-m-d", strtotime($biweekstart . sprintf(" - %d", $i * 2) . " weeks")) . ',' . date("Y-m-d", strtotime($biweekstart . sprintf(" - %d", ($i - 1) * 2) . " weeks - 1 day")); } else { $biweek = __getPreBiweek($curbiweek); $curbiweek = $biweek; } $periods += array($biweek => "[2W]{$biweek}"); } return $periods; }