/** * 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); $sewadarModel = new Sewadars(); $criteria = new CDbCriteria(); $criteria->condition = 'nominal_roll_id=:id'; $criteria->params = array(':id' => $id); $criteria->order = 't.order'; $NominalRollUserList = NominalRollDetail::model()->with('sewadars')->findAll($criteria); $ListData = array(); if (isset($_REQUEST['Sewadars'])) { $sewadarModel->attributes = $_REQUEST['Sewadars']; $criteria = new CDbCriteria(); $criteria->compare('badge_no', $sewadarModel->badge_no, false, 'OR'); $criteria->compare('serial_no', $sewadarModel->serial_no, false, 'OR'); $criteria->compare('sewadar_name', $sewadarModel->sewadar_name, true); $ListData = $sewadarModel->findAll($criteria); } if (isset($_POST['NominalRoll'])) { $model->attributes = $_POST['NominalRoll']; $model->sewa_sent = $_POST['NominalRoll']['sewa_sent']; $model->sewa_not_sent_reason = $_POST['NominalRoll']['sewa_not_sent_reason']; $model->sewadar_id = $_POST['NominalRoll']['sewadar_id']; if ($model->sewadar_id) { $SewadarData = Sewadars::model()->findByPk($model->sewadar_id); $model->incharge_badge_no = $SewadarData->badge_no; $model->incharge_mobile_no = $SewadarData->mobile_primary; $data = NominalRollDetail::model()->find("t.order='0' AND t.nominal_roll_id = '{$model->nominal_roll_id}'"); if ($data === null) { NominalRollDetail::model()->updateAll(array('order' => '0'), "nominal_roll_id='{$model->nominal_roll_id}' AND sewadar_id='{$model->sewadar_id}'"); } else { if ($data->sewadar_id != $model->sewadar_id) { $UserData = Sewadars::model()->findByPk($data->sewadar_id); if ($UserData->gender == 'FEMALE') { NominalRollDetail::model()->updateByPk($data->nominal_roll_detail_id, array('order' => '2')); } else { NominalRollDetail::model()->updateByPk($data->nominal_roll_detail_id, array('order' => '1')); } NominalRollDetail::model()->updateAll(array('order' => '0'), 'nominal_roll_id=:nominal_id AND sewadar_id=:user_id', array(':nominal_id' => $model->nominal_roll_id, ':user_id' => $model->sewadar_id)); } } } if ($model->save()) { $this->redirect(array('update', 'id' => $model->nominal_roll_id)); } } $this->render('update', array('model' => $model, 'sewadarModel' => $sewadarModel, 'ListData' => $ListData, 'NominalRollUserList' => $NominalRollUserList)); }