Commit 0824f955 authored by hangjun83's avatar hangjun83

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

parent 0e5a072c
......@@ -270,12 +270,16 @@ class BhOrdersService
if($num == 0){
$createArr['si_amount'] = $refundInfo->handle_fee;
}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_assigned_num'] = $createArr['si_num'];
$createArr['si_discount'] = bcdiv($createArr['si_amount'], $createArr['si_num'], 2);
if($createArr['si_amount'] < 0){
throw new \LogicException('手续费异常,处理失败!',500);
......@@ -614,10 +618,9 @@ class BhOrdersService
}
}
if($sOrderDetail['so_pay_status'] == 0){
return ;
//throw new \LogicException('未完成付款的订单不能取消转预存款!',500);
}
/*if($sOrderDetail['so_pay_status'] == 0){
throw new \LogicException('未完成付款的订单不能取消转预存款!',500);
}*/
if($sOrderDetail['so_pay_status'] == 1){
throw new \LogicException('部分付款的订单不能取消明细,请联系管理员!',500);
}
......@@ -711,87 +714,91 @@ class BhOrdersService
if($siAmountTotalPid > 0){
$refund_amount = $soItem['si_amount'];
// 退款
if($refundInfo->transfer_pre == 0){
if($sOrderDetail['so_pay_status'] > 0){
// 退款
if($refundInfo->transfer_pre == 0){
$refund_data = [];
$refund_data['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data);
$refund_data = [];
$refund_data['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data);
}else{
}else{
$prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time();
$prepaylog_data['prepaylog_operator'] = auth()->user()->id;
$prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time();
$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')
->where('cus_id',$sOrderDetail['cus_id'])
->sum('prepaylog_amount');
$sum = $db->table('prepaylog')
->where('cus_id',$sOrderDetail['cus_id'])
->sum('prepaylog_amount');
$db->table('customers')
->where('cus_id',$sOrderDetail['cus_id'])
->update(['cus_prepay' => $sum]);
$db->table('customers')
->where('cus_id',$sOrderDetail['cus_id'])
->update(['cus_prepay' => $sum]);
$si_cancel_time = time();
}
$si_cancel_time = time();
}
}
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);
}else {
//得到退款金额
$sOrder = app(BhSordersRepository::class)->find($sOrderItem['so_id']);
if (!$sOrder) {
throw new \LogicException('数据不存在!', 500);
}
$sOrder = $sOrder->toArray();
if($sOrderDetail['so_pay_status'] > 0){
//得到退款金额
$sOrder = app(BhSordersRepository::class)->find($sOrderItem['so_id']);
if (!$sOrder) {
throw new \LogicException('数据不存在!', 500);
}
$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['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data);
$refund_data = array();
$refund_data['r_company'] = $customer->cus_company;
$refund_data['r_amount'] = $refund_amount;
$refund_data['r_ctime'] = time();
$refund_data['r_note'] = $note;
$refund_data['r_bank_account'] = '';
$refund_data['r_confirm_note'] = '';
$db->table('refund')->insertGetId($refund_data);
}else{
}else{
$prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time();
$prepaylog_data['prepaylog_operator'] = auth()->user()->id;
$prepaylog_data = [];
$prepaylog_data['cus_id'] = $sOrderDetail['cus_id'];
$prepaylog_data['prepaylog_amount'] = $refund_amount;
$prepaylog_data['prepaylog_note'] = $note;
$prepaylog_data['prepaylog_date'] = time();
$prepaylog_data['prepaylog_time'] = time();
$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')
->where('cus_id', $sOrderDetail['cus_id'])
->sum('prepaylog_amount');
$sum = $db->table('prepaylog')
->where('cus_id', $sOrderDetail['cus_id'])
->sum('prepaylog_amount');
$db->table('customers')
->where('cus_id', $sOrderDetail['cus_id'])
->update(['cus_prepay' => $sum]);
$db->table('customers')
->where('cus_id', $sOrderDetail['cus_id'])
->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']);
......
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