VcListPerson.swift 3.32 KB
import UIKit
import Foundation
import GeneralUtils

class VcListPerson: UIViewController, IVCLoadDataTableViewUIThread {
    @IBOutlet weak var vTopLogo: VTopLogo!
    @IBOutlet weak var tableView: UITableViewLoadDataFromUIThread!
    @IBOutlet weak var tvMax: UILabel!
    @IBOutlet weak var tvCurrent: UILabel!
    @IBOutlet weak var tvRemaining: UILabel!

    static func openController(_ viewController: UIViewController) {
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vcOpen = storyboard.instantiateViewController(withIdentifier: "VcListPerson") as! VcListPerson
        viewController.present(vcOpen, animated: true, completion: nil)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        vTopLogo.leftBtnClick = { self.dismiss(animated: true, completion: nil) }
        tableView.emptyText = LocalizedString("list_empty")
        tableView.initAndLoadData(self)
    }

    @IBAction func btnAddClick(_ sender: Any) {
        VCAddPerson.openController(self, tableView: self.tableView)
    }

    func loadDataOnUI(complete: @escaping ([Any]?) -> ()) {
        NetWorkUtils.excuteHttpGet(urlStr: Constants.PathManager.ROOT_SERVER + "api/worker/get_by_user_add/" + getIDWork(),
                complete: { (response, errorText) in
                    guard let response = response else {
                        CommonUtils.excuteOnMainThread({
                            complete(nil)
                        })
                        return false;
                    }
                    let json = JSON.parse(response);
                    if let isSuccess = json["iSuccess"].bool, isSuccess{
                        let arrayValue = json["data"].arrayValue;
                        var listPerson = [Person]()
                        for item in arrayValue {
                            if let rawString = item.rawString(), let person = Mapper<Person>().map(JSONString: rawString)     {
                                listPerson.append(person);
                            }
                        }
                        CommonUtils.excuteOnMainThread({
                            complete(listPerson)
                        })
                        return true;
                    } else {
                        CommonUtils.excuteOnMainThread({
                            complete(nil)
                        })
                        return false;
                    }
                });
    }

    func jsonToString(_ json: Any?) -> String? {
        do {
            let data1 = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted) // first of all convert json to the data
            let convertedString = String(data: data1, encoding: String.Encoding.utf8) // the data will be converted to the string
            return convertedString;

        } catch let myJSONError {
            return nil;
        }

    }

    func getAllCell() -> [BaseCell] {
        var baseCells: [BaseCell] = [BaseCell]();
        baseCells.append(BaseCell(type: 0, identifier: "CellPerson"))
        return baseCells
    }

    func getTypeOfData(baseobj: Any) -> Int {
        return 0
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    }


    override var prefersStatusBarHidden: Bool {
        return true
    }
}