Esempio n. 1
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionInventory($item_id)
 {
     $model = $this->loadModel($item_id);
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Item'])) {
         $model->attributes = $_POST['Item'];
         if (empty($_POST['Item']['items_add_minus'])) {
             $valid = false;
             $model->addError('items_add_minus', 'Cannot be blank.');
         } elseif (empty($_POST['Item']['inv_comment'])) {
             $valid = false;
             $model->addError('inv_comment', 'Cannot be blank.');
         } else {
             $new_quantity = $_POST['Item']['items_add_minus'];
             $valid = $model->validate();
         }
         if ($valid) {
             $transaction = $model->dbConnection->beginTransaction();
             try {
                 $cur_quantity = $model->quantity;
                 $model->quantity = $cur_quantity + $new_quantity;
                 if ($model->save()) {
                     //Ramel Inventory Tracking
                     $inventory = new Inventory();
                     $sale_remarks = $_POST['Item']['inv_comment'];
                     $inventory->trans_items = $model->id;
                     $inventory->trans_user = Yii::app()->user->id;
                     $inventory->trans_comment = $sale_remarks;
                     $inventory->trans_inventory = $new_quantity;
                     $inventory->trans_date = date('Y-m-d H:i:s');
                     if (!$inventory->save()) {
                         $transaction->rollback();
                         Yii::app()->clientScript->scriptMap['jquery.js'] = false;
                         echo CJSON::encode(array('status' => 'falied', 'div' => "<div class=alert alert-info fade in> Something wrong! </div>" . Yii::app()->user->id . var_dump($inventory->getErrors())));
                         Yii::app()->end();
                     }
                     $transaction->commit();
                     //Yii::app()->clientScript->scriptMap['jquery.js'] = false;
                     echo CJSON::encode(array('status' => 'success', 'div' => "<div class=alert alert-info fade in> Successfully updated ! </div>"));
                     Yii::app()->end();
                 }
             } catch (Exception $e) {
                 $transaction->rollback();
                 print_r($e);
             }
         }
     }
     if (Yii::app()->request->isAjaxRequest) {
         $cs = Yii::app()->clientScript;
         $cs->scriptMap = array('jquery.js' => false, 'bootstrap.js' => false, 'jquery.min.js' => false, 'bootstrap.notify.js' => false, 'bootstrap.bootbox.min.js' => false);
         Yii::app()->clientScript->scriptMap['*.js'] = false;
         echo CJSON::encode(array('status' => 'render', 'div' => $this->renderPartial('_inventory', array('model' => $model), true, false)));
         Yii::app()->end();
     } else {
         $this->render('_inventory', array('model' => $model));
     }
 }
 public function actionEditableCreator()
 {
     if (isset($_POST['Inventory'])) {
         $model = new Inventory();
         $model->attributes = $_POST['Inventory'];
         if ($model->save()) {
             echo CJSON::encode($model->getAttributes());
         } else {
             $errors = array_map(function ($v) {
                 return join(', ', $v);
             }, $model->getErrors());
             echo CJSON::encode(array('errors' => $errors));
         }
     } else {
         throw new CHttpException(400, 'Invalid request');
     }
 }