Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -196,7 +196,6 @@ SELECT
|
||||
icerik, marka, brand_code, brand_group_sec, scope_key
|
||||
FROM mk_urunpricingprmtr
|
||||
WHERE id=$1
|
||||
AND is_active=TRUE
|
||||
`, pricingParameterID).Scan(
|
||||
&p.AskiliYan,
|
||||
&p.Kategori,
|
||||
@@ -441,6 +440,12 @@ WHERE ProductAtt42 IN ('SERI', 'AKSESUAR')
|
||||
}
|
||||
defer tx.Rollback()
|
||||
|
||||
// Serialize writes touching mk_urunpricingprmtr/mk_pricing_rule/mk_pricex/mk_priceroll
|
||||
// to avoid deadlocks with bulk-save/import flows.
|
||||
if _, err := tx.ExecContext(ctx, `SELECT pg_advisory_xact_lock(1001, 1)`); err != nil {
|
||||
return out, err
|
||||
}
|
||||
|
||||
if _, err := tx.ExecContext(ctx, `
|
||||
CREATE TEMP TABLE tmp_urunpricingprmtr_sync (
|
||||
askili_yan TEXT NOT NULL,
|
||||
@@ -714,6 +719,17 @@ SELECT
|
||||
p.brand_code,
|
||||
p.brand_group_sec,
|
||||
COALESCE(r.id::text, ''),
|
||||
COALESCE(
|
||||
r.strategy_code,
|
||||
CASE
|
||||
WHEN UPPER(BTRIM(p.brand_group_sec)) IN ('CORE','PREMIUM','SARTORIAL') THEN UPPER(BTRIM(p.brand_group_sec))
|
||||
ELSE 'CORE'
|
||||
END
|
||||
),
|
||||
COALESCE(r.anchor_mode, bg.anchor_mode, 'USD'),
|
||||
COALESCE(r.calc_enabled, TRUE),
|
||||
COALESCE(r.publish_postgres, TRUE),
|
||||
COALESCE(r.publish_nebim, TRUE),
|
||||
COALESCE(r.is_active, TRUE),
|
||||
|
||||
COALESCE(tx.base_mult, 0)::float8,
|
||||
@@ -725,6 +741,7 @@ SELECT
|
||||
COALESCE(tx.m6, 0)::float8,
|
||||
COALESCE(NULLIF(tr.wholesale_step, 0), tr.step, 0)::float8,
|
||||
COALESCE(NULLIF(tr.retail_step, 0), tr.step, 0)::float8,
|
||||
COALESCE(NULLIF(BTRIM(tr.retail_mode), ''), 'STEP'),
|
||||
|
||||
COALESCE(ux.base_mult, 0)::float8,
|
||||
COALESCE(ux.m1, 0)::float8,
|
||||
@@ -735,6 +752,7 @@ SELECT
|
||||
COALESCE(ux.m6, 0)::float8,
|
||||
COALESCE(NULLIF(ur.wholesale_step, 0), ur.step, 0)::float8,
|
||||
COALESCE(NULLIF(ur.retail_step, 0), ur.step, 0)::float8,
|
||||
COALESCE(NULLIF(BTRIM(ur.retail_mode), ''), 'STEP'),
|
||||
|
||||
COALESCE(ex.base_mult, 0)::float8,
|
||||
COALESCE(ex.m1, 0)::float8,
|
||||
@@ -744,7 +762,8 @@ SELECT
|
||||
COALESCE(ex.m5, 0)::float8,
|
||||
COALESCE(ex.m6, 0)::float8,
|
||||
COALESCE(NULLIF(er.wholesale_step, 0), er.step, 0)::float8,
|
||||
COALESCE(NULLIF(er.retail_step, 0), er.step, 0)::float8
|
||||
COALESCE(NULLIF(er.retail_step, 0), er.step, 0)::float8,
|
||||
COALESCE(NULLIF(BTRIM(er.retail_mode), ''), 'STEP')
|
||||
FROM mk_urunpricingprmtr p
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT latest_rule.*
|
||||
@@ -753,6 +772,14 @@ LEFT JOIN LATERAL (
|
||||
ORDER BY latest_rule.created_at DESC, latest_rule.updated_at DESC, latest_rule.id DESC
|
||||
LIMIT 1
|
||||
) r ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT g.anchor_mode
|
||||
FROM mk_brandgrp g
|
||||
WHERE UPPER(BTRIM(g.code)) = UPPER(BTRIM(p.brand_group_sec))
|
||||
OR UPPER(BTRIM(g.title)) = UPPER(BTRIM(p.brand_group_sec))
|
||||
ORDER BY g.id
|
||||
LIMIT 1
|
||||
) bg ON TRUE
|
||||
LEFT JOIN mk_pricex tx ON tx.rule_id = r.id AND tx.currency='TRY'
|
||||
LEFT JOIN mk_pricex ux ON ux.rule_id = r.id AND ux.currency='USD'
|
||||
LEFT JOIN mk_pricex ex ON ex.rule_id = r.id AND ex.currency='EUR'
|
||||
@@ -790,13 +817,21 @@ ORDER BY
|
||||
&item.BrandCode,
|
||||
&item.BrandGroupSec,
|
||||
&rule.ID,
|
||||
&rule.StrategyCode,
|
||||
&rule.AnchorMode,
|
||||
&rule.CalcEnabled,
|
||||
&rule.PublishPostgres,
|
||||
&rule.PublishNebim,
|
||||
&rule.IsActive,
|
||||
&rule.TryBase, &rule.Try1, &rule.Try2, &rule.Try3, &rule.Try4, &rule.Try5, &rule.Try6, &rule.TryWholesaleStep, &rule.TryRetailStep,
|
||||
&rule.UsdBase, &rule.Usd1, &rule.Usd2, &rule.Usd3, &rule.Usd4, &rule.Usd5, &rule.Usd6, &rule.UsdWholesaleStep, &rule.UsdRetailStep,
|
||||
&rule.EurBase, &rule.Eur1, &rule.Eur2, &rule.Eur3, &rule.Eur4, &rule.Eur5, &rule.Eur6, &rule.EurWholesaleStep, &rule.EurRetailStep,
|
||||
&rule.TryBase, &rule.Try1, &rule.Try2, &rule.Try3, &rule.Try4, &rule.Try5, &rule.Try6, &rule.TryWholesaleStep, &rule.TryRetailStep, &rule.TryRetailMode,
|
||||
&rule.UsdBase, &rule.Usd1, &rule.Usd2, &rule.Usd3, &rule.Usd4, &rule.Usd5, &rule.Usd6, &rule.UsdWholesaleStep, &rule.UsdRetailStep, &rule.UsdRetailMode,
|
||||
&rule.EurBase, &rule.Eur1, &rule.Eur2, &rule.Eur3, &rule.Eur4, &rule.Eur5, &rule.Eur6, &rule.EurWholesaleStep, &rule.EurRetailStep, &rule.EurRetailMode,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rule.TryRetailMode = normalizeRetailMode(rule.TryRetailMode)
|
||||
rule.UsdRetailMode = normalizeRetailMode(rule.UsdRetailMode)
|
||||
rule.EurRetailMode = normalizeRetailMode(rule.EurRetailMode)
|
||||
rule.PricingParameterID = item.PricingParameterID
|
||||
rule.AskiliYan = pricingParameterScopeValue(item.AskiliYan)
|
||||
rule.Kategori = pricingParameterScopeValue(item.Kategori)
|
||||
@@ -809,9 +844,7 @@ ORDER BY
|
||||
rule.BrandCode = pricingParameterScopeValue(item.BrandCode)
|
||||
rule.BrandGroupSec = pricingParameterScopeValue(item.BrandGroupSec)
|
||||
item.HasRule = strings.TrimSpace(rule.ID) != ""
|
||||
if item.HasRule {
|
||||
item.Rule = &rule
|
||||
}
|
||||
item.Rule = &rule
|
||||
out = append(out, item)
|
||||
}
|
||||
return out, rows.Err()
|
||||
|
||||
Reference in New Issue
Block a user