mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 06:30:49 +00:00
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\GoodsSkuRequest;
|
||||
use App\Models\Goods;
|
||||
use App\Models\Log;
|
||||
use App\Models\Log as LogModel;
|
||||
use App\Utils\FormatUtils;
|
||||
use Illuminate\Http\Request;
|
||||
@ -36,10 +37,20 @@ class GoodsSkusController extends Controller
|
||||
$goods = Goods::query()->filter()->get()->toArray();
|
||||
$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();
|
||||
$goodsSkus = GoodsSku::query()
|
||||
->whereIn('goods_id', $goodsIds)
|
||||
->when($ids, function ($query, $ids) {
|
||||
return $query->whereIn('id', $ids);
|
||||
})
|
||||
->filter()
|
||||
->with(['goods' => function ($query) {
|
||||
$query->with(['type:id,name', 'brand:id,name']);
|
||||
@ -133,11 +144,13 @@ class GoodsSkusController extends Controller
|
||||
'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['before_update'] = $goodsSku->cost;
|
||||
$goodsSku->cost = $sku['cost'];
|
||||
$goodsSku->reference_price = $sku['cost'] * 1.5;
|
||||
$goodsSku->stock += $sku['arrived_today_num'];
|
||||
$goodsSku->num += $sku['arrived_today_num'];
|
||||
$goodsSku->save();
|
||||
$costLog['after_update'] = $goodsSku->cost;
|
||||
$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']);
|
||||
$arrivedLog['target_field'] = '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();
|
||||
$arrivedLog['after_update'] = $record->arrived_today_num;
|
||||
$logs[] = $arrivedLog;
|
||||
@ -207,7 +220,7 @@ class GoodsSkusController extends Controller
|
||||
$update = reset($skus);
|
||||
DB::beginTransaction();
|
||||
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()
|
||||
->where('sku_id', $sku->id)
|
||||
->where('day', FormatUtils::date())
|
||||
@ -215,10 +228,12 @@ 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,
|
||||
]);
|
||||
$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();
|
||||
$record->arrived_today_num = $update['arrived_today_num'];
|
||||
$record->save();
|
||||
@ -284,12 +299,21 @@ class GoodsSkusController extends Controller
|
||||
->where('sku_id', $id)
|
||||
->where('day', FormatUtils::date())
|
||||
->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 {
|
||||
$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();
|
||||
$this->setAfterUpdate($model->$updateField);
|
||||
$this->addLog($id, $updateField);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user