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.

191 lines
7.1 KiB

6 years ago
  1. //
  2. // EarnedViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by FMI-12 on 3/1/18.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class EarnedViewController: UIViewController {
  10. @IBOutlet weak var tableViewPending: UITableView!
  11. @IBOutlet weak var tableViewEarned: UITableView!
  12. @IBOutlet weak var segmentedControl: UISegmentedControl!
  13. private var activeInviteeCount = 0
  14. public var bonusStatus: Bool?
  15. private var tableViewSelected: UITableView!
  16. public var inviteeArray = [InviteeModel]()
  17. private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
  18. override func viewDidLoad() {
  19. super.viewDidLoad()
  20. setUpNavBar(id: 201, title: "Invite")
  21. self.tableViewPending.estimatedRowHeight = 119
  22. self.tableViewPending.rowHeight = UITableViewAutomaticDimension
  23. self.tableViewEarned.estimatedRowHeight = 119
  24. self.tableViewEarned.rowHeight = UITableViewAutomaticDimension
  25. /* if bonusStatus is true opens Pending table view else opens Earned table view */
  26. if bonusStatus!{
  27. tableViewEarned.isHidden = true
  28. tableViewPending.isHidden = false
  29. segmentedControl.selectedSegmentIndex = 0
  30. } else {
  31. tableViewPending.isHidden = true
  32. tableViewEarned.isHidden = false
  33. segmentedControl.selectedSegmentIndex = 1
  34. }
  35. segmentedControl.addTarget(self, action: #selector(inviteStatus(_:)), for: .valueChanged)
  36. if self.inviteeArray.count > 0{
  37. for i in inviteeArray[0..<inviteeArray.count]{
  38. if let value = i.status{
  39. if value == "active"{
  40. activeInviteeCount = activeInviteeCount + 1
  41. }
  42. }
  43. }
  44. }else{
  45. // print("Server Response Null..")
  46. }
  47. tableViewPending.tableFooterView = UIView()
  48. tableViewEarned.tableFooterView = UIView()
  49. }
  50. /**
  51. Segment action button.
  52. If segment is 0 opens Pending table view else opens Earned table view
  53. */
  54. @objc func inviteStatus(_ segControl: UISegmentedControl) {
  55. switch segControl.selectedSegmentIndex {
  56. case 0:
  57. tableViewEarned.isHidden = true
  58. tableViewPending.isHidden = false
  59. case 1:
  60. tableViewEarned.isHidden = false
  61. tableViewPending.isHidden = true
  62. default:
  63. break
  64. }
  65. }
  66. /**
  67. - Returns Random background color for first name initial
  68. */
  69. func getRandomColor() -> UIColor{
  70. //Generate between 0 to 1
  71. let red: CGFloat = CGFloat(drand48())
  72. let green: CGFloat = CGFloat(drand48())
  73. let blue: CGFloat = CGFloat(drand48())
  74. return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
  75. }
  76. /**
  77. Dialog to display detail information of invitee
  78. - Parameter initialLetter : Initial letter of a invitee name
  79. - Parameter inviteeName : Name of a invitee
  80. - Parameter inviteeNumber : Contact number of invitee
  81. - Parameter inviteeEmail : Email address of invitee
  82. */
  83. func inviteeDetail(initialLetter: String, inviteeName: String, inviteeNumber: String, inviteeEmail: String){
  84. guard let navController = self.navigationController else { return }
  85. let popUpViewController = UIStoryboard(name: "Invite", bundle: nil).instantiateViewController(withIdentifier: "PopUpInviteeDetail") as! PopUpInviteeDetail
  86. popUpViewController.initial = initialLetter
  87. popUpViewController.inviteeName = inviteeName
  88. popUpViewController.mobileNo = inviteeNumber
  89. popUpViewController.email = inviteeEmail
  90. navController.addChildViewController(popUpViewController)
  91. popUpViewController.view.frame = navController.view.bounds
  92. navController.view.addSubview(popUpViewController.view)
  93. popUpViewController.didMove(toParentViewController: navController)
  94. }
  95. }
  96. extension EarnedViewController: UITableViewDelegate, UITableViewDataSource {
  97. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  98. if tableView == tableViewPending{
  99. return inviteeArray.count
  100. } else{
  101. return activeInviteeCount
  102. }
  103. }
  104. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  105. if tableView == tableViewPending {
  106. let cell = tableView.dequeueReusableCell(withIdentifier: "pendingList", for: indexPath) as! PendingTableViewCell
  107. cell.labelInitial.layer.cornerRadius = cell.labelInitial.frame.size.width/2
  108. cell.labelInitial.backgroundColor = getRandomColor()
  109. cell.layer.borderColor = UIColor(red:0.91, green:0.93, blue:0.95, alpha:1.0).cgColor
  110. cell.layer.borderWidth = 1
  111. cell.layer.cornerRadius = 10
  112. cell.clipsToBounds = true
  113. if (inviteeArray[indexPath.row].name) != nil{
  114. cell.labelInitial.text = inviteeArray[indexPath.row].name.prefix(1).uppercased()
  115. }
  116. if let inviteeName = inviteeArray[indexPath.row].name{
  117. cell.labelInviteeName.text = inviteeName
  118. }
  119. return cell
  120. } else {
  121. let cellEarned = tableView.dequeueReusableCell(withIdentifier: "earnedList", for: indexPath) as! EarnedTableViewCell
  122. cellEarned.layer.borderColor = UIColor(red:0.91, green:0.93, blue:0.95, alpha:1.0).cgColor
  123. cellEarned.layer.borderWidth = 1
  124. cellEarned.layer.cornerRadius = 10
  125. cellEarned.clipsToBounds = true
  126. if inviteeArray[indexPath.row].status == "active" {
  127. if let inviteeStatus = inviteeArray[indexPath.row].status{
  128. cellEarned.labelStatus.text = inviteeStatus
  129. }
  130. if (inviteeArray[indexPath.row].name) != nil{
  131. cellEarned.labelName.text = inviteeArray[indexPath.row].name
  132. }
  133. if let inviteeMobileNumber = inviteeArray[indexPath.row].mobileNumber{
  134. cellEarned.labelMobileNo.text = inviteeMobileNumber
  135. }
  136. }
  137. return cellEarned
  138. }
  139. }
  140. /**
  141. // MARK: empty variable condition is handle in PopUpInviteeDetail
  142. */
  143. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  144. if tableView == tableViewPending {
  145. let initalLetter = inviteeArray[indexPath.row].name.prefix(1).uppercased()
  146. let inviteeName = inviteeArray[indexPath.row].name
  147. let inviteeNumber = inviteeArray[indexPath.row].mobileNumber
  148. let inviteeEmail = inviteeArray[indexPath.row].email
  149. inviteeDetail(initialLetter: initalLetter, inviteeName: inviteeName!, inviteeNumber: inviteeNumber!, inviteeEmail: inviteeEmail!)
  150. }
  151. }
  152. }