/**
  * 获取收支趋势月度统计表
  *
  * @param unknown $userId        	
  * @param unknown $accountId        	
  * @param unknown $billTypeId        	
  * @param unknown $billTypeFlag        	
  * @param unknown $year        	
  * @param unknown $month        	
  */
 public function getTrendStatisticMonth($userId, $accountId, $billTypeId, $billTypeFlag, $year, $month)
 {
     $params = array('userId' => $userId, 'accountId' => $accountId, 'billTypeId' => $billTypeId, 'billTypeFlag' => $billTypeFlag, 'year' => $year, 'month' => $month);
     $rows = $this->getDAO()->select(PbsStatisticSQL::$SQL_STATISTIC_TREND_MONTH, $params);
     $table = null;
     if ($rows != null) {
         // 无数据的月份,填充0
         $table = array();
         $monthDays = get_month_days((int) $year, (int) $month);
         for ($i = 1; $i <= $monthDays; $i++) {
             $table[] = array('day' => $i, 'total_sum' => 0.0);
         }
         foreach ($rows as $row) {
             $day = (int) $row['day'] - 1;
             $table[$day]['total_sum'] = (double) $row['total_sum'];
         }
     }
     return $table;
 }
Example #2
0
function calculate_month_work($month, $year = null)
{
    $work = 0;
    $days = array();
    $all = array();
    $holidays = array(array(1), array(), array(24), array(2, 5, 6), array(1, 25), array(20), array(9), array(17), array(), array(12), array(), array(8, 25));
    $year = $year ? $year : date('Y');
    $month_total = get_month_days($month, $year);
    for ($d = 1; $d <= $month_total; $d++) {
        $all[] = $d;
        if (!in_array($d, $holidays[$month - 1])) {
            $time = mktime(0, 0, 0, $month, $d, $year);
            $w = date('w', $time);
            if ($w > 0 && $w < 6) {
                $days[] = $d;
                $work++;
            }
        }
    }
    return array($work, $days, $all);
}
Example #3
0
/**
 * 获取收支趋势统计
 */
function get_trend_statistic()
{
    $userId = (int) $_SESSION['userId'];
    $accountId = is_empty($_REQUEST['accountId']) ? null : (int) $_REQUEST['accountId'];
    $billTypeId = is_empty($_REQUEST['billTypeId']) ? null : (int) $_REQUEST['billTypeId'];
    $billTypeFlag = is_empty($_REQUEST['billTypeFlag']) ? null : (int) $_REQUEST['billTypeFlag'];
    $year = $_REQUEST['year'];
    $month = is_empty($_REQUEST['month']) ? null : $_REQUEST['month'];
    $code = '0';
    $statisticService = new StatisticService();
    $chart = null;
    $rows = array();
    $valueLabelArray = null;
    if ($month === null) {
        //年度统计
        if ($billTypeId === null && $billTypeFlag === null) {
            $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, 1, $year);
            $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, 0, $year);
            $valueLabelArray[] = '收入';
            $valueLabelArray[] = '支出';
        } else {
            $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, $billTypeFlag, $year);
            $valueLabelArray[] = '';
        }
        if ($rows != null) {
            global $CHART_MONTH_ARRAY;
            $chart = get_bar_chart_array($rows, $CHART_MONTH_ARRAY, $valueLabelArray, 'total_sum');
        }
    } else {
        //月度统计
        if ($billTypeId === null && $billTypeFlag === null) {
            $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, 1, $year, $month);
            $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, 0, $year, $month);
            $valueLabelArray[] = '收入';
            $valueLabelArray[] = '支出';
        } else {
            $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, $billTypeFlag, $year, $month);
            $valueLabelArray[] = '';
        }
        if ($rows != null) {
            $monthDays = get_month_days((int) $year, (int) $month);
            for ($i = 1; $i <= $monthDays; $i++) {
                $dayArray[] = $i;
            }
            $chart = get_bar_chart_array($rows, $dayArray, $valueLabelArray, 'total_sum');
        }
    }
    $output = array('retCode' => $code, 'trendChart' => $chart);
    echo get_json($output);
}