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

//
// 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
}
}