/**
  * Creates a new GlHeader model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($es = null)
 {
     $model = new GlHeader();
     if (!empty($es)) {
         $details = [];
         foreach (EntriSheetDtl::findAll(['id_esheet' => $es]) as $eDtl) {
             /* @var $eDtl EntriSheetDtl */
             $details[$eDtl->nm_esheet_dtl] = new GlDetail(['id_coa' => $eDtl->id_coa]);
         }
         $model->populateRelation('glDetails', $details);
         $post = Yii::$app->request->post();
         if ($model->load($post)) {
             try {
                 $transaction = Yii::$app->db->beginTransaction();
                 $success = $model->save();
                 $success = $model->saveRelated('glDetails', $post, $success);
                 if ($success) {
                     $error = false;
                     $balance = 0.0;
                     foreach ($model->glDetails as $detail) {
                         $balance += $detail->amount;
                     }
                     if ($balance != 0) {
                         $model->addError('', 'Details should be balance');
                         $error = true;
                     }
                     //
                     if ($error) {
                         $transaction->rollBack();
                     } else {
                         $transaction->commit();
                         return $this->redirect(['view', 'id' => $model->id_gl]);
                     }
                 } else {
                     $transaction->rollBack();
                 }
             } catch (\Exception $exc) {
                 $transaction->rollBack();
                 $model->addError('', $exc->getMessage());
             }
         }
     }
     return $this->render('create', ['model' => $model, 'es' => $es]);
 }
 /**
  * Creates a new GlHeader model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new GlHeader();
     $post = Yii::$app->request->post();
     if ($model->load($post)) {
         try {
             $transaction = Yii::$app->db->beginTransaction();
             $success = $model->save();
             $success = $model->saveRelated('glDetails', $post, $success);
             if ($success) {
                 $error = false;
                 if (count($model->glDetails) == 0) {
                     $model->addError('', 'Detail cannot be blank');
                     $error = true;
                 }
                 $balance = 0.0;
                 foreach ($model->glDetails as $detail) {
                     $balance += $detail->amount;
                 }
                 if ($balance != 0) {
                     $model->addError('', 'Details should be balance');
                     $error = true;
                 }
                 //
                 if ($error) {
                     $transaction->rollBack();
                 } else {
                     $transaction->commit();
                     return $this->redirect(['view', 'id' => $model->id_gl]);
                 }
             } else {
                 $transaction->rollBack();
             }
         } catch (\Exception $exc) {
             $transaction->rollBack();
             $model->addError('', $exc->getMessage());
         }
         $model->setIsNewRecord(true);
     }
     return $this->render('create', ['model' => $model]);
 }