Commit 0824f955 authored by hangjun83's avatar hangjun83

后端:修复1)未付款订单销售明细没做取消,2)未付款的订单不做退款和转预存

parent 0e5a072c
...@@ -270,12 +270,16 @@ class BhOrdersService ...@@ -270,12 +270,16 @@ class BhOrdersService
if($num == 0){ if($num == 0){
$createArr['si_amount'] = $refundInfo->handle_fee; $createArr['si_amount'] = $refundInfo->handle_fee;
}else{ }else{
$createArr['si_amount'] = bcsub($currentAmount, $updateArr['si_amount'], 2); $createArr['si_amount'] = bcmul($refundInfo->refund_nums, $soItem['si_discount'], 2);
} }
$createArr['si_discount'] = bcdiv($createArr['si_amount'], $createArr['si_num'], 2);
} // 没有手续费的情况下
else{
$createArr['si_discount'] = $soItem['si_discount'];
$createArr['si_amount'] = bcmul($soItem['si_discount'], $refundInfo->refund_nums, 2);
} }
$createArr['si_num'] = $refundInfo->refund_nums; $createArr['si_num'] = $refundInfo->refund_nums;
$createArr['si_assigned_num'] = $createArr['si_num']; $createArr['si_assigned_num'] = $createArr['si_num'];
$createArr['si_discount'] = bcdiv($createArr['si_amount'], $createArr['si_num'], 2);
if($createArr['si_amount'] < 0){ if($createArr['si_amount'] < 0){
throw new \LogicException('手续费异常,处理失败!',500); throw new \LogicException('手续费异常,处理失败!',500);
...@@ -614,10 +618,9 @@ class BhOrdersService ...@@ -614,10 +618,9 @@ class BhOrdersService
} }
} }
if($sOrderDetail['so_pay_status'] == 0){ /*if($sOrderDetail['so_pay_status'] == 0){
return ; throw new \LogicException('未完成付款的订单不能取消转预存款!',500);
//throw new \LogicException('未完成付款的订单不能取消转预存款!',500); }*/
}
if($sOrderDetail['so_pay_status'] == 1){ if($sOrderDetail['so_pay_status'] == 1){
throw new \LogicException('部分付款的订单不能取消明细,请联系管理员!',500); throw new \LogicException('部分付款的订单不能取消明细,请联系管理员!',500);
} }
...@@ -711,87 +714,91 @@ class BhOrdersService ...@@ -711,87 +714,91 @@ class BhOrdersService
if($siAmountTotalPid > 0){ if($siAmountTotalPid > 0){
$refund_amount = $soItem['si_amount']; $refund_amount = $soItem['si_amount'];
// 退款 if($sOrderDetail['so_pay_status'] > 0){
if($refundInfo->transfer_pre == 0){ // 退款
if($refundInfo->transfer_pre == 0){
$refund_data = []; $refund_data = [];
$refund_data['r_company'] = $customer->cus_company; $refund_data['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount; $refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time(); $refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note; $refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = ''; $refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = ''; $refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data); $db->table('refund')->insertGetId($refund_data);
}else{ }else{
$prepaylog_data = []; $prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id']; $prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount; $prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note; $prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time(); $prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time(); $prepaylog_data['prepaylog_time'] = time();
$prepaylog_data['prepaylog_operator'] = auth()->user()->id; $prepaylog_data['prepaylog_operator'] = auth()->user()->id;
$prepayId = $db->table('prepaylog')->insertGetId($prepaylog_data); $prepayId = $db->table('prepaylog')->insertGetId($prepaylog_data);
$sum = $db->table('prepaylog') $sum = $db->table('prepaylog')
->where('cus_id',$sOrderDetail['cus_id']) ->where('cus_id',$sOrderDetail['cus_id'])
->sum('prepaylog_amount'); ->sum('prepaylog_amount');
$db->table('customers') $db->table('customers')
->where('cus_id',$sOrderDetail['cus_id']) ->where('cus_id',$sOrderDetail['cus_id'])
->update(['cus_prepay' => $sum]); ->update(['cus_prepay' => $sum]);
$si_cancel_time = time(); $si_cancel_time = time();
} }
}
app(BhSordersRepository::class)->update(['so_total'=>$siAmountTotal],$sOrderItem['so_id']); app(BhSordersRepository::class)->update(['so_total'=>$siAmountTotal],$sOrderItem['so_id']);
app(BhSoitemsRepository::class)->update(['si_if_cancel'=>'1','si_cancel_time'=>$si_cancel_time],$si_id); app(BhSoitemsRepository::class)->update(['si_if_cancel'=>'1','si_cancel_time'=>$si_cancel_time],$si_id);
}else { }else {
//得到退款金额 if($sOrderDetail['so_pay_status'] > 0){
$sOrder = app(BhSordersRepository::class)->find($sOrderItem['so_id']); //得到退款金额
if (!$sOrder) { $sOrder = app(BhSordersRepository::class)->find($sOrderItem['so_id']);
throw new \LogicException('数据不存在!', 500); if (!$sOrder) {
} throw new \LogicException('数据不存在!', 500);
$sOrder = $sOrder->toArray(); }
$sOrder = $sOrder->toArray();
$refund_amount = $sOrder['so_total']; $refund_amount = $sOrder['so_total'];
if($refundInfo->transfer_pre == 0){ if($refundInfo->transfer_pre == 0){
$refund_data = array(); $refund_data = array();
$refund_data['r_company'] = $customer->cus_company; $refund_data['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount; $refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time(); $refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note; $refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = ''; $refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = ''; $refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data); $db->table('refund')->insertGetId($refund_data);
}else{ }else{
$prepaylog_data = []; $prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id']; $prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount; $prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note; $prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time(); $prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time(); $prepaylog_data['prepaylog_time'] = time();
$prepaylog_data['prepaylog_operator'] = auth()->user()->id; $prepaylog_data['prepaylog_operator'] = auth()->user()->id;
$prepayId = $db->table('prepaylog')->insertGetId($prepaylog_data); $prepayId = $db->table('prepaylog')->insertGetId($prepaylog_data);
$sum = $db->table('prepaylog') $sum = $db->table('prepaylog')
->where('cus_id', $sOrderDetail['cus_id']) ->where('cus_id', $sOrderDetail['cus_id'])
->sum('prepaylog_amount'); ->sum('prepaylog_amount');
$db->table('customers') $db->table('customers')
->where('cus_id', $sOrderDetail['cus_id']) ->where('cus_id', $sOrderDetail['cus_id'])
->update(['cus_prepay' => $sum]); ->update(['cus_prepay' => $sum]);
$si_cancel_time = time(); $si_cancel_time = time();
}
} }
app(BhSordersRepository::class)->update(['so_review_status' => '3', 'so_total' => '0'], $sOrderItem['so_id']); app(BhSordersRepository::class)->update(['so_review_status' => '3', 'so_total' => '0'], $sOrderItem['so_id']);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment