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.

141 lines
4.3 KiB

5 years ago
  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" ? "canceled_text".localized() : "pickup_from_branch_text".localized()
  29. switch order.orderStatus {
  30. case "9" :
  31. orderStatusDateLabel.text = order.modifiedDate
  32. orderStatusDateTitleLabel.text = "order_canceled_date_text".localized()
  33. default :
  34. orderStatusDateLabel.text = order.recvDate
  35. orderStatusDateTitleLabel.text = "order_receive_date_text".localized()
  36. }
  37. }
  38. }
  39. // MARK: IBOutlets - value Label
  40. @IBOutlet weak var orderStatusLabel: UILabel!
  41. @IBOutlet weak var orderDetailContentView: UIView!
  42. @IBOutlet weak var receiverNameLabel: UILabel!
  43. @IBOutlet weak var pickupBranchLabel: UILabel!
  44. @IBOutlet weak var mobileNumberLabel: UILabel!
  45. @IBOutlet weak var productNameLabel: UILabel!
  46. @IBOutlet weak var productPointLabel: UILabel!
  47. @IBOutlet weak var orderDateLabel: UILabel!
  48. @IBOutlet weak var orderStatusDateLabel: UILabel!
  49. @IBOutlet weak var orderIDNumberLabel: UILabel!
  50. @IBOutlet weak var orderTypeLabel: UILabel!
  51. // MARK: IBOutlets - Title Label
  52. @IBOutlet weak var receiverNameTitleLabel: UILabel!
  53. @IBOutlet weak var pickupBranchTitleLabel: UILabel!
  54. @IBOutlet weak var mobileNumberTitleLabel: UILabel!
  55. @IBOutlet weak var productNameTitleLabel: UILabel!
  56. @IBOutlet weak var productPointTitleLabel: UILabel!
  57. @IBOutlet weak var orderDateTitleLabel: UILabel!
  58. @IBOutlet weak var orderStatusDateTitleLabel: UILabel!
  59. @IBOutlet weak var orderIDNumberTitleLabel: UILabel!
  60. @IBOutlet weak var orderTypeTitleLabel: UILabel!
  61. @IBOutlet weak var summaryView: UIView!
  62. // MARK: VC's Life cycle
  63. override func viewDidLoad() {
  64. super.viewDidLoad()
  65. setup()
  66. setMultiLanguage()
  67. }
  68. override func viewWillAppear(_ animated: Bool) {
  69. super.viewWillAppear(animated)
  70. title = "detail_order_title_text".localized()
  71. }
  72. override func viewWillDisappear(_ animated: Bool) {
  73. super.viewWillDisappear(animated)
  74. title = ""
  75. }
  76. // MARK: IBActions
  77. }
  78. // MARK: DetailOrderViewInterface
  79. extension DetailOrderViewController: DetailOrderViewInterface {
  80. func setOrder(_ order: Order?) {
  81. self.order = order
  82. }
  83. }
  84. // MARK: Other Functions
  85. extension DetailOrderViewController {
  86. private func setup() {
  87. // all setup should be done here
  88. presenter?.fetchOrder()
  89. summaryView.layer.cornerRadius = 10
  90. navigationController?.interactivePopGestureRecognizer?.delegate = self
  91. navigationController?.interactivePopGestureRecognizer?.isEnabled = true
  92. }
  93. private func setMultiLanguage(){
  94. receiverNameTitleLabel.text = "receiver_text".localized()
  95. mobileNumberTitleLabel.text = "mobile_number_text".localized()
  96. pickupBranchTitleLabel.text = "pickup_banch_text".localized()
  97. productNameTitleLabel.text = "product_name_text".localized()
  98. productPointTitleLabel.text = "product_point_text".localized()
  99. orderIDNumberTitleLabel.text = "order_no_text".localized()
  100. orderDateTitleLabel.text = "order_date_text".localized()
  101. orderTypeTitleLabel.text = "order_type_text".localized()
  102. }
  103. }
  104. // MARK: - UIGestureRecognizerDelegate
  105. extension DetailOrderViewController: UIGestureRecognizerDelegate {
  106. func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
  107. return true
  108. }
  109. }