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

//
// DetailOrderViewController.swift
// GME Remit
//
// Created by InKwon Devik Kim on 15/05/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class DetailOrderViewController: UIViewController {
// MARK: Properties
var presenter: DetailOrderModuleInterface?
// MARK: Computed Properties
private var order: Order? {
didSet {
guard
let order = order,
let statusCode = order.orderStatus,
let status = OrderCell.Status(rawValue: statusCode)
else { return }
receiverNameLabel.text = order.recvName
mobileNumberLabel.text = order.recvPhoneNumber
pickupBranchLabel.text = order.branchName
productNameLabel.text = order.productName
productPointLabel.text = order.usePoint?.likeCommaMoney()
orderStatusLabel.text = status.message
orderDateLabel.text = order.createdDate
orderIDNumberLabel.text = order.orderID
orderTypeLabel.text = order.orderType == "9" ?
"canceled_text".localized() : "pickup_from_branch_text".localized()
switch order.orderStatus {
case "9" :
orderStatusDateLabel.text = order.modifiedDate
orderStatusDateTitleLabel.text = "order_canceled_date_text".localized()
default :
orderStatusDateLabel.text = order.recvDate
orderStatusDateTitleLabel.text = "order_receive_date_text".localized()
}
}
}
// MARK: IBOutlets - value Label
@IBOutlet weak var orderStatusLabel: UILabel!
@IBOutlet weak var orderDetailContentView: UIView!
@IBOutlet weak var receiverNameLabel: UILabel!
@IBOutlet weak var pickupBranchLabel: UILabel!
@IBOutlet weak var mobileNumberLabel: UILabel!
@IBOutlet weak var productNameLabel: UILabel!
@IBOutlet weak var productPointLabel: UILabel!
@IBOutlet weak var orderDateLabel: UILabel!
@IBOutlet weak var orderStatusDateLabel: UILabel!
@IBOutlet weak var orderIDNumberLabel: UILabel!
@IBOutlet weak var orderTypeLabel: UILabel!
// MARK: IBOutlets - Title Label
@IBOutlet weak var receiverNameTitleLabel: UILabel!
@IBOutlet weak var pickupBranchTitleLabel: UILabel!
@IBOutlet weak var mobileNumberTitleLabel: UILabel!
@IBOutlet weak var productNameTitleLabel: UILabel!
@IBOutlet weak var productPointTitleLabel: UILabel!
@IBOutlet weak var orderDateTitleLabel: UILabel!
@IBOutlet weak var orderStatusDateTitleLabel: UILabel!
@IBOutlet weak var orderIDNumberTitleLabel: UILabel!
@IBOutlet weak var orderTypeTitleLabel: UILabel!
@IBOutlet weak var summaryView: UIView!
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
setup()
setMultiLanguage()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
title = "detail_order_title_text".localized()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
title = ""
}
// MARK: IBActions
}
// MARK: DetailOrderViewInterface
extension DetailOrderViewController: DetailOrderViewInterface {
func setOrder(_ order: Order?) {
self.order = order
}
}
// MARK: Other Functions
extension DetailOrderViewController {
private func setup() {
// all setup should be done here
presenter?.fetchOrder()
summaryView.layer.cornerRadius = 5
navigationController?.interactivePopGestureRecognizer?.delegate = self
navigationController?.interactivePopGestureRecognizer?.isEnabled = true
}
private func setMultiLanguage() {
receiverNameTitleLabel.text = "receiver_text".localized()
mobileNumberTitleLabel.text = "mobile_number_text".localized()
pickupBranchTitleLabel.text = "pickup_banch_text".localized()
productNameTitleLabel.text = "product_name_text".localized()
productPointTitleLabel.text = "product_point_text".localized()
orderIDNumberTitleLabel.text = "order_no_text".localized()
orderDateTitleLabel.text = "order_date_text".localized()
orderTypeTitleLabel.text = "order_type_text".localized()
}
}
// MARK: - UIGestureRecognizerDelegate
extension DetailOrderViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(
_ gestureRecognizer: UIGestureRecognizer,
shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer
) -> Bool {
return true
}
}