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.
 
 
 
 

227 lines
9.1 KiB

//
// TrackPhaseViewController.swift
// GMERemittance
//
// Created by Fm-user on 2/7/18.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class TrackPhaseViewController: UIViewController {
@IBOutlet weak var labelPhaseTitle: UILabel!
@IBOutlet weak var labelPhaseDescription: UILabel!
@IBOutlet weak var labelPhaseSubDescription: UILabel!
@IBOutlet weak var labelPhoneNumber: UILabel!
@IBOutlet weak var topConstraintStage0: NSLayoutConstraint!
@IBOutlet weak var topConstraintStage1: NSLayoutConstraint!
@IBOutlet weak var topConstraintStage2: NSLayoutConstraint!
@IBOutlet weak var topConstraintStage3: NSLayoutConstraint!
@IBOutlet weak var imageViewPhase0: UIImageView!
@IBOutlet weak var imageViewPhase1: UIImageView!
@IBOutlet weak var imageViewPhase2: UIImageView!
@IBOutlet weak var imageViewPhase3: UIImageView!
var recipient: Recipient?
var transaction: Transaction?
private var stageId: Int = 0
@IBAction func gotoHome(_ sender: Any) {
showHomeScreen()
}
@IBAction func showReceiverDetails(_ sender: Any) {
var encodedTransactionDictionary: [String: Any]!
do {
let encodedTransaction = try JSONEncoder().encode(transaction)
encodedTransactionDictionary = try JSONSerialization.jsonObject(with: encodedTransaction, options: .allowFragments) as? [String: Any]
} catch let error {
}
let storyboard = UIStoryboard.init(name: "RecipientListViewController", bundle: Bundle.main)
if let transferInfoViewController = storyboard.instantiateViewController(withIdentifier: "showTransferInfo") as? TransferSuccessfulViewController {
transferInfoViewController.responseDetails = encodedTransactionDictionary
// transferInfoViewController.recipient = recipient
transferInfoViewController.trackTransfer = true
self.navigationController!.pushViewController(transferInfoViewController, animated: true)
}
}
@objc func initiateCall() {
let phoneNumber = labelPhoneNumber.text!
if let url = URL(string: "tel://\(phoneNumber.removeWhitespacesInBetween())"), UIApplication.shared.canOpenURL(url) {
if #available(iOS 10, *) {
UIApplication.shared.open(url)
} else {
UIApplication.shared.openURL(url)
}
}
// let phoneNumber = labelPhoneNumber.text!
// guard let number = URL(string: "tel://" + phoneNumber.removeWhitespacesInBetween()) else {
// return
// }
// UIApplication.shared.openURL(number)
}
/**
Dialog to explain any of the selected transfer process
*/
@objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) {
guard let navController = self.navigationController else {
return
}
let tappedImage = tapGestureRecognizer.view as! UIImageView
let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
if let popUpViewController = storyboard.instantiateViewController(withIdentifier: "popUpInfo") as? PopUpGeneralInfo {
switch tappedImage.tag {
case 1:
popUpViewController.indexValue = 4
case 2:
popUpViewController.indexValue = 5
case 3:
popUpViewController.indexValue = 6
case 4:
popUpViewController.indexValue = 7
default:
return
}
// self.addChildViewController(popUpViewController)
// popUpViewController.view.frame = self.view.bounds
// self.view.addSubview(popUpViewController.view)
// popUpViewController.didMove(toParentViewController: self)
//
navController.addChildViewController(popUpViewController)
popUpViewController.view.frame = navController.view.bounds
navController.view.addSubview(popUpViewController.view)
popUpViewController.didMove(toParentViewController: navController)
}
}
override func viewDidLoad() {
super.viewDidLoad()
setUpNavBar(id: 201,title: "Track Your Transfer")
topConstraintStage0.constant = 50
topConstraintStage1.constant = 50
topConstraintStage2.constant = 50
topConstraintStage3.constant = 50
imageViewPhase0.image = UIImage(named: "trackStageInitial0")
imageViewPhase1.image = UIImage(named: "trackStageInitial1")
imageViewPhase2.image = UIImage(named: "trackStageInitial2")
imageViewPhase3.image = UIImage(named: "trackStageInitial3")
imageViewPhase0.isUserInteractionEnabled = true
imageViewPhase1.isUserInteractionEnabled = true
imageViewPhase2.isUserInteractionEnabled = true
imageViewPhase3.isUserInteractionEnabled = true
labelPhoneNumber.isUserInteractionEnabled = true
imageViewPhase0.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))))
imageViewPhase1.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))))
imageViewPhase2.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))))
imageViewPhase3.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))))
labelPhoneNumber.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(initiateCall)))
/**
Assign value to var stageId as per the transaction status
*/
switch transaction!.txnStatus.uppercased() {
case "WAITING FOR APPROVAL":
self.stageId = 0
case "IN SEND QUEUE", "POST", "UNPAID":
self.stageId = 1
case "READY FOR PAYMENT":
self.stageId = 2
case "PAID":
self.stageId = 3
default:
self.stageId = 0
}
/**
Display UI as per the stageId
*/
switch stageId {
case 0:
labelPhaseTitle.text = "In Process"
labelPhaseDescription.text = "Your transfer is on its way"
labelPhaseSubDescription.text = ""
topConstraintStage0.constant = 45
imageViewPhase0.image = UIImage(named: "trackStageCurrent0")
imageViewPhase1.image = UIImage(named: "trackStageInComplete1")
imageViewPhase2.image = UIImage(named: "trackStageInComplete2")
imageViewPhase3.image = UIImage(named: "trackStageInComplete3")
case 1:
labelPhaseTitle.text = "In Process"
labelPhaseDescription.text = "Your transfer is on its way"
labelPhaseSubDescription.text = ""
topConstraintStage1.constant = 45
imageViewPhase0.image = UIImage(named: "trackStageComplete0")
imageViewPhase1.image = UIImage(named: "trackStageCurrent1")
imageViewPhase2.image = UIImage(named: "trackStageInComplete2")
imageViewPhase3.image = UIImage(named: "trackStageInComplete3")
case 2:
labelPhaseTitle.text = "Available"
labelPhaseDescription.text = ""
labelPhaseSubDescription.text = ""
topConstraintStage2.constant = 45
imageViewPhase0.image = UIImage(named: "trackStageComplete0")
imageViewPhase1.image = UIImage(named: "trackStageComplete1")
imageViewPhase2.image = UIImage(named: "trackStageCurrent2")
imageViewPhase3.image = UIImage(named: "trackStageInComplete3")
case 3:
labelPhaseTitle.text = "Received"
switch transaction!.payoutMethod.lowercased() {
case "cash":
if let bankName = transaction!.bankName {
labelPhaseDescription.text = "Received From: " + bankName
} else {
labelPhaseDescription.text = "Received From: GME"
}
case "bank":
labelPhaseDescription.text = "Received From: " + transaction!.bankName
case "door to door":
labelPhaseDescription.text = "Received From: " + transaction!.receiverAddress
default:
labelPhaseDescription.text = ""
}
labelPhaseSubDescription.text = ""
topConstraintStage3.constant = 45
imageViewPhase0.image = UIImage(named: "trackStageComplete0")
imageViewPhase1.image = UIImage(named: "trackStageComplete1")
imageViewPhase2.image = UIImage(named: "trackStageComplete2")
imageViewPhase3.image = UIImage(named: "trackStageCurrent3")
default:
return
}
}
}