You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.3 KiB

  1. //
  2. // DetailOrderViewController.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon Devik Kim on 15/05/2019.
  6. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class DetailOrderViewController: UIViewController {
  10. // MARK: Properties
  11. var presenter: DetailOrderModuleInterface?
  12. // MARK: Computed Properties
  13. private var order: Order? {
  14. didSet {
  15. guard
  16. let order = order,
  17. let statusCode = order.orderStatus,
  18. let status = OrderCell.Status(rawValue: statusCode)
  19. else { return }
  20. receiverNameLabel.text = order.recvName
  21. mobileNumberLabel.text = order.recvPhoneNumber
  22. pickupBranchLabel.text = order.branchName
  23. productNameLabel.text = order.productName
  24. productPointLabel.text = order.usePoint?.likeCommaMoney()
  25. orderStatusLabel.text = status.message
  26. orderDateLabel.text = order.createdDate
  27. orderIDNumberLabel.text = order.orderID
  28. orderTypeLabel.text = order.orderType == "9" ?
  29. "canceled_text".localized() : "pickup_from_branch_text".localized()
  30. switch order.orderStatus {
  31. case "9" :
  32. orderStatusDateLabel.text = order.modifiedDate
  33. orderStatusDateTitleLabel.text = "order_canceled_date_text".localized()
  34. default :
  35. orderStatusDateLabel.text = order.recvDate
  36. orderStatusDateTitleLabel.text = "order_receive_date_text".localized()
  37. }
  38. }
  39. }
  40. // MARK: IBOutlets - value Label
  41. @IBOutlet weak var orderStatusLabel: UILabel!
  42. @IBOutlet weak var orderDetailContentView: UIView!
  43. @IBOutlet weak var receiverNameLabel: UILabel!
  44. @IBOutlet weak var pickupBranchLabel: UILabel!
  45. @IBOutlet weak var mobileNumberLabel: UILabel!
  46. @IBOutlet weak var productNameLabel: UILabel!
  47. @IBOutlet weak var productPointLabel: UILabel!
  48. @IBOutlet weak var orderDateLabel: UILabel!
  49. @IBOutlet weak var orderStatusDateLabel: UILabel!
  50. @IBOutlet weak var orderIDNumberLabel: UILabel!
  51. @IBOutlet weak var orderTypeLabel: UILabel!
  52. // MARK: IBOutlets - Title Label
  53. @IBOutlet weak var receiverNameTitleLabel: UILabel!
  54. @IBOutlet weak var pickupBranchTitleLabel: UILabel!
  55. @IBOutlet weak var mobileNumberTitleLabel: UILabel!
  56. @IBOutlet weak var productNameTitleLabel: UILabel!
  57. @IBOutlet weak var productPointTitleLabel: UILabel!
  58. @IBOutlet weak var orderDateTitleLabel: UILabel!
  59. @IBOutlet weak var orderStatusDateTitleLabel: UILabel!
  60. @IBOutlet weak var orderIDNumberTitleLabel: UILabel!
  61. @IBOutlet weak var orderTypeTitleLabel: UILabel!
  62. @IBOutlet weak var summaryView: UIView!
  63. // MARK: VC's Life cycle
  64. override func viewDidLoad() {
  65. super.viewDidLoad()
  66. setup()
  67. setMultiLanguage()
  68. }
  69. override func viewWillAppear(_ animated: Bool) {
  70. super.viewWillAppear(animated)
  71. title = "detail_order_title_text".localized()
  72. }
  73. override func viewWillDisappear(_ animated: Bool) {
  74. super.viewWillDisappear(animated)
  75. title = ""
  76. }
  77. // MARK: IBActions
  78. }
  79. // MARK: DetailOrderViewInterface
  80. extension DetailOrderViewController: DetailOrderViewInterface {
  81. func setOrder(_ order: Order?) {
  82. self.order = order
  83. }
  84. }
  85. // MARK: Other Functions
  86. extension DetailOrderViewController {
  87. private func setup() {
  88. // all setup should be done here
  89. presenter?.fetchOrder()
  90. summaryView.layer.cornerRadius = 5
  91. navigationController?.interactivePopGestureRecognizer?.delegate = self
  92. navigationController?.interactivePopGestureRecognizer?.isEnabled = true
  93. }
  94. private func setMultiLanguage() {
  95. receiverNameTitleLabel.text = "receiver_text".localized()
  96. mobileNumberTitleLabel.text = "mobile_number_text".localized()
  97. pickupBranchTitleLabel.text = "pickup_banch_text".localized()
  98. productNameTitleLabel.text = "product_name_text".localized()
  99. productPointTitleLabel.text = "product_point_text".localized()
  100. orderIDNumberTitleLabel.text = "order_no_text".localized()
  101. orderDateTitleLabel.text = "order_date_text".localized()
  102. orderTypeTitleLabel.text = "order_type_text".localized()
  103. }
  104. }
  105. // MARK: - UIGestureRecognizerDelegate
  106. extension DetailOrderViewController: UIGestureRecognizerDelegate {
  107. func gestureRecognizer(
  108. _ gestureRecognizer: UIGestureRecognizer,
  109. shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer
  110. ) -> Bool {
  111. return true
  112. }
  113. }