feat: #20220804 商品流程测试修改
This commit is contained in:
parent
9553c73c42
commit
088c41cee9
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Http\Requests\GoodsRequest;
|
use App\Http\Requests\GoodsRequest;
|
||||||
use App\Http\Requests\GoodsSkuRequest;
|
use App\Http\Requests\GoodsSkuRequest;
|
||||||
use App\Models\Goods;
|
use App\Models\Goods;
|
||||||
|
use App\Models\Log;
|
||||||
use App\Models\Log as LogModel;
|
use App\Models\Log as LogModel;
|
||||||
use App\Utils\FormatUtils;
|
use App\Utils\FormatUtils;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -36,10 +37,20 @@ class GoodsSkusController extends Controller
|
|||||||
$goods = Goods::query()->filter()->get()->toArray();
|
$goods = Goods::query()->filter()->get()->toArray();
|
||||||
$goodsIds = array_column($goods, 'id');
|
$goodsIds = array_column($goods, 'id');
|
||||||
// 状态变更时间查询,日志
|
// 状态变更时间查询,日志
|
||||||
|
$ids = [];
|
||||||
|
if ($request->get('keyword_type', '') && $request->get('keyword_value', '')) {
|
||||||
|
$ids = Log::query()->where('target_type', 'sku')
|
||||||
|
->where('target_field', $request->keyword_type)
|
||||||
|
->whereBetween('created_at', explode(' - ', $request->keyword_value))
|
||||||
|
->pluck('sku_id')
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
$day = FormatUtils::date();
|
$day = FormatUtils::date();
|
||||||
$goodsSkus = GoodsSku::query()
|
$goodsSkus = GoodsSku::query()
|
||||||
->whereIn('goods_id', $goodsIds)
|
->whereIn('goods_id', $goodsIds)
|
||||||
|
->when($ids, function ($query, $ids) {
|
||||||
|
return $query->whereIn('id', $ids);
|
||||||
|
})
|
||||||
->filter()
|
->filter()
|
||||||
->with(['goods' => function ($query) {
|
->with(['goods' => function ($query) {
|
||||||
$query->with(['type:id,name', 'brand:id,name']);
|
$query->with(['type:id,name', 'brand:id,name']);
|
||||||
@ -133,11 +144,13 @@ class GoodsSkusController extends Controller
|
|||||||
'user_id' => $request->user()->id
|
'user_id' => $request->user()->id
|
||||||
];
|
];
|
||||||
// 成本
|
// 成本
|
||||||
$goodsSku = GoodsSku::query()->where('id', $sku['id'])->first(['id', 'cost']);
|
$goodsSku = GoodsSku::query()->where('id', $sku['id'])->first(['id', 'cost', 'stock', 'num']);
|
||||||
$costLog['target_field'] = 'cost';
|
$costLog['target_field'] = 'cost';
|
||||||
$costLog['before_update'] = $goodsSku->cost;
|
$costLog['before_update'] = $goodsSku->cost;
|
||||||
$goodsSku->cost = $sku['cost'];
|
$goodsSku->cost = $sku['cost'];
|
||||||
$goodsSku->reference_price = $sku['cost'] * 1.5;
|
$goodsSku->reference_price = $sku['cost'] * 1.5;
|
||||||
|
$goodsSku->stock += $sku['arrived_today_num'];
|
||||||
|
$goodsSku->num += $sku['arrived_today_num'];
|
||||||
$goodsSku->save();
|
$goodsSku->save();
|
||||||
$costLog['after_update'] = $goodsSku->cost;
|
$costLog['after_update'] = $goodsSku->cost;
|
||||||
$logs[] = $costLog;
|
$logs[] = $costLog;
|
||||||
@ -145,7 +158,7 @@ class GoodsSkusController extends Controller
|
|||||||
$record = DailyStockRecord::query()->where('sku_id', $sku['id'])->where('day', FormatUtils::date())->first(['id', 'arrived_today_num']);
|
$record = DailyStockRecord::query()->where('sku_id', $sku['id'])->where('day', FormatUtils::date())->first(['id', 'arrived_today_num']);
|
||||||
$arrivedLog['target_field'] = 'arrived_today_num';
|
$arrivedLog['target_field'] = 'arrived_today_num';
|
||||||
$arrivedLog['before_update'] = $record->arrived_today_num;
|
$arrivedLog['before_update'] = $record->arrived_today_num;
|
||||||
$record->arrived_today_num = $sku['arrived_today_num'];
|
$record->arrived_today_num += $sku['arrived_today_num'];
|
||||||
$record->save();
|
$record->save();
|
||||||
$arrivedLog['after_update'] = $record->arrived_today_num;
|
$arrivedLog['after_update'] = $record->arrived_today_num;
|
||||||
$logs[] = $arrivedLog;
|
$logs[] = $arrivedLog;
|
||||||
@ -207,7 +220,7 @@ class GoodsSkusController extends Controller
|
|||||||
$update = reset($skus);
|
$update = reset($skus);
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try {
|
try {
|
||||||
$sku = GoodsSku::query()->where('id', $update['id'])->get(['id', 'two_days_ago_num', 'yesterday_num']);
|
$sku = GoodsSku::query()->where('id', $update['id'])->get(['id', 'two_days_ago_num', 'yesterday_num', 'num', 'stock']);
|
||||||
$record = DailyStockRecord::query()
|
$record = DailyStockRecord::query()
|
||||||
->where('sku_id', $sku->id)
|
->where('sku_id', $sku->id)
|
||||||
->where('day', FormatUtils::date())
|
->where('day', FormatUtils::date())
|
||||||
@ -215,10 +228,12 @@ class GoodsSkusController extends Controller
|
|||||||
$this->setBeforeUpdate([
|
$this->setBeforeUpdate([
|
||||||
'two_days_ago_num' => $sku->two_days_ago_num,
|
'two_days_ago_num' => $sku->two_days_ago_num,
|
||||||
'yesterday_num' => $sku->yesterday_num,
|
'yesterday_num' => $sku->yesterday_num,
|
||||||
|
'num' => $sku->num,
|
||||||
'arrived_today_num' => $record->arrived_today_num,
|
'arrived_today_num' => $record->arrived_today_num,
|
||||||
]);
|
]);
|
||||||
$sku->two_days_ago_num = $update['two_days_ago_num'];
|
$sku->two_days_ago_num = $update['two_days_ago_num'];
|
||||||
$sku->yesterday_num = $update['two_days_ago_num'];
|
$sku->yesterday_num = $update['yesterday_num'];
|
||||||
|
$sku->num = $update['two_days_ago_num'] + $update['yesterday_num'] + $sku->stock;
|
||||||
$sku->save();
|
$sku->save();
|
||||||
$record->arrived_today_num = $update['arrived_today_num'];
|
$record->arrived_today_num = $update['arrived_today_num'];
|
||||||
$record->save();
|
$record->save();
|
||||||
@ -284,12 +299,21 @@ class GoodsSkusController extends Controller
|
|||||||
->where('sku_id', $id)
|
->where('sku_id', $id)
|
||||||
->where('day', FormatUtils::date())
|
->where('day', FormatUtils::date())
|
||||||
->first(['id', 'loss_num']);
|
->first(['id', 'loss_num']);
|
||||||
$this->log->message = $request->input('reason', '');
|
$this->log->message = $request->get('reason');
|
||||||
|
$this->setBeforeUpdate($model->loss_num);
|
||||||
|
$model->loss_num += $request->loss_num;
|
||||||
} else {
|
} else {
|
||||||
$model = GoodsSku::query()->find($id);
|
$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($model->$updateField);
|
|
||||||
$model->$updateField = $request->$updateField;
|
|
||||||
$model->save();
|
$model->save();
|
||||||
$this->setAfterUpdate($model->$updateField);
|
$this->setAfterUpdate($model->$updateField);
|
||||||
$this->addLog($id, $updateField);
|
$this->addLog($id, $updateField);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user