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.

105 lines
3.0 KiB

6 years ago
  1. //
  2. // CalendarViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by Fm-user on 3/6/18.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. protocol CalendarViewDelegate {
  10. func getDate(fromDate:String,toDate:String)
  11. func goBackOneScreen()
  12. }
  13. class CalendarViewController: PopUpSavingViewController {
  14. @IBOutlet weak var calendarParentView: UIView!
  15. @IBOutlet weak var fromDateTextField: UITextField!
  16. @IBOutlet weak var toDateTextField: UITextField!
  17. private let fromDatePicker = UIDatePicker()
  18. private let toDatePicker = UIDatePicker()
  19. var delegate: CalendarViewDelegate?
  20. @IBAction func cancelCalendarAction(_ sender: Any) {
  21. self.dismissDialog()
  22. delegate?.goBackOneScreen()
  23. }
  24. override func viewDidLoad() {
  25. super.viewDidLoad()
  26. fromDatePicker.datePickerMode = .date
  27. toDatePicker.datePickerMode = .date
  28. fromDateTextField.inputView = fromDatePicker
  29. toDateTextField.inputView = toDatePicker
  30. fromDatePicker.addTarget(self, action: #selector(handleFromDatePicker(sender:)), for: .valueChanged)
  31. toDatePicker.addTarget(self, action: #selector(handleToDatePicker(sender:)), for: .valueChanged)
  32. }
  33. /**
  34. Display date picker
  35. */
  36. @objc func handleFromDatePicker(sender: UIDatePicker) {
  37. let dateFormatter = DateFormatter()
  38. dateFormatter.dateFormat = "yyyy/MM/dd"
  39. fromDateTextField.text = dateFormatter.string(from: sender.date)
  40. }
  41. /**
  42. Display date picker
  43. */
  44. @objc func handleToDatePicker(sender: UIDatePicker) {
  45. let dateFormatter = DateFormatter()
  46. dateFormatter.dateFormat = "yyyy/MM/dd"
  47. toDateTextField.text = dateFormatter.string(from: sender.date)
  48. }
  49. /**
  50. Request a transaction api
  51. */
  52. @IBAction func submitAction(_ sender: Any) {
  53. if fromDateTextField.text != "" && toDateTextField.text != ""{
  54. delegate?.getDate(fromDate: fromDateTextField.text!, toDate: toDateTextField.text!)
  55. self.dismissDialog()
  56. }else{
  57. self.popUpMessageError(value: 10, message: "Please select both the dates.")
  58. }
  59. }
  60. /**
  61. Dismiss calendar dialog
  62. */
  63. func dismissDialog()
  64. {
  65. UIView.animate(withDuration: 0.0, animations: {
  66. self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
  67. self.view.alpha = 0.0;
  68. }, completion:{(finished : Bool) in
  69. if (finished)
  70. {
  71. self.view.removeFromSuperview()
  72. }
  73. });
  74. self.removeFromParentViewController()
  75. }
  76. /**
  77. Format date as per api requirement
  78. - Parameter date: date value from Date object
  79. - returns : date value as per in format required by an api
  80. */
  81. func dateFormatter(date: Date) -> String{
  82. let dateFormatter = DateFormatter()
  83. dateFormatter.dateFormat = "yyyy/MM/dd"
  84. return dateFormatter.string(from: date)
  85. }
  86. }