|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace app\admin\controller\order;
|
|
|
|
|
|
+use app\admin\service\order\OrderService;
|
|
|
use app\admin\validate\coupon\CouponValidate;
|
|
|
use app\admin\validate\device\DeviceValidate;
|
|
|
use app\admin\validate\order\OrderExpressValidate;
|
|
@@ -18,7 +19,9 @@ use app\model\Order;
|
|
|
use app\model\OrderExpress;
|
|
|
use app\model\OrderSheet;
|
|
|
use app\model\PayDetail;
|
|
|
+use app\model\Premises;
|
|
|
use app\model\Supplier;
|
|
|
+use app\model\SysDept;
|
|
|
use app\model\SysSerial;
|
|
|
use support\Db;
|
|
|
use support\exception\BusinessException;
|
|
@@ -221,6 +224,7 @@ class WholeController extends Curd
|
|
|
$account->member_account_expend = $account->member_account_expend + $params['order_sheet_pay'];
|
|
|
$account->save();
|
|
|
}
|
|
|
+
|
|
|
$goods = Goods::where('goods_id', $params['join_sheet_goods_id'])
|
|
|
->select('goods_id', 'goods_name', 'goods_classify')
|
|
|
->first();
|
|
@@ -229,6 +233,12 @@ class WholeController extends Curd
|
|
|
}
|
|
|
$goods = $goods->toArray();
|
|
|
|
|
|
+ $writeOffDate = [];
|
|
|
+ // 服务已完成,生成核销数据
|
|
|
+ if($params['order_status_system'] == 'DONE' && in_array($goods['goods_classify'],['SERVICE','PACKAGE'])){
|
|
|
+ $writeOffDate = OrderService::generateWriteOffData($params);
|
|
|
+ }
|
|
|
+
|
|
|
$params['orderId'] = 'OD' . date('YmdHis') . random_string(6, 'up');
|
|
|
$params['orderGroupId'] = 'OD' . date('YmdHis') . random_string(6, 'up');
|
|
|
$params['benefitId'] = 'BF' . date('YmdHis') . random_string(6, 'up');
|
|
@@ -246,7 +256,7 @@ class WholeController extends Curd
|
|
|
for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
|
|
|
$params['appointmentId'] = 'AP' . date('YmdHis') . random_string(6, 'up');
|
|
|
// 入预约记录
|
|
|
- $this->insertAppointment($params);
|
|
|
+ $this->insertAppointment($params,$writeOffDate);
|
|
|
}
|
|
|
$goods['skuId'] = $params['join_sheet_goods_sku_id'];
|
|
|
$goods['category'] = 'SERVICE';
|
|
@@ -272,7 +282,7 @@ class WholeController extends Curd
|
|
|
for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
|
|
|
$params['appointmentId'] = 'AP' . date('YmdHis') . random_string(8, 'up');
|
|
|
// 入预约记录
|
|
|
- $this->insertAppointment($params);
|
|
|
+ $this->insertAppointment($params,$writeOffDate);
|
|
|
}
|
|
|
$goods['goods_id'] = $component['join_component_goods_id'];
|
|
|
$goods['goods_name'] = $component['goods']['goods_name'];
|
|
@@ -351,6 +361,7 @@ class WholeController extends Curd
|
|
|
'order_sheet_price' => $params['order_sheet_price'],
|
|
|
'order_sheet_amount' => $params['order_sheet_amount'],
|
|
|
'order_sheet_pay' => $params['order_sheet_pay'],
|
|
|
+ 'order_sheet_remark'=>$params['order_remark'] ?? '',
|
|
|
'order_sheet_addtimes' => time()
|
|
|
];
|
|
|
OrderSheet::insert($data);
|
|
@@ -379,6 +390,7 @@ class WholeController extends Curd
|
|
|
'pay_amount' => $params['order_sheet_pay'],
|
|
|
'pay_prepayid' => 0,
|
|
|
'pay_paytimes' => date('Y-m-d H:i:s'),
|
|
|
+ 'pay_remark'=>$params['order_remark'] ?? '',
|
|
|
'pay_addtimes' => time()
|
|
|
];
|
|
|
|
|
@@ -397,7 +409,7 @@ class WholeController extends Curd
|
|
|
* @return void
|
|
|
* @throws BusinessException
|
|
|
*/
|
|
|
- public function insertAppointment($params)
|
|
|
+ public function insertAppointment($params,$writeOffDate)
|
|
|
{
|
|
|
try {
|
|
|
$data = [
|
|
@@ -411,6 +423,9 @@ class WholeController extends Curd
|
|
|
'appointment_status' => $params['order_status_system'] == 'DONE' ? 'DONE' : 'INIT',
|
|
|
'appointment_category' => 'NORMAL',
|
|
|
'appointment_addtimes' => time(),
|
|
|
+ 'appointment_done_datetime'=>$params['order_status_system'] == 'DONE' ? date('Y-m-d H:i:s') : '',
|
|
|
+ 'appointment_remark' => $params['order_remark'] ?? '',
|
|
|
+ 'appointment_done_json' => $params['order_status_system'] == 'DONE' && $writeOffDate ? json_encode($writeOffDate) : []
|
|
|
];
|
|
|
Appointment::insert($data);
|
|
|
} catch (\Exception $e) {
|
|
@@ -444,6 +459,7 @@ class WholeController extends Curd
|
|
|
'member_benefit_name' => $goods['goods_name'],
|
|
|
'member_benefit_limit_count' => $params['order_sheet_num'],
|
|
|
'member_benefit_used_count' => $params['order_status_system'] == 'DONE' ? $params['order_sheet_num'] : 0,
|
|
|
+ 'member_benefit_remark' => $params['order_remark'] ?? '',
|
|
|
'member_benefit_addtimes' => time()
|
|
|
];
|
|
|
MemberBenefit::insert($data);
|