/** * Compare old budget with new budget temp structure * Part of check structure validation * @param type $code * @return boolean */ public function addedRecords($code) { $added = TRUE; //Check Existing of Budget Record $dipa = Dipa::model()->find(array('order' => 'id DESC')); if ($dipa) { $dipaId = $dipa->id; $budget = Budget::model()->findByAttributes(array('code' => $code, 'dipa_id' => $dipaId)); if ($budget) { $added = FALSE; } } return $added; }
/** * Input multiple data to database */ public function actionEntry() { $model = new Package(); $lastDipa = Dipa::model()->find(array('order' => 'id DESC')); $lastDipaId = $lastDipa->id; if (isset($_POST['code'])) { if ($lastDipa) { $total = count($_POST['code']); for ($i = 0; $i < $total; $i++) { if ($_POST['code'][$i] != NULL && $_POST['ppk_code'][$i] != NULL && $_POST['city_code'][$i] != NULL) { $code = $_POST['code'][$i]; //Check existed record $record = Package::model()->findByAttributes(array('code' => $code)); if ($record) { $budgets = Budget::model()->findAllByAttributes(array('subcomponent_code' => "{$record->code}", 'dipa_id' => "{$lastDipaId}")); $record->ppk_code = $_POST['ppk_code'][$i]; $record->city_code = $_POST['city_code'][$i]; $record->province_code = City::model()->findByAttributes(array('code' => "{$record->city_code}"))->province_code; if ($budgets) { foreach ($budgets as $budgetData) { $pAccount = PackageAccount::model()->findByAttributes(array('code' => "{$budgetData->code}")); if ($pAccount) { $pAccount->limit = $budgetData->total_budget_limit; $pAccount->ppk_code = $record->ppk_code; $pAccount->province_code = $record->province_code; $pAccount->city_code = $record->city_code; $pAccount->update(); } } } $record->update(); } else { $data = new Package(); $data->code = $_POST['code'][$i]; $budget = Budget::model()->findByAttributes(array('subcomponent_code' => $_POST['code'][$i]), array('order' => 'dipa_id DESC')); if ($budget) { $data->satker_code = "{$budget->satker_code}"; $data->activity_code = "{$budget->activity_code}"; $data->output_code = "{$budget->output_code}"; $data->suboutput_code = "{$budget->suboutput_code}"; $data->name = $budget->subcomponentCode->name; $data->component_code = "{$budget->component_code}"; $data->ppk_code = $_POST['ppk_code'][$i]; $data->city_code = $_POST['city_code'][$i]; $data->province_code = City::model()->findByAttributes(array('code' => "{$data->city_code}"))->province_code; $budgets = Budget::model()->findAllByAttributes(array('subcomponent_code' => "{$data->code}", 'dipa_id' => "{$lastDipaId}")); if ($budgets) { foreach ($budgets as $dataBudget) { $paModel = new PackageAccount(); $paModel->code = "{$dataBudget->code}"; $paModel->satker_code = "{$dataBudget->satker_code}"; $paModel->activity_code = "{$dataBudget->activity_code}"; $paModel->output_code = "{$dataBudget->output_code}"; $paModel->suboutput_code = "{$dataBudget->suboutput_code}"; $paModel->component_code = "{$dataBudget->component_code}"; $paModel->package_code = "{$dataBudget->subcomponent_code}"; $paModel->account_code = "{$dataBudget->account_code}"; $paModel->ppk_code = "{$data->ppk_code}"; $paModel->province_code = "{$data->province_code}"; $paModel->city_code = "{$data->city_code}"; $paModel->limit = "{$dataBudget->total_budget_limit}"; $paModel->save(); } } $data->save(); } else { Yii::app()->user->setFlash('notice', 'Data DIPA belum diinput dengan lengkap. Beberapa data informasi tambahan gagal ditambahkan.'); $this->redirect(array('index')); } } } else { Yii::app()->user->setFlash('error', "Mohon isikan data secara lengkap."); $this->redirect(array('entry')); } } } else { Yii::app()->user->setFlash('error', 'Data DIPA/POK belum diinput.'); $this->redirect(array('index')); } Yii::app()->user->setFlash('success', 'Data berhasil disimpan.'); $this->redirect(array('index')); } $this->render('entry', array('model' => $model)); }
<?php $this->breadcrumbs = array('Budgets' => array('index'), 'Manage'); $this->menu = array(array('label' => 'List Budget', 'url' => array('index')), array('label' => 'Create Budget', 'url' => array('create'))); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$.fn.yiiGridView.update('budget-grid', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <?php $this->widget('bootstrap.widgets.TbGridView', array('id' => 'budget-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array(array('header' => 'No', 'value' => '$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)'), array('name' => 'dipa_id', 'value' => '$data->dipa->dipa_number', 'filter' => Dipa::model()->getDipaOptions()), array('name' => 'output_code', 'value' => 'isset($data->outputCode->name)?$data->outputCode->name:$data->output_code', 'filter' => Output::model()->getOutputOptions()), array('name' => 'suboutput_code', 'value' => 'isset($data->suboutputCode->name)?$data->suboutputCode->name:$data->suboutput_code', 'filter' => Suboutput::model()->getSuboutputOptions()), array('name' => 'component_code', 'value' => 'isset($data->componentCode->name)?$data->componentCode->name:$data->component_code', 'filter' => Component::model()->getComponentOptions()), array('name' => 'subcomponent_code', 'value' => 'isset($data->subcomponentCode->name)?$data->subcomponentCode->name:$data->subcomponent_code', 'filter' => Subcomponent::model()->getSubcomponentOptions()), 'subcomponent_code', array('name' => 'account_code', 'value' => 'isset($data->accountCode->name)?$data->accountCode->name:$data->account_code', 'filter' => Account::model()->getAccountOptions()), array("name" => "total_budget_limit", "value" => 'Yii::app()->format->number($data->total_budget_limit)', 'htmlOptions' => array('style' => 'text-align: right;')), array('class' => 'bootstrap.widgets.TbButtonColumn'))));