Example #1
0
}
$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;
}