. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Classes\Select\Email\Where\ItemConverters; use Espo\Core\Select\Where\Item; use Espo\Core\Select\Where\ItemConverter; use Espo\Classes\Select\Email\Helpers\JoinHelper; use Espo\Entities\Email; use Espo\Entities\User; use Espo\ORM\Query\Part\WhereClause; use Espo\ORM\Query\Part\WhereItem as WhereClauseItem; use Espo\ORM\Query\SelectBuilder as QueryBuilder; class IsNotReadIsTrue implements ItemConverter { public function __construct(private User $user, private JoinHelper $joinHelper) {} public function convert(QueryBuilder $queryBuilder, Item $item): WhereClauseItem { $this->joinHelper->joinEmailUser($queryBuilder, $this->user->getId()); return WhereClause::fromRaw([ Email::ALIAS_INBOX . '.isRead' => false, 'OR' => [ 'sentById' => null, 'sentById!=' => $this->user->getId() ], ]); } }