public function actionDelete($id)
 {
     if (Yii::app()->request->isPostRequest) {
         $status = true;
         $msg = "Akun bank berhasil dibuat";
         if (Pah::account_in_gl_trans($id)) {
             $status = false;
             $msg = "Akun bank gagal dibuat, karena account sudah dipakai transaksi.";
         }
         if (Pah::account_used_bank($id) && $status) {
             $status = false;
             $msg = "Akun bank gagal dibuat, karena account dipakai akun bank lain.";
         }
         if ($status) {
             $this->loadModel($id, 'PahBankAccounts')->delete();
         }
         echo CJSON::encode(array('success' => $status, 'msg' => $msg));
         Yii::app()->end();
         if (!Yii::app()->request->isAjaxRequest) {
             $this->redirect(array('admin'));
         }
     } else {
         throw new CHttpException(400, Yii::t('app', 'Invalid request. Please do not repeat this request again.'));
     }
 }
 public function actionCreateTransfer()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         $gl = new GlPah();
         //require_once(Yii::app()->basePath . '/vendors/frontaccounting/ui.inc');
         $status = false;
         $msg = 'Transfer antar kas berhasil diproses.';
         $id = -1;
         $bank_asal = $_POST['bank_act_asal'];
         $bank_tujuan = $_POST['bank_act_tujuan'];
         $trans_date = $_POST['trans_date'];
         $memo = $_POST['memo'];
         $amount = get_number($_POST['amount']);
         if ($bank_asal == $bank_tujuan) {
             echo CJSON::encode(array('success' => false, 'id' => -1, 'msg' => 'Bank asal dan bank tujuan tidak boleh sama.'));
             Yii::app()->end();
         }
         if ($amount <= 0) {
             echo CJSON::encode(array('success' => false, 'id' => -1, 'msg' => 'Jumlah yang akan ditransfer harus lebih dari nol.'));
             Yii::app()->end();
         }
         app()->db->autoCommit = false;
         $transaction = app()->db->beginTransaction();
         try {
             $ref = new PahReferenceCom();
             $docref = $ref->get_next_reference(BANKTRANSFER);
             $bank_account_asal = Pah::get_act_code_from_bank_act($bank_asal);
             $bank_account_tujuan = Pah::get_act_code_from_bank_act($bank_tujuan);
             $trans_no = Pah::get_next_trans_no_bank_trans();
             $user = Yii::app()->user->getId();
             //debet kode bank tujuan - kredit kode bank asal
             $gl->add_gl(BANKTRANSFER, $trans_no, $trans_date, $docref, $bank_account_tujuan, $memo, $amount, $user);
             $gl->add_gl(BANKTRANSFER, $trans_no, $trans_date, $docref, $bank_account_asal, $memo, -$amount, $user);
             $ref->save(BANKTRANSFER, $trans_no, $docref);
             $id = $docref;
             $gl->validate();
             $transaction->commit();
             $status = true;
         } catch (Exception $ex) {
             $transaction->rollback();
             $status = false;
             $msg = $ex;
         }
         echo CJSON::encode(array('success' => $status, 'id' => $id, 'msg' => $msg));
         Yii::app()->end();
     }
 }
 public function actionIsPeriodeExist()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         $bulan = $_POST['bulan'];
         $tahun = $_POST['tahun'];
         if ($bulan === '' || $tahun === '') {
             echo CJSON::encode(array('success' => false, 'msg' => 'Bulan atau Tahun periode tidak boleh kosong.'));
             Yii::app()->end();
         }
         if (Pah::is_periode_anggaran_exist($bulan, $tahun)) {
             echo CJSON::encode(array('success' => false, 'msg' => 'Anggaran dengan periode yang anda pilih sudah ada, silahkan gunakan menu ubah.'));
             Yii::app()->end();
         } else {
             echo CJSON::encode(array('success' => true, 'msg' => 'sukses'));
             Yii::app()->end();
         }
     }
 }
