@sellout/models 0.0.185 → 0.0.186

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,7 +28,7 @@ export default {
28
28
  upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
29
29
  fees: fees,
30
30
  paymentMethodType: payment.paymentMethodType,
31
- }).total
31
+ }).total || 0;
32
32
  }, 0);
33
33
  } else {
34
34
  if (
@@ -40,94 +40,121 @@ export default {
40
40
  if (!order.tickets) order.tickets = [];
41
41
  if (!order.upgrades) order.upgrades = [];
42
42
 
43
- const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
44
- const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
45
- let orderFees = fees.filter(f => f.appliedTo === "Order");
46
-
47
- function applyTicketFee(ticket, fee) {
48
- if (fee.filters.includes("Seated") && !ticket.seat) return 0;
49
- const noMax = fee.maxAppliedToPrice === 0;
50
- if (
51
- (fee.minAppliedToPrice <= ticket.price &&
52
- ticket.price <= fee.maxAppliedToPrice) ||
53
- noMax
54
- ) {
55
- if (fee.type === "Flat") {
56
- return fee.value;
57
- }
58
- if (fee.type === "Percent") {
59
- return (ticket.price * fee.value) / 100;
60
- }
61
- } else {
62
- return 0;
63
- }
64
- }
43
+ // console.log("order ++++++++++>>>",order);
65
44
 
66
- function applyUpgradeFee(upgrade, fee) {
67
- const noMax = fee.maxAppliedToPrice === 0;
68
- if (
69
- (fee.minAppliedToPrice <= upgrade.price &&
70
- upgrade.price <= fee.minAppliedToPrice) ||
71
- noMax
72
- ) {
73
- if (fee.type === "Flat") {
74
- return fee.value;
75
- }
76
- if (fee.type === "Percent") {
77
- return (upgrade.price * fee.value) / 100;
78
- }
79
- } else {
80
- return 0;
81
- }
82
- }
83
45
 
84
- function applyOrderFee(orderSubtotal, fee) {
85
- if (fee.type === "Flat") {
86
- return orderSubtotal + fee.value;
87
- }
88
- if (fee.type === "Percent") {
89
- return orderSubtotal / (1 - fee.value / 100);
90
- }
91
- }
46
+ // const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
47
+ // const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
48
+ // let orderFees = fees.filter(f => f.appliedTo === "Order");
49
+
50
+ // function applyTicketFee(ticket, fee) {
51
+ // if (fee.filters.includes("Seated") && !ticket.seat) return 0;
52
+ // const noMax = fee.maxAppliedToPrice === 0;
53
+ // if (
54
+ // (fee.minAppliedToPrice <= ticket.price &&
55
+ // ticket.price <= fee.maxAppliedToPrice) ||
56
+ // noMax
57
+ // ) {
58
+ // if (fee.type === "Flat") {
59
+ // return fee.value;
60
+ // }
61
+ // if (fee.type === "Percent") {
62
+ // return (ticket.price * fee.value) / 100;
63
+ // }
64
+ // } else {
65
+ // return 0;
66
+ // }
67
+ // }
68
+
69
+ // function applyUpgradeFee(upgrade, fee) {
70
+ // const noMax = fee.maxAppliedToPrice === 0;
71
+ // if (
72
+ // (fee.minAppliedToPrice <= upgrade.price &&
73
+ // upgrade.price <= fee.minAppliedToPrice) ||
74
+ // noMax
75
+ // ) {
76
+ // if (fee.type === "Flat") {
77
+ // return fee.value;
78
+ // }
79
+ // if (fee.type === "Percent") {
80
+ // return (upgrade.price * fee.value) / 100;
81
+ // }
82
+ // } else {
83
+ // return 0;
84
+ // }
85
+ // }
86
+
87
+ // function applyOrderFee(orderSubtotal, fee) {
88
+ // if (fee.type === "Flat") {
89
+ // return orderSubtotal + fee.value;
90
+ // }
91
+ // if (fee.type === "Percent") {
92
+ // return orderSubtotal / (1 - fee.value / 100);
93
+ // }
94
+ // }
95
+
96
+ // const ticketTotal = order.tickets.reduce(
97
+ // (cur, ticket) => cur + ticket.price,
98
+ // 0
99
+ // );
100
+
101
+ // const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
102
+ // return (
103
+ // cur +
104
+ // ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
105
+ // );
106
+ // }, 0);
107
+
108
+ // const upgradeTotal = order.upgrades.reduce(
109
+ // (cur, upgrade) => cur + upgrade.price,
110
+ // 0
111
+ // );
112
+
113
+ // const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
114
+ // return (
115
+ // cur +
116
+ // upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
117
+ // );
118
+ // }, 0);
119
+ // const orderSubtotal =
120
+ // ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
121
+
122
+ // // Order matters here. Flat type fees must be
123
+ // // applied before Percent type fees
124
+ // orderFees = orderFees.sort(({ type }) => {
125
+ // if (type === "Flat") return -1;
126
+ // return 1;
127
+ // });
128
+
129
+ // const orderTotal = orderFees.reduce((cur, fee) => {
130
+ // return applyOrderFee(cur, fee);
131
+ // }, orderSubtotal) || 0;
132
+
133
+ // console.log("orderTotal orderTotal+++++>>",orderTotal );
134
+
135
+ // return Math.round(orderTotal);
136
+
92
137
 
93
138
  const ticketTotal = order.tickets.reduce(
94
139
  (cur, ticket) => cur + ticket.price,
95
140
  0
96
141
  );
97
142
 
98
- const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
99
- return (
100
- cur +
101
- ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
102
- );
103
- }, 0);
104
-
105
143
  const upgradeTotal = order.upgrades.reduce(
106
144
  (cur, upgrade) => cur + upgrade.price,
107
145
  0
108
146
  );
109
-
110
- const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
111
- return (
112
- cur +
113
- upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
114
- );
115
- }, 0);
147
+ // console.log("++++>>>>>>/ fees", fees)
148
+ const totalFee = fees.reduce(
149
+ (cur, fee) => cur + parseInt(fee.amount),
150
+ 0
151
+ );
152
+ // console.log("++++>>>>>>", ticketTotal, upgradeTotal, totalFee)
116
153
  const orderSubtotal =
