供应链保证金退款
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->order->order_id = $model->refund_order_id;
|
||||||
$financeDao->platformIn($refundTotal, 'supply_chain_refund', $model->mer_id);
|
$financeDao->platformIn($refundTotal, 'supply_chain_refund', $model->mer_id);
|
||||||
|
|
||||||
// TODO 暂时不退保证金
|
$marginRecord = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
||||||
// if ($refundOrder->order->status == -1){
|
->where('mer_id', $model->mer_id)
|
||||||
// $margin = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
->where('financial_type', 'auto_margin')
|
||||||
// ->where('mer_id', $model->mer_id)
|
->value('number');
|
||||||
// ->where('financial_type', 'auto_margin')
|
$marginRefunded = FinancialRecord::where('order_id', $refundOrder['order_id'])
|
||||||
// ->value('number');
|
->where('mer_id', $model->mer_id)
|
||||||
// if ($margin) {
|
->where('financial_type', 'auto_margin_refund')
|
||||||
// $financeDao->platformOut($margin, 'auto_margin_refund', $model->mer_id);
|
->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();
|
$financeDao->save();
|
||||||
|
|
||||||
app()->make(MerchantRepository::class)->subLockMoney($model->mer_id, 'order', $refundOrder['order_id'], $refundTotal);
|
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];
|
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