You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.4 KiB
83 lines
2.4 KiB
//
|
|
// CouponCell.swift
|
|
// GME Remit
|
|
//
|
|
// Created by InKwon Devik Kim on 30/05/2019.
|
|
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class CouponCell: UITableViewCell {
|
|
@IBOutlet private weak var couponCellBackgroundView: UIView!
|
|
@IBOutlet private weak var checkImageView: UIImageView!
|
|
@IBOutlet private weak var couponNameLabel: UILabel!
|
|
@IBOutlet private weak var discountLabel: UILabel!
|
|
|
|
@IBOutlet private weak var remindDayLabel: UILabel!
|
|
@IBOutlet private weak var expireDateLabel: UILabel!
|
|
|
|
var isSelectedCoupon: Bool = false {
|
|
didSet {
|
|
if isSelectedCoupon {
|
|
checkImageView.image = UIImage(named: "right")
|
|
couponCellBackgroundView.layer.cornerRadius = 5
|
|
couponCellBackgroundView.layer.borderWidth = 1
|
|
couponCellBackgroundView.layer.borderColor = UIColor.themeRed.cgColor
|
|
|
|
} else {
|
|
checkImageView.image = nil
|
|
couponCellBackgroundView.layer.borderColor = UIColor.white.cgColor
|
|
}
|
|
}
|
|
}
|
|
|
|
override func awakeFromNib() {
|
|
super.awakeFromNib()
|
|
couponCellBackgroundView.layer.cornerRadius = 5
|
|
}
|
|
|
|
func setModel(_ model: Coupon?) {
|
|
couponNameLabel.text = model?.couponName?.uppercased()
|
|
|
|
let discount =
|
|
model?.discountType == "1" ? "\(model?.discountPercent ?? "0")%" : "\(model?.discountValue ?? "0") KRW"
|
|
|
|
discountLabel.text = "(\(discount))"
|
|
|
|
guard let remindDay = calculateRemindDay(expireDate: model?.expireDate) else {
|
|
remindDayLabel.text = "N/A"
|
|
return
|
|
}
|
|
|
|
switch remindDay {
|
|
case 0:
|
|
remindDayLabel.text = "Today"
|
|
remindDayLabel.textColor = .themeRed
|
|
case remindDay where remindDay > 0:
|
|
remindDayLabel.text = "\(remindDay) day"
|
|
default:
|
|
remindDayLabel.text = "N/A"
|
|
}
|
|
|
|
expireDateLabel.text = "(\(model?.expireDate ?? "N/A"))"
|
|
}
|
|
|
|
private func calculateRemindDay(expireDate: String?) -> Int? {
|
|
let dateFormatter = DateFormatter()
|
|
dateFormatter.dateFormat = "yyyy-MM-dd"
|
|
|
|
guard
|
|
let expireDate = expireDate,
|
|
let expireDay = dateFormatter.date(from: expireDate)
|
|
else {
|
|
return nil
|
|
}
|
|
|
|
let calendar = Calendar.current
|
|
let date1 = calendar.startOfDay(for: Date())
|
|
let date2 = calendar.startOfDay(for: expireDay)
|
|
|
|
return calendar.dateComponents([.day], from: date1, to: date2).day
|
|
}
|
|
}
|