class AvailabilityNotificationRepository extends EntityRepository

Class AvailabilityNotificationRepository is injected as empire_changed_price_plugin.availability_notifications_repository service. AvailabilityNotificationRepository is used for crud operation for entity.

Use this class to work with database.

Traits

Trait JQGridTrait

Constants

ALIAS

Alias for entity

USER_ALIAS

Alias for user entity

PRODUCT_ALIAS

Alias for product entity

ATTR_VAL_ALIAS

Alias for product attribute value entity

VAL_ALIAS

Alias for attribute value entity

SIMPLE_PRODUCT_ALIAS

Alias for simple product entity

Methods

jQGridJoinFields(QueryBuilder $qb, JQGridWrapper $jqGridWrapper)

All joins used in select.

jQGridGroupByFields(QueryBuilder $qb, JQGridWrapper $jqGridWrapper)

Should contain group by which jqgrid uses.

array
findAllForJQGRID(int $page, int $offset, array $sortParams, array $additionalParams, JQGridWrapper $jqGridWrapper)

JQGrid function

array
searchForJQGRID(array $searchParams, array $sortParams, bool $isCountSearch = false, array $additionalParams = array(), JQGridWrapper $jqGridWrapper = null)

JQGrid function

array
getAvailabilityListForUserBackend(int $userId)

Find all products that provided user is watching

array
getAvailabilityListForUser(int $userId)

Find all products that provided user is watching for frontend

editAvailabilityNotification(AvailabilityNotification $availabilityNotification)

Update existing Availability notification

addProductAvailabilityNotification(AvailabilityNotification $availabilityNotification)

Persist new Availability notification

bool
removeFromAvailabilityNotification(int $userId, int $productId, int $attrValId)

Remove Availability notification for provided user

deleteAvailabilityNotificationById(array $idsArray)

Remove Availability notification that match provided ids

bool
removeAvailabilityNotificationsById(array $ids)

Remove Availability notification that match provided ids

bool
setAvailabilityNotificationsToInformUser(array $idsArray)

Set should inform user to TRUE for all availability notifications that match provided ids

array
getAllAvailabilityNotifications()

Find all availability notifications that should send notification to user

mixed
getCountForJQGRIDCustom(array|null $searchParams, array|null $sortParams, true $isCountSearch, array|null $additionalParams, JQGridWrapper|null $jqGridWrapper)

This is custom count query because we need to count [USER/PRODUCT].id instead of self::ALIAS.id This is only used here, every other query should just count self::ALIAS.id

bool
removeProductFromAvailabilityList(int $userId, int $productId, int $attrValId)

Remove availability notification for provided product and user

mixed|null
findUnavailableProductQuantityInOrder(int $userId, int $productId, int|null $attrValId, int $orderId)

Find single availability notification for provided combination of order, product and user

array
findAvailabilityItemsForOrder(Order $order)

Find all availability notifications for provided order

bool
clearUnavailableQuantitiesForOrder(Order $order, int|null $userId = null, int|null $productId = null, int|null $attrValId = null)

Remove availability notification for provide order(user and product)

array
getAllAvailabilityNotificationForLoggedUser(User $user)

Find all availability notifications for provided user

bool
removeAvailabilityNotificationById(int $notificationId)

Find availability notification for provided id

array
getCurrentlyAvailableNotificationsForUser(User $user)

Find all availability notifications that should send notification to provided user

array
loadDataForOlap()

No description

Details

in JQGridTrait at line 27
jQGridJoinFields(QueryBuilder $qb, JQGridWrapper $jqGridWrapper)

All joins used in select.

Override in the repository class if needed. Should do nothing otherwise

Parameters

QueryBuilder $qb
JQGridWrapper $jqGridWrapper

in JQGridTrait at line 42
jQGridGroupByFields(QueryBuilder $qb, JQGridWrapper $jqGridWrapper)

Should contain group by which jqgrid uses.

Override in the repository class if needed. Should do nothing otherwise

Parameters

QueryBuilder $qb
JQGridWrapper $jqGridWrapper

in JQGridTrait at line 61
array findAllForJQGRID(int $page, int $offset, array $sortParams, array $additionalParams, JQGridWrapper $jqGridWrapper)

