// // 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") } } }