본문 바로가기
python

FCO 수수료 계산 코드

by Redking

FC온라인 수수료 계산 로직 Python 코드

def calculate_final_amount(
        original_amount, 
        pc_room=False, 
        top_class=False, 
        coupon_discount=0
    ):
    """
    FCO 수수료를 계산하는 함수입니다.

    Parameters:
        original_amount: 거래 금액
        pc_room: 피시방 여부 (Bool)
        top_class: 탑클 여부 (Bool)
        coupon_discount: 수수료 쿠폰 할인률 (Int)

    Returns:
        final_amout: 최종 계산값 (Int)

    기본 수수료율은 60%이며, 피시방과 탑클 조합에 따라 할인된 수수료율(discount_rate)을 설정합니다.
    수수료 쿠폰 할인은 10%당 4%를 더하는 방식으로 적용됩니다.

    최종 수수료율에 원금을 곱하여 final_amount로 반환합니다.

    기본 수수료율 : 60%
    탑클 적용 수수료율 : 68%
    pc방 적용 수수료율 : 72%
    탑클, 피방 적용 수수료율 : 80%

    수수료 쿠폰별 전체 금액 수수료율
    - 50% : 20%
    - 40% : 16%
    - 30% : 12%
    - 25% : 10% 
    - 20% :  8%
    - 15% :  6%
    - 10% :  4%
    """

    # 기본 수수료율
    base_rate = 0.6

    # 피시방, 탑클 조건에 따른 수수료율 조정
    if pc_room and top_class:
        discount_rate = 0.8
    elif pc_room:
        discount_rate = 0.72
    elif top_class:
        discount_rate = 0.68
    else:
        discount_rate = base_rate

    # 수수료 쿠폰 할인 적용
    if coupon_discount > 0:
        final_rate = discount_rate + (0.004 * coupon_discount)
    else:
        final_rate = discount_rate

    # 최종 금액 계산 (소수점 버림)
    final_amount = int(original_amount * final_rate)

    # 발생한 수수료 (소수점 버림)
    discount_amount = int((1 - final_rate) * original_amount)


    print({'최종 금액': final_amount, '발생한 수수료': discount_amount})
    # return final_amount

calculate_final_amount(1000, True, True, 50)

'python' 카테고리의 다른 글

Django ORM  (0) 2021.12.03
Python 따옴표 어떻게 쓰면 좋을가?  (0) 2021.11.16
주소 API (Python 예시)  (0) 2021.10.01

댓글