mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-11-30 22:20:45 +00:00
parent
46c59fe993
commit
f497b36199
@ -44,7 +44,7 @@ class Test extends Command
|
||||
$business = BusinessFactory::init()->make($shop->plat_id);
|
||||
$business->setShop($shop);
|
||||
// 下载商品列表
|
||||
// $business->downloadGoodsList();
|
||||
// $business->downloadGoodsListAndBind();
|
||||
|
||||
// 下载单个商品
|
||||
// $business->downloadGoods(1);
|
||||
|
||||
@ -59,6 +59,7 @@ class GoodsController extends Controller
|
||||
$goodsSkus = [];
|
||||
foreach ($request->skus as $item) {
|
||||
$item['goods_id'] = $goods->id;
|
||||
$item['stock'] = $item['num'];
|
||||
$item['reference_price'] = $item['cost'] * 1.5;
|
||||
$goodsSkus[] = $item;
|
||||
}
|
||||
|
||||
@ -58,6 +58,7 @@ class GoodsSkusController extends Controller
|
||||
->with(['daily' => function ($query) use ($day) {
|
||||
$query->where('day', $day);
|
||||
}])
|
||||
->orderBy('updated_at', 'desc')
|
||||
->paginate();
|
||||
|
||||
return GoodsSkuResource::collection($goodsSkus);
|
||||
@ -197,7 +198,6 @@ class GoodsSkusController extends Controller
|
||||
'target_id' => $sku['id'],
|
||||
'user_id' => $request->user()->id
|
||||
];
|
||||
// 今日到货
|
||||
$record = DailyStockRecord::query()->where('sku_id', $sku['id'])->where('day', DateTimeUtils::getToday())->first(['id', 'inventory']);
|
||||
$inventoryLog['target_field'] = 'inventory';
|
||||
$inventoryLog['before_update'] = $record->inventory;
|
||||
@ -227,7 +227,7 @@ class GoodsSkusController extends Controller
|
||||
$update = reset($skus);
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$sku = GoodsSku::query()->where('id', $update['id'])->first(['id', 'two_days_ago_num', 'yesterday_num', 'num', 'stock']);
|
||||
$sku = GoodsSku::query()->where('id', $update['id'])->first(['id', 'two_days_ago_num', 'yesterday_num', 'num', 'stock', 'reserve']);
|
||||
$record = DailyStockRecord::query()
|
||||
->where('sku_id', $sku->id)
|
||||
->where('day', DateTimeUtils::getToday())
|
||||
@ -235,12 +235,15 @@ class GoodsSkusController extends Controller
|
||||
$this->setBeforeUpdate([
|
||||
'two_days_ago_num' => $sku->two_days_ago_num,
|
||||
'yesterday_num' => $sku->yesterday_num,
|
||||
'num' => $sku->num,
|
||||
'arrived_today_num' => $record->arrived_today_num,
|
||||
'num' => $sku->num,
|
||||
'stock' => $sku->stock,
|
||||
]);
|
||||
$sku->two_days_ago_num = $update['two_days_ago_num'];
|
||||
$sku->yesterday_num = $update['yesterday_num'];
|
||||
$sku->num = $update['two_days_ago_num'] + $update['yesterday_num'] + $sku->stock;
|
||||
$stock = $update['two_days_ago_num'] + $update['yesterday_num'] + $update['arrived_today_num'] - $sku->reserve - $record->loss_num;
|
||||
$sku->stock = $stock;
|
||||
$sku->num = $stock + $sku->reserve + $record->loss_num;
|
||||
$sku->save();
|
||||
$record->arrived_today_num = $update['arrived_today_num'];
|
||||
$record->save();
|
||||
@ -248,6 +251,8 @@ class GoodsSkusController extends Controller
|
||||
'two_days_ago_num' => $sku->two_days_ago_num,
|
||||
'yesterday_num' => $sku->yesterday_num,
|
||||
'arrived_today_num' => $record->arrived_today_num,
|
||||
'num' => $sku->num,
|
||||
'stock' => $sku->stock,
|
||||
]);
|
||||
$this->addLog($sku->id, 'stock');
|
||||
DB::commit();
|
||||
@ -301,28 +306,27 @@ class GoodsSkusController extends Controller
|
||||
return response($this->res, $this->res['httpCode']);
|
||||
}
|
||||
$updateField = \request('updateField');
|
||||
$sku = GoodsSku::query()->find($id);
|
||||
if ('loss_num' === $updateField) {
|
||||
$model = DailyStockRecord::query()
|
||||
$record = DailyStockRecord::query()
|
||||
->where('sku_id', $id)
|
||||
->where('day', DateTimeUtils::getToday())
|
||||
->first(['id', 'loss_num']);
|
||||
$this->log->message = $request->get('reason');
|
||||
$this->setBeforeUpdate($model->loss_num);
|
||||
$model->loss_num += $request->loss_num;
|
||||
} else {
|
||||
$model = GoodsSku::query()->find($id);
|
||||
$this->setBeforeUpdate($model->$updateField);
|
||||
if ('reserve' === $updateField) {
|
||||
$changeNum = $model->reserve - $request->reserve;
|
||||
$model->stock += $changeNum;
|
||||
$model->reserve = $request->reserve;
|
||||
$model->num += $changeNum;
|
||||
} else {
|
||||
$model->$updateField = $request->$updateField;
|
||||
}
|
||||
$this->setBeforeUpdate($record->loss_num);
|
||||
$record->loss_num += $request->loss_num;
|
||||
$record->save();
|
||||
$this->setAfterUpdate($record->loss_num);
|
||||
$sku->stock -= $request->loss_num;
|
||||
}
|
||||
$model->save();
|
||||
$this->setAfterUpdate($model->$updateField);
|
||||
$this->setBeforeUpdate($sku->$updateField);
|
||||
if ('reserve' === $updateField) {
|
||||
$changeNum = $sku->reserve - $request->reserve;
|
||||
$sku->stock += $changeNum;
|
||||
}
|
||||
$sku->$updateField = $request->$updateField;
|
||||
$sku->save();
|
||||
$this->setAfterUpdate($sku->$updateField);
|
||||
$this->addLog($id, $updateField);
|
||||
|
||||
return response($this->res, $this->res['httpCode']);
|
||||
|
||||
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use App\Models\Shop;
|
||||
use App\Http\Resources\ShopsResource;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Services\Business\BusinessFactory;
|
||||
use Illuminate\Validation\Rule;
|
||||
@ -101,13 +102,33 @@ class ShopsController extends Controller
|
||||
|
||||
public function countOrdersNumWithSkuCode(Request $request)
|
||||
{
|
||||
Validator::make($request->all(), [
|
||||
$validator = Validator::make($request->all(), [
|
||||
'sku_code' => ['required', 'array'],
|
||||
])->validate();
|
||||
return BusinessOrderItem::query()
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
$this->setValidatorFailResponse($validator->getMessageBag()->getMessages());
|
||||
|
||||
return response($this->res, $this->res['httpCode']);
|
||||
}
|
||||
$fields = implode(',', [
|
||||
'shop_id',
|
||||
'external_sku_id',
|
||||
'count(id) as count',
|
||||
]);
|
||||
$res = BusinessOrderItem::query()
|
||||
->select(DB::raw($fields))
|
||||
->whereIn('external_sku_id', $request->get('sku_code'))
|
||||
->groupBy(['shop_id'])
|
||||
->groupBy(['shop_id', 'external_sku_id'])
|
||||
->with(['shop:id,name'])
|
||||
->count('shop_id');
|
||||
->get();
|
||||
$data = [];
|
||||
foreach ($res as $item) {
|
||||
$data[$item->external_sku_id][] = [
|
||||
'shop_name' => $item->shop->name,
|
||||
'count' => $item->count,
|
||||
];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ class GoodsSkuRequest extends FormRequest
|
||||
'sku_code' => ['sometimes', 'required', 'distinct', 'alpha_dash', 'max:32'],
|
||||
'status' => ['sometimes', 'required', 'integer', Rule::in([0, 1, 2])],
|
||||
'num' => ['sometimes', 'required', 'integer'],
|
||||
'cost' => ['sometimes', 'required', 'numeric'],
|
||||
'cost' => ['sometimes', 'required', 'numeric', 'gt:0'],
|
||||
'reference_price' => [
|
||||
'sometimes',
|
||||
'numeric',
|
||||
|
||||
@ -52,6 +52,11 @@ return [
|
||||
'name' => '字段更新',
|
||||
'parent_id' => 2,
|
||||
],
|
||||
'goods_sku.orders_num' => [
|
||||
'id' => 28,
|
||||
'name' => '店铺订单',
|
||||
'parent_id' => 2,
|
||||
],
|
||||
'GOODS_TYPE' => [
|
||||
'id' => 3,
|
||||
'name' => '商品种类',
|
||||
|
||||
@ -33,6 +33,7 @@ Route::middleware(['auth:api', 'check.permissions'])->group(function () {
|
||||
Route::patch('single/goods_skus/{id}', [GoodsSkusController::class, 'updateField'])->name('goods_sku.single_update');
|
||||
// 店铺
|
||||
Route::resource('shops', 'Shop\ShopsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]);
|
||||
Route::get('count/orders/num', [ShopsController::class, 'countOrdersNumWithSkuCode'])->name('goods_sku.orders_num');
|
||||
// 角色
|
||||
Route::resource('roles', 'Role\RolesController', ['only' => ['index', 'store', 'show', 'update']]);
|
||||
Route::post('roles/{id}/permissions', [RolesController::class, 'addPermissions'])->name('roles.permission');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user