ChangeNameTableViewController.swift 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // ChangeNameTableViewController.swift
  3. // Qmera
  4. //
  5. // Created by Yayan Dwi on 17/09/21.
  6. //
  7. import UIKit
  8. import NotificationBannerSwift
  9. class ChangeNameTableViewController: UITableViewController {
  10. @IBOutlet weak var name: UITextField!
  11. var isDismiss: (() -> ())?
  12. var data: String = ""
  13. override func viewWillAppear(_ animated: Bool) {
  14. let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
  15. UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
  16. }
  17. override func viewDidLoad() {
  18. super.viewDidLoad()
  19. navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Save".localized(), style: .plain, target: self, action: #selector(save(sender:)))
  20. Database.shared.database?.inTransaction({ fmdb, rollback in
  21. do {
  22. if let cursor = Database.shared.getRecords(fmdb: fmdb, query: "select FIRST_NAME || ' ' || ifnull(LAST_NAME, '') from BUDDY where F_PIN = '\(data)'"), cursor.next() {
  23. name.text = cursor.string(forColumnIndex: 0)?.trimmingCharacters(in: .whitespaces)
  24. cursor.close()
  25. }
  26. } catch {
  27. rollback.pointee = true
  28. print("Access database error: \(error.localizedDescription)")
  29. }
  30. })
  31. name.placeholder = "Name".localized()
  32. }
  33. @objc func save(sender: Any) {
  34. guard let name = self.name.text, !name.isEmpty else {
  35. return
  36. }
  37. let a = name.split(separator: " ", maxSplits: 1)
  38. let first = String(a[0])
  39. let last = a.count == 2 ? String(a[1]) : ""
  40. DispatchQueue.global().async {
  41. if let resp = Nexilis.writeAndWait(message: CoreMessage_TMessageBank.getChangePersonInfoName(firstname: first, lastname: last)) {
  42. if resp.isOk() {
  43. Database.shared.database?.inTransaction({ fmdb, rollback in
  44. do {
  45. _ = Database.shared.updateRecord(fmdb: fmdb, table: "BUDDY", cvalues: ["first_name": first , "last_name": last], _where: "f_pin = '\(self.data)'")
  46. } catch {
  47. rollback.pointee = true
  48. print("Access database error: \(error.localizedDescription)")
  49. }
  50. })
  51. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "updateFifthTab"), object: nil, userInfo: nil)
  52. DispatchQueue.main.async {
  53. self.navigationController?.popViewController(animated: true)
  54. self.isDismiss?()
  55. }
  56. } else if resp.getBody(key: CoreMessage_TMessageKey.ERRCOD, default_value: "99") == "1a" {
  57. DispatchQueue.main.async {
  58. let imageView = UIImageView(image: UIImage(systemName: "xmark.circle.fill"))
  59. imageView.tintColor = .white
  60. let banner = FloatingNotificationBanner(title: "Username has been registered, please use another name".localized(), subtitle: nil, titleFont: UIFont.systemFont(ofSize: 16), titleColor: nil, titleTextAlign: .left, subtitleFont: nil, subtitleColor: nil, subtitleTextAlign: nil, leftView: imageView, rightView: nil, style: .danger, colors: nil, iconPosition: .center)
  61. banner.show()
  62. }
  63. }
  64. }
  65. }
  66. }
  67. }