ReceiptModel.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 InvoiceUrl { get; set; }
  23. }
  24. static class ReceiptModelBuilder
  25. {
  26. public static ReceiptModel BuildReceiptModel(EpsTransaction epsTrx, TransactionMode trxMode)
  27. {
  28. ReceiptModel receiptModel = new ReceiptModel();
  29. if (epsTrx != null)
  30. {
  31. var epsTrxModel = epsTrx.Model;
  32. if(trxMode == TransactionMode.CarPlateMode)
  33. {
  34. receiptModel.TrxModeName = "车牌付";
  35. }
  36. else if(trxMode == TransactionMode.ICCardMode)
  37. {
  38. receiptModel.TrxModeName = "IC卡付";
  39. }
  40. else if (trxMode == TransactionMode.BasicMode)
  41. {
  42. receiptModel.TrxModeName = "室内付";
  43. }
  44. receiptModel.TrxTimeStamp = BuildTrxDateTime(epsTrxModel);
  45. receiptModel.RunningNumber = epsTrxModel.bill_id;
  46. receiptModel.CardNo = epsTrxModel.card_no;
  47. receiptModel.GradeName = epsTrxModel.youpin;
  48. receiptModel.NozzleId = epsTrxModel.jihao;
  49. receiptModel.PPU = epsTrxModel.danjia;
  50. receiptModel.Qty = epsTrxModel.qty;
  51. receiptModel.Amount = epsTrxModel.amount;
  52. receiptModel.DueAmount = epsTrxModel.amount;
  53. receiptModel.DiscountAmount = epsTrxModel.amount - epsTrxModel.real_pay_amount;
  54. receiptModel.PayAmount = epsTrxModel.real_pay_amount;
  55. receiptModel.InvoiceUrl = epsTrxModel.InvoiceUrl;
  56. }
  57. else
  58. {
  59. // how to handle here? Leave it as default values?
  60. }
  61. return receiptModel;
  62. }
  63. private static string BuildTrxDateTime(EpsTransactionModel epsTrxModel)
  64. {
  65. return Utilities.ConvertDateTimeToReadble(Utilities.CombineDateAndTime(epsTrxModel.xf_date, epsTrxModel.xf_time));
  66. }
  67. }
  68. }