/** * updateUsers is for administrator direct from GridPanel * @param id, field, value */ function updateUsersAction() { $guid = $this->_getParam('guid') ? $this->_getParam('guid') : ''; $field = $this->_getParam('field') ? $this->_getParam('field') : ''; $value = $this->_getParam('value') ? $this->_getParam('value') : ''; $aclMan = Pandamp_Acl::manager(); $obj = new Pandamp_Crypt_Password(); $guidMan = new Pandamp_Core_Guid(); $tblUserDetail = new Pandamp_Modules_Identity_User_Model_UserDetail(); $tblUser = new Pandamp_Modules_Identity_User_Model_User(); $rowUser = $tblUser->find($guid)->current(); $rowUserDetailNew = $tblUserDetail->fetchNew(); $rowUserDetailNew->uid = $guid; $rowUserDetailNew->packageId = $rowUser->packageId; $rowUserDetailNew->promotionId = $rowUser->promotionId; $rowUserDetailNew->educationId = $rowUser->educationId; $rowUserDetailNew->expenseId = $rowUser->expenseId; $rowUserDetailNew->paymentId = $rowUser->paymentId; $rowUserDetailNew->businessTypeId = $rowUser->businessTypeId; $rowUserDetailNew->periodeId = $rowUser->periodeId; $rowUserDetailNew->activationDate = $rowUser->activationDate; $rowUserDetailNew->isEmailSent = $rowUser->isEmailSent; $rowUserDetailNew->isActive = $rowUser->isActive; switch ($field) { case 'packageId': // delete user group = trial from gacl $aclMan->deleteUser($rowUser->username); // add user to gacl $aReturn = $aclMan->getGroupData($value); $aclMan->addUser($rowUser->username, $aReturn[2]); $rowUser->packageId = $value; if ($value == 26 || $value == 27) { $rowUser->periodeId = 2; } // set to trial $result = $rowUser->save(); if ($result) { $rowUserDetailNew->save(); $this->view->success = true; $this->view->message = "[user:{$rowUser->username}] Added Packed Successfully"; } break; case 'periodeId': if ($value == 1) { $rowUser->activationDate = '0000-00-00 00:00:00'; } elseif ($value == 2) { if ($rowUser->packageId == 26 || $rowUser->packageId == 27) { $rowUser->activationDate = date("Y-m-d H:i:s"); // delete user group = trial from gacl $aclMan->deleteUser($rowUser->username); // add user to gacl $aclMan->addUser($rowUser->username, 'member_gratis'); } else { $this->view->success = false; $this->view->message = "Wrong packaged!!"; } } elseif ($value == 3) { $rowUser->activationDate = date("Y-m-d H:i:s"); // delete user group = trial from gacl $aclMan->deleteUser($rowUser->username); // add user to gacl $aReturn = $aclMan->getGroupData($rowUser->packageId); $aclMan->addUser($rowUser->username, $aReturn[2]); } elseif ($value == 4) { if ($rowUser->packageId == 26 || $rowUser->packageId == 27) { $rowUser->activationDate = date("Y-m-d H:i:s"); // delete user group = trial from gacl $aclMan->deleteUser($rowUser->username); // add user to gacl $aclMan->addUser($rowUser->username, 'member_gratis'); } else { $this->view->success = false; $this->view->message = "Wrong packaged!!"; } } // TODO :: should followed by changing the package after user do upgrade // elseif ($value == 5) // upgrade // { // $rowUserDetail->activationDate = date("Y-m-d H:i:s"); // } $rowUser->periodeId = $value; $result = $rowUser->save(); if ($result) { $rowUserDetailNew->save(); $this->view->success = true; $this->view->message = "[user:{$rowUser->username}] Update Successfully"; } break; case 'paymentId': $rowUser->paymentId = $value; $result = $rowUser->save(); if ($result) { $rowUserDetailNew->save(); $this->view->success = true; $this->view->message = "[user:{$rowUser->username}] Update Successfully"; } break; } }