public function actionBebanAnak() { if (Yii::app()->request->isAjaxRequest) { return; } if (isset($_POST) && !empty($_POST)) { $format = $_POST['format']; $start_date = $_POST['trans_date_mulai']; $end_date = $_POST['trans_date_sampai']; $anak_id = $_POST['pe_member_id']; $start = 1; $file_name = 'BebanAnak'; $worksheet_name = 'BebanAnak'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0)->mergeCells("A{$start}:G{$start}")->setCellValue("A{$start}", "PERIODE: " . sql2long_date($start_date) . " - " . sql2long_date($end_date))->getStyle("A{$start}")->getFont()->setSize(12)->setBold(true); $objPHPExcel->getActiveSheet()->setTitle($worksheet_name); $start++; $start++; $start_body = $start; $objPHPExcel->setActiveSheetIndex(0)->setCellValue("A{$start}", "Nama Anak")->setCellValue("B{$start}", "Total Pengeluaran")->setCellValue("C{$start}", "%")->getStyle("A{$start}:C{$start}")->getFont()->setBold(true); $start++; $rows = Pe::get_beban_anak($start_date, $end_date, $anak_id); $total = Pe::get_total_beban_anak($start_date, $end_date, $anak_id); $total_persen = 0; foreach ($rows as $row) { $total_persen += $row['amount'] / $total; $total_beban = $format == 'excel' ? $row['amount'] : acc_format($row['amount']); $persen = $format == 'excel' ? $row['amount'] / $total : percent_format($row['amount'] / $total, 2); $objPHPExcel->setActiveSheetIndex(0)->setCellValue("A{$start}", $row['real_name'])->setCellValue("B{$start}", $total_beban)->setCellValue("C{$start}", $persen); $start++; } $total_format = $format == 'excel' ? $total : acc_format($total); $objPHPExcel->setActiveSheetIndex(0)->setCellValue("A{$start}", 'Total')->setCellValue("B{$start}", $total_format)->setCellValue("C{$start}", $format == 'excel' ? $total_persen : percent_format($total_persen, 2)); $start++; $end_body = $start - 1; $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN))); $objPHPExcel->setActiveSheetIndex(0)->getStyle("A{$start_body}:C{$end_body}")->applyFromArray($styleArray); $start_row = $start_body + 1; if ($format == 'excel') { $objPHPExcel->setActiveSheetIndex(0)->getStyle("B{$start_row}:C{$end_body}")->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_ACCOUNTING); $objPHPExcel->setActiveSheetIndex(0)->getStyle("C{$start_row}:C{$end_body}")->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00); } else { $objPHPExcel->setActiveSheetIndex(0)->getStyle("B{$start_body}:B{$end_body}")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); } $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension("A")->setAutoSize(true); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension("B")->setAutoSize(true); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension("C")->setAutoSize(true); $this->footer($objPHPExcel, $start, $file_name, $format, "Laporan Beban Aktivitas per Anak"); Yii::app()->end(); } }