Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -591,7 +591,8 @@ SELECT
|
|||||||
COALESCE(tx.m4, 0)::float8,
|
COALESCE(tx.m4, 0)::float8,
|
||||||
COALESCE(tx.m5, 0)::float8,
|
COALESCE(tx.m5, 0)::float8,
|
||||||
COALESCE(tx.m6, 0)::float8,
|
COALESCE(tx.m6, 0)::float8,
|
||||||
COALESCE(tr.step, 0)::float8,
|
COALESCE(NULLIF(tr.wholesale_step, 0), tr.step, 0)::float8,
|
||||||
|
COALESCE(NULLIF(tr.retail_step, 0), tr.step, 0)::float8,
|
||||||
|
|
||||||
COALESCE(ux.base_mult, 0)::float8,
|
COALESCE(ux.base_mult, 0)::float8,
|
||||||
COALESCE(ux.m1, 0)::float8,
|
COALESCE(ux.m1, 0)::float8,
|
||||||
@@ -600,7 +601,8 @@ SELECT
|
|||||||
COALESCE(ux.m4, 0)::float8,
|
COALESCE(ux.m4, 0)::float8,
|
||||||
COALESCE(ux.m5, 0)::float8,
|
COALESCE(ux.m5, 0)::float8,
|
||||||
COALESCE(ux.m6, 0)::float8,
|
COALESCE(ux.m6, 0)::float8,
|
||||||
COALESCE(ur.step, 0)::float8,
|
COALESCE(NULLIF(ur.wholesale_step, 0), ur.step, 0)::float8,
|
||||||
|
COALESCE(NULLIF(ur.retail_step, 0), ur.step, 0)::float8,
|
||||||
|
|
||||||
COALESCE(ex.base_mult, 0)::float8,
|
COALESCE(ex.base_mult, 0)::float8,
|
||||||
COALESCE(ex.m1, 0)::float8,
|
COALESCE(ex.m1, 0)::float8,
|
||||||
@@ -609,7 +611,8 @@ SELECT
|
|||||||
COALESCE(ex.m4, 0)::float8,
|
COALESCE(ex.m4, 0)::float8,
|
||||||
COALESCE(ex.m5, 0)::float8,
|
COALESCE(ex.m5, 0)::float8,
|
||||||
COALESCE(ex.m6, 0)::float8,
|
COALESCE(ex.m6, 0)::float8,
|
||||||
COALESCE(er.step, 0)::float8
|
COALESCE(NULLIF(er.wholesale_step, 0), er.step, 0)::float8,
|
||||||
|
COALESCE(NULLIF(er.retail_step, 0), er.step, 0)::float8
|
||||||
FROM mk_urunpricingprmtr p
|
FROM mk_urunpricingprmtr p
|
||||||
LEFT JOIN LATERAL (
|
LEFT JOIN LATERAL (
|
||||||
SELECT latest_rule.*
|
SELECT latest_rule.*
|
||||||
@@ -656,9 +659,9 @@ ORDER BY
|
|||||||
&item.BrandGroupSec,
|
&item.BrandGroupSec,
|
||||||
&rule.ID,
|
&rule.ID,
|
||||||
&rule.IsActive,
|
&rule.IsActive,
|
||||||
&rule.TryBase, &rule.Try1, &rule.Try2, &rule.Try3, &rule.Try4, &rule.Try5, &rule.Try6, &rule.TryStep,
|
&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.UsdStep,
|
&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.EurStep,
|
&rule.EurBase, &rule.Eur1, &rule.Eur2, &rule.Eur3, &rule.Eur4, &rule.Eur5, &rule.Eur6, &rule.EurWholesaleStep, &rule.EurRetailStep,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
// Rule tables:
|
// Rule tables:
|
||||||
// - mk_pricing_rule: the "scope" (filters) to which multipliers/roundings apply.
|
// - mk_pricing_rule: the "scope" (filters) to which multipliers/roundings apply.
|
||||||
// - mk_pricex: per-currency multipliers (base + 1..6).
|
// - mk_pricex: per-currency multipliers (base + 1..6).
|
||||||
// - mk_priceroll: per-currency rounding step (ceil to step).
|
// - mk_priceroll: per-currency rounding steps for wholesale (1-5) and retail (6+).
|
||||||
|
|
||||||
func EnsurePricingRuleTables(pg *sql.DB) error {
|
func EnsurePricingRuleTables(pg *sql.DB) error {
|
||||||
stmts := []string{
|
stmts := []string{
|
||||||
@@ -58,10 +58,15 @@ CREATE TABLE IF NOT EXISTS mk_priceroll (
|
|||||||
rule_id UUID NOT NULL REFERENCES mk_pricing_rule(id) ON DELETE CASCADE,
|
rule_id UUID NOT NULL REFERENCES mk_pricing_rule(id) ON DELETE CASCADE,
|
||||||
currency TEXT NOT NULL CHECK (currency IN ('TRY','USD','EUR')),
|
currency TEXT NOT NULL CHECK (currency IN ('TRY','USD','EUR')),
|
||||||
step NUMERIC(18,6) NOT NULL DEFAULT 0,
|
step NUMERIC(18,6) NOT NULL DEFAULT 0,
|
||||||
|
wholesale_step NUMERIC(18,6) NOT NULL DEFAULT 0,
|
||||||
|
retail_step NUMERIC(18,6) NOT NULL DEFAULT 0,
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||||
PRIMARY KEY (rule_id, currency)
|
PRIMARY KEY (rule_id, currency)
|
||||||
)`,
|
)`,
|
||||||
|
`ALTER TABLE mk_priceroll ADD COLUMN IF NOT EXISTS wholesale_step NUMERIC(18,6) NOT NULL DEFAULT 0`,
|
||||||
|
`ALTER TABLE mk_priceroll ADD COLUMN IF NOT EXISTS retail_step NUMERIC(18,6) NOT NULL DEFAULT 0`,
|
||||||
|
`UPDATE mk_priceroll SET wholesale_step = step, retail_step = step WHERE step <> 0 AND wholesale_step = 0 AND retail_step = 0`,
|
||||||
`CREATE INDEX IF NOT EXISTS ix_mk_priceroll_currency ON mk_priceroll (currency)`,
|
`CREATE INDEX IF NOT EXISTS ix_mk_priceroll_currency ON mk_priceroll (currency)`,
|
||||||
}
|
}
|
||||||
for _, s := range stmts {
|
for _, s := range stmts {
|
||||||
@@ -97,7 +102,8 @@ type PricingRuleRow struct {
|
|||||||
Try4 float64 `json:"try4"`
|
Try4 float64 `json:"try4"`
|
||||||
Try5 float64 `json:"try5"`
|
Try5 float64 `json:"try5"`
|
||||||
Try6 float64 `json:"try6"`
|
Try6 float64 `json:"try6"`
|
||||||
TryStep float64 `json:"try_step"`
|
TryWholesaleStep float64 `json:"try_wholesale_step"`
|
||||||
|
TryRetailStep float64 `json:"try_retail_step"`
|
||||||
|
|
||||||
UsdBase float64 `json:"usd_base"`
|
UsdBase float64 `json:"usd_base"`
|
||||||
Usd1 float64 `json:"usd1"`
|
Usd1 float64 `json:"usd1"`
|
||||||
@@ -106,7 +112,8 @@ type PricingRuleRow struct {
|
|||||||
Usd4 float64 `json:"usd4"`
|
Usd4 float64 `json:"usd4"`
|
||||||
Usd5 float64 `json:"usd5"`
|
Usd5 float64 `json:"usd5"`
|
||||||
Usd6 float64 `json:"usd6"`
|
Usd6 float64 `json:"usd6"`
|
||||||
UsdStep float64 `json:"usd_step"`
|
UsdWholesaleStep float64 `json:"usd_wholesale_step"`
|
||||||
|
UsdRetailStep float64 `json:"usd_retail_step"`
|
||||||
|
|
||||||
EurBase float64 `json:"eur_base"`
|
EurBase float64 `json:"eur_base"`
|
||||||
Eur1 float64 `json:"eur1"`
|
Eur1 float64 `json:"eur1"`
|
||||||
@@ -115,7 +122,8 @@ type PricingRuleRow struct {
|
|||||||
Eur4 float64 `json:"eur4"`
|
Eur4 float64 `json:"eur4"`
|
||||||
Eur5 float64 `json:"eur5"`
|
Eur5 float64 `json:"eur5"`
|
||||||
Eur6 float64 `json:"eur6"`
|
Eur6 float64 `json:"eur6"`
|
||||||
EurStep float64 `json:"eur_step"`
|
EurWholesaleStep float64 `json:"eur_wholesale_step"`
|
||||||
|
EurRetailStep float64 `json:"eur_retail_step"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PricingRuleSaveItem struct {
|
type PricingRuleSaveItem struct {
|
||||||
@@ -142,7 +150,8 @@ type PricingRuleSaveItem struct {
|
|||||||
Try4 float64 `json:"try4"`
|
Try4 float64 `json:"try4"`
|
||||||
Try5 float64 `json:"try5"`
|
Try5 float64 `json:"try5"`
|
||||||
Try6 float64 `json:"try6"`
|
Try6 float64 `json:"try6"`
|
||||||
TryStep float64 `json:"try_step"`
|
TryWholesaleStep float64 `json:"try_wholesale_step"`
|
||||||
|
TryRetailStep float64 `json:"try_retail_step"`
|
||||||
|
|
||||||
UsdBase float64 `json:"usd_base"`
|
UsdBase float64 `json:"usd_base"`
|
||||||
Usd1 float64 `json:"usd1"`
|
Usd1 float64 `json:"usd1"`
|
||||||
@@ -151,7 +160,8 @@ type PricingRuleSaveItem struct {
|
|||||||
Usd4 float64 `json:"usd4"`
|
Usd4 float64 `json:"usd4"`
|
||||||
Usd5 float64 `json:"usd5"`
|
Usd5 float64 `json:"usd5"`
|
||||||
Usd6 float64 `json:"usd6"`
|
Usd6 float64 `json:"usd6"`
|
||||||
UsdStep float64 `json:"usd_step"`
|
UsdWholesaleStep float64 `json:"usd_wholesale_step"`
|
||||||
|
UsdRetailStep float64 `json:"usd_retail_step"`
|
||||||
|
|
||||||
EurBase float64 `json:"eur_base"`
|
EurBase float64 `json:"eur_base"`
|
||||||
Eur1 float64 `json:"eur1"`
|
Eur1 float64 `json:"eur1"`
|
||||||
@@ -160,7 +170,8 @@ type PricingRuleSaveItem struct {
|
|||||||
Eur4 float64 `json:"eur4"`
|
Eur4 float64 `json:"eur4"`
|
||||||
Eur5 float64 `json:"eur5"`
|
Eur5 float64 `json:"eur5"`
|
||||||
Eur6 float64 `json:"eur6"`
|
Eur6 float64 `json:"eur6"`
|
||||||
EurStep float64 `json:"eur_step"`
|
EurWholesaleStep float64 `json:"eur_wholesale_step"`
|
||||||
|
EurRetailStep float64 `json:"eur_retail_step"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListPricingRules(ctx context.Context, pg *sql.DB) ([]PricingRuleRow, error) {
|
func ListPricingRules(ctx context.Context, pg *sql.DB) ([]PricingRuleRow, error) {
|
||||||
@@ -188,7 +199,8 @@ SELECT
|
|||||||
COALESCE(tx.m4, 0)::float8 AS try4,
|
COALESCE(tx.m4, 0)::float8 AS try4,
|
||||||
COALESCE(tx.m5, 0)::float8 AS try5,
|
COALESCE(tx.m5, 0)::float8 AS try5,
|
||||||
COALESCE(tx.m6, 0)::float8 AS try6,
|
COALESCE(tx.m6, 0)::float8 AS try6,
|
||||||
COALESCE(tr.step, 0)::float8 AS try_step,
|
COALESCE(NULLIF(tr.wholesale_step, 0), tr.step, 0)::float8 AS try_wholesale_step,
|
||||||
|
COALESCE(NULLIF(tr.retail_step, 0), tr.step, 0)::float8 AS try_retail_step,
|
||||||
|
|
||||||
COALESCE(ux.base_mult, 0)::float8 AS usd_base,
|
COALESCE(ux.base_mult, 0)::float8 AS usd_base,
|
||||||
COALESCE(ux.m1, 0)::float8 AS usd1,
|
COALESCE(ux.m1, 0)::float8 AS usd1,
|
||||||
@@ -197,7 +209,8 @@ SELECT
|
|||||||
COALESCE(ux.m4, 0)::float8 AS usd4,
|
COALESCE(ux.m4, 0)::float8 AS usd4,
|
||||||
COALESCE(ux.m5, 0)::float8 AS usd5,
|
COALESCE(ux.m5, 0)::float8 AS usd5,
|
||||||
COALESCE(ux.m6, 0)::float8 AS usd6,
|
COALESCE(ux.m6, 0)::float8 AS usd6,
|
||||||
COALESCE(ur.step, 0)::float8 AS usd_step,
|
COALESCE(NULLIF(ur.wholesale_step, 0), ur.step, 0)::float8 AS usd_wholesale_step,
|
||||||
|
COALESCE(NULLIF(ur.retail_step, 0), ur.step, 0)::float8 AS usd_retail_step,
|
||||||
|
|
||||||
COALESCE(ex.base_mult, 0)::float8 AS eur_base,
|
COALESCE(ex.base_mult, 0)::float8 AS eur_base,
|
||||||
COALESCE(ex.m1, 0)::float8 AS eur1,
|
COALESCE(ex.m1, 0)::float8 AS eur1,
|
||||||
@@ -206,7 +219,8 @@ SELECT
|
|||||||
COALESCE(ex.m4, 0)::float8 AS eur4,
|
COALESCE(ex.m4, 0)::float8 AS eur4,
|
||||||
COALESCE(ex.m5, 0)::float8 AS eur5,
|
COALESCE(ex.m5, 0)::float8 AS eur5,
|
||||||
COALESCE(ex.m6, 0)::float8 AS eur6,
|
COALESCE(ex.m6, 0)::float8 AS eur6,
|
||||||
COALESCE(er.step, 0)::float8 AS eur_step
|
COALESCE(NULLIF(er.wholesale_step, 0), er.step, 0)::float8 AS eur_wholesale_step,
|
||||||
|
COALESCE(NULLIF(er.retail_step, 0), er.step, 0)::float8 AS eur_retail_step
|
||||||
FROM mk_pricing_rule r
|
FROM mk_pricing_rule r
|
||||||
LEFT JOIN mk_pricex tx ON tx.rule_id = r.id AND tx.currency='TRY'
|
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 ux ON ux.rule_id = r.id AND ux.currency='USD'
|
||||||
@@ -240,9 +254,9 @@ ORDER BY r.created_at DESC;
|
|||||||
pq.Array(&r.BrandGroupSec),
|
pq.Array(&r.BrandGroupSec),
|
||||||
&r.IsActive,
|
&r.IsActive,
|
||||||
|
|
||||||
&r.TryBase, &r.Try1, &r.Try2, &r.Try3, &r.Try4, &r.Try5, &r.Try6, &r.TryStep,
|
&r.TryBase, &r.Try1, &r.Try2, &r.Try3, &r.Try4, &r.Try5, &r.Try6, &r.TryWholesaleStep, &r.TryRetailStep,
|
||||||
&r.UsdBase, &r.Usd1, &r.Usd2, &r.Usd3, &r.Usd4, &r.Usd5, &r.Usd6, &r.UsdStep,
|
&r.UsdBase, &r.Usd1, &r.Usd2, &r.Usd3, &r.Usd4, &r.Usd5, &r.Usd6, &r.UsdWholesaleStep, &r.UsdRetailStep,
|
||||||
&r.EurBase, &r.Eur1, &r.Eur2, &r.Eur3, &r.Eur4, &r.Eur5, &r.Eur6, &r.EurStep,
|
&r.EurBase, &r.Eur1, &r.Eur2, &r.Eur3, &r.Eur4, &r.Eur5, &r.Eur6, &r.EurWholesaleStep, &r.EurRetailStep,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -357,33 +371,35 @@ ON CONFLICT (rule_id, currency) DO UPDATE SET
|
|||||||
`, id, cur, base, m1, m2, m3, m4, m5, m6)
|
`, id, cur, base, m1, m2, m3, m4, m5, m6)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
upsertRoll := func(cur string, step float64) error {
|
upsertRoll := func(cur string, wholesaleStep, retailStep float64) error {
|
||||||
_, err := tx.ExecContext(ctx, `
|
_, err := tx.ExecContext(ctx, `
|
||||||
INSERT INTO mk_priceroll (rule_id, currency, step, created_at, updated_at)
|
INSERT INTO mk_priceroll (rule_id, currency, step, wholesale_step, retail_step, created_at, updated_at)
|
||||||
VALUES ($1,$2,$3,now(),now())
|
VALUES ($1,$2,$3,$4,$5,now(),now())
|
||||||
ON CONFLICT (rule_id, currency) DO UPDATE SET
|
ON CONFLICT (rule_id, currency) DO UPDATE SET
|
||||||
step=EXCLUDED.step,
|
step=EXCLUDED.step,
|
||||||
|
wholesale_step=EXCLUDED.wholesale_step,
|
||||||
|
retail_step=EXCLUDED.retail_step,
|
||||||
updated_at=now()
|
updated_at=now()
|
||||||
`, id, cur, step)
|
`, id, cur, wholesaleStep, wholesaleStep, retailStep)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := upsertX("TRY", item.TryBase, item.Try1, item.Try2, item.Try3, item.Try4, item.Try5, item.Try6); err != nil {
|
if err := upsertX("TRY", item.TryBase, item.Try1, item.Try2, item.Try3, item.Try4, item.Try5, item.Try6); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := upsertRoll("TRY", item.TryStep); err != nil {
|
if err := upsertRoll("TRY", item.TryWholesaleStep, item.TryRetailStep); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := upsertX("USD", item.UsdBase, item.Usd1, item.Usd2, item.Usd3, item.Usd4, item.Usd5, item.Usd6); err != nil {
|
if err := upsertX("USD", item.UsdBase, item.Usd1, item.Usd2, item.Usd3, item.Usd4, item.Usd5, item.Usd6); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := upsertRoll("USD", item.UsdStep); err != nil {
|
if err := upsertRoll("USD", item.UsdWholesaleStep, item.UsdRetailStep); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := upsertX("EUR", item.EurBase, item.Eur1, item.Eur2, item.Eur3, item.Eur4, item.Eur5, item.Eur6); err != nil {
|
if err := upsertX("EUR", item.EurBase, item.Eur1, item.Eur2, item.Eur3, item.Eur4, item.Eur5, item.Eur6); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := upsertRoll("EUR", item.EurStep); err != nil {
|
if err := upsertRoll("EUR", item.EurWholesaleStep, item.EurRetailStep); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ func SavePricingRulesBulkHandler(pg *sql.DB) http.HandlerFunc {
|
|||||||
updated := 0
|
updated := 0
|
||||||
for _, it := range payload.Items {
|
for _, it := range payload.Items {
|
||||||
// Zero means that no rounding rule has been configured yet.
|
// Zero means that no rounding rule has been configured yet.
|
||||||
if it.TryStep < 0 || it.UsdStep < 0 || it.EurStep < 0 {
|
if it.TryWholesaleStep < 0 || it.TryRetailStep < 0 || it.UsdWholesaleStep < 0 || it.UsdRetailStep < 0 || it.EurWholesaleStep < 0 || it.EurRetailStep < 0 {
|
||||||
http.Error(w, "invalid rounding step", http.StatusBadRequest)
|
http.Error(w, "invalid rounding step", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -188,9 +188,9 @@ func filterPricingRuleExportRows(rows []queries.PricingParameterRuleRow, r *http
|
|||||||
}
|
}
|
||||||
|
|
||||||
fields := []string{
|
fields := []string{
|
||||||
"try_base", "try1", "try2", "try3", "try4", "try5", "try6", "try_step",
|
"try_base", "try1", "try2", "try3", "try4", "try5", "try6", "try_wholesale_step", "try_retail_step",
|
||||||
"usd_base", "usd1", "usd2", "usd3", "usd4", "usd5", "usd6", "usd_step",
|
"usd_base", "usd1", "usd2", "usd3", "usd4", "usd5", "usd6", "usd_wholesale_step", "usd_retail_step",
|
||||||
"eur_base", "eur1", "eur2", "eur3", "eur4", "eur5", "eur6", "eur_step",
|
"eur_base", "eur1", "eur2", "eur3", "eur4", "eur5", "eur6", "eur_wholesale_step", "eur_retail_step",
|
||||||
}
|
}
|
||||||
minMap := map[string]*float64{}
|
minMap := map[string]*float64{}
|
||||||
maxMap := map[string]*float64{}
|
maxMap := map[string]*float64{}
|
||||||
@@ -238,8 +238,10 @@ func pricingRuleNumericValue(row queries.PricingParameterRuleRow, field string)
|
|||||||
return row.Rule.Try5
|
return row.Rule.Try5
|
||||||
case "try6":
|
case "try6":
|
||||||
return row.Rule.Try6
|
return row.Rule.Try6
|
||||||
case "try_step":
|
case "try_wholesale_step":
|
||||||
return row.Rule.TryStep
|
return row.Rule.TryWholesaleStep
|
||||||
|
case "try_retail_step":
|
||||||
|
return row.Rule.TryRetailStep
|
||||||
case "usd_base":
|
case "usd_base":
|
||||||
return row.Rule.UsdBase
|
return row.Rule.UsdBase
|
||||||
case "usd1":
|
case "usd1":
|
||||||
@@ -254,8 +256,10 @@ func pricingRuleNumericValue(row queries.PricingParameterRuleRow, field string)
|
|||||||
return row.Rule.Usd5
|
return row.Rule.Usd5
|
||||||
case "usd6":
|
case "usd6":
|
||||||
return row.Rule.Usd6
|
return row.Rule.Usd6
|
||||||
case "usd_step":
|
case "usd_wholesale_step":
|
||||||
return row.Rule.UsdStep
|
return row.Rule.UsdWholesaleStep
|
||||||
|
case "usd_retail_step":
|
||||||
|
return row.Rule.UsdRetailStep
|
||||||
case "eur_base":
|
case "eur_base":
|
||||||
return row.Rule.EurBase
|
return row.Rule.EurBase
|
||||||
case "eur1":
|
case "eur1":
|
||||||
@@ -270,8 +274,10 @@ func pricingRuleNumericValue(row queries.PricingParameterRuleRow, field string)
|
|||||||
return row.Rule.Eur5
|
return row.Rule.Eur5
|
||||||
case "eur6":
|
case "eur6":
|
||||||
return row.Rule.Eur6
|
return row.Rule.Eur6
|
||||||
case "eur_step":
|
case "eur_wholesale_step":
|
||||||
return row.Rule.EurStep
|
return row.Rule.EurWholesaleStep
|
||||||
|
case "eur_retail_step":
|
||||||
|
return row.Rule.EurRetailStep
|
||||||
default:
|
default:
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -356,9 +362,9 @@ func buildPricingRuleCSV(rows []queries.PricingParameterRuleRow) string {
|
|||||||
headers := []string{
|
headers := []string{
|
||||||
"DURUM", "AKTIF", "ASKILI YAN", "KATEGORI", "URUN ILK GRUBU", "URUN ANA GRUBU", "URUN ALT GRUBU",
|
"DURUM", "AKTIF", "ASKILI YAN", "KATEGORI", "URUN ILK GRUBU", "URUN ANA GRUBU", "URUN ALT GRUBU",
|
||||||
"ICERIK", "MARKA", "BRAND CODE", "MARKA GRUBU",
|
"ICERIK", "MARKA", "BRAND CODE", "MARKA GRUBU",
|
||||||
"TRY YUVARLAMA", "TRY TABAN", "TRY 1", "TRY 2", "TRY 3", "TRY 4", "TRY 5", "TRY 6",
|
"TRY TOPTAN YUVARLAMA", "TRY PERAKENDE YUVARLAMA", "TRY TABAN", "TRY 1", "TRY 2", "TRY 3", "TRY 4", "TRY 5", "TRY 6",
|
||||||
"USD YUVARLAMA", "USD TABAN", "USD 1", "USD 2", "USD 3", "USD 4", "USD 5", "USD 6",
|
"USD TOPTAN YUVARLAMA", "USD PERAKENDE YUVARLAMA", "USD TABAN", "USD 1", "USD 2", "USD 3", "USD 4", "USD 5", "USD 6",
|
||||||
"EUR YUVARLAMA", "EUR TABAN", "EUR 1", "EUR 2", "EUR 3", "EUR 4", "EUR 5", "EUR 6",
|
"EUR TOPTAN YUVARLAMA", "EUR PERAKENDE YUVARLAMA", "EUR TABAN", "EUR 1", "EUR 2", "EUR 3", "EUR 4", "EUR 5", "EUR 6",
|
||||||
}
|
}
|
||||||
var b strings.Builder
|
var b strings.Builder
|
||||||
for i, h := range headers {
|
for i, h := range headers {
|
||||||
@@ -386,7 +392,8 @@ func buildPricingRuleCSV(rows []queries.PricingParameterRuleRow) string {
|
|||||||
row.Marka,
|
row.Marka,
|
||||||
row.BrandCode,
|
row.BrandCode,
|
||||||
row.BrandGroupSec,
|
row.BrandGroupSec,
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try_step")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try_wholesale_step")),
|
||||||
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try_retail_step")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try_base")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try_base")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try1")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try1")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try2")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try2")),
|
||||||
@@ -394,7 +401,8 @@ func buildPricingRuleCSV(rows []queries.PricingParameterRuleRow) string {
|
|||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try4")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try4")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try5")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try5")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try6")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "try6")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd_step")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd_wholesale_step")),
|
||||||
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd_retail_step")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd_base")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd_base")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd1")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd1")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd2")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd2")),
|
||||||
@@ -402,7 +410,8 @@ func buildPricingRuleCSV(rows []queries.PricingParameterRuleRow) string {
|
|||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd4")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd4")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd5")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd5")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd6")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "usd6")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur_step")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur_wholesale_step")),
|
||||||
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur_retail_step")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur_base")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur_base")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur1")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur1")),
|
||||||
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur2")),
|
fmt.Sprintf("%.2f", pricingRuleNumericValue(row, "eur2")),
|
||||||
|
|||||||
@@ -309,9 +309,9 @@ const tablePagination = ref({ rowsPerPage: 0, sortBy: 'urun_ilk_grubu', descendi
|
|||||||
let emptyRetryTimer = null
|
let emptyRetryTimer = null
|
||||||
|
|
||||||
const numericFields = new Set([
|
const numericFields = new Set([
|
||||||
'try_base', 'try1', 'try2', 'try3', 'try4', 'try5', 'try6', 'try_step',
|
'try_base', 'try1', 'try2', 'try3', 'try4', 'try5', 'try6', 'try_wholesale_step', 'try_retail_step',
|
||||||
'usd_base', 'usd1', 'usd2', 'usd3', 'usd4', 'usd5', 'usd6', 'usd_step',
|
'usd_base', 'usd1', 'usd2', 'usd3', 'usd4', 'usd5', 'usd6', 'usd_wholesale_step', 'usd_retail_step',
|
||||||
'eur_base', 'eur1', 'eur2', 'eur3', 'eur4', 'eur5', 'eur6', 'eur_step'
|
'eur_base', 'eur1', 'eur2', 'eur3', 'eur4', 'eur5', 'eur6', 'eur_wholesale_step', 'eur_retail_step'
|
||||||
])
|
])
|
||||||
|
|
||||||
const importKeyFieldLabels = [
|
const importKeyFieldLabels = [
|
||||||
@@ -328,7 +328,9 @@ const importKeyFieldLabels = [
|
|||||||
|
|
||||||
const importFieldMap = {
|
const importFieldMap = {
|
||||||
AKTIF: 'is_active',
|
AKTIF: 'is_active',
|
||||||
'TRY YUVARLAMA': 'try_step',
|
'TRY TOPTAN YUVARLAMA': 'try_wholesale_step',
|
||||||
|
'TRY PERAKENDE YUVARLAMA': 'try_retail_step',
|
||||||
|
'TRY YUVARLAMA': 'try_wholesale_step',
|
||||||
'TRY TABAN': 'try_base',
|
'TRY TABAN': 'try_base',
|
||||||
'TRY 1': 'try1',
|
'TRY 1': 'try1',
|
||||||
'TRY 2': 'try2',
|
'TRY 2': 'try2',
|
||||||
@@ -336,7 +338,9 @@ const importFieldMap = {
|
|||||||
'TRY 4': 'try4',
|
'TRY 4': 'try4',
|
||||||
'TRY 5': 'try5',
|
'TRY 5': 'try5',
|
||||||
'TRY 6': 'try6',
|
'TRY 6': 'try6',
|
||||||
'USD YUVARLAMA': 'usd_step',
|
'USD TOPTAN YUVARLAMA': 'usd_wholesale_step',
|
||||||
|
'USD PERAKENDE YUVARLAMA': 'usd_retail_step',
|
||||||
|
'USD YUVARLAMA': 'usd_wholesale_step',
|
||||||
'USD TABAN': 'usd_base',
|
'USD TABAN': 'usd_base',
|
||||||
'USD 1': 'usd1',
|
'USD 1': 'usd1',
|
||||||
'USD 2': 'usd2',
|
'USD 2': 'usd2',
|
||||||
@@ -344,7 +348,9 @@ const importFieldMap = {
|
|||||||
'USD 4': 'usd4',
|
'USD 4': 'usd4',
|
||||||
'USD 5': 'usd5',
|
'USD 5': 'usd5',
|
||||||
'USD 6': 'usd6',
|
'USD 6': 'usd6',
|
||||||
'EUR YUVARLAMA': 'eur_step',
|
'EUR TOPTAN YUVARLAMA': 'eur_wholesale_step',
|
||||||
|
'EUR PERAKENDE YUVARLAMA': 'eur_retail_step',
|
||||||
|
'EUR YUVARLAMA': 'eur_wholesale_step',
|
||||||
'EUR TABAN': 'eur_base',
|
'EUR TABAN': 'eur_base',
|
||||||
'EUR 1': 'eur1',
|
'EUR 1': 'eur1',
|
||||||
'EUR 2': 'eur2',
|
'EUR 2': 'eur2',
|
||||||
@@ -395,7 +401,8 @@ const columns = [
|
|||||||
col('brand_code', 'BRAND CODE', 'brand_code', 78, { classes: 'ps-col', headerClasses: 'ps-col' }),
|
col('brand_code', 'BRAND CODE', 'brand_code', 78, { classes: 'ps-col', headerClasses: 'ps-col' }),
|
||||||
col('brand_group', 'MARKA GRUBU', 'brand_group', 88, { classes: 'ps-col', headerClasses: 'ps-col' }),
|
col('brand_group', 'MARKA GRUBU', 'brand_group', 88, { classes: 'ps-col', headerClasses: 'ps-col' }),
|
||||||
|
|
||||||
col('try_step', 'TRY YUVARLAMA', 'try_step', 84, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try_wholesale_step', 'TRY TOPTAN YUVARLAMA', 'try_wholesale_step', 92, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
|
col('try_retail_step', 'TRY PERAKENDE YUVARLAMA', 'try_retail_step', 98, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
col('try_base', 'TRY TABAN', 'try_base', 70, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try_base', 'TRY TABAN', 'try_base', 70, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
col('try1', 'TRY 1', 'try1', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try1', 'TRY 1', 'try1', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
col('try2', 'TRY 2', 'try2', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try2', 'TRY 2', 'try2', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
@@ -404,7 +411,8 @@ const columns = [
|
|||||||
col('try5', 'TRY 5', 'try5', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try5', 'TRY 5', 'try5', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
col('try6', 'TRY 6', 'try6', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
col('try6', 'TRY 6', 'try6', 62, { align: 'right', classes: 'try-col', headerClasses: 'try-col' }),
|
||||||
|
|
||||||
col('usd_step', 'USD YUVARLAMA', 'usd_step', 84, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd_wholesale_step', 'USD TOPTAN YUVARLAMA', 'usd_wholesale_step', 92, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
|
col('usd_retail_step', 'USD PERAKENDE YUVARLAMA', 'usd_retail_step', 98, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
col('usd_base', 'USD TABAN', 'usd_base', 70, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd_base', 'USD TABAN', 'usd_base', 70, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
col('usd1', 'USD 1', 'usd1', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd1', 'USD 1', 'usd1', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
col('usd2', 'USD 2', 'usd2', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd2', 'USD 2', 'usd2', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
@@ -413,7 +421,8 @@ const columns = [
|
|||||||
col('usd5', 'USD 5', 'usd5', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd5', 'USD 5', 'usd5', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
col('usd6', 'USD 6', 'usd6', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
col('usd6', 'USD 6', 'usd6', 62, { align: 'right', classes: 'usd-col', headerClasses: 'usd-col' }),
|
||||||
|
|
||||||
col('eur_step', 'EUR YUVARLAMA', 'eur_step', 84, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
col('eur_wholesale_step', 'EUR TOPTAN YUVARLAMA', 'eur_wholesale_step', 92, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
||||||
|
col('eur_retail_step', 'EUR PERAKENDE YUVARLAMA', 'eur_retail_step', 98, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
||||||
col('eur_base', 'EUR TABAN', 'eur_base', 70, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
col('eur_base', 'EUR TABAN', 'eur_base', 70, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
||||||
col('eur1', 'EUR 1', 'eur1', 62, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
col('eur1', 'EUR 1', 'eur1', 62, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
||||||
col('eur2', 'EUR 2', 'eur2', 62, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
col('eur2', 'EUR 2', 'eur2', 62, { align: 'right', classes: 'eur-col', headerClasses: 'eur-col' }),
|
||||||
|
|||||||
Reference in New Issue
Block a user