// // LabelCell.swift // Sirani // // Created by Hendi on 20/06/23. // Copyright © 2023 PT. Mitra Sinerji Teknoindo. All rights reserved. // import UIKit import MaterialComponents.MaterialCards protocol LabelCellDelegate: NSObjectProtocol { func openLabelDetail(data : Label?) } class LabelCell: UITableViewCell { @IBOutlet weak var card: MDCCard! @IBOutlet weak var lblNomor: UILabel! @IBOutlet weak var lblPemohon: UILabel! @IBOutlet weak var lblPerangkat: UILabel! @IBOutlet weak var lblMerk: UILabel! @IBOutlet weak var lblModel: UILabel! @IBOutlet weak var lblBrand: UILabel! @IBOutlet weak var lblBerlakuDate: UILabel! @IBOutlet weak var lblBerakhirDate: UILabel! @IBOutlet weak var lblStatus: UILabel! @IBOutlet weak var lblNegara: UILabel! var cellDelegate: LabelCellDelegate? var dataLabel: Label? func updateViews(labelData: Label) { card.isInteractable = true let gesture = UITapGestureRecognizer(target: self, action: #selector(self.onItemTap)) card.addGestureRecognizer(gesture) lblNomor.text = labelData.nomor lblPemohon.text = labelData.cust_name lblPerangkat.text = labelData.eqp_name lblMerk.text = labelData.merk lblModel.text = labelData.model lblNegara.text = labelData.negara var brand = "" if labelData.brand != "null" { brand = labelData.brand } lblBrand.text = brand var expDate = "" if (labelData.exp_date == "null" || labelData.exp_date.isEmpty) { expDate = "" } else { let inputFormatter = DateFormatter() inputFormatter.dateFormat = "yyyy-MM-dd" let expDateString = String(labelData.exp_date.prefix(10)) if let output = inputFormatter.date(from: expDateString) { let outputFormatter = DateFormatter() outputFormatter.dateFormat = "dd MMM yyyy" expDate = outputFormatter.string(from: output) } } lblBerakhirDate.text = expDate var licDate = "" if (labelData.lic_date == "null" || labelData.lic_date.isEmpty) { licDate = "" } else { let inputFormatter = DateFormatter() inputFormatter.dateFormat = "yyyy-MM-dd" let expDateString = String(labelData.lic_date.prefix(10)) if let output = inputFormatter.date(from: expDateString) { let outputFormatter = DateFormatter() outputFormatter.dateFormat = "dd MMM yyyy" licDate = outputFormatter.string(from: output) } } lblBerlakuDate.text = licDate var status = "" lblStatus?.layer.cornerRadius = 6 lblStatus?.layer.masksToBounds = true lblStatus.text = labelData.statusBerlaku if let statusColor = UIColor(hexString: labelData.statusBgColor) { lblStatus.backgroundColor = statusColor } self.dataLabel = labelData } @objc func onItemTap(sender : UITapGestureRecognizer) { cellDelegate?.openLabelDetail(data: dataLabel) } } extension UIColor { convenience init?(hexString: String) { var hexSanitized = hexString.trimmingCharacters(in: .whitespacesAndNewlines) hexSanitized = hexSanitized.replacingOccurrences(of: "#", with: "") var rgb: UInt64 = 0 guard Scanner(string: hexSanitized).scanHexInt64(&rgb) else { return nil } self.init( red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgb & 0x0000FF) / 255.0, alpha: 1.0 ) } }