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

//
// 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!)
}
}
}