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.
 
 
 
 

216 lines
7.5 KiB

//
// WalletSuccessViewController.swift
// GMERemittance
//
// Created by Sujal on 3/1/18.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class WalletSuccessViewController: UIViewController {
@IBOutlet weak var buttonTopConstraint: NSLayoutConstraint!
@IBOutlet weak var viewDetailsHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var viewDetailsTopConstraint: NSLayoutConstraint!
@IBOutlet weak var labelSuccessHeading: UILabel!
@IBOutlet weak var labelSuccessDescription: UILabel!
@IBOutlet weak var labelUserID: UILabel!
@IBOutlet weak var labelUserName: UILabel!
@IBOutlet weak var labelSuccessAmount: UILabel!
@IBOutlet weak var labelTransactionDate: UILabel!
@IBOutlet weak var labelTransactionNumber: UILabel!
@IBOutlet weak var viewDetails: UIView!
@IBOutlet weak var buttonSave: UIButton!
private var webView: UIWebView
private var pdfComposer: PdfComposer!
private var HTMLContent: String!
public var walletviewmodel: WalletViewModel?
public var transaction: Transaction?
override func viewDidLoad() {
super.viewDidLoad()
guard transaction == nil else {
setupTransactionStatementDetails()
return
}
setUpNavBar(id: 203, title: "Wallet to Wallet Transfer")
guard walletviewmodel != nil else {
self.popUpMessageInfo(value: 16, title: "No data", message: "Data not received")
return
}
if walletviewmodel?.getModeIndex() == 1 {
viewDetails.isHidden = true
buttonTopConstraint.constant = buttonTopConstraint.constant - viewDetailsHeightConstraint.constant - viewDetailsTopConstraint.constant
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
if let amount = walletviewmodel?.getAmount(){
let amountNumber = Float(amount)! as NSNumber
if let mode = walletviewmodel?.getModeIndex(){
switch mode {
case 0:
setTransferMessage(amountNumber: amountNumber,numberFormatter: numberFormatter)
case 1:
setRequestMessage(amountNumber: amountNumber,numberFormatter: numberFormatter)
default:
return
}
}
}
if let date = walletviewmodel?.getTransactionResult().date{
labelTransactionDate.text = unixTimeStampToDate(unixTimeStamp: date)
}
if let transactionId = walletviewmodel?.getTransactionResult().transactionId{
labelTransactionNumber.text = transactionId
}
}
/**
Request loan layout
- parameter amountNumber: amount asked for a loan
- parameter numberFormatter: object of NumberFormatter
*/
func setRequestMessage(amountNumber: NSNumber, numberFormatter: NumberFormatter){
labelSuccessHeading.text = "Request Successful"
labelSuccessDescription.text = "Your request for loan has been successfully sent to"
if let gmeId = walletviewmodel?.getGMEID(){
labelUserID.text = gmeId
}
if let fullName = walletviewmodel?.getFullName(){
labelUserName.text = "(" + fullName + ")"
}
labelSuccessAmount.text = "Total Amount: " + numberFormatter.string(from: amountNumber)! + " KRW"
}
/**
Transfer money layout'
- parameter amountNumber: amount transferred to others account
- parameter numberFormatter: object of NumberFormatter
*/
func setTransferMessage(amountNumber: NSNumber,numberFormatter: NumberFormatter){
labelSuccessHeading.text = "Transfer Successful"
labelSuccessDescription.text = "You have successfully transferred your money to"
if let gmeId = walletviewmodel?.getGMEID(){
labelUserID.text = gmeId
}
if let username = walletviewmodel?.getFullName(){
labelUserName.text = "(" + username + ")"
}
labelSuccessAmount.text = "Total Amount: " + numberFormatter.string(from: amountNumber)! + " KRW"
}
/**
Set transaction statement details
*/
func setupTransactionStatementDetails() {
setUpNavBar(id: 204, title: "Transaction Statement")
setUpHeaderMessage(transaction: transaction!)
if let payoutAmountOriginal = transaction?.payoutAmountOriginal{
labelSuccessAmount.text = "Total Amount: " + getCommaAddedAmountString(amountString: payoutAmountOriginal)
}
if let date = transaction?.date{
labelTransactionDate.text = unixTimeStampToDate(unixTimeStamp: date)
}
if let transactionId = transaction?.transactionId{
labelTransactionNumber.text = transactionId
}
}
/**
Set up header message
- parameter transaction: object of class name Transaction
*/
func setUpHeaderMessage(transaction: Transaction) {
switch transaction.transactionType {
case "sent":
labelSuccessHeading.text = "Transfer Successful"
labelSuccessDescription.text = "You have successfully transferred your money to"
labelUserID.text = transaction.receiverId
if let receiverName = transaction.receiverName{
labelUserName.text = receiverName
}
case "received":
labelSuccessHeading.text = "Money Transfer"
labelSuccessDescription.text = "You have received money from"
labelUserID.text = transaction.userId
if let senderName = transaction.senderName{
labelUserName.text = senderName
}
default:
return
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
required init?(coder aDecoder: NSCoder) {
self.webView = UIWebView(frame: CGRect.zero)
super.init(coder: aDecoder)
}
/**
Save wallet transaction view into pdf
*/
@IBAction func saveWalletTransactionPdf(_ sender: Any) {
pdfComposer = PdfComposer()
let pdfDetails: [String: String] = ["TXDATE": labelTransactionDate.text!,
"TXNUMBER": labelTransactionNumber.text!,
"AMOUNT": "50,000 KRW"]
if let pdfHTML = pdfComposer.renderPdfWallet(pdfDetails: pdfDetails) {
webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
view.addSubview(webView)
webView.delegate = self
webView.alpha = 0
webView.loadHTMLString(pdfHTML, baseURL: nil)
HTMLContent = pdfHTML
}
}
@IBAction func showHomeScreen(_ sender: Any) {
goToHomeScreen()
}
}
extension WalletSuccessViewController: UIWebViewDelegate {
func webViewDidFinishLoad(_ webView: UIWebView) {
if self.pdfComposer.exportHTMLContentToPDF(HTMLContent: self.HTMLContent) {
self.popUpMessageInfo(value: 16, title: "File Saved", message: "File is in Documents folder")
} else {
self.popUpMessageInfo(value: 16, title: "Something went wrong", message: "File not saved")
}
}
}