addDataParam('i', $val); } } else { $sql .= '(0)'; } $dms_name_result = $wrapperObj->executeQuery($sql, $dataParams); if ($dms_name_result === false) { showierror($sql); } $dms_names = array(); foreach ($dms_name_result as $dms_name_row) { $dms_names[$dms_name_row["customer_master_master_id"]] = $dms_name_row["customer_name"]; } $dms_names["others"] = "All Others"; $start_timestamp_year = date('Y', $start_timestamp); $start_timestamp_month = date('m', $start_timestamp); $end_timestamp_year = date('Y', $end_timestamp); $end_timestamp_month = date('m', $end_timestamp); // get the plan numbers $sql ='SELECT rp.dms_master_master_id, rp.year, rp.month, sum(rp.total) as total FROM revenue_plan rp WHERE 1 AND rp.region = ? AND (rp.year > ? OR (rp.year = ? AND rp.month >= ?)) AND (rp.year < ? OR (rp.year = ? AND rp.month <= ?)) AND rp.total_type = ? GROUP BY rp.dms_master_master_id, rp.year, rp.month'; $dataParams = new QueryData(); $dataParams->addDataParam('s', $region); $dataParams->addDataParam('i', $start_timestamp_year); $dataParams->addDataParam('i', $start_timestamp_year); $dataParams->addDataParam('i', $start_timestamp_month); $dataParams->addDataParam('i', $end_timestamp_year); $dataParams->addDataParam('i', $end_timestamp_year); $dataParams->addDataParam('i', $end_timestamp_month); $dataParams->addDataParam('s', $report_type); $plan_result = $wrapperObj->executeQuery($sql, $dataParams); if ($plan_result === false) { showierror($sql); } $result = array(); foreach ($plan_result as $plan_row) { $year = $plan_row["year"]; $month = $plan_row["month"]; $amount = $plan_row["total"]; $quarter = $year ."Q".ceil($month/3); $period = $year."_". $month; if(in_array($plan_row["dms_master_master_id"], $dms_master_list[$report_type][$region])) $curr_master_id = $plan_row["dms_master_master_id"]; else $curr_master_id = "others"; $result[$curr_master_id][$period]["plan"] = isset($result[$curr_master_id][$period]["plan"])?$result[$curr_master_id][$period]["plan"]:0; $result[$curr_master_id][$period]["plan"] += $amount; $result[$curr_master_id][$quarter]["plan"] = isset($result[$curr_master_id][$quarter]["plan"])?$result[$curr_master_id][$quarter]["plan"]:0; $result[$curr_master_id][$quarter]["plan"] += $amount; } // get the actual totals $sql = 'SELECT cmm.customer_master_master_id, cmm.customer_name, crd.year, crd.month, cr.check_date, sum(crd.total) as total FROM check_receivable cr INNER JOIN check_receivable_detail crd on cr.id = crd.check_id INNER JOIN customer_master cm on cm.customer_id = cr.customer_id INNER JOIN customer_master_master cmm on cmm.customer_master_master_id = cm.customer_master_master_id WHERE 1 ' .get_where_clause($region) . ' AND (crd.year > ? OR (crd.year = ? AND crd.month >= ?)) AND (crd.year < ? OR (crd.year = ? AND crd.month <= ?)) AND crd.paidfor = ? GROUP BY cmm.customer_master_master_id, crd.year, crd.month'; $dataParams = new QueryData(); $dataParams->addDataParam('i', $start_timestamp_year); $dataParams->addDataParam('i', $start_timestamp_year); $dataParams->addDataParam('i', $start_timestamp_month); $dataParams->addDataParam('i', $end_timestamp_year); $dataParams->addDataParam('i', $end_timestamp_year); $dataParams->addDataParam('i', $end_timestamp_month); $dataParams->addDataParam('s', $report_type); $revenue_result = $wrapperObj->executeQuery($sql, $dataParams); if ($revenue_result === false) { showierror($sql); } foreach ($revenue_result as $revenue_row) { $year = $revenue_row["year"]; $month = $revenue_row["month"]; $amount = $revenue_row["total"]; $quarter = $year ."Q".ceil($month/3); $period = $year."_". $month; if(in_array($revenue_row["customer_master_master_id"], $dms_master_list[$report_type][$region])) $curr_master_id =$revenue_row["customer_master_master_id"]; else $curr_master_id = "others"; $result[$curr_master_id][$period]["actual"] = isset($result[$curr_master_id][$period]["actual"])?$result[$curr_master_id][$period]["actual"]:0; $result[$curr_master_id][$period]["actual"] += $amount; $result[$curr_master_id][$quarter]["actual"] = isset($result[$curr_master_id][$quarter]["actual"])?$result[$curr_master_id][$quarter]["actual"]:0; $result[$curr_master_id][$quarter]["actual"] += $amount; } $curr_timestamp = $start_timestamp; $planHeader = ""; $columnCount = 0; while($curr_timestamp <= $end_timestamp) { $year = date("Y", $curr_timestamp); $month = date("m", $curr_timestamp); $planHeader .= "".date("M-Y", $curr_timestamp).""; $columnCount++; if($month%3 == 0) { $planHeader .= "$year Q ".floor($month/3).""; $columnCount++; } $curr_timestamp = strtotime("1 month", $curr_timestamp); } $varData = <<
Period: HEREDOC; $varData .= date("Y-m-d", $start_timestamp) . " through " . date("Y-m-d", $end_timestamp); $varData .= <<< HEREDOC Report Type: HEREDOC; $varData .= ucfirst($report_type); $varData .= << Region: $region
$planHeader $planHeader HEREDOC; $totalDMS = sizeof($dms_master_list[$report_type][$region]) +1; for($i=0;$i<$totalDMS;$i++) { if($i!=($totalDMS-1)) $dms_master_id = $dms_master_list[$report_type][$region][$i]; else $dms_master_id = "others"; $row_class = ($row_class == '') ? 'alt' : ''; $varData .= ""; $varData .= ""; $curr_timestamp = $start_timestamp; $planRow = ""; $actualRow = ""; $plan_row_total = 0; $actual_row_total = 0; while($curr_timestamp <= $end_timestamp) { $year = date("Y", $curr_timestamp); $month = date("m", $curr_timestamp); $curr_period = date("Y_n", $curr_timestamp); $plan_amount = isset($result[$dms_master_id][$curr_period]["plan"])?$result[$dms_master_id][$curr_period]["plan"]:0; $actual_amount = isset($result[$dms_master_id][$curr_period]["actual"])?$result[$dms_master_id][$curr_period]["actual"]:0; $plan_row_total += $plan_amount; $actual_row_total += $actual_amount; $planRow .= ""; $actualRow .=""; $col_total[$curr_period]["plan"] = isset($col_total[$curr_period]["plan"])?$col_total[$curr_period]["plan"]:0; $col_total[$curr_period]["plan"] += $plan_amount; $col_total[$curr_period]["actual"] = isset($col_total[$curr_period]["actual"])?$col_total[$curr_period]["actual"]:0; $col_total[$curr_period]["actual"] += $actual_amount; if($month%3 == 0) { $qtr = ceil($month/3); $quarter = $year.'Q'.$qtr; $planRow .= ""; $actualRow .= ""; $col_total[$quarter]["plan"] = isset($col_total[$quarter]["plan"])?$col_total[$quarter]["plan"]:0; $col_total[$quarter]["plan"] += $result[$dms_master_id][$quarter]["plan"]; $col_total[$quarter]["actual"] = isset($col_total[$quarter]["actual"])?$col_total[$quarter]["actual"]:0; $col_total[$quarter]["actual"] += $result[$dms_master_id][$quarter]["actual"]; } $curr_timestamp = strtotime("1 month", $curr_timestamp); } $variance = $actual_row_total - $plan_row_total; $variance_per = ($plan_row_total > 0)?number_format(($actual_row_total - $plan_row_total)/$plan_row_total*100, "2")." %":"-"; $varData .= "$planRow $actualRow "; } $varData .= ""; $curr_timestamp = $start_timestamp; $planRow = ""; $actualRow = ""; $plan_row_total = 0; $actual_row_total = 0; while($curr_timestamp <= $end_timestamp) { $year = date("Y", $curr_timestamp); $month = date("m", $curr_timestamp); $curr_period = date("Y_n", $curr_timestamp); $planRow .= ""; $actualRow .= ""; $plan_row_total += $col_total[$curr_period]["plan"]; $actual_row_total += $col_total[$curr_period]["actual"]; if($month%3 == 0) { $quarter = $year.'Q'.ceil($month/3); $planRow .= ""; $actualRow .= ""; } $curr_timestamp = strtotime("1 month", $curr_timestamp); } $variance = $actual_row_total - $plan_row_total; $variance_per = ($plan_row_total > 0)?number_format(($actual_row_total - $plan_row_total)/$plan_row_total*100, "2")." %":"-"; $varData .= "$planRow $actualRow "; $varData .= <<
  Plan Actual Variance
    
{$dms_names[$dms_master_id]}".money_format("%.2n",$plan_amount)."" .((!$get_excel)?"".money_format("%.2n",$actual_amount)."":money_format("%.2n",$actual_amount))."".money_format("%.2n",$result[$dms_master_id][$quarter]["plan"])."".((!$get_excel)?"".money_format("%.2n",$result[$dms_master_id][$quarter]["actual"])."":money_format("%.2n",$result[$dms_master_id][$quarter]["actual"]))."".money_format("%(.2n", $variance)." $variance_per
Total".money_format("%.2n",$col_total[$curr_period]["plan"])."".((!$get_excel)?"".money_format("%.2n",$col_total[$curr_period]["actual"])."":money_format("%.2n",$col_total[$curr_period]["actual"]))."".money_format("%.2n",$col_total[$quarter]["plan"])."".((!$get_excel)?"".money_format("%.2n",$col_total[$quarter]["actual"])."":money_format("%.2n",$col_total[$quarter]["actual"]))."".money_format("%(.2n", $variance)." $variance_per
HEREDOC; ?>