订单确认后如何从订购数量中减去可用数量?

Posted

技术标签:

【中文标题】订单确认后如何从订购数量中减去可用数量?【英文标题】:How to Subtract available quantity from ordered quantity when order confirmed? 【发布时间】:2021-04-12 09:19:40 【问题描述】:

首先,我并不是很喜欢硬编码等,我确实尝试过寻找解决问题的方法,但我没有得到一些解释。

我在购物车中有三个数据产品、产品详细信息和来自 firestore 的已订购数据。我需要从购物车数据中的产品中减少产品详细信息中的可用数量,并更新 firestore 中的可用数量。

购物车数据中的产品:

var  Cart= [
  ProdName : "Smartphone",
  ProdID  : "0n7TZQrgpbfs8hPDKc7n",
  ProductQuantity : 2,
  ProductPrice  : 1500
,
  ProdName : "Charger",
  ProdID  : "11VOxRvH2dc8cxyR4AYG",
  ProductQuantity : 1,
  ProductPrice  : 600
];

商品详情数据

  var  Products= [
      Name : "Smartphone",
      ID  : "0n7TZQrgpbfs8hPDKc7n",
      AvailableQuantity : 100,
      Price  : 1500,
      Category : "Tech"
    ,
      Name : "Charger",
      ID  : "11VOxRvH2dc8cxyR4AYG",
      AvailableQuantity : 150,
      Price  : 600,
      Category : "Tech"
    ];

下单数据

  var  Order= 
      UserName : "Rakesh",
      UserID  : "CcojGJPh3mIyoCZmParw",
      OrderID :"H2Fbh3jTQ2XL7B9ttXBz",
      UserPhone : 9840184150,
      PlacedDate: "date",
      ProductsPlaced : [
       
        ProdName : "Smartphone",
        ProdID  : "0n7TZQrgpbfs8hPDKc7n",
        ProductQuantity : 2,
        ProductPrice  : 1500
        ,
        ProdName : "Charger",
        ProdID  : "11VOxRvH2dc8cxyR4AYG",
        ProductQuantity : 1,
        ProductPrice  : 600
        
      ]
        ;

【问题讨论】:

请添加一些您尝试过但不适合您的代码,以便我们尝试帮助您。 【参考方案1】:

结帐时您会想要这个:

Order.ProductsPlaced.forEach( i =>  
  console.log(i); 
  var _idx = Products.findIndex( p => p.ID === i.ProdID); 
  if (_idx < 0) 
    console.log("Index Not Found"); 
    return; 
   
  Products[_idx].AvailableQuantity =  Products[_idx].AvailableQuantity - i.ProductQuantity;
);

由于您执行此操作的方式,您需要查找产品 ID 以找到正确的产品,然后进行减法。这对于您放入购物车但可用的物品少于所需的物品没有逻辑。所以考虑到这一点。

【讨论】:

以上是关于订单确认后如何从订购数量中减去可用数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过掩码计算可用的IP数量

SAP销售订单的行项目在首次批量维护后,某些行项目的计划行确认数量为0,怎么回事?

SAP 可用库存统计

请教有关生产订单方面的问题

Python中可用处理器的数量[重复]

如何在 Python GUI 中从用户输入的数字中使用任意数量的可用文本框