Exemple #4
0
 static function get_total_beban_grup($start_date, $end_date, $anak_id)
 {
     $void = Pah::get_voided(T_AKTIVITASGRUP);
     //        $void = Pah::get_voided(7);
     $void_st = '';
     if (count($void) > 0) {
         $void_st = "and pah_aktivitas_grup_trans.aktivitas_id not in (" . join(',', $void) . ")";
     }
     $per_anak = $anak_id == 'undefined' ? '' : "AND pah_member.id = {$anak_id}";
     $rows = Yii::app()->db->createCommand()->select("Sum(pah_aktivitas_grup_trans.amount) as amount")->from("pah_aktivitas_grup_trans")->rightJoin("pah_aktivitas_grup", "pah_aktivitas_grup_trans.pah_aktivitas_grup_id = pah_aktivitas_grup.id and\r\n                pah_aktivitas_grup_trans.trans_date between '{$start_date}' and '{$end_date}' {$void_st}")->queryScalar();
     return $rows == null ? 0 : $rows;
 }
 public function actionIndex()
 {
     if (isset($_POST['limit'])) {
         $limit = $_POST['limit'];
     } else {
         $limit = 20;
     }
     if (isset($_POST['start'])) {
         $start = $_POST['start'];
     } else {
         $start = 0;
     }
     $param = array();
     $void = Pah::get_voided(AKTIVITAS);
     $criteria = new CDbCriteria();
     if (isset($_POST['doc_ref'])) {
         $criteria->addCondition("doc_ref like :doc_ref");
         $param[':doc_ref'] = "%" . $_POST['doc_ref'] . "%";
     }
     if (isset($_POST['no_bukti'])) {
         $criteria->addCondition("no_bukti like :no_bukti");
         $param[':no_bukti'] = "%" . $_POST['no_bukti'] . "%";
     }
     if (isset($_POST['amount'])) {
         $criteria->addCondition("amount = :amount");
         $param[':amount'] = $_POST['amount'];
     }
     if (isset($_POST['trans_date'])) {
         $criteria->addCondition("trans_date = :trans_date");
         $param[':trans_date'] = substr($_POST['trans_date'], 0, 10);
     }
     $criteria->limit = $limit;
     $criteria->offset = $start;
     $criteria->params = $param;
     $criteria->addNotInCondition('aktivitas_id', $void);
     $model = PahAktivitas::model()->findAll($criteria);
     $total = PahAktivitas::model()->count($criteria);
     $this->renderJson($model, $total);
 }
 public function actionPengeluaranPerKodeRekeningDetil()
 {
     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'];
         $kode = $_POST['account_code'];
         $daftar_code = Pah::get_arr_kode_rekening_pengeluaran($kode);
         $index = 0;
         $objPHPExcel = new PHPExcel();
         $objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
         $file_name = 'PengeluaranPerKodeRekeningDetil';
         foreach ($daftar_code as $key => $codename) {
             $start = 1;
             $worksheet_name = "{$key} - {$codename}";
             if ($index > 0) {
                 $objPHPExcel->createSheet($index);
             }
             $objPHPExcel->setActiveSheetIndex($index);
             $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
             $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.1 / 2.54);
             $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.1 / 2.54);
             $objPHPExcel->getActiveSheet()->mergeCells("A{$start}:G{$start}")->setCellValue("A{$start}", "LAPORAN DETIL PENGELUARAN " . strtoupper($codename))->getStyle("A{$start}")->getFont()->setSize(18)->setBold(true);
             $start++;
             $objPHPExcel->getActiveSheet()->mergeCells("A{$start}:G{$start}")->setCellValue("A{$start}", "PONDOK ASUH HARAPAN")->getStyle("A{$start}")->getFont()->setSize(14)->setBold(true);
             $start++;
             $objPHPExcel->getActiveSheet()->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->getActiveSheet()->setCellValue("A{$start}", "Tgl")->setCellValue("B{$start}", "Keterangan")->setCellValue("C{$start}", "Debit")->setCellValue("D{$start}", "Kredit")->getStyle("A{$start}:D{$start}")->getFont()->setBold(true);
             $start++;
             $rows = Pah::get_pengeluaran_detil_kode_rekening($start_date, $end_date, $key);
             $total = Pah::get_total_pengeluaran($start_date, $end_date, $key);
             $total_persen = 0;
             foreach ($rows as $row) {
                 //                    $total_persen += $row['total_beban'] / $total;
                 //                    $total_beban = $row['total_beban'];
                 //                    $persen = $row['total_beban'] / $total;
                 $objPHPExcel->getActiveSheet()->setCellValue("A{$start}", $row['tran_date'])->setCellValue("B{$start}", $row['memo_'])->setCellValue("C{$start}", $row['debit'])->setCellValue("D{$start}", $row['kredit']);
                 $start++;
             }
             //$total_format = $format == 'excel' ? $total : acc_format($total);
             $objPHPExcel->getActiveSheet()->setCellValue("A{$start}", 'Total')->setCellValue($total > 0 ? "C{$start}" : "D{$start}", $total);
             //                    ->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->getActiveSheet()->getStyle("A{$start_body}:D{$end_body}")->applyFromArray($styleArray);
             $start_row = $start_body + 1;
             $objPHPExcel->getActiveSheet()->getStyle("C{$start_row}:D{$end_body}")->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_ACCOUNTING);
             //                $objPHPExcel->getActiveSheet()->getStyle("C$start_row:C$end_body")->getNumberFormat()
             //                    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00);
             $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
             $objPHPExcel->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);
             $objPHPExcel->getActiveSheet()->getColumnDimension("C")->setAutoSize(true);
             $objPHPExcel->getActiveSheet()->getColumnDimension("D")->setAutoSize(true);
             $objPHPExcel->getActiveSheet()->getColumnDimension("E")->setAutoSize(true);
             $start++;
             $jemaat = get_jemaat_from_user_id(Yii::app()->user->getId());
             $objPHPExcel->getActiveSheet()->mergeCells("A{$start}:G{$start}")->setCellValue("A{$start}", "Dicetak oleh: " . $jemaat->real_name);
             $start++;
             $objPHPExcel->getActiveSheet()->mergeCells("A{$start}:G{$start}")->setCellValue("A{$start}", "Pada tanggal " . get_date_today('dd/MM/yyyy') . " jam " . get_time_now());
             $index++;
         }
         ob_end_clean();
         ob_start();
         header('Content-Type: application/vnd.ms-excel');
         header("Content-Disposition: attachment;filename={$file_name}.xls");
         header('Cache-Control: max-age=0');
         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         $objWriter->save('php://output');
         Yii::app()->end();
     }
 }
 public function actionSetSaldoAwal()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         //require_once(Yii::app()->basePath . '/vendors/frontaccounting/ui.inc');
         $status = false;
         $msg = 'Saldo Awal berhasil disimpan.';
         $date = $_POST['trans_date'];
         $user = Yii::app()->user->getId();
         $id = Pah::get_next_trans_saldo_awal();
         app()->db->autoCommit = false;
         $transaction = app()->db->beginTransaction();
         try {
             Yii::import('application.components.GlPah');
             $gl = new GlPah();
             $gl->add_gl(SALDO_AWAL, $id, $date, "-", $_POST['pah_chart_master_account_code'], '-', get_number($_POST['amount']), $user);
             $transaction->commit();
             $status = true;
         } catch (Exception $ex) {
             $transaction->rollback();
             $status = false;
             $msg = $ex;
         }
         echo CJSON::encode(array('success' => $status, 'id' => $id, 'msg' => $msg));
         Yii::app()->end();
     }
 }