Passed
Push — development ( 435767...020ac0 )
by Ivan
07:58
created

ProductConcreteEcondaQuery::prepareQuery()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 33
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 33
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\Econda\Persistence\Storage\Pdo\PostgreSql;
9
10
use SprykerEco\Zed\Econda\Persistence\Econda\AbstractEcondaPdoQuery;
11
12
class ProductConcreteEcondaQuery extends AbstractEcondaPdoQuery
13
{
14
    /**
15
     * @return void
16
     */
17
    protected function prepareQuery(): void
18
    {
19
        $sql = '
20
SELECT
21
 spy_product.id_product AS id_product,
22
 spy_product.sku AS sku,
23
 spy_product_localized_attributes.name AS name,
24
 spy_product.attributes AS attributes,
25
 spy_product_abstract.attributes AS abstract_attributes,
26
 spy_product_abstract.id_product_abstract AS id_product_abstract,
27
 spy_product.attributes AS concrete_attributes,
28
 spy_product_abstract_localized_attributes.attributes AS abstract_localized_attributes,
29
 spy_product_abstract_localized_attributes.meta_title AS meta_title,
30
 spy_product_abstract_localized_attributes.meta_keywords AS meta_keywords,
31
 spy_product_abstract_localized_attributes.meta_description AS meta_description,
32
 spy_product_localized_attributes.description AS concrete_description,
33
 spy_product_localized_attributes.attributes AS concrete_localized_attributes,
34
 spy_product_abstract_localized_attributes.description as abstract_description,
35
 spy_url.url AS url,
36
 (SELECT SUM(spy_stock_product.quantity)
37
   FROM spy_stock_product
38
   WHERE spy_stock_product.fk_product = spy_product.id_product) AS quantity
39
FROM spy_product
40
 INNER JOIN spy_product_abstract ON (spy_product_abstract.id_product_abstract = spy_product.fk_product_abstract)
41
 INNER JOIN spy_product_localized_attributes ON (spy_product_localized_attributes.fk_product = spy_product.id_product)
42
 INNER JOIN spy_locale ON (spy_locale.id_locale = :fk_locale_1 and spy_locale.id_locale = spy_product_localized_attributes.fk_locale)
43
 INNER JOIN spy_product_abstract_localized_attributes ON (spy_product_abstract_localized_attributes.fk_product_abstract = spy_product_abstract.id_product_abstract AND spy_product_abstract_localized_attributes.fk_locale = spy_locale.id_locale)
44
 LEFT JOIN spy_url ON (spy_product_abstract.id_product_abstract = spy_url.fk_resource_product_abstract AND spy_url.fk_locale = spy_locale.id_locale)
45
        ';
46
47
        $this->criteriaBuilder
48
            ->sql($sql)
49
            ->setParameter('fk_locale_1', $this->locale->getIdLocale());
50
    }
51
}
52