public static function outStockInsertOrderProduct($order_code, $sku, $qt) { //DB::Debug(); $stocknum = ProductsStock::getSkuStock($sku); //检查库存是否充足 if ($stocknum < $qt) { return false; } DB::tranBegin('outStockInsertOrderProduct'); //事务开始 $stock_ids = ProductsStock::getSkuOutStock($sku, $qt); //查询库存中的批号 if (!$stock_ids) { return false; } foreach ($stock_ids as $sid => $stocks) { $exp_date = isset($stocks['exp_date']) ? (int) $stocks['exp_date'] : 0; $stock = isset($stocks['stock']) ? (int) $stocks['stock'] : 0; if ($stock < 1) { continue; } ProductsStock::reduce("id='{$sid}'", 'stock', $stock); //从库存和批号中减去 OrdersProducts::insert(array('order_code' => $order_code, 'product_sku' => $sku, 'product_num' => $stock, 'exp_date' => $exp_date)); } $commit_status = DB::tranEnd('outStockInsertOrderProduct'); return $commit_status; }
public static function add($order_code, $product_sku, $product_num) { if (!$order_code || !$product_sku || !$product_num) { return false; } $stock_ids = ProductsStock::getSkuOutStock($product_sku, $product_num); if (!$stock_ids) { return false; } DB::tranBegin(); //事务开始 foreach ($stock_ids as $id => $stocks) { $exp_date = isset($stocks['exp_date']) ? (int) $stocks['exp_date'] : 0; $stock = isset($stocks['stock']) ? (int) $stocks['stock'] : 0; ProductsStockLock::insert(array('order_code' => $order_code, 'product_sku' => $product_sku, 'product_num' => $stock, 'exp_date' => $exp_date, 'create_time' => time(), 'status' => 0)); ProductsStock::reduce("id='{$id}'", 'stock', $stock); } $commit_status = DB::tranEnd(); return $commit_status; }