AplikasiCell.swift 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //
  2. // AplikasiCell.swift
  3. // Sirani
  4. //
  5. // Created by Hendi on 21/06/23.
  6. // Copyright © 2023 PT. Mitra Sinerji Teknoindo. All rights reserved.
  7. //
  8. import UIKit
  9. import MaterialComponents.MaterialCards
  10. protocol AplikasiCellDelegate: NSObjectProtocol {
  11. func openAplikasiDetail(data : Aplikasi?)
  12. }
  13. class AplikasiCell: UITableViewCell {
  14. @IBOutlet weak var card: MDCCard!
  15. @IBOutlet weak var lblIdIzin : UILabel!
  16. @IBOutlet weak var lblAplId : UILabel!
  17. @IBOutlet weak var lblResiNo : UILabel!
  18. @IBOutlet weak var lblResiDate : UILabel!
  19. @IBOutlet weak var lblCustName : UILabel!
  20. @IBOutlet weak var lblEqpName : UILabel!
  21. @IBOutlet weak var lblMerk : UILabel!
  22. @IBOutlet weak var lblModel : UILabel!
  23. @IBOutlet weak var lblBrand : UILabel!
  24. @IBOutlet weak var lblDisposisi : UILabel!
  25. @IBOutlet weak var lblStatusStr : UILabel!
  26. @IBOutlet weak var statusTop: NSLayoutConstraint!
  27. @IBOutlet weak var disposisiTitle: UILabel!
  28. var cellDelegate: AplikasiCellDelegate?
  29. var dataAplikasi: Aplikasi?
  30. func updateViews(aplData: Aplikasi) {
  31. card.isInteractable = true
  32. let gesture = UITapGestureRecognizer(target: self, action: #selector(self.onItemTap))
  33. card.addGestureRecognizer(gesture)
  34. let roleId = UserState.instance.getRoleId()
  35. if roleId == "17" {
  36. statusTop.constant = -16
  37. lblDisposisi.hide()
  38. disposisiTitle.hide()
  39. lblDisposisi.text = ""
  40. }else {
  41. statusTop.constant = 4
  42. lblDisposisi.show()
  43. disposisiTitle.show()
  44. lblDisposisi.text = aplData.disposisi
  45. }
  46. lblIdIzin.text = aplData.id_izin
  47. lblAplId.text = String(aplData.apl_id)
  48. lblResiNo.text = aplData.resi_no
  49. lblCustName.text = aplData.cust_name
  50. lblEqpName.text = aplData.eqp_name
  51. lblMerk.text = aplData.merk
  52. lblModel.text = aplData.model
  53. lblBrand.text = aplData.brand
  54. lblStatusStr.text = aplData.StatusStr
  55. lblStatusStr?.layer.cornerRadius = 6
  56. lblStatusStr?.layer.masksToBounds = true
  57. if let statusColor = UIColor(hexString: aplData.StatusBgColor) {
  58. lblStatusStr.backgroundColor = statusColor
  59. }
  60. var resiDate = ""
  61. if (aplData.resi_date == "null" || aplData.resi_date.isEmpty) {
  62. resiDate = ""
  63. } else {
  64. let inputFormatter = DateFormatter()
  65. inputFormatter.dateFormat = "yyyy-MM-dd"
  66. let expDateString = String(aplData.resi_date.prefix(10))
  67. if let output = inputFormatter.date(from: expDateString) {
  68. let outputFormatter = DateFormatter()
  69. outputFormatter.dateFormat = "dd MMM yyyy"
  70. resiDate = outputFormatter.string(from: output)
  71. }
  72. }
  73. lblResiDate.text = resiDate
  74. self.dataAplikasi = aplData
  75. }
  76. @objc func onItemTap(sender : UITapGestureRecognizer) {
  77. cellDelegate?.openAplikasiDetail(data: dataAplikasi)
  78. }
  79. }