SertifikatNewCell.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // SertifikatNewCell.swift
  3. // Sirani
  4. //
  5. // Created by Hendi on 19/06/23.
  6. // Copyright © 2023 PT. Mitra Sinerji Teknoindo. All rights reserved.
  7. //
  8. import UIKit
  9. import MaterialComponents.MaterialCards
  10. protocol SertifikatNewCellDelegate: NSObjectProtocol {
  11. func openSertifikatDetail(data : CertificateData?)
  12. }
  13. class SertifikatNewCell: 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: SertifikatNewCellDelegate?
  26. var dataSertifikat: CertificateData?
  27. func updateViews(certificateData: CertificateData) {
  28. card.isInteractable = true
  29. let gesture = UITapGestureRecognizer(target: self, action: #selector(self.onItemTap))
  30. card.addGestureRecognizer(gesture)
  31. lblNomor.text = certificateData.nomor
  32. lblPemohon.text = certificateData.cust_name
  33. lblPerangkat.text = certificateData.eqp_name
  34. lblMerk.text = certificateData.merk
  35. lblModel.text = certificateData.model
  36. lblNegara.text = certificateData.negara
  37. var brand = ""
  38. if certificateData.brand != "null" {
  39. brand = certificateData.brand
  40. }
  41. lblBrand.text = brand
  42. var expDate = ""
  43. if (certificateData.exp_date == "null" || certificateData.exp_date.isEmpty) {
  44. expDate = ""
  45. } else {
  46. let inputFormatter = DateFormatter()
  47. inputFormatter.dateFormat = "yyyy-MM-dd"
  48. let expDateString = String(certificateData.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 (certificateData.lic_date == "null" || certificateData.lic_date.isEmpty) {
  58. licDate = ""
  59. } else {
  60. let inputFormatter = DateFormatter()
  61. inputFormatter.dateFormat = "yyyy-MM-dd"
  62. let expDateString = String(certificateData.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 = certificateData.statusBerlaku
  73. if let statusColor = UIColor(hexString: certificateData.statusBgColor) {
  74. lblStatus.backgroundColor = statusColor
  75. }
  76. self.dataSertifikat = certificateData
  77. }
  78. @objc func onItemTap(sender : UITapGestureRecognizer) {
  79. cellDelegate?.openSertifikatDetail(data: dataSertifikat)
  80. }
  81. }