LabelCell.swift 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. var cellDelegate: LabelCellDelegate?
  25. var dataLabel: Label?
  26. func updateViews(labelData: Label) {
  27. card.isInteractable = true
  28. let gesture = UITapGestureRecognizer(target: self, action: #selector(self.onItemTap))
  29. card.addGestureRecognizer(gesture)
  30. lblNomor.text = labelData.nomor
  31. lblPemohon.text = labelData.cust_name
  32. lblPerangkat.text = labelData.eqp_name
  33. lblMerk.text = labelData.merk
  34. lblModel.text = labelData.model
  35. var brand = ""
  36. if labelData.brand != "null" {
  37. brand = labelData.brand
  38. }
  39. lblBrand.text = brand
  40. var expDate = ""
  41. if (labelData.exp_date == "null" || labelData.exp_date.isEmpty) {
  42. expDate = ""
  43. } else {
  44. let inputFormatter = DateFormatter()
  45. inputFormatter.dateFormat = "yyyy-MM-dd"
  46. let expDateString = String(labelData.exp_date.prefix(10))
  47. if let output = inputFormatter.date(from: expDateString) {
  48. let outputFormatter = DateFormatter()
  49. outputFormatter.dateFormat = "dd MMM yyyy"
  50. expDate = outputFormatter.string(from: output)
  51. }
  52. }
  53. lblBerakhirDate.text = expDate
  54. var licDate = ""
  55. if (labelData.lic_date == "null" || labelData.lic_date.isEmpty) {
  56. licDate = ""
  57. } else {
  58. let inputFormatter = DateFormatter()
  59. inputFormatter.dateFormat = "yyyy-MM-dd"
  60. let expDateString = String(labelData.lic_date.prefix(10))
  61. if let output = inputFormatter.date(from: expDateString) {
  62. let outputFormatter = DateFormatter()
  63. outputFormatter.dateFormat = "dd MMM yyyy"
  64. licDate = outputFormatter.string(from: output)
  65. }
  66. }
  67. lblBerlakuDate.text = licDate
  68. var status = ""
  69. lblStatus?.layer.cornerRadius = 6
  70. lblStatus?.layer.masksToBounds = true
  71. switch labelData.berlaku {
  72. case "0":
  73. status = "Tidak Berlaku"
  74. lblStatus.backgroundColor = UIColor.red
  75. case "1":
  76. status = "Berlaku"
  77. lblStatus.backgroundColor = UIColor.green
  78. case "3":
  79. status = "Revisi"
  80. lblStatus.backgroundColor = UIColor.orange
  81. default:
  82. lblStatus.backgroundColor = UIColor.white
  83. }
  84. lblStatus.text = status
  85. self.dataLabel = labelData
  86. }
  87. @objc func onItemTap(sender : UITapGestureRecognizer) {
  88. cellDelegate?.openLabelDetail(data: dataLabel)
  89. }
  90. }