update
This commit is contained in:
@@ -9,7 +9,7 @@ use Throwable;
|
||||
|
||||
final class OrdersRepository
|
||||
{
|
||||
private ?bool $supportsMappedMedia = null;
|
||||
private static ?bool $supportsMappedMedia = null;
|
||||
|
||||
public function __construct(private readonly PDO $pdo)
|
||||
{
|
||||
@@ -158,13 +158,25 @@ final class OrdersRepository
|
||||
a.city AS buyer_city,
|
||||
o.external_carrier_id,
|
||||
o.external_payment_type_id,
|
||||
(SELECT COUNT(*) FROM order_items oi WHERE oi.order_id = o.id) AS items_count,
|
||||
(SELECT COALESCE(SUM(oi.quantity), 0) FROM order_items oi WHERE oi.order_id = o.id) AS items_qty,
|
||||
(SELECT COUNT(*) FROM order_shipments sh WHERE sh.order_id = o.id) AS shipments_count,
|
||||
(SELECT COUNT(*) FROM order_documents od WHERE od.order_id = o.id) AS documents_count
|
||||
COALESCE(oi_agg.items_count, 0) AS items_count,
|
||||
COALESCE(oi_agg.items_qty, 0) AS items_qty,
|
||||
COALESCE(sh_agg.shipments_count, 0) AS shipments_count,
|
||||
COALESCE(od_agg.documents_count, 0) AS documents_count
|
||||
FROM orders o
|
||||
LEFT JOIN order_addresses a ON a.order_id = o.id AND a.address_type = "customer"
|
||||
LEFT JOIN allegro_order_status_mappings asm ON o.source = "allegro" AND LOWER(o.external_status_id) = asm.allegro_status_code'
|
||||
LEFT JOIN allegro_order_status_mappings asm ON o.source = "allegro" AND LOWER(o.external_status_id) = asm.allegro_status_code
|
||||
LEFT JOIN (
|
||||
SELECT order_id, COUNT(*) AS items_count, COALESCE(SUM(quantity), 0) AS items_qty
|
||||
FROM order_items GROUP BY order_id
|
||||
) oi_agg ON oi_agg.order_id = o.id
|
||||
LEFT JOIN (
|
||||
SELECT order_id, COUNT(*) AS shipments_count
|
||||
FROM order_shipments GROUP BY order_id
|
||||
) sh_agg ON sh_agg.order_id = o.id
|
||||
LEFT JOIN (
|
||||
SELECT order_id, COUNT(*) AS documents_count
|
||||
FROM order_documents GROUP BY order_id
|
||||
) od_agg ON od_agg.order_id = o.id'
|
||||
. $whereSql
|
||||
. ' ORDER BY ' . $sortColumn . ' ' . $sortDir
|
||||
. ' LIMIT :limit OFFSET :offset';
|
||||
@@ -646,8 +658,8 @@ final class OrdersRepository
|
||||
|
||||
private function canResolveMappedMedia(): bool
|
||||
{
|
||||
if ($this->supportsMappedMedia !== null) {
|
||||
return $this->supportsMappedMedia;
|
||||
if (self::$supportsMappedMedia !== null) {
|
||||
return self::$supportsMappedMedia;
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -682,12 +694,12 @@ final class OrdersRepository
|
||||
$stmt->execute($params);
|
||||
$count = (int) $stmt->fetchColumn();
|
||||
|
||||
$this->supportsMappedMedia = ($count === count($requiredColumns));
|
||||
self::$supportsMappedMedia = ($count === count($requiredColumns));
|
||||
} catch (Throwable) {
|
||||
$this->supportsMappedMedia = false;
|
||||
self::$supportsMappedMedia = false;
|
||||
}
|
||||
|
||||
return $this->supportsMappedMedia;
|
||||
return self::$supportsMappedMedia;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user