LabelCell.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // LabelCell.swift
  3. // Sirani
  4. //
  5. // Created by Hendi on 20/06/23.
  6. // Copyright © 2023 PT. Mitra Sinerji Teknoindo. All rights reserved.
  7. //
  8. import UIKit
  9. import MaterialComponents.MaterialCards
  10. protocol LabelCellDelegate: NSObjectProtocol {
  11. func openLabelDetail(data : Label?)
  12. }
  13. class LabelCell: UITableViewCell {
  14. @IBOutlet weak var card: MDCCard!
  15. @IBOutlet weak var lblNomor: UILabel!
  16. @IBOutlet weak var lblPemohon: UILabel!
  17. @IBOutlet weak var lblPerangkat: UILabel!
  18. @IBOutlet weak var lblMerk: UILabel!
  19. @IBOutlet weak var lblModel: UILabel!
  20. @IBOutlet weak var lblBrand: UILabel!
  21. @IBOutlet weak var lblBerlakuDate: UILabel!
  22. @IBOutlet weak var lblBerakhirDate: UILabel!
  23. @IBOutlet weak var lblStatus: UILabel!
  24. @IBOutlet weak var lblNegara: UILabel!
  25. var cellDelegate: LabelCellDelegate?
  26. var dataLabel: Label?
  27. func updateViews(labelData: Label) {
  28. card.isInteractable = true
  29. let gesture = UITapGestureRecognizer(target: self, action: #selector(self.onItemTap))
  30. card.addGestureRecognizer(gesture)
  31. lblNomor.text = labelData.nomor
  32. lblPemohon.text = labelData.cust_name
  33. lblPerangkat.text = labelData.eqp_name
  34. lblMerk.text = labelData.merk
  35. lblModel.text = labelData.model
  36. lblNegara.text = labelData.negara
  37. var brand = ""
  38. if labelData.brand != "null" {
  39. brand = labelData.brand
  40. }
  41. lblBrand.text = brand
  42. var expDate = ""
  43. if (labelData.exp_date == "null" || labelData.exp_date.isEmpty) {
  44. expDate = ""
  45. } else {
  46. let inputFormatter = DateFormatter()
  47. inputFormatter.dateFormat = "yyyy-MM-dd"
  48. let expDateString = String(labelData.exp_date.prefix(10))
  49. if let output = inputFormatter.date(from: expDateString) {
  50. let outputFormatter = DateFormatter()
  51. outputFormatter.dateFormat = "dd MMM yyyy"
  52. expDate = outputFormatter.string(from: output)
  53. }
  54. }
  55. lblBerakhirDate.text = expDate
  56. var licDate = ""
  57. if (labelData.lic_date == "null" || labelData.lic_date.isEmpty) {
  58. licDate = ""
  59. } else {
  60. let inputFormatter = DateFormatter()
  61. inputFormatter.dateFormat = "yyyy-MM-dd"
  62. let expDateString = String(labelData.lic_date.prefix(10))
  63. if let output = inputFormatter.date(from: expDateString) {
  64. let outputFormatter = DateFormatter()
  65. outputFormatter.dateFormat = "dd MMM yyyy"
  66. licDate = outputFormatter.string(from: output)
  67. }
  68. }
  69. lblBerlakuDate.text = licDate
  70. lblStatus?.layer.cornerRadius = 6
  71. lblStatus?.layer.masksToBounds = true
  72. lblStatus.text = labelData.statusBerlaku
  73. if let statusColor = UIColor(hexString: labelData.statusBgColor) {
  74. lblStatus.backgroundColor = statusColor
  75. }
  76. self.dataLabel = labelData
  77. }
  78. @objc func onItemTap(sender : UITapGestureRecognizer) {
  79. cellDelegate?.openLabelDetail(data: dataLabel)
  80. }
  81. }