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",
|
||||
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.UintVar(&productWarehouseID, "product-warehouse-id", 0, "Product warehouse id (required for level 3)")
|
||||
@@ -181,7 +181,7 @@ func loadTargets(
|
||||
case levelAllNoFlagProducts:
|
||||
return loadTargetsLevel1ByProductWithoutFlags(ctx, db)
|
||||
case levelProductName:
|
||||
return loadTargetsLevel2ByProductWarehouseWithoutFlags(ctx, db, productName)
|
||||
return loadTargetsLevel2ByProductWarehouseWithFlags(ctx, db, productName)
|
||||
case levelProductWarehouse:
|
||||
return loadTargetByProductWarehouseID(ctx, db, productWarehouseID)
|
||||
default:
|
||||
@@ -214,7 +214,7 @@ func loadTargetsLevel1ByProductWithoutFlags(ctx context.Context, db *gorm.DB) ([
|
||||
return rows, nil
|
||||
}
|
||||
|
||||
func loadTargetsLevel2ByProductWarehouseWithoutFlags(
|
||||
func loadTargetsLevel2ByProductWarehouseWithFlags(
|
||||
ctx context.Context,
|
||||
db *gorm.DB,
|
||||
productName string,
|
||||
@@ -230,10 +230,16 @@ func loadTargetsLevel2ByProductWarehouseWithoutFlags(
|
||||
COALESCE(SUM(pi.total_qty), 0) AS computed_qty
|
||||
`).
|
||||
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").
|
||||
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).
|
||||
Group("pw.id, pw.product_id, p.name, pw.qty").
|
||||
Order("pw.id ASC").
|
||||
@@ -278,7 +284,7 @@ func levelLabel(level int) string {
|
||||
case levelAllNoFlagProducts:
|
||||
return "all products without flags (source: purchase_items by product_warehouse_id)"
|
||||
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:
|
||||
return "specific product_warehouse_id (source: purchase_items by product_warehouse_id)"
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user