calc_fees.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * Created by Mai on 2017/7/21.
  3. */
  4. let calcFees = {
  5. findFee: function (data, fieldName) {
  6. if (!data.fees) {
  7. data.fees = [];
  8. }
  9. for (let fee of data.fees) {
  10. if (fee.fieldName === fieldName) {
  11. return fee;
  12. }
  13. }
  14. return null;
  15. },
  16. AddFee: function (data, fieldName) {
  17. let fee = {
  18. 'fieldName': fieldName,
  19. 'unitFee': 0,
  20. 'totalFee': 0,
  21. 'tenderUnitFee': 0,
  22. 'tenderTotalFee': 0
  23. };
  24. data.fees.push(fee);
  25. data.feesIndex[fieldName] = fee;
  26. },
  27. checkFields: function (data, fields) {
  28. for (let field of fields) {
  29. if (!this.findFee(data, field.type)) {
  30. this.AddFee(data, field.type);
  31. }
  32. }
  33. },
  34. getFee: function (data, fullField) {
  35. let fields = fullField.split('.'), value = data;
  36. for (let field of fields) {
  37. if (value[field]) {
  38. value = value[field];
  39. } else {
  40. return 0;
  41. }
  42. }
  43. return value;
  44. },
  45. getFeeSplit: function (data, fullFields) {
  46. let value = data;
  47. for (let field of fullFields) {
  48. if (value[field]) {
  49. value = value[field];
  50. } else {
  51. return 0;
  52. }
  53. }
  54. return value;
  55. }
  56. }