|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
/** |
|
4
|
|
|
* This file is part of the Spryker Commerce OS. |
|
5
|
|
|
* For full license information, please view the LICENSE file that was distributed with this source code. |
|
6
|
|
|
*/ |
|
7
|
|
|
|
|
8
|
|
|
namespace Pyz\Zed\ExampleProductSalePage\Persistence; |
|
9
|
|
|
|
|
10
|
|
|
use Orm\Zed\Product\Persistence\SpyProductAbstractQuery; |
|
11
|
|
|
use Orm\Zed\ProductLabel\Persistence\SpyProductLabelProductAbstractQuery; |
|
12
|
|
|
use Orm\Zed\ProductLabel\Persistence\SpyProductLabelQuery; |
|
13
|
|
|
use Propel\Runtime\ActiveQuery\Criteria; |
|
14
|
|
|
use Propel\Runtime\ActiveQuery\Criterion\BasicModelCriterion; |
|
15
|
|
|
use Spryker\Zed\Kernel\Persistence\AbstractQueryContainer; |
|
16
|
|
|
|
|
17
|
|
|
/** |
|
18
|
|
|
* @method \Pyz\Zed\ExampleProductSalePage\Persistence\ExampleProductSalePagePersistenceFactory getFactory() |
|
19
|
|
|
*/ |
|
20
|
|
|
class ExampleProductSalePageQueryContainer extends AbstractQueryContainer implements ExampleProductSalePageQueryContainerInterface |
|
21
|
|
|
{ |
|
22
|
|
|
/** |
|
23
|
|
|
* @var string |
|
24
|
|
|
*/ |
|
25
|
|
|
protected const PRICE_TYPE_ORIGINAL = 'ORIGINAL'; |
|
26
|
|
|
|
|
27
|
|
|
/** |
|
28
|
|
|
* @var string |
|
29
|
|
|
*/ |
|
30
|
|
|
protected const PRICE_TYPE_DEFAULT = 'DEFAULT'; |
|
31
|
|
|
|
|
32
|
|
|
/** |
|
33
|
|
|
* @api |
|
34
|
|
|
* |
|
35
|
|
|
* @param string $labelName |
|
36
|
|
|
* |
|
37
|
|
|
* @return \Orm\Zed\ProductLabel\Persistence\SpyProductLabelQuery |
|
38
|
|
|
*/ |
|
39
|
|
|
public function queryProductLabelByName($labelName): SpyProductLabelQuery |
|
40
|
|
|
{ |
|
41
|
|
|
return $this->getFactory() |
|
|
|
|
|
|
42
|
|
|
->getProductLabelQueryContainer() |
|
43
|
|
|
->queryProductLabelByName($labelName); |
|
44
|
|
|
} |
|
45
|
|
|
|
|
46
|
|
|
/** |
|
47
|
|
|
* @api |
|
48
|
|
|
* |
|
49
|
|
|
* @param int $idProductLabel |
|
50
|
|
|
* |
|
51
|
|
|
* @return \Orm\Zed\ProductLabel\Persistence\SpyProductLabelProductAbstractQuery |
|
52
|
|
|
*/ |
|
53
|
|
|
public function queryRelationsBecomingInactive($idProductLabel): SpyProductLabelProductAbstractQuery |
|
54
|
|
|
{ |
|
55
|
|
|
/** @var \Orm\Zed\ProductLabel\Persistence\SpyProductLabelProductAbstractQuery $productLabelProductAbstractQuery */ |
|
56
|
|
|
$productLabelProductAbstractQuery = $this->getFactory() |
|
57
|
|
|
->getProductLabelQueryContainer() |
|
58
|
|
|
->queryProductAbstractRelationsByIdProductLabel($idProductLabel) |
|
59
|
|
|
->distinct() |
|
60
|
|
|
->useSpyProductAbstractQuery(null, Criteria::LEFT_JOIN) |
|
61
|
|
|
->usePriceProductQuery('priceProductOrigin', Criteria::LEFT_JOIN) |
|
62
|
|
|
->joinPriceType('priceTypeOrigin', Criteria::INNER_JOIN) |
|
63
|
|
|
->addJoinCondition( |
|
64
|
|
|
'priceTypeOrigin', |
|
65
|
|
|
'priceTypeOrigin.name = ?', |
|
66
|
|
|
static::PRICE_TYPE_ORIGINAL, |
|
67
|
|
|
) |
|
68
|
|
|
->usePriceProductStoreQuery('priceProductStoreOrigin', Criteria::LEFT_JOIN) |
|
69
|
|
|
->usePriceProductDefaultQuery('priceProductDefaultOriginal', Criteria::LEFT_JOIN) |
|
70
|
|
|
->endUse() |
|
71
|
|
|
->endUse() |
|
72
|
|
|
->endUse() |
|
73
|
|
|
->usePriceProductQuery('priceProductDefault', Criteria::LEFT_JOIN) |
|
74
|
|
|
->joinPriceType('priceTypeDefault', Criteria::INNER_JOIN) |
|
75
|
|
|
->addJoinCondition( |
|
76
|
|
|
'priceTypeDefault', |
|
77
|
|
|
'priceTypeDefault.name = ?', |
|
78
|
|
|
static::PRICE_TYPE_DEFAULT, |
|
79
|
|
|
) |
|
80
|
|
|
->usePriceProductStoreQuery('priceProductStoreDefault', Criteria::LEFT_JOIN) |
|
81
|
|
|
->usePriceProductDefaultQuery('priceProductDefaultDefault', Criteria::LEFT_JOIN) |
|
82
|
|
|
->endUse() |
|
83
|
|
|
->endUse() |
|
84
|
|
|
->endUse() |
|
85
|
|
|
->endUse() |
|
86
|
|
|
->addAnd('priceProductDefaultOriginal.id_price_product_default', null, Criteria::ISNOTNULL) |
|
87
|
|
|
->addAnd('priceProductDefaultDefault.id_price_product_default', null, Criteria::ISNOTNULL) |
|
88
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.fk_store = priceProductStoreDefault.fk_store') |
|
89
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.fk_currency = priceProductStoreDefault.fk_currency'); |
|
90
|
|
|
|
|
91
|
|
|
$orCriterion = $this->getBasicModelCriterion( |
|
92
|
|
|
$productLabelProductAbstractQuery, |
|
93
|
|
|
'priceProductStoreOrigin.gross_price < priceProductStoreDefault.gross_price', |
|
94
|
|
|
'priceProductStoreOrigin.gross_price', |
|
95
|
|
|
); |
|
96
|
|
|
$orCriterion->addOr($productLabelProductAbstractQuery->getNewCriterion('priceProductStoreOrigin.gross_price', null, Criteria::ISNULL)); |
|
97
|
|
|
$orCriterion->addOr($productLabelProductAbstractQuery->getNewCriterion('priceProductStoreOrigin.net_price', null, Criteria::ISNULL)); |
|
98
|
|
|
$orCriterion->addOr( |
|
99
|
|
|
$this->getBasicModelCriterion( |
|
100
|
|
|
$productLabelProductAbstractQuery, |
|
101
|
|
|
'priceProductStoreOrigin.net_price < priceProductStoreDefault.net_price', |
|
102
|
|
|
'priceProductStoreOrigin.net_price', |
|
103
|
|
|
), |
|
104
|
|
|
); |
|
105
|
|
|
$orCriterion->addOr($productLabelProductAbstractQuery->getNewCriterion('priceProductStoreDefault.gross_price', null, Criteria::ISNULL)); |
|
106
|
|
|
$orCriterion->addOr($productLabelProductAbstractQuery->getNewCriterion('priceProductStoreDefault.net_price', null, Criteria::ISNULL)); |
|
107
|
|
|
$productLabelProductAbstractQuery->addAnd($orCriterion); |
|
108
|
|
|
|
|
109
|
|
|
return $productLabelProductAbstractQuery; |
|
110
|
|
|
} |
|
111
|
|
|
|
|
112
|
|
|
/** |
|
113
|
|
|
* @api |
|
114
|
|
|
* |
|
115
|
|
|
* @param int $idProductLabel |
|
116
|
|
|
* |
|
117
|
|
|
* @return \Orm\Zed\Product\Persistence\SpyProductAbstractQuery |
|
118
|
|
|
*/ |
|
119
|
|
|
public function queryRelationsBecomingActive($idProductLabel): SpyProductAbstractQuery |
|
120
|
|
|
{ |
|
121
|
|
|
/** @var \Orm\Zed\Product\Persistence\SpyProductAbstractQuery $productAbstractQuery */ |
|
122
|
|
|
$productAbstractQuery = $this->getFactory() |
|
123
|
|
|
->getProductQueryContainer() |
|
124
|
|
|
->queryProductAbstract() |
|
125
|
|
|
->distinct() |
|
126
|
|
|
->usePriceProductQuery('priceProductOrigin', Criteria::LEFT_JOIN) |
|
127
|
|
|
->joinPriceType('priceTypeOrigin', Criteria::INNER_JOIN) |
|
128
|
|
|
->addJoinCondition( |
|
129
|
|
|
'priceTypeOrigin', |
|
130
|
|
|
'priceTypeOrigin.name = ?', |
|
131
|
|
|
static::PRICE_TYPE_ORIGINAL, |
|
132
|
|
|
) |
|
133
|
|
|
->usePriceProductStoreQuery('priceProductStoreOrigin', Criteria::LEFT_JOIN) |
|
134
|
|
|
->usePriceProductDefaultQuery('priceProductDefaultOriginal', Criteria::LEFT_JOIN) |
|
135
|
|
|
->endUse() |
|
136
|
|
|
->endUse() |
|
137
|
|
|
->endUse() |
|
138
|
|
|
->usePriceProductQuery('priceProductDefault', Criteria::LEFT_JOIN) |
|
139
|
|
|
->joinPriceType('priceTypeDefault', Criteria::INNER_JOIN) |
|
140
|
|
|
->addJoinCondition( |
|
141
|
|
|
'priceTypeDefault', |
|
142
|
|
|
'priceTypeDefault.name = ?', |
|
143
|
|
|
static::PRICE_TYPE_DEFAULT, |
|
144
|
|
|
) |
|
145
|
|
|
->usePriceProductStoreQuery('priceProductStoreDefault', Criteria::LEFT_JOIN) |
|
146
|
|
|
->usePriceProductDefaultQuery('priceProductDefaultDefault', Criteria::LEFT_JOIN) |
|
147
|
|
|
->endUse() |
|
148
|
|
|
->endUse() |
|
149
|
|
|
->endUse() |
|
150
|
|
|
->useSpyProductLabelProductAbstractQuery('rel', Criteria::LEFT_JOIN) |
|
151
|
|
|
->filterByFkProductLabel(null, Criteria::ISNULL) |
|
152
|
|
|
->endUse() |
|
153
|
|
|
->addJoinCondition('rel', sprintf('rel.fk_product_label = %d', $idProductLabel)) |
|
154
|
|
|
->addAnd('rel.fk_product_label', null, Criteria::ISNULL) |
|
155
|
|
|
->addAnd('priceProductDefaultOriginal.id_price_product_default', null, Criteria::ISNOTNULL) |
|
156
|
|
|
->addAnd('priceProductDefaultDefault.id_price_product_default', null, Criteria::ISNOTNULL) |
|
157
|
|
|
->addAnd('priceProductStoreOrigin.gross_price', null, Criteria::ISNOTNULL) |
|
158
|
|
|
->addAnd('priceProductStoreOrigin.net_price', null, Criteria::ISNOTNULL) |
|
159
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.fk_store = priceProductStoreDefault.fk_store') |
|
160
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.fk_currency = priceProductStoreDefault.fk_currency') |
|
161
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.gross_price > priceProductStoreDefault.gross_price') |
|
162
|
|
|
->addJoinCondition('priceProductStoreDefault', 'priceProductStoreOrigin.net_price > priceProductStoreDefault.net_price'); |
|
163
|
|
|
|
|
164
|
|
|
return $productAbstractQuery; |
|
165
|
|
|
} |
|
166
|
|
|
|
|
167
|
|
|
/** |
|
168
|
|
|
* @param \Propel\Runtime\ActiveQuery\Criteria $criteria |
|
169
|
|
|
* @param string $clause |
|
170
|
|
|
* @param \Propel\Runtime\Map\ColumnMap|string $column |
|
171
|
|
|
* |
|
172
|
|
|
* @return \Propel\Runtime\ActiveQuery\Criterion\BasicModelCriterion |
|
173
|
|
|
*/ |
|
174
|
|
|
protected function getBasicModelCriterion(Criteria $criteria, string $clause, $column): BasicModelCriterion |
|
175
|
|
|
{ |
|
176
|
|
|
return new BasicModelCriterion($criteria, $clause, $column); |
|
177
|
|
|
} |
|
178
|
|
|
} |
|
179
|
|
|
|
This function has been deprecated. The supplier of the function has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.