parent
9d7bd8e9ab
commit
fded23b97d
|
@ -2,7 +2,8 @@ package kr.co.vividnext.sodalive.admin.calculate
|
|||
|
||||
import com.querydsl.core.annotations.QueryProjection
|
||||
import kr.co.vividnext.sodalive.can.use.CanUsage
|
||||
import kotlin.math.roundToInt
|
||||
import java.math.BigDecimal
|
||||
import java.math.RoundingMode
|
||||
|
||||
data class GetCalculateLiveQueryData @QueryProjection constructor(
|
||||
val email: String,
|
||||
|
@ -42,20 +43,20 @@ data class GetCalculateLiveQueryData @QueryProjection constructor(
|
|||
}
|
||||
|
||||
// 원화 = totalCoin * 100 ( 캔 1개 = 100원 )
|
||||
val totalKrw = totalAmount * 100
|
||||
val totalKrw = BigDecimal(totalAmount).multiply(BigDecimal(100))
|
||||
|
||||
// 결제수수료 : 6.6%
|
||||
val paymentFee = totalKrw * 0.066f
|
||||
val paymentFee = totalKrw.multiply(BigDecimal(0.066))
|
||||
|
||||
// 정산금액 = (원화 - 결제수수료) 의 70%
|
||||
val settlementAmount = if (settlementRatio != null) {
|
||||
(totalKrw.toFloat() - paymentFee) * (settlementRatio.toFloat() / 100.0f)
|
||||
totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100)))
|
||||
} else {
|
||||
(totalKrw.toFloat() - paymentFee) * 0.7f
|
||||
totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7))
|
||||
}
|
||||
|
||||
// 원천세 = 정산금액의 3.3%
|
||||
val tax = settlementAmount * 0.033
|
||||
val tax = settlementAmount.multiply(BigDecimal(0.033))
|
||||
|
||||
// 입금액
|
||||
val depositAmount = settlementAmount - tax
|
||||
|
@ -69,11 +70,11 @@ data class GetCalculateLiveQueryData @QueryProjection constructor(
|
|||
canUsageStr = canUsageStr,
|
||||
numberOfPeople = numberOfPeople,
|
||||
totalAmount = totalAmount,
|
||||
totalKrw = totalKrw,
|
||||
paymentFee = paymentFee.roundToInt(),
|
||||
settlementAmount = settlementAmount.roundToInt(),
|
||||
tax = tax.roundToInt(),
|
||||
depositAmount = depositAmount.roundToInt()
|
||||
totalKrw = totalKrw.toInt(),
|
||||
paymentFee = paymentFee.setScale(0, RoundingMode.HALF_UP).toInt(),
|
||||
settlementAmount = settlementAmount.setScale(0, RoundingMode.HALF_UP).toInt(),
|
||||
tax = tax.setScale(0, RoundingMode.HALF_UP).toInt(),
|
||||
depositAmount = depositAmount.setScale(0, RoundingMode.HALF_UP).toInt()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue