更新若干功能
This commit is contained in:
@@ -6,6 +6,7 @@ use App\BaseApp\BaseService;
|
||||
use App\Models\business\ListItemModel;
|
||||
use App\Models\business\ListModel;
|
||||
use App\Models\business\OrderModel;
|
||||
use App\Models\business\PriceSheetModel;
|
||||
use App\Models\business\WxUserModel;
|
||||
|
||||
/**
|
||||
@@ -22,7 +23,8 @@ class ListService extends BaseService
|
||||
$this->model = ListModel::class;
|
||||
$this->selectField = [
|
||||
'id', 'list_no', 'name', 'user_id', 'enterprise_id', 'remark',
|
||||
'status', 'created_at', 'updated_at',
|
||||
'status', 'package_id', 'package_amount', 'original_amount',
|
||||
'created_at', 'updated_at',
|
||||
];
|
||||
$this->queryField = [
|
||||
'list_no' => 'like',
|
||||
@@ -113,6 +115,13 @@ class ListService extends BaseService
|
||||
unset($item);
|
||||
$info['total_amount'] = $total;
|
||||
$info['total_amount_text'] = $price->centsToYuan($total);
|
||||
$payable = PackageQuoteService::getInstance()->listPayable(
|
||||
(int) ($info['package_id'] ?? 0),
|
||||
(int) ($info['package_amount'] ?? 0),
|
||||
(int) ($info['original_amount'] ?? 0),
|
||||
$info['items']
|
||||
);
|
||||
$info = array_merge($info, PackageQuoteService::getInstance()->withText($payable));
|
||||
return $info;
|
||||
}
|
||||
|
||||
@@ -171,8 +180,12 @@ class ListService extends BaseService
|
||||
if ($itemId <= 0) {
|
||||
$this->utils->errorThrow('参数错误');
|
||||
}
|
||||
$item = ListItemModel::with('list.user')->where('id', $itemId)->where('deleted_at', 0)->first();
|
||||
if (empty($item)) {
|
||||
$this->utils->errorThrow('明细不存在');
|
||||
}
|
||||
$update = ['updated_at' => time()];
|
||||
foreach (['price_sheet_id', 'quantity', 'unit_price'] as $field) {
|
||||
foreach (['price_sheet_id', 'quantity'] as $field) {
|
||||
if (array_key_exists($field, $params)) {
|
||||
$update[$field] = (int) $params[$field];
|
||||
}
|
||||
@@ -182,6 +195,20 @@ class ListService extends BaseService
|
||||
$update[$field] = (string) $params[$field];
|
||||
}
|
||||
}
|
||||
// 改规格后按该客户倍率重算当前单价,套餐清单才能按差额补差价
|
||||
$sheetId = (int) ($update['price_sheet_id'] ?? $item['price_sheet_id']);
|
||||
$material = (string) ($update['material_key'] ?? $item['material_key'] ?? 'routine');
|
||||
if ($sheetId > 0) {
|
||||
$sheet = PriceSheetModel::where('id', $sheetId)->where('deleted_at', 0)->first();
|
||||
if (!empty($sheet)) {
|
||||
$multiplier = $item['list']['user']['price_number'] ?? 1;
|
||||
$update['unit_price'] = PriceService::getInstance()->resolveUnitPrice(
|
||||
(string) ($sheet['routine'] ?? ''),
|
||||
$material,
|
||||
$multiplier
|
||||
);
|
||||
}
|
||||
}
|
||||
return ListItemModel::where('id', $itemId)->update($update);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user