JQGrid function

Parameters

int $page
int $offset
array $sortParams
array $additionalParams
JQGridWrapper $jqGridWrapper

Return Value

array

in JQGridTrait at line 94
array searchForJQGRID(array $searchParams, array $sortParams, bool $isCountSearch = false, array $additionalParams = array(), JQGridWrapper $jqGridWrapper = null)

JQGrid function

Parameters

array $searchParams
array $sortParams
bool $isCountSearch
array $additionalParams
JQGridWrapper $jqGridWrapper

Return Value

array

at line 78
array getAvailabilityListForUserBackend(int $userId)

Find all products that provided user is watching

Parameters

int $userId

Return Value

array

at line 114
array getAvailabilityListForUser(int $userId)

Find all products that provided user is watching for frontend

Parameters

int $userId

Return Value

array

at line 157
AvailabilityNotification editAvailabilityNotification(AvailabilityNotification $availabilityNotification)

Update existing Availability notification

Parameters

AvailabilityNotification $availabilityNotification

Return Value

AvailabilityNotification

at line 176
AvailabilityNotification addProductAvailabilityNotification(AvailabilityNotification $availabilityNotification)

Persist new Availability notification

Parameters

AvailabilityNotification $availabilityNotification

Return Value

AvailabilityNotification

at line 197
bool removeFromAvailabilityNotification(int $userId, int $productId, int $attrValId)

Remove Availability notification for provided user

Parameters

int $userId
int $productId
int $attrValId

Return Value

bool

at line 230
deleteAvailabilityNotificationById(array $idsArray)

Remove Availability notification that match provided ids

Parameters

array $idsArray

at line 250
bool removeAvailabilityNotificationsById(array $ids)

Remove Availability notification that match provided ids

Parameters

array $ids

Return Value

bool

at line 271
bool setAvailabilityNotificationsToInformUser(array $idsArray)

Set should inform user to TRUE for all availability notifications that match provided ids

Parameters

array $idsArray

Return Value

bool

at line 293
array getAllAvailabilityNotifications()

Find all availability notifications that should send notification to user

Return Value

array

at line 325
mixed getCountForJQGRIDCustom(array|null $searchParams, array|null $sortParams, true $isCountSearch, array|null $additionalParams, JQGridWrapper|null $jqGridWrapper)

This is custom count query because we need to count [USER/PRODUCT].id instead of self::ALIAS.id This is only used here, every other query should just count self::ALIAS.id

Parameters

array|null $searchParams
array|null $sortParams
true $isCountSearch
array|null $additionalParams
JQGridWrapper|null $jqGridWrapper

Return Value

mixed

at line 365
bool removeProductFromAvailabilityList(int $userId, int $productId, int $attrValId)

Remove availability notification for provided product and user

Parameters

int $userId
int $productId
int $attrValId

Return Value

bool

at line 403
mixed|null findUnavailableProductQuantityInOrder(int $userId, int $productId, int|null $attrValId, int $orderId)

Find single availability notification for provided combination of order, product and user

Parameters

int $userId
int $productId
int|null $attrValId
int $orderId

Return Value

mixed|null

at line 434
array findAvailabilityItemsForOrder(Order $order)

Find all availability notifications for provided order

Parameters

Order $order

Return Value

array

at line 453
bool clearUnavailableQuantitiesForOrder(Order $order, int|null $userId = null, int|null $productId = null, int|null $attrValId = null)

Remove availability notification for provide order(user and product)

Parameters

Order $order
int|null $userId
int|null $productId
int|null $attrValId

Return Value

bool

at line 488
array getAllAvailabilityNotificationForLoggedUser(User $user)

Find all availability notifications for provided user

Parameters

User $user

Return Value

array

at line 508
bool removeAvailabilityNotificationById(int $notificationId)

Find availability notification for provided id

Parameters

int $notificationId

Return Value

bool

at line 528
array getCurrentlyAvailableNotificationsForUser(User $user)

Find all availability notifications that should send notification to provided user

Parameters

User $user

Return Value

array

at line 543
array loadDataForOlap()

Return Value

array