/**
  * 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));
 }