添加商品采购入库
This commit is contained in:
parent
d524565ce1
commit
11ba0dc8d3
36
app/common/model/store/product/PurchaseRecord.php
Normal file
36
app/common/model/store/product/PurchaseRecord.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\common\model\store\product;
|
||||||
|
|
||||||
|
use app\common\model\BaseModel;
|
||||||
|
use app\common\model\system\merchant\Merchant;
|
||||||
|
|
||||||
|
class PurchaseRecord extends BaseModel
|
||||||
|
{
|
||||||
|
|
||||||
|
public static function tablePk(): string
|
||||||
|
{
|
||||||
|
return 'id';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function tableName(): string
|
||||||
|
{
|
||||||
|
return 'purchase_record';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function product()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Product::class, 'product_id', 'product_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function supplier()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Merchant::class, 'mer_id', 'supplier_mer_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function merchant()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Merchant::class, 'mer_id', 'mer_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -14,6 +14,7 @@
|
|||||||
namespace app\common\repositories\store\product;
|
namespace app\common\repositories\store\product;
|
||||||
|
|
||||||
use app\common\model\store\product\ProductLabel;
|
use app\common\model\store\product\ProductLabel;
|
||||||
|
use app\common\model\store\product\PurchaseRecord;
|
||||||
use app\common\model\store\product\Spu;
|
use app\common\model\store\product\Spu;
|
||||||
use app\common\model\user\User;
|
use app\common\model\user\User;
|
||||||
use app\common\repositories\community\CommunityRepository;
|
use app\common\repositories\community\CommunityRepository;
|
||||||
@ -2252,4 +2253,50 @@ class ProductRepository extends BaseRepository
|
|||||||
//单次限购
|
//单次限购
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购入库
|
||||||
|
* @param $params
|
||||||
|
* @return mixed
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function stockIn($params)
|
||||||
|
{
|
||||||
|
$product = $this->get($params['product_id']);
|
||||||
|
if (!$product) {
|
||||||
|
return app('json')->fail('商品不存在');
|
||||||
|
}
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
$attrValue = [];
|
||||||
|
foreach ($params['attrValue'] as $item) {
|
||||||
|
$attrValue[$item['unique']] = ['price' => $item['price'], 'number' => $item['number']];
|
||||||
|
}
|
||||||
|
$stockIn = 0;
|
||||||
|
foreach ($product->attrValue as $item) {
|
||||||
|
$stockIn += $attrValue[$item->unique]['number'];
|
||||||
|
$item->update(['stock' => $item->stock + $attrValue[$item->unique]['number']], ['unique' => $item->unique]);
|
||||||
|
}
|
||||||
|
$model = new PurchaseRecord();
|
||||||
|
$data = [
|
||||||
|
'product_id' => $params['product_id'],
|
||||||
|
'number' => json_encode($attrValue),
|
||||||
|
'mer_id' => $product->mer_id,
|
||||||
|
'supplier_mer_id' => 0,
|
||||||
|
];
|
||||||
|
if (!$model->save($data)) {
|
||||||
|
throw new \Exception('入库失败');
|
||||||
|
}
|
||||||
|
$product->stock = $stockIn + $product->stock;
|
||||||
|
if (!$product->save()) {
|
||||||
|
throw new \Exception('入库失败');
|
||||||
|
}
|
||||||
|
Db::commit();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
throw new \Exception($e->getMessage());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -216,4 +216,17 @@ class StoreProduct extends BaseController
|
|||||||
$this->repository->update($id, ['is_good' => $is_good]);
|
$this->repository->update($id, ['is_good' => $is_good]);
|
||||||
return app('json')->success('修改成功');
|
return app('json')->success('修改成功');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品入库
|
||||||
|
* @return \think\response\Json
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function stockIn()
|
||||||
|
{
|
||||||
|
$param = $this->request->param();
|
||||||
|
$this->repository->stockIn($param);
|
||||||
|
return app('json')->success('入库成功');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -257,6 +257,7 @@ Route::group('api/', function () {
|
|||||||
Route::post('product/destory/:id', 'StoreProduct/destory');
|
Route::post('product/destory/:id', 'StoreProduct/destory');
|
||||||
Route::post('product/good/:id', 'StoreProduct/updateGood');
|
Route::post('product/good/:id', 'StoreProduct/updateGood');
|
||||||
Route::get('product/config', 'StoreProduct/config');
|
Route::get('product/config', 'StoreProduct/config');
|
||||||
|
Route::post('product/stockIn', 'StoreProduct/stockIn');
|
||||||
|
|
||||||
//商品分类
|
//商品分类
|
||||||
Route::get('category/lst', 'StoreCategory/lst');
|
Route::get('category/lst', 'StoreCategory/lst');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user