117
- ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
118
-
119
- // Order matters here. Flat type fees must be
120
- // applied before Percent type fees
121
- orderFees = orderFees.sort(({ type }) => {
122
- if (type === "Flat") return -1;
123
- return 1;
124
- });
154
+ ticketTotal + upgradeTotal + totalFee;
155
+ // console.log("++++",orderSubtotal)
156
+ return Math.round(orderSubtotal);
125
157
 
126
- const orderTotal = orderFees.reduce((cur, fee) => {
127
- return applyOrderFee(cur, fee);
128
- }, orderSubtotal);
129
-
130
- return Math.round(orderTotal);
131
158
  }
132
159
  },
133
160
 
@@ -180,14 +207,32 @@ export default {
180
207
  return this.orderTotalWithRefund(order, promoterFees);
181
208
  },
182
209
  orderSubtotal(order: IOrder): number {
183
- const subTotal = order?.payments?.reduce((cur: number, payment: IPayment): number => {
184
- return cur + PaymentUtil.calculatePaymentSubtotal({
185
- tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
186
- upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
187
- fees: [],
188
- paymentMethodType: payment.paymentMethodType,
210
+ let subTotal;
211
+ if (order.payments) {
212
+ subTotal = order?.payments?.reduce((cur: number, payment: IPayment): number => {
213
+ return cur + PaymentUtil.calculatePaymentSubtotal({
214
+ tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
215
+ upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
216
+ fees: [],
217
+ paymentMethodType: payment.paymentMethodType,
218
+ })
219
+ }, 0);
220
+ } else {
221
+ subTotal = PaymentUtil.calculatePaymentSubtotalValue({
222
+ tickets: order.tickets,
223
+ upgrades: order.upgrades
189
224
  })
190
- }, 0);
225
+ }
226
+
227
+
228
+ // order?.payments?.reduce((cur: number, payment: IPayment): number => {
229
+ // return cur + PaymentUtil.calculatePaymentSubtotal({
230
+ // tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
231
+ // upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
232
+ // fees: [],
233
+ // paymentMethodType: payment.paymentMethodType,
234
+ // })
235
+ // }, 0);
191
236
 
192
237
  return subTotal || 0
193
238
  },
@@ -568,6 +568,28 @@ class PaymentUtil {
568
568
  ); // + (upgrade.price * tax/100)
569
569
  return ticketTotal + upgradeTotal;
570
570
  }
571
+
572
+
573
+ calculatePaymentSubtotalValue(params: any): number {
574
+ let {
575
+ tickets = [],
576
+ upgrades = [],
577
+ // paymentMethodType,
578
+ // fees
579
+ } = params;
580
+
581
+ // if (paymentMethodType === PaymentMethodTypeEnum.None) return 0;
582
+
583
+ const ticketTotal = tickets.reduce((cur, ticket) => cur + ticket.price, 0); // + (ticket.price * tax/100)
584
+ const upgradeTotal = upgrades.reduce(
585
+ (cur, upgrade) => cur + upgrade.price,
586
+ 0
587
+ ); // + (upgrade.price * tax/100)
588
+ return ticketTotal + upgradeTotal;
589
+ }
590
+
591
+
592
+
571
593
  calculateFee(params: IPaymentCalculatorParams): number {
572
594
  let { fees } = params;
573
595
  const salesTax = fees.filter((f) => f.name == "Sales tax");