public function actionOutbound() { //getting values from url. $main_item_id = $_GET['item_id']; $oldmodel = $_GET['model']; $quantity_moved = $_GET['quantity_moved']; //echo "quantity Moved is : ".$quantity_moved." Item id is: ".$main_item_id." CLASSmodel is: ".$oldmodel; //getting values from items table. $model = new OutboundItemsHistory(); $itemModel = Items::model()->findByPk($main_item_id); if ($itemModel) { $model->current_quantity_in_stock = $itemModel->current_quantity; $model->available_quantity_in_stock = $itemModel->available_quantity; $current_quantity_in_stock = $model->current_quantity_in_stock; $available_quantity_in_stock = $model->available_quantity_in_stock; // echo "<br>"; // echo "current quantiy :".$current_quantity_in_stock." available quantity:".$available_quantity_in_stock; } else { echo "Item not found"; } //saving values to outbound $model->main_item_id = $main_item_id; $model->available_quantity_in_stock = $available_quantity_in_stock; $model->current_quantity_in_stock = $current_quantity_in_stock; $model->quantity_moved = $quantity_moved; //$model->save(); if ($model->save()) { // echo "<br>"; // echo "in model->save()"; // echo "current quantiy :".$model->current_quantity_in_stock." available quantity:".$model->available_quantity_in_stock; } else { echo "unable to save"; } //updating items table. $itemModel->updateByPk($model->main_item_id, array('available_quantity' => $itemModel->available_quantity - $model->quantity_moved, 'current_quantity' => $itemModel->current_quantity - $model->quantity_moved)); //output in JSON if (is_null($model)) { $this->_sendResponse(404, 'No Item found with id ' . $_GET['id']); } else { // $this->_sendResponse(200, CJSON::encode($_GET['model'])); $results = array('results' => $model); $this->_sendResponse(200, CJSON::encode($results)); } ///end of else of if }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = OutboundItemsHistory::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function actionUpdate($id) { $model = $this->loadModel($id); //$actual_quantity=$model->current_quantity; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Items'])) { $model->attributes = $_POST['Items']; //echo "DUE ADTE ".$model->factory_due_date; if ($model->save()) { $original_quantity = $_POST['original_quantity']; $original_available_quantity = $_POST['original_available_quantity']; //echo "Actual ".$original_quantity; //echo "Current ".$model->current_quantity; if ($original_quantity == $model->current_quantity && $original_available_quantity == $model->available_quantity) { //echo "value is same"; $this->redirect(array('view', 'id' => $model->item_id)); } elseif ($original_quantity > $model->current_quantity && $original_available_quantity == $model->available_quantity) { //echo "ORIGINAL QUANTITY WAS MORE, ITEM REMOVED"; $OutModel = new OutboundItemsHistory(); $OutModel->main_item_id = $model->item_id; $OutModel->quantity_moved = $original_quantity - $model->current_quantity; //current_quantity is already having quantity_moved value also,so it is not subtracted here as it will be subtracted again in beforeSave() func. $OutModel->current_quantity_in_stock = $model->current_quantity + $OutModel->quantity_moved; $OutModel->available_quantity_in_stock = $model->current_quantity + $OutModel->quantity_moved; //$OutModel->quantity_moved=$original_quantity-$model->current_quantity; if ($OutModel->save()) { $this->redirect(array('view', 'id' => $model->item_id)); //echo "SAVED"; } else { echo $OutModel->getError(); } //$this->redirect(array('view','id'=>$model->item_id)); } elseif ($original_quantity < $model->current_quantity && $original_available_quantity == $model->available_quantity) { //echo "ORIGINAL QUANTITY WAS LESS, ITEM ADDED"; $InModel = new InboundItemsHistory(); $InModel->main_item_id = $model->item_id; $InModel->quantity_moved = $model->current_quantity - $original_quantity; //current_quantity is already having quantity_moved value also,so it is not added here as it will be added again in beforeSave() func. $InModel->current_quantity_in_stock = $model->current_quantity - $InModel->quantity_moved; $InModel->available_quantity_in_stock = $model->current_quantity - $InModel->quantity_moved; //$original_available_quantity=$original_available_quantity+ //$InModel->quantity_moved=0; //$InModel->quantity_moved=$model->current_quantity-$original_quantity; if ($InModel->save()) { //$model->available_quantity=$model->current_quantity; $this->redirect(array('view', 'id' => $model->item_id)); //echo "SAVED"; } else { echo $InModel->getError(); } //$this->redirect(array('view','id'=>$model->item_id)); } elseif ($original_quantity == $model->current_quantity && $original_available_quantity > $model->available_quantity) { //echo "ORIGINAL AVAILABLE QUANTITY WAS MORE, ITEM REMOVED"; $OutModel = new OutboundItemsHistory(); $OutModel->main_item_id = $model->item_id; $OutModel->quantity_moved = $original_available_quantity - $model->available_quantity; //current_quantity is already having quantity_moved value also,so it is not subtracted here as it will be subtracted again in beforeSave() func. $OutModel->current_quantity_in_stock = $model->current_quantity + $OutModel->quantity_moved; $OutModel->available_quantity_in_stock = $model->current_quantity + $OutModel->quantity_moved; //$OutModel->quantity_moved=$original_quantity-$model->current_quantity; if ($OutModel->save()) { $this->redirect(array('view', 'id' => $model->item_id)); //echo "SAVED"; } else { echo $OutModel->getError(); } //$this->redirect(array('view','id'=>$model->item_id)); } elseif ($original_quantity == $model->current_quantity && $original_available_quantity < $model->available_quantity) { //echo "ORIGINAL QUANTITY WAS LESS, ITEM ADDED"; $InModel = new InboundItemsHistory(); $InModel->main_item_id = $model->item_id; $InModel->quantity_moved = $model->available_quantity - $original_available_quantity; //current_quantity is already having quantity_moved value also,so it is not added here as it will be added again in beforeSave() func. $InModel->current_quantity_in_stock = $model->current_quantity - $InModel->quantity_moved; $InModel->available_quantity_in_stock = $model->current_quantity - $InModel->quantity_moved; //$original_available_quantity=$original_available_quantity+ //$InModel->quantity_moved=0; //$InModel->quantity_moved=$model->current_quantity-$original_quantity; if ($InModel->save()) { //$model->available_quantity=$model->current_quantity; $this->redirect(array('view', 'id' => $model->item_id)); //echo "SAVED"; } else { echo $InModel->getError(); } //$this->redirect(array('view','id'=>$model->item_id)); } //end of 4th elseif } //end of if(model->save()) } //if(isset($_POST['Items'])) $this->render('update', array('model' => $model)); }