Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // InventoryTableViewController.swift
- // msp
- //
- // Created by user on 12.06.2016.
- // Copyright © 2016 Intellisoft. All rights reserved.
- //
- import Foundation
- import UIKit
- import DGElasticPullToRefresh
- class InventoryTableViewController : UITableViewController{
- var inventories = [InventoryHolder]()
- var inventoriesFiltered = [InventoryHolder]()
- var currentPage = 0;
- let maxPageSize = 10
- var currentSearchText = ""
- var lastItemReached = false;
- let searchController = UISearchController(searchResultsController: nil)
- override func viewDidLoad() {
- super.viewDidLoad()
- loadData("",filtered: false)
- searchController.searchResultsUpdater = self
- searchController.dimsBackgroundDuringPresentation = false
- definesPresentationContext = true
- tableView.tableHeaderView = searchController.searchBar
- let loadingView = DGElasticPullToRefreshLoadingViewCircle()
- loadingView.tintColor = UIColor(red: 78/255.0, green: 221/255.0, blue: 200/255.0, alpha: 1.0)
- tableView.dg_addPullToRefreshWithActionHandler({ [weak self] () -> Void in
- // Add your logic here
- // Do not forget to call dg_stopLoading() at the end
- self?.tableView.dg_stopLoading()
- }, loadingView: loadingView)
- tableView.dg_setPullToRefreshFillColor(UIColor(red: 57/255.0, green: 67/255.0, blue: 89/255.0, alpha: 1.0))
- tableView.dg_setPullToRefreshBackgroundColor(tableView.backgroundColor!)
- }
- override func viewWillAppear(animated: Bool) {
- self.tableView.reloadData()
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
- func filterContentForSearchText(searchText: String, scope: String = "All") {
- print("Searching with: \(searchText)")
- if (searchText.characters.count > 0){
- currentPage = 0;
- LoadingAlert.shared.showOverlay(self.view)
- loadData(searchText,filtered: true)
- }
- currentSearchText = searchText
- tableView.reloadData()
- }
- func loadData(searchText : String,filtered: Bool){
- var helper = WebServiceHelper()
- var details = GetAllInventoryDetails()
- details.username = AppConfiguration.username
- details.password = AppConfiguration.password
- details.searchContent = searchText
- details.limit = self.maxPageSize;
- details.page = self.currentPage
- helper.callGetAllInventoryWebService(details, completionHandler: { (resp:GetAllInventoryResponse, err:NSError?) -> () in
- LoadingAlert.shared.hideOverlayView()
- if resp.status == ResponseStatus.FAILED{
- var errorMessage:String = ""
- if (resp.code == ResponseCode.ERROR_INTERNAL_SERVER_ERROR){
- errorMessage = "Internal server error"
- }
- if (resp.code == ResponseCode.ERROR_INVALID_USERNAME){
- errorMessage = "Invalid user name"
- }
- if (resp.code == ResponseCode.ERROR_INVALID_PASSWORD){
- errorMessage = "Invalid password"
- }
- if (resp.code == ResponseCode.ERROR_INVALID_USER){
- errorMessage = "Invalid user"
- }
- if (resp.code == ResponseCode.ERROR_PASSWORDS_DO_NOT_MATCH){
- errorMessage = "Invalid password."
- }
- if (resp.code == ResponseCode.ERROR_INVALID_CUSTOMER_ID){
- errorMessage = "Invalid customer id"
- }
- SweetAlert().showAlert("Error", subTitle: errorMessage, style: AlertStyle.Error)
- }else{
- var inventoriesList = resp.inventoryList!
- var index = 0;
- for inventory in inventoriesList{
- if let id = inventory.inventoryEntity?.InventoryID{
- for i in 0...5 {
- inventoriesList.append(inventory)
- }
- print("ID Is ok: \(id)")
- }else{
- inventoriesList.removeAtIndex(index)
- }
- index++;
- }
- print("Inventory list: \(self.inventories.count)")
- if (filtered == true){
- if (self.inventoriesFiltered.count>0){
- self.inventoriesFiltered.appendContentsOf(inventoriesList)
- }else{
- self.inventoriesFiltered = inventoriesList
- }
- }else{
- SweetAlert().showAlert("Success",subTitle: "Successfully selected \(inventoriesList.count) inventory items", style: AlertStyle.Success)
- if (self.inventories.count > 0){
- self.inventories.appendContentsOf(inventoriesList)
- }else{
- self.inventories = inventoriesList
- }
- }
- self.tableView.reloadData()
- /*SweetAlert().showAlert("Success", subTitle: "Successfully selected \(self.cases.count) cases", style: AlertStyle.Success)
- print ("downloaded cases : \(self.cases.count)");
- self.tableView.reloadData()*/
- }
- })
- }
- override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
- return 1
- }
- override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- if searchController.active && searchController.searchBar.text != "" {
- return inventoriesFiltered.count
- }
- return inventories.count
- }
- override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
- let cellIdentifier = "InventoryTableViewCell"
- let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! InventoryTableViewCell
- let inventory : InventoryHolder
- print("Inventories list count: \(self.inventories.count)")
- if searchController.active && searchController.searchBar.text != "" {
- inventory = inventoriesFiltered[indexPath.row]
- if (indexPath.row == self.inventoriesFiltered.count-1 && inventoriesFiltered.count > self.maxPageSize){
- if (!lastItemReached){
- self.currentPage++
- loadData(self.currentSearchText, filtered: true)
- lastItemReached = true;
- }
- }
- } else {
- inventory = inventories[indexPath.row]
- if (indexPath.row == self.inventories.count-1 && inventories.count > self.maxPageSize){
- if (!lastItemReached){
- self.currentPage++
- loadData("", filtered: false)
- lastItemReached = true
- }
- }
- }
- print("inventory index: \(indexPath.row)")
- //print("ID: \(inventory.inventoryEntity?.InventoryID)");
- if let id = inventory.inventoryEntity?.InventoryID{
- cell.inventoryIDLabel.text = "ID: " + String(id)
- }
- var inventoryTitle = ""
- if let entityType = inventory.customerInventoryDetailEntity?.EntityType{
- print("Entity type: \(entityType)");
- inventoryTitle = inventoryTitle + entityType
- }
- if let inventoryName = inventory.inventoryEntity?.Name {
- inventoryTitle = inventoryTitle + " " + inventoryName
- }
- cell.inventoryTitleLabel.text = inventoryTitle
- var modifiedDate = inventory.inventoryEntity?.LastModifiedDate
- var createdDate = inventory.inventoryEntity?.CreationDate
- print ("ModifiedDate: \(modifiedDate)");
- modifiedDate = modifiedDate!.substringWithRange(Range<String.Index>(start: modifiedDate!.startIndex.advancedBy(0), end: modifiedDate!.startIndex.advancedBy(10)))
- createdDate = createdDate!.substringWithRange(Range<String.Index>(start: createdDate!.startIndex.advancedBy(0), end: createdDate!.startIndex.advancedBy(10)))
- cell.inventoryDatesLabel.text = "C: " + createdDate! + " M: " + modifiedDate!
- cell.inventoryDatesLabel.textColor = UIColor(rgba: "#808080")
- cell.inventoryIDLabel.textColor = UIColor(rgba: "#808080")
- return cell
- }
- override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
- let selectedIndex = self.tableView.indexPathForCell(sender as! InventoryTableViewCell)
- var model : InventoryHolder
- if searchController.active && searchController.searchBar.text != "" {
- model = self.inventoriesFiltered[selectedIndex!.row]
- }else{
- model = self.inventories[selectedIndex!.row]
- }
- AppConfiguration.selectedInventory = model
- }
- }
- extension InventoryTableViewController : UISearchResultsUpdating {
- func updateSearchResultsForSearchController(searchController: UISearchController) {
- filterContentForSearchText(searchController.searchBar.text!)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement