ReceiptModel.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace SinochemInternetPlusApp
  7. {
  8. class ReceiptModel
  9. {
  10. public string TrxModeName { get; set; }
  11. public string TrxTimeStamp { get; set; }
  12. public string RunningNumber { get; set; }
  13. public string CardNo { get; set; }
  14. public string GradeName { get; set; }
  15. public int NozzleId { get; set; }
  16. public double PPU { get; set; }
  17. public double Qty { get; set; }
  18. public double Amount { get; set; }
  19. public double DueAmount { get; set; }
  20. public double DiscountAmount { get; set; }
  21. public double PayAmount { get; set; }
  22. public string PayUrl { get; set; }
  23. public string InvoiceUrl { get; set; }
  24. }
  25. static class ReceiptModelBuilder
  26. {
  27. public static ReceiptModel BuildReceiptModel(EpsTransaction epsTrx, EpsTransactionMode trxMode)
  28. {
  29. ReceiptModel receiptModel = new ReceiptModel();
  30. if (epsTrx != null)
  31. {
  32. var epsTrxModel = epsTrx.Model;
  33. if(trxMode == EpsTransactionMode.CarPlateMode)
  34. {
  35. receiptModel.TrxModeName = "车牌付";
  36. }
  37. else if(trxMode == EpsTransactionMode.ICCardMode)
  38. {
  39. receiptModel.TrxModeName = "IC卡付";
  40. }
  41. else if (trxMode == EpsTransactionMode.BasicMode)
  42. {
  43. receiptModel.TrxModeName = "室内付";
  44. }
  45. receiptModel.TrxTimeStamp = BuildTrxDateTime(epsTrxModel);
  46. receiptModel.RunningNumber = epsTrxModel.bill_id;
  47. receiptModel.CardNo = epsTrxModel.card_no;
  48. receiptModel.GradeName = epsTrxModel.youpin;
  49. receiptModel.NozzleId = epsTrxModel.jihao;
  50. receiptModel.PPU = epsTrxModel.danjia;
  51. receiptModel.Qty = epsTrxModel.qty;
  52. receiptModel.Amount = epsTrxModel.amount;
  53. receiptModel.DueAmount = epsTrxModel.amount;
  54. if (epsTrxModel.trx_status == EpsTrxStatus.PaymentOk)
  55. receiptModel.DiscountAmount = epsTrxModel.amount - epsTrxModel.real_pay_amount;
  56. receiptModel.PayAmount = epsTrxModel.real_pay_amount;
  57. receiptModel.PayUrl = epsTrxModel.pay_url;
  58. receiptModel.InvoiceUrl = epsTrxModel.invoiceUrl;
  59. }
  60. else
  61. {
  62. // how to handle here? Leave it as default values?
  63. }
  64. return receiptModel;
  65. }
  66. private static string BuildTrxDateTime(EpsTransactionModel epsTrxModel)
  67. {
  68. return Utilities.ConvertDateTimeToReadble(Utilities.CombineDateAndTime(epsTrxModel.xf_date, epsTrxModel.xf_time));
  69. }
  70. }
  71. }