/** * @param null|string $username */ public function __construct($serviceLocator) { parent::__construct('userManageFilter'); $this->setServiceLocator($serviceLocator); $this->setAttribute('method', 'GET'); $filter = $this->getInputFilter(); $companyId = $this->addElementCompany('companyId', null, ['required' => false]); $departmentId = new Select('departmentId'); $departmentId->setValueOptions(['' => '- Phòng ban -']); $this->add($departmentId); $this->loadDepartments($departmentId, $companyId); $filter->add(array('name' => 'departmentId', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $id = new Text('id'); $id->setAttributes(['maxlength' => 255, 'placeholder' => 'ID']); $this->add($id); $filter->add(array('name' => 'id', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $username = new Text('username'); $username->setAttributes(['maxlength' => 255, 'placeholder' => 'Họ tên']); $this->add($username); $filter->add(array('name' => 'username', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $email = new Text('email'); $email->setAttributes(['maxlength' => 255, 'placeholder' => 'Email']); $this->add($email); $filter->add(array('name' => 'email', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); //phân quyền riêng $hasPrivateRole = new Select('hasPrivateRole'); $hasPrivateRole->setValueOptions(array('' => '- Phân quyền riêng -', '1' => 'Có ', '-1' => 'Không ')); $this->add($hasPrivateRole); $filter->add(array('name' => 'hasPrivateRole', 'required' => false)); $user = new \User\Model\User(); $roleValues = array('' => '- Quyền hạn -') + $user->getRoleDisplays(); unset($roleValues[$user::ROLE_SUPERADMIN]); $role = new Select('role'); $role->setValueOptions($roleValues); $this->add($role); $filter->add(array('name' => 'role', 'required' => false, 'filters' => array(array('name' => 'StringTrim'), array('name' => 'Digits')))); $roleCompany = new Select('roleCompany'); $roleCompany->setValueOptions(['' => '- Nhóm quyền -']); $this->add($roleCompany); $this->loadRole($roleCompany, $companyId); $filter->add(array('name' => 'roleCompany', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $active = new Select('active'); $active->setValueOptions(array('' => '- Kích hoạt', '1' => 'Đã kích hoạt', '-1' => 'Chưa kích hoạt')); $this->add($active); $filter->add(array('name' => 'active', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $locked = new Select('locked'); $locked->setValueOptions(array('' => '- Khóa -', '1' => 'Đã khóa', '-1' => 'Chưa khóa')); $this->add($locked); $filter->add(array('name' => 'locked', 'required' => false, 'filters' => array(array('name' => 'StringTrim')))); $this->add(array('name' => 'submit', 'options' => array(), 'attributes' => array('type' => 'submit', 'value' => 'Lọc', 'id' => 'btnFilterCrmContact', 'class' => 'btn btn-primary'))); }
/** * @author KienNN * @param \Accounting\Model\Transaction $item * @param unknown $options */ public function searchCrmContract($item, $options) { $select = $this->getDbSql()->select(['t' => self::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 't.itemId=c.id', []); $select->where(['t.itemType' => \Accounting\Model\Transaction::ITEM_TYPE_CRM_CONTRACT]); if ($item->getCompanyId()) { $select->where(['t.companyId' => $item->getCompanyId()]); } if ($item->getOption('companyIds')) { $select->where(['t.companyId' => $item->getOption('companyIds')]); } if ($item->getOption('userIds')) { $select->join(['lu' => \Crm\Model\Lead\UserMapper::TABLE_NAME], new Expression('lu.accountId=c.accountId OR lu.leadId=c.leadId'), []); $select->where(['lu.userId' => $item->getOption('userIds')]); } if ($item->getId()) { $select->where(['t.id' => $item->getId()]); } if ($item->getStatus()) { $select->where(['t.status' => $item->getStatus()]); } if ($item->getType()) { $select->where(['t.type' => $item->getType()]); } if ($item->getCreatedById()) { $select->where(['t.createdById' => $item->getCreatedById()]); } if ($item->getOption('departmentId')) { $select->where(['c.departmentId' => $item->getOption('departmentId')]); } if ($item->getOption('contractId')) { $select->where(['t.itemId' => $item->getOption('contractId')]); } if ($item->getOption('productId')) { $select->join(['cp' => \Crm\Model\Contract\ProductMapper::TABLE_NAME], 'cp.contractId=t.itemId', []); $select->where(['cp.productId' => $item->getOption('productId')]); } if ($item->getOption('accountingType')) { $select->join(['i' => \Accounting\Model\Transaction\ItemMapper::TABLE_NAME], 'i.transactionId=t.id', []); $condition = new Expression('i.creditAccountId=ac.id OR i.debitAccountId=ac.id'); $select->join(['ac' => \Accounting\Model\AccountMapper::TABLE_NAME], $condition, []); $select->where(['ac.type' => $item->getOption('accountingType')]); } if ($item->getOption('accountId')) { $select->where(['c.accountId' => $item->getOption('accountId')]); } if ($item->getOption('leadId')) { $select->where(['c.leadId' => $item->getOption('leadId')]); } if ($item->getOption('fromApplyDate')) { $select->where(['t.applyDate >= ?' => $item->getOption('fromApplyDate')]); $select->where(['t.accountingById IS NOT NULL']); } if ($item->getOption('toApplyDate')) { $select->where(['t.applyDate <= ?' => $item->getOption('toApplyDate')]); $select->where(['t.accountingById IS NOT NULL']); } if ($item->getOption('fromCreatedDate')) { $select->where(['t.createdDate >= ?' => $item->getOption('fromCreatedDate')]); } if ($item->getOption('toCreatedDate')) { $select->where(['t.createdDate <= ?' => $item->getOption('toCreatedDate')]); } if ($item->getCreatedById()) { $select->where(['t.createdById' => $item->getCreatedById()]); } if ($item->getAccountingById()) { $select->where(['t.accountingById' => $item->getAccountingById()]); } if ($item->getOption('commisstionToEmployeeId')) { $select->join(['com' => \Crm\Model\Contract\CommissionMapper::TABLE_NAME], 't.itemId=com.contractId', []); $select->where(['com.employeeId' => $item->getOption('commisstionToEmployeeId')]); } $select->group(['t.id']); $select->order([new Expression('IFNULL(t.applyDate, t.createdDate) DESC'), 't.id DESC']); $paginator = $this->preparePaginator($select, $options, new \Accounting\Model\Transaction()); $contractIds = []; $userIds = []; $transactionIds = []; foreach ($paginator as $transaction) { if ($transaction->getItemId()) { $contractIds[$transaction->getItemId()] = $transaction->getItemId(); } if ($transaction->getCreatedById()) { $userIds[$transaction->getCreatedById()] = $transaction->getCreatedById(); } if ($transaction->getApprovedById()) { $userIds[$transaction->getApprovedById()] = $transaction->getApprovedById(); } if ($transaction->getAccountingById()) { $userIds[$transaction->getAccountingById()] = $transaction->getAccountingById(); } if ($transaction->getPaymentById()) { $userIds[$transaction->getPaymentById()] = $transaction->getPaymentById(); } $transactionIds[$transaction->getId()] = $transaction->getId(); } $crmAccounts = []; $crmLeads = []; $contractValues = []; $contractPaids = []; if (count($contractIds)) { if ($item->getOption('loadCustomer')) { $select = $this->getDbSql()->select(['a' => \Crm\Model\AccountMapper::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 'c.accountId=a.id', ['contractId' => 'id']); $select->where(['c.id' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $account = new \Crm\Model\Account(); $account->exchangeArray($row); $crmAccounts[$row['contractId']] = $account; } } $select = $this->getDbSql()->select(['l' => \Crm\Model\LeadMapper::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 'c.leadId=l.id', ['contractId' => 'id']); $select->where(['c.id' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $lead = new \Crm\Model\Lead(); $lead->exchangeArray($row); $crmLeads[$row['contractId']] = $lead; } } } if ($item->getOption('loadContractValue')) { $select = $this->getDbSql()->select(['p' => \Crm\Model\Contract\ProductMapper::TABLE_NAME]); $select->where(['contractId' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $product = new \Crm\Model\Contract\Product($row); $value = $product->calculateValue(); if (isset($contractValues[$product->getContractId()])) { $contractValues[$product->getContractId()] += $value; } else { $contractValues[$product->getContractId()] = $value; } } } } if ($item->getOption('loadContractPaid')) { $select = $this->getDbSql()->select(['t' => self::TABLE_NAME]); $select->where(['itemType' => \Accounting\Model\Transaction::ITEM_TYPE_CRM_CONTRACT]); $select->where(['itemId' => $contractIds]); $select->where(['status' => [\Accounting\Model\Transaction::STATUS_ACCOUNTING, \Accounting\Model\Transaction::STATUS_PAYMENT]]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { if (isset($contractPaids[$row['itemId']])) { $contractPaids[$row['itemId']] += $row['amount']; } else { $contractPaids[$row['itemId']] = $row['amount']; } } } } } $accountingAccounts = []; if ($item->getOption('loadAccountingAccount') && count($transactionIds)) { $select = $this->getDbSql()->select(['a' => \Accounting\Model\AccountMapper::TABLE_NAME]); $select->join(['i' => \Accounting\Model\Transaction\ItemMapper::TABLE_NAME], new Expression('i.creditAccountId=a.id OR i.debitAccountId=a.id'), ['transactionId' => 'transactionId']); $select->where(['i.transactionId' => $transactionIds]); $select->group(['i.transactionId']); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $accountingAccount = new \Accounting\Model\Account(); $accountingAccount->exchangeArray($row); $accountingAccounts[$row['transactionId']] = $accountingAccount; } } } $users = []; if ($item->getOption('loadUsers') && count($userIds)) { $select = $this->getDbSql()->select(['u' => \User\Model\UserMapper::TABLE_NAME]); $select->where(['id' => $userIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $user = new \User\Model\User(); $user->exchangeArray($row); $users[$user->getId()] = $user; } } } if ($paginator->getCurrentModels()) { foreach ($paginator->getCurrentModels() as $transaction) { if ($transaction->getItemId() && isset($crmAccounts[$transaction->getItemId()])) { $transaction->addOption('crmAccount', $crmAccounts[$transaction->getItemId()]); } if ($transaction->getItemId() && isset($crmLeads[$transaction->getItemId()])) { $transaction->addOption('crmLead', $crmLeads[$transaction->getItemId()]); } if (isset($accountingAccounts[$transaction->getId()])) { $transaction->addOption('accountingAccount', $accountingAccounts[$transaction->getId()]); } if ($transaction->getCreatedById() && isset($users[$transaction->getCreatedById()])) { $transaction->addOption('createdBy', $users[$transaction->getCreatedById()]); } if ($transaction->getAccountingById() && isset($users[$transaction->getAccountingById()])) { $transaction->addOption('accountingBy', $users[$transaction->getAccountingById()]); } if ($transaction->getPaymentById() && isset($users[$transaction->getPaymentById()])) { $transaction->addOption('paymentBy', $users[$transaction->getCreatedById()]); } if (isset($contractValues[$transaction->getItemId()])) { $transaction->addOption('contractValue', $contractValues[$transaction->getItemId()]); } if (isset($contractPaids[$transaction->getItemId()])) { $transaction->addOption('contractPaid', $contractPaids[$transaction->getItemId()]); } } } return $paginator; }
public function getUsers($options = null) { $mapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); $user = new \User\Model\User(); if ($options['id']) { $user->setId($options['id']); } return $mapper->fetchAll($user); }
/** * Hàm này đăng nhập người dùng dựa trên 1 SignInToken * * @param string $token SignInToken được truyền sang từ id.vatgia.com */ function signInByToken($token) { $config = $this->getServiceLocator()->get('Config'); $secretKey = $config['sso']['id.vatgia.com_IKI']['secretKey']; $publicKey = $config['oauths']['id.vatgia.com']['publicKey']; $s = new SignInToken(array(), $secretKey, $publicKey); if (SSOHelper::isRefererValid() && ($signinErr = $s->decrypt($token)) == SignInToken::ERROR_NONE) { // Header này chỉ định dành cho IE, để cho phép cross domain cookie header('P3P: CP="CAO PSA OUR"'); $data = $s->getData(); // dữ liệu của SignInToken $info = $data['info']; // Vì id.vatgia.com chỉ cung cấp Họ Đệm và Tên, bạn có thể lấy tên đầy đủ như dưới đây $info['name'] = trim($info['first_name'] . ' ' . $info['last_name']); /* @var $userMapper \User\Model\UserMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); if (($user = $userMapper->get(null, null, $info['email'])) == null) { $user = new \User\Model\User(); $user->setEmail($info['email']); $user->setFullName($info['name']); $user->setAddress($info['address']); $user->setBirthday($info['dob']); $user->setMobile($info['phone']); $user->setActive(1); $user->setRegisteredDate(date('Y-m-d H:i:s')); $userMapper->save($user); } // TODO lưu lại thông tin OAuth2 Access Token dùng để xác thực tài khoản trước khi lấy thông tin bảo kim... //$this->setState('oauth2_access_token', $data['oauth2_access_token']); // hoặc : $_SESSION['oauth2_access_token'] = $data['oauth2_access_token']; // Lưu lại gsn vào cookie SSOHelper::saveGSN($data['gsn'], $data['expired_time']); return $user; } else { echo $signinErr; } return null; }
/** * Création d'un objet user * * $data == $_POST * $data == $_GET */ public function getUser(array $data) { $user = new \User\Model\User(); $user->setEmail($data['email'])->setFirstname($data['firstname'])->setLastname($data['lastname'])->setUsername($data['username'])->setPassword($data['password'])->setIsActive($data['isActive'])->setBirthdate(new \DateTime($data['birthdate'])); return $user; }
public function isValid() { $isVaild = parent::isValid(); if ($isVaild) { $user = new \User\Model\User(); $user->exchangeArray($this->getData()); $userMapper = $this->getServiceLocator()->get('\\User\\Model\\UserMapper'); if ($userMapper->isExisted($user)) { $this->get('username')->setMessages(['Tên tài khoản hoặc email này đã được sử dụng']); $isVaild = false; } } return $isVaild; }
public function recreatepasswordAction() { list($officeAdapter, $officeSql) = $this->createOfficeAdapter(); $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); $dbSql = $this->getServiceLocator()->get('dbSql'); $select = $dbSql->select(['u' => \User\Model\UserMapper::TABLE_NAME]); $select->where(['createdById' => 1]); $select->where(['oneofficeId IS NOT NULL']); $select->where(['salt IS NULL']); $paginatorAdapter = new \Zend\Paginator\Adapter\DbSelect($select, $dbAdapter); $paginator = new \Zend\Paginator\Paginator($paginatorAdapter); $paginator->setItemCountPerPage(50); $page = $this->getRequest()->getQuery('page', 1); $totalUpdate = $this->getRequest()->getQuery('totalUpdate', 0); $paginator->setCurrentPageNumber($page); $userMapper = $this->getServiceLocator()->get('\\User\\Model\\UserMapper'); foreach ($paginator as $row) { $row = (array) $row; $user = new \User\Model\User(); $user->exchangeArray($row); $user->setSalt($user->generateSalt()); $user->setPassword($user->createPassword('vatgia.com')); $select = $officeSql->select(['u' => 'users']); $select->where(['ID' => $user->getOneofficeId()]); $select->where(['is_deleted' => 'no']); $check = $officeAdapter->query($officeSql->buildSqlString($select), $officeAdapter::QUERY_MODE_EXECUTE); if ($check->count()) { $user->setLocked(null); } else { $user->setLocked(1); } $userMapper->save($user); $totalUpdate++; } $this->getViewModel()->setTerminal(true); $this->getViewModel()->setVariable('paginator', $paginator); $this->getViewModel()->setVariable('page', $page); $this->getViewModel()->setVariable('totalPages', $paginator->count() + 1); $this->getViewModel()->setVariable('totalUpdate', $totalUpdate); if ($paginator->count()) { $this->getViewModel()->setVariable('redirectUri', Uri::build('/system/tool/recreatepassword', ['page' => $page + 1, 'totalUpdate' => $totalUpdate])); } return $this->getViewModel(); }
public function isValid() { $isVaild = parent::isValid(); if ($isVaild) { $data = parent::getData(); if ($data['password']) { if ($data['password'] != $data['rePassword']) { $this->get('rePassword')->setMessages(['Password nhập lại phải giống password']); $isVaild = false; } } $userMapper = $this->getServiceLocator()->get('\\User\\Model\\UserMapper'); if ($data['username']) { $user = new \User\Model\User(); $user->setUsername($data['username']); $user->setId($data['id']); if ($userMapper->isExistedUserName($user)) { $this->get('username')->setMessages(['Tên tài khoản này đã được sử dụng']); $isVaild = false; } } if ($data['email']) { $user = new \User\Model\User(); $user->setEmail($data['email']); $user->setId($data['id']); if ($userMapper->isExistedEmail($user)) { $this->get('email')->setMessages(['email này đã được sử dụng']); $isVaild = false; } } } return $isVaild; }
/** * @author KienNN */ public function getCompanyRole() { if ($this->companyRole) { return $this->companyRole; } $result = $this->getRoleName(); $user = new \User\Model\User(); if ($this->getRoleName() && !in_array($this->getRoleName(), array($user->getRoleName(\User\Model\User::ROLE_ADMIN), $user->getRoleName(\User\Model\User::ROLE_SUPERADMIN), $user->getRoleName(\User\Model\User::ROLE_GUEST)))) { } $this->companyRole = $result; return $this->companyRole; }