public function actionCreate() { if (!Yii::app()->request->isAjaxRequest) { return; } if (isset($_POST) && !empty($_POST)) { $status = false; $msg = 'Anggaran berhasil disimpan.'; $bulanStr = $_POST['bulanStr']; $bulan = $_POST['periode_bulan']; $tahun = $_POST['periode_tahun']; $detils = CJSON::decode($_POST['detil']); //require_once(Yii::app()->basePath . '/vendors/frontaccounting/ui.inc'); app()->db->autoCommit = false; $transaction = app()->db->beginTransaction(); try { $anggaran = new PeAnggaran(); $ref = new PeReferenceCom(); $docref = $ref->get_next_reference(ANGGARAN); $_POST['PeAnggaran']['doc_ref'] = $docref; $_POST['PeAnggaran']['periode_bulan'] = $bulan; $_POST['PeAnggaran']['periode_tahun'] = $tahun; $_POST['PeAnggaran']['lock'] = 0; $_POST['PeAnggaran']['trans_date'] = Yii::app()->dateFormatter->format('yyyy-MM-dd', time()); $_POST['PeAnggaran']['users_id'] = Yii::app()->user->getId(); $anggaran->attributes = $_POST['PeAnggaran']; if (!$anggaran->save()) { throw new Exception("Gagal menyimpan anggaran."); } foreach ($detils as $detil) { $anggaran_detil = new PeAnggaranDetil(); $_POST['PeAnggaranDetil']['account_code'] = $detil['account_code']; $_POST['PeAnggaranDetil']['amount'] = $detil['amount']; $_POST['PeAnggaranDetil']['anggaran_id'] = $anggaran->id; $anggaran_detil->attributes = $_POST['PeAnggaranDetil']; // $ag_detil[] = $anggaran_detil; if (!$anggaran_detil->save()) { throw new Exception("Gagal menyimpan anggaran_detil."); } } //$anggaran->peAnggaranDetils = $ag_detil; $ref->save(ANGGARAN, $anggaran->id, $docref); $transaction->commit(); $status = true; } catch (Exception $ex) { $transaction->rollback(); $status = false; $msg = $ex; } // $anggaran->withRelated->save(true,array('peAnggaranDetils')); echo CJSON::encode(array('success' => $status, 'bulan' => $bulanStr, 'tahun' => $tahun, 'id' => $docref, 'msg' => $msg)); Yii::app()->end(); } }