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
191 lines
7.1 KiB
//
|
|
// EarnedViewController.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by FMI-12 on 3/1/18.
|
|
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class EarnedViewController: UIViewController {
|
|
|
|
@IBOutlet weak var tableViewPending: UITableView!
|
|
@IBOutlet weak var tableViewEarned: UITableView!
|
|
@IBOutlet weak var segmentedControl: UISegmentedControl!
|
|
|
|
private var activeInviteeCount = 0
|
|
public var bonusStatus: Bool?
|
|
private var tableViewSelected: UITableView!
|
|
|
|
public var inviteeArray = [InviteeModel]()
|
|
|
|
private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
|
|
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
setUpNavBar(id: 201, title: "Invite")
|
|
|
|
self.tableViewPending.estimatedRowHeight = 119
|
|
self.tableViewPending.rowHeight = UITableViewAutomaticDimension
|
|
|
|
self.tableViewEarned.estimatedRowHeight = 119
|
|
self.tableViewEarned.rowHeight = UITableViewAutomaticDimension
|
|
|
|
/* if bonusStatus is true opens Pending table view else opens Earned table view */
|
|
if bonusStatus!{
|
|
tableViewEarned.isHidden = true
|
|
tableViewPending.isHidden = false
|
|
segmentedControl.selectedSegmentIndex = 0
|
|
|
|
} else {
|
|
tableViewPending.isHidden = true
|
|
tableViewEarned.isHidden = false
|
|
segmentedControl.selectedSegmentIndex = 1
|
|
}
|
|
|
|
segmentedControl.addTarget(self, action: #selector(inviteStatus(_:)), for: .valueChanged)
|
|
|
|
if self.inviteeArray.count > 0{
|
|
for i in inviteeArray[0..<inviteeArray.count]{
|
|
if let value = i.status{
|
|
if value == "active"{
|
|
activeInviteeCount = activeInviteeCount + 1
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
// print("Server Response Null..")
|
|
}
|
|
|
|
tableViewPending.tableFooterView = UIView()
|
|
tableViewEarned.tableFooterView = UIView()
|
|
}
|
|
|
|
|
|
/**
|
|
Segment action button.
|
|
If segment is 0 opens Pending table view else opens Earned table view
|
|
*/
|
|
@objc func inviteStatus(_ segControl: UISegmentedControl) {
|
|
switch segControl.selectedSegmentIndex {
|
|
case 0:
|
|
|
|
tableViewEarned.isHidden = true
|
|
tableViewPending.isHidden = false
|
|
case 1:
|
|
|
|
tableViewEarned.isHidden = false
|
|
tableViewPending.isHidden = true
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
|
|
/**
|
|
- Returns Random background color for first name initial
|
|
*/
|
|
func getRandomColor() -> UIColor{
|
|
//Generate between 0 to 1
|
|
let red: CGFloat = CGFloat(drand48())
|
|
let green: CGFloat = CGFloat(drand48())
|
|
let blue: CGFloat = CGFloat(drand48())
|
|
return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
|
|
}
|
|
|
|
/**
|
|
Dialog to display detail information of invitee
|
|
|
|
- Parameter initialLetter : Initial letter of a invitee name
|
|
- Parameter inviteeName : Name of a invitee
|
|
- Parameter inviteeNumber : Contact number of invitee
|
|
- Parameter inviteeEmail : Email address of invitee
|
|
*/
|
|
func inviteeDetail(initialLetter: String, inviteeName: String, inviteeNumber: String, inviteeEmail: String){
|
|
guard let navController = self.navigationController else { return }
|
|
let popUpViewController = UIStoryboard(name: "Invite", bundle: nil).instantiateViewController(withIdentifier: "PopUpInviteeDetail") as! PopUpInviteeDetail
|
|
popUpViewController.initial = initialLetter
|
|
popUpViewController.inviteeName = inviteeName
|
|
popUpViewController.mobileNo = inviteeNumber
|
|
popUpViewController.email = inviteeEmail
|
|
|
|
navController.addChildViewController(popUpViewController)
|
|
popUpViewController.view.frame = navController.view.bounds
|
|
navController.view.addSubview(popUpViewController.view)
|
|
popUpViewController.didMove(toParentViewController: navController)
|
|
}
|
|
}
|
|
|
|
extension EarnedViewController: UITableViewDelegate, UITableViewDataSource {
|
|
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
if tableView == tableViewPending{
|
|
return inviteeArray.count
|
|
} else{
|
|
return activeInviteeCount
|
|
}
|
|
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
|
|
if tableView == tableViewPending {
|
|
let cell = tableView.dequeueReusableCell(withIdentifier: "pendingList", for: indexPath) as! PendingTableViewCell
|
|
|
|
cell.labelInitial.layer.cornerRadius = cell.labelInitial.frame.size.width/2
|
|
cell.labelInitial.backgroundColor = getRandomColor()
|
|
|
|
cell.layer.borderColor = UIColor(red:0.91, green:0.93, blue:0.95, alpha:1.0).cgColor
|
|
cell.layer.borderWidth = 1
|
|
cell.layer.cornerRadius = 10
|
|
cell.clipsToBounds = true
|
|
|
|
if (inviteeArray[indexPath.row].name) != nil{
|
|
cell.labelInitial.text = inviteeArray[indexPath.row].name.prefix(1).uppercased()
|
|
}
|
|
if let inviteeName = inviteeArray[indexPath.row].name{
|
|
cell.labelInviteeName.text = inviteeName
|
|
}
|
|
|
|
return cell
|
|
|
|
} else {
|
|
|
|
let cellEarned = tableView.dequeueReusableCell(withIdentifier: "earnedList", for: indexPath) as! EarnedTableViewCell
|
|
|
|
cellEarned.layer.borderColor = UIColor(red:0.91, green:0.93, blue:0.95, alpha:1.0).cgColor
|
|
cellEarned.layer.borderWidth = 1
|
|
cellEarned.layer.cornerRadius = 10
|
|
cellEarned.clipsToBounds = true
|
|
|
|
|
|
if inviteeArray[indexPath.row].status == "active" {
|
|
|
|
if let inviteeStatus = inviteeArray[indexPath.row].status{
|
|
cellEarned.labelStatus.text = inviteeStatus
|
|
}
|
|
if (inviteeArray[indexPath.row].name) != nil{
|
|
cellEarned.labelName.text = inviteeArray[indexPath.row].name
|
|
}
|
|
if let inviteeMobileNumber = inviteeArray[indexPath.row].mobileNumber{
|
|
cellEarned.labelMobileNo.text = inviteeMobileNumber
|
|
}
|
|
}
|
|
return cellEarned
|
|
}
|
|
}
|
|
|
|
/**
|
|
// MARK: empty variable condition is handle in PopUpInviteeDetail
|
|
*/
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
if tableView == tableViewPending {
|
|
let initalLetter = inviteeArray[indexPath.row].name.prefix(1).uppercased()
|
|
let inviteeName = inviteeArray[indexPath.row].name
|
|
let inviteeNumber = inviteeArray[indexPath.row].mobileNumber
|
|
let inviteeEmail = inviteeArray[indexPath.row].email
|
|
inviteeDetail(initialLetter: initalLetter, inviteeName: inviteeName!, inviteeNumber: inviteeNumber!, inviteeEmail: inviteeEmail!)
|
|
}
|
|
}
|
|
}
|