public function actionCreateTransfer()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         //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 PeReferenceCom();
             $docref = $ref->get_next_reference(BANKTRANSFER);
             $bank_account_asal = Pe::get_act_code_from_bank_act($bank_asal);
             $bank_account_tujuan = Pe::get_act_code_from_bank_act($bank_tujuan);
             $trans_no = Pe::get_next_trans_no_bank_trans();
             $user = Yii::app()->user->getId();
             //debet kode bank tujuan - kredit kode bank asal
             Pe::add_gl(BANKTRANSFER, $trans_no, $trans_date, $docref, $bank_account_tujuan, $memo, $amount, $user);
             Pe::add_gl(BANKTRANSFER, $trans_no, $trans_date, $docref, $bank_account_asal, $memo, -$amount, $user);
             $ref->save(BANKTRANSFER, $trans_no, $docref);
             $id = $docref;
             $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 actionDelete($id)
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         $id = $_POST['id'];
         $memo_ = $_POST['memo_'];
         $status = false;
         $msg = 'Transaksi berhasil divoid.';
         $user = Yii::app()->user->getId();
         //require_once(Yii::app()->basePath . '/vendors/frontaccounting/ui.inc');
         app()->db->autoCommit = false;
         $transaction = app()->db->beginTransaction();
         try {
             $aktivitas = PeAktivitasGrupTrans::model()->findByPk($id);
             $date = $aktivitas->trans_date;
             $docref = $aktivitas->doc_ref;
             //                $bank_account = $kas_masuk->pe_bank_accounts_id;
             $void = new PeVoided();
             $void->type = T_AKTIVITASGRUP;
             $void->id = $id;
             $void->date_ = $date;
             $void->memo_ = $memo_;
             if (!$void->save()) {
                 throw new Exception("Gagal menyimpan void.");
             }
             $bank = PeBankAccounts::model()->findByPk($aktivitas->pe_bank_accounts_id);
             $act_sub = $aktivitas->peSubAktivitas->account_code;
             //void gl
             //beban kredit , kas debet karena pengeluaran
             Pe::add_gl(VOID, $void->id_voided, $date, $docref, $bank->account_code, "VOID Aktivitas Grup {$docref}", $aktivitas->amount, $user);
             Pe::add_gl(VOID, $void->id_voided, $date, $docref, $act_sub, "VOID Aktivitas Grup {$docref}", -$aktivitas->amount, $user);
             $transaction->commit();
             $status = true;
         } catch (Exception $ex) {
             $transaction->rollback();
             $status = false;
             $msg = $ex;
         }
     }
     echo CJSON::encode(array('success' => $status, 'msg' => $msg));
     Yii::app()->end();
 }
 public function actionDelete()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         return;
     }
     if (isset($_POST) && !empty($_POST)) {
         $id = $_POST['id'];
         $memo_ = $_POST['memo_'];
         $status = false;
         $msg = 'Kas keluar berhasil divoid.';
         $user = Yii::app()->user->getId();
         //require_once(Yii::app()->basePath . '/vendors/frontaccounting/ui.inc');
         app()->db->autoCommit = false;
         $transaction = app()->db->beginTransaction();
         try {
             $kas_keluar = PeKasKeluar::model()->findByPk($id);
             $date = $kas_keluar->trans_date;
             $docref = $kas_keluar->doc_ref;
             //                $bank_account = $kas_masuk->pe_bank_accounts_id;
             $void = new PeVoided();
             $void->type = KAS_KELUAR;
             $void->id = $id;
             $void->date_ = $date;
             $void->memo_ = $memo_;
             if (!$void->save()) {
                 throw new Exception("Gagal menyimpan void.");
             }
             $bank = PeBankAccounts::model()->findByPk($kas_keluar->pe_bank_accounts_id);
             //void gl
             Pe::add_gl(VOID, $void->id_voided, $date, $docref, $bank->account_code, "VOID Kas Keluar {$docref}", $kas_keluar->amount, $user);
             Pe::add_gl(VOID, $void->id_voided, $date, $docref, $kas_keluar->pe_account_code, "VOID Kas Keluar {$docref}", -$kas_keluar->amount, $user);
             $transaction->commit();
             $status = true;
         } catch (Exception $ex) {
             $transaction->rollback();
             $status = false;
             $msg = $ex;
         }
     }
     echo CJSON::encode(array('success' => $status, 'msg' => $msg));
     Yii::app()->end();
     //        if (Yii::app()->request->isPostRequest) {
     //            $this->loadModel($id, 'PeKasKeluar')->delete();
     //
     //            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 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 = Pe::get_next_trans_saldo_awal();
         app()->db->autoCommit = false;
         $transaction = app()->db->beginTransaction();
         try {
             Pe::add_gl(SALDO_AWAL, $id, $date, "-", $_POST['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();
     }
 }