This commit is contained in:
mkm 2023-11-16 15:17:39 +08:00
parent 22c4cb8518
commit b9298d45c0
2 changed files with 22 additions and 11 deletions

View File

@ -2339,7 +2339,12 @@ class ProductRepository extends BaseRepository
$stockIn = $params['number'] ?? 0; $stockIn = $params['number'] ?? 0;
$price = $params['price'] ?? 0; $price = $params['price'] ?? 0;
if ($stockIn == 0) { if ($stockIn == 0) {
$stockIn = 1; $number=$model->where('order_id',$params['order_id'])
->where('order_product_id',$params['order_product_id'])->where('order_unique',$params['order_unique'])->value('number');
if($number<=0){
throw new ValidateException('数量不能为空');
}
$stockIn = $number;
} }
if (empty($params['product_id']) && !empty($params['order_product_id'])) { if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格 //有商品无规格或者无商品无规格,导入商品和规格
@ -2353,10 +2358,10 @@ class ProductRepository extends BaseRepository
if (empty($orderProduct)) { if (empty($orderProduct)) {
$unique = $this->importAttrValue($params['order_product_id'], $product->toArray(), $params['order_unique']); $unique = $this->importAttrValue($params['order_product_id'], $product->toArray(), $params['order_unique']);
if (!$unique) { if (!$unique) {
throw new \Exception('商品规格导入出错', 500); throw new ValidateException('商品规格导入出错');
} }
} }
if ($orderProduct->is_imported == 1) { if ($orderProduct->is_imported == 0) {
ProductAttrValue::where('mer_id', $merId) ProductAttrValue::where('mer_id', $merId)
->where('product_id', $product['product_id']) ->where('product_id', $product['product_id'])
@ -2373,10 +2378,12 @@ class ProductRepository extends BaseRepository
'supplier_mer_id' => $orderMerId ?? 0, 'supplier_mer_id' => $orderMerId ?? 0,
]; ];
if (!$model->save($data)) { if (!$model->save($data)) {
throw new \Exception('入库失败', 500); throw new ValidateException('入库失败');
} }
Db::commit(); Db::commit();
return true; return true;
}else{
throw new ValidateException('该商品已导入过');
} }
$stockIn = $orderProduct['product_num'] ?? 0; $stockIn = $orderProduct['product_num'] ?? 0;
$price = $orderProduct['product_price'] ?? 0; $price = $orderProduct['product_price'] ?? 0;
@ -2397,7 +2404,7 @@ class ProductRepository extends BaseRepository
$attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $params['product_id'])->where('unique', $params['unique'])->find(); $attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $params['product_id'])->where('unique', $params['unique'])->find();
} }
if (!$product || !$attrValue) { if (!$product || !$attrValue) {
throw new DataNotFoundException('商品或规格不存在'); throw new ValidateException('商品或规格不存在');
} }
if ($stockIn <= 0) { if ($stockIn <= 0) {
throw new ValidateException('入库数量不能小于等于0'); throw new ValidateException('入库数量不能小于等于0');
@ -2406,7 +2413,7 @@ class ProductRepository extends BaseRepository
$attrValue->save(); $attrValue->save();
$product->stock = $stockIn + $product->stock; $product->stock = $stockIn + $product->stock;
if (!$product->save()) { if (!$product->save()) {
throw new \Exception('商品库存保存失败', 500); throw new ValidateException('商品库存保存失败');
} }
$data = [ $data = [
'order_id' => $params['order_id'] ?? 0, 'order_id' => $params['order_id'] ?? 0,
@ -2420,15 +2427,15 @@ class ProductRepository extends BaseRepository
'supplier_mer_id' => $supplierMerId, 'supplier_mer_id' => $supplierMerId,
]; ];
if (!$model->save($data)) { if (!$model->save($data)) {
throw new \Exception('入库失败', 500); throw new ValidateException('入库失败');
} }
if (isset($orderProduct) && !$orderProduct->save(['is_imported' => 1])) { if (isset($orderProduct) && !$orderProduct->save(['is_imported' => 1])) {
throw new \Exception('订单商品更新出错', 500); throw new ValidateException('订单商品更新出错');
} }
Db::commit(); Db::commit();
} catch (\Exception $e) { } catch (\Exception $e) {
Db::rollback(); Db::rollback();
throw new \Exception($e->getMessage(), $e->getCode()); throw new ValidateException($e->getMessage(), $e->getCode());
} }
return true; return true;
} }

View File

@ -239,8 +239,12 @@ class StoreProduct extends BaseController
public function stockIn() public function stockIn()
{ {
$params = $this->request->param(); $params = $this->request->param();
$this->repository->stockIn($this->merId, $params); $res=$this->repository->stockIn($this->merId, $params);
return app('json')->success('入库成功'); if($res){
return app('json')->success('入库成功');
}else{
return app('json')->success('入库失败');
}
} }
} }