mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 05:21:57 +00:00
adjust level 2 cmd adjust quantity product warehouse from purchase
This commit is contained in:
@@ -43,7 +43,7 @@ func main() {
|
|||||||
&level,
|
&level,
|
||||||
"level",
|
"level",
|
||||||
levelAllNoFlagProducts,
|
levelAllNoFlagProducts,
|
||||||
"CLI level: 1=all products without flags, 2=specific product name (without flags), 3=specific product warehouse id",
|
"CLI level: 1=all products without flags, 2=specific product name (with flags), 3=specific product warehouse id",
|
||||||
)
|
)
|
||||||
flag.StringVar(&productName, "product-name", "", "Product name (required for level 2)")
|
flag.StringVar(&productName, "product-name", "", "Product name (required for level 2)")
|
||||||
flag.UintVar(&productWarehouseID, "product-warehouse-id", 0, "Product warehouse id (required for level 3)")
|
flag.UintVar(&productWarehouseID, "product-warehouse-id", 0, "Product warehouse id (required for level 3)")
|
||||||
@@ -181,7 +181,7 @@ func loadTargets(
|
|||||||
case levelAllNoFlagProducts:
|
case levelAllNoFlagProducts:
|
||||||
return loadTargetsLevel1ByProductWithoutFlags(ctx, db)
|
return loadTargetsLevel1ByProductWithoutFlags(ctx, db)
|
||||||
case levelProductName:
|
case levelProductName:
|
||||||
return loadTargetsLevel2ByProductWarehouseWithoutFlags(ctx, db, productName)
|
return loadTargetsLevel2ByProductWarehouseWithFlags(ctx, db, productName)
|
||||||
case levelProductWarehouse:
|
case levelProductWarehouse:
|
||||||
return loadTargetByProductWarehouseID(ctx, db, productWarehouseID)
|
return loadTargetByProductWarehouseID(ctx, db, productWarehouseID)
|
||||||
default:
|
default:
|
||||||
@@ -214,7 +214,7 @@ func loadTargetsLevel1ByProductWithoutFlags(ctx context.Context, db *gorm.DB) ([
|
|||||||
return rows, nil
|
return rows, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadTargetsLevel2ByProductWarehouseWithoutFlags(
|
func loadTargetsLevel2ByProductWarehouseWithFlags(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
db *gorm.DB,
|
db *gorm.DB,
|
||||||
productName string,
|
productName string,
|
||||||
@@ -230,10 +230,16 @@ func loadTargetsLevel2ByProductWarehouseWithoutFlags(
|
|||||||
COALESCE(SUM(pi.total_qty), 0) AS computed_qty
|
COALESCE(SUM(pi.total_qty), 0) AS computed_qty
|
||||||
`).
|
`).
|
||||||
Joins("JOIN products p ON p.id = pw.product_id").
|
Joins("JOIN products p ON p.id = pw.product_id").
|
||||||
Joins("LEFT JOIN flags f ON f.flagable_id = p.id AND f.flagable_type = ?", entity.FlagableTypeProduct).
|
|
||||||
Joins("LEFT JOIN purchase_items pi ON pi.product_warehouse_id = pw.id").
|
Joins("LEFT JOIN purchase_items pi ON pi.product_warehouse_id = pw.id").
|
||||||
Where("p.deleted_at IS NULL").
|
Where("p.deleted_at IS NULL").
|
||||||
Where("f.id IS NULL").
|
Where(`
|
||||||
|
EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM flags f
|
||||||
|
WHERE f.flagable_id = p.id
|
||||||
|
AND f.flagable_type = ?
|
||||||
|
)
|
||||||
|
`, entity.FlagableTypeProduct).
|
||||||
Where("LOWER(p.name) = LOWER(?)", productName).
|
Where("LOWER(p.name) = LOWER(?)", productName).
|
||||||
Group("pw.id, pw.product_id, p.name, pw.qty").
|
Group("pw.id, pw.product_id, p.name, pw.qty").
|
||||||
Order("pw.id ASC").
|
Order("pw.id ASC").
|
||||||
@@ -278,7 +284,7 @@ func levelLabel(level int) string {
|
|||||||
case levelAllNoFlagProducts:
|
case levelAllNoFlagProducts:
|
||||||
return "all products without flags (source: purchase_items by product_warehouse_id)"
|
return "all products without flags (source: purchase_items by product_warehouse_id)"
|
||||||
case levelProductName:
|
case levelProductName:
|
||||||
return "specific product name without flags (source: purchase_items by product_warehouse_id)"
|
return "specific product name with flags (source: purchase_items by product_warehouse_id)"
|
||||||
case levelProductWarehouse:
|
case levelProductWarehouse:
|
||||||
return "specific product_warehouse_id (source: purchase_items by product_warehouse_id)"
|
return "specific product_warehouse_id (source: purchase_items by product_warehouse_id)"
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user