供应链保证金退款
This commit is contained in:
parent
959a01a1d1
commit
a64abab901
@ -836,16 +836,23 @@ class StoreOrderOtherDao extends BaseDao
|
||||
$financeDao->order->order_id = $model->refund_order_id;
|
||||
$financeDao->platformIn($refundTotal, 'supply_chain_refund', $model->mer_id);
|
||||
|
||||
// TODO 暂时不退保证金
|
||||
// if ($refundOrder->order->status == -1){
|
||||
// $margin = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
||||
// ->where('mer_id', $model->mer_id)
|
||||
// ->where('financial_type', 'auto_margin')
|
||||
// ->value('number');
|
||||
// if ($margin) {
|
||||
// $financeDao->platformOut($margin, 'auto_margin_refund', $model->mer_id);
|
||||
// }
|
||||
// }
|
||||
$marginRecord = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
||||
->where('mer_id', $model->mer_id)
|
||||
->where('financial_type', 'auto_margin')
|
||||
->value('number');
|
||||
$marginRefunded = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
||||
->where('mer_id', $model->mer_id)
|
||||
->where('financial_type', 'auto_margin_refund')
|
||||
->sum('number');
|
||||
if ($marginRecord > $marginRefunded) {
|
||||
/** @var MerchantRepository $merchantRepo */
|
||||
$merchantRepo = app()->make(MerchantRepository::class);
|
||||
$merchantRepo->forceMargin = false;
|
||||
$merchantRepo->merId = $model->mer_id;
|
||||
[$margin, $financeDao] = $merchantRepo->refundDeposit($refundTotal, $financeDao);
|
||||
$merchantRepo->addLockMoney($model->mer_id, 'order', $refundOrder['order_id'], $margin);
|
||||
}
|
||||
|
||||
$financeDao->save();
|
||||
|
||||
app()->make(MerchantRepository::class)->subLockMoney($model->mer_id, 'order', $refundOrder['order_id'], $refundTotal);
|
||||
|
@ -813,4 +813,33 @@ class MerchantRepository extends BaseRepository
|
||||
return [bcsub($income,$margin,2), $financeDao];
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动扣除押金
|
||||
* @param $income
|
||||
* @param FinancialDao $financeDao
|
||||
* @return array
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function refundDeposit($income, FinancialDao $financeDao)
|
||||
{
|
||||
$merchant = Merchant::find($this->merId);
|
||||
$rate = $this->forceMargin ? 100 : $merchant['auto_margin_rate'];
|
||||
$margin = bcmul($income, bcdiv($rate, 100,2), 2);
|
||||
$merchant->paid_margin = bcsub($merchant->paid_margin, $margin, 2);
|
||||
if ($merchant->paid_margin <= 0) {
|
||||
return [bcsub($income,$margin,2), $financeDao];
|
||||
}
|
||||
if ($merchant->paid_margin < $merchant['margin'] && $merchant->is_margin == 10) {
|
||||
$merchant->is_margin = 1;
|
||||
}
|
||||
$merchant->ot_margin = $merchant->paid_margin;
|
||||
if ($merchant->save() === false) {
|
||||
throw new \Exception('merchant 保存出错', 500);
|
||||
}
|
||||
$financeDao->platformOut($margin, 'auto_margin_refund', $this->merId);
|
||||
return [$margin, $financeDao];
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user