protected function beforeSave(Entity $entity, array $options) { parent::beforeSave($entity, $options); if ($entity->isNew()) { $userName = $entity->get('userName'); if (empty($userName)) { throw new Error(); } $user = $this->where(array('userName' => $userName))->findOne(); if ($user) { throw new Error(); } } else { if ($entity->isFieldChanged('userName')) { $userName = $entity->get('userName'); if (empty($userName)) { throw new Error(); } $user = $this->where(array('userName' => $userName, 'id!=' => $entity->id))->findOne(); if ($user) { throw new Error(); } } } }
protected function beforeSave(Entity $entity, array $options) { parent::beforeSave($entity, $options); if ($entity->isFieldChanged('status')) { if ($entity->get('status') == 'Completed') { $entity->set('dateCompleted', date('Y-m-d H:i:s')); } else { $entity->set('dateCompleted', null); } } if ($entity->has('dateStartDate')) { $dateStartDate = $entity->get('dateStartDate'); if (!empty($dateStartDate)) { $dateStart = $dateStartDate . ' 00:00:00'; $dateStart = $this->convertDateTimeToDefaultTimezone($dateStart); $entity->set('dateStart', $dateStart); } else { $entity->set('dateStartDate', null); } } if ($entity->has('dateEndDate')) { $dateEndDate = $entity->get('dateEndDate'); if (!empty($dateEndDate)) { $dateEnd = $dateEndDate . ' 00:00:00'; $dateEnd = $this->convertDateTimeToDefaultTimezone($dateEnd); $entity->set('dateEnd', $dateEnd); } else { $entity->set('dateEndDate', null); } } $parentId = $entity->get('parentId'); $parentType = $entity->get('parentType'); if (!empty($parentId) || !empty($parentType)) { $parent = $this->getEntityManager()->getEntity($parentType, $parentId); if (!empty($parent)) { $accountId = null; if ($parent->getEntityType() == 'Account') { $accountId = $parent->id; } else { if ($parent->get('accountId')) { $accountId = $parent->get('accountId'); } else { if ($parent->getEntityType() == 'Lead') { if ($parent->get('status') == 'Converted') { if ($parent->get('createdAccountId')) { $accountId = $parent->get('createdAccountId'); } } } } } if (!empty($accountId)) { $entity->set('accountId', $accountId); } } } }
protected function beforeSave(Entity $entity, array $options) { parent::beforeSave($entity, $options); $parentId = $entity->get('parentId'); $parentType = $entity->get('parentType'); if (!empty($parentId) || !empty($parentType)) { $parent = $this->getEntityManager()->getEntity($parentType, $parentId); if (!empty($parent)) { if ($parent->getEntityType() == 'Account') { $accountId = $parent->id; } else { if ($parent->has('accountId')) { $accountId = $parent->get('accountId'); } } if (!empty($accountId)) { $entity->set('accountId', $accountId); } } } $assignedUserId = $entity->get('assignedUserId'); if ($assignedUserId && $entity->has('usersIds')) { $usersIds = $entity->get('usersIds'); if (!is_array($usersIds)) { $usersIds = array(); } if (!in_array($assignedUserId, $usersIds)) { $usersIds[] = $assignedUserId; $entity->set('usersIds', $usersIds); $hash = $entity->get('usersNames'); if ($hash instanceof \StdClass) { $hash->{$assignedUserId} = $entity->get('assignedUserName'); $entity->set('usersNames', $hash); } } if ($entity->isNew()) { $currentUserId = $this->getEntityManager()->getUser()->id; if (in_array($currentUserId, $usersIds)) { $usersColumns = $entity->get('usersColumns'); if (empty($usersColumns)) { $usersColumns = new \StdClass(); } if ($usersColumns instanceof \StdClass) { if (!$usersColumns->{$currentUserId} instanceof \StdClass) { $usersColumns->{$currentUserId} = new \StdClass(); } if (empty($usersColumns->{$currentUserId}->status)) { $usersColumns->{$currentUserId}->status = 'Accepted'; } } } } } }
protected function beforeSave(Entity $entity, array $options) { parent::beforeSave($entity, $options); if ($entity->isNew()) { $userName = $entity->get('userName'); if (empty($userName)) { throw new Error(); } $user = $this->where(array('userName' => $userName))->findOne(); if ($user) { throw new Error(); } } else { if ($entity->isFieldChanged('userName')) { $userName = $entity->get('userName'); if (empty($userName)) { throw new Error(); } $user = $this->where(array('userName' => $userName, 'id!=' => $entity->id))->findOne(); if ($user) { throw new Error(); } } } if ($entity->has('isAdmin') && $entity->get('isAdmin')) { $entity->set('isPortalUser', false); $entity->set('portalRolesIds', []); $entity->set('portalRolesNames', (object) []); $entity->set('portalsIds', []); $entity->set('portalsNames', (object) []); } if ($entity->has('isPortalUser') && $entity->get('isPortalUser')) { $entity->set('isAdmin', false); $entity->set('rolesIds', []); $entity->set('rolesNames', (object) []); $entity->set('teamsIds', []); $entity->set('teamsNames', (object) []); $entity->set('defaultTeamId', null); $entity->set('defaultTeamName', null); } }
protected function beforeSave(Entity $entity) { parent::beforeSave($entity); $parentId = $entity->get('parentId'); $parentType = $entity->get('parentType'); if (!empty($parentId) || !empty($parentType)) { $parent = $this->getEntityManager()->getEntity($parentType, $parentId); if (!empty($parent)) { if ($parent->getEntityName() == 'Account') { $accountId = $parent->id; } else { if ($parent->has('accountId')) { $accountId = $parent->get('accountId'); } } if (!empty($accountId)) { $entity->set('accountId', $accountId); } } } }
protected function beforeSave(Entity $entity) { $eaRepositoty = $this->getEntityManager()->getRepository('EmailAddress'); $from = trim($entity->get('from')); if (!empty($from)) { $ids = $eaRepositoty->getIds(array($from)); if (!empty($ids)) { $entity->set('fromEmailAddressId', $ids[0]); } } else { $entity->set('fromEmailAddressId', null); } $this->prepareAddressess($entity, 'to'); $this->prepareAddressess($entity, 'cc'); $this->prepareAddressess($entity, 'bcc'); parent::beforeSave($entity); $parentId = $entity->get('parentId'); $parentType = $entity->get('parentType'); if (!empty($parentId) || !empty($parentType)) { $parent = $this->getEntityManager()->getEntity($parentType, $parentId); if (!empty($parent)) { if ($parent->getEntityName() == 'Account') { $accountId = $parent->id; } else { if ($parent->has('accountId')) { $accountId = $parent->get('accountId'); } } if (!empty($accountId)) { $entity->set('accountId', $accountId); } } } else { // TODO find account by from address } }
protected function beforeSave(Entity $entity, array $options) { $eaRepositoty = $this->getEntityManager()->getRepository('EmailAddress'); if ($entity->has('attachmentsIds')) { $attachmentsIds = $entity->get('attachmentsIds'); if (!empty($attachmentsIds)) { $entity->set('hasAttachment', true); } } if ($entity->has('from') || $entity->has('to') || $entity->has('cc') || $entity->has('bcc') || $entity->has('replyTo')) { if (!$entity->has('usersIds')) { $entity->loadLinkMultipleField('users'); } if ($entity->has('from')) { $from = trim($entity->get('from')); if (!empty($from)) { $ids = $eaRepositoty->getIds(array($from)); if (!empty($ids)) { $entity->set('fromEmailAddressId', $ids[0]); $this->setUsersIdsByEmailAddressId($entity, $ids[0]); } } else { $entity->set('fromEmailAddressId', null); } } if ($entity->has('to')) { $this->prepareAddressess($entity, 'to'); } if ($entity->has('cc')) { $this->prepareAddressess($entity, 'cc'); } if ($entity->has('bcc')) { $this->prepareAddressess($entity, 'bcc'); } if ($entity->has('replyTo')) { $this->prepareAddressess($entity, 'replyTo'); } $usersIds = $entity->get('usersIds'); $assignedUserId = $entity->get('assignedUserId'); if (!empty($assignedUserId) && !in_array($assignedUserId, $usersIds)) { $usersIds[] = $assignedUserId; } $entity->set('usersIds', $usersIds); } parent::beforeSave($entity, $options); $parentId = $entity->get('parentId'); $parentType = $entity->get('parentType'); if (!empty($parentId) || !empty($parentType)) { $parent = $this->getEntityManager()->getEntity($parentType, $parentId); if (!empty($parent)) { if ($parent->getEntityType() == 'Account') { $accountId = $parent->id; } else { if ($parent->has('accountId')) { $accountId = $parent->get('accountId'); } } if (!empty($accountId)) { $account = $this->getEntityManager()->getEntity('Account', $accountId); if ($account) { $entity->set('accountId', $accountId); $entity->set('accountName', $account->get('name')); } } } } }