@sellout/models 0.0.188 → 0.0.192

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.
Files changed (34) hide show
  1. package/.dist/graphql/fragments/order.fragment.js +1 -0
  2. package/.dist/graphql/fragments/order.fragment.js.map +1 -1
  3. package/.dist/graphql/mutations/refundOrder.mutation.js +13 -0
  4. package/.dist/graphql/mutations/refundOrder.mutation.js.map +1 -1
  5. package/.dist/graphql/queries/order.query.js +11 -0
  6. package/.dist/graphql/queries/order.query.js.map +1 -1
  7. package/.dist/interfaces/IOrder.d.ts +1 -0
  8. package/.dist/interfaces/IOrder.js.map +1 -1
  9. package/.dist/interfaces/IOrderQuery.d.ts +1 -0
  10. package/.dist/interfaces/IRefundModal.d.ts +1 -0
  11. package/.dist/interfaces/ISeason.d.ts +1 -0
  12. package/.dist/schemas/Order.d.ts +26 -0
  13. package/.dist/schemas/Order.js +3 -0
  14. package/.dist/schemas/Order.js.map +1 -1
  15. package/.dist/sellout-proto.js +351 -0
  16. package/.dist/utils/AnalyticsUtil.js +99 -20
  17. package/.dist/utils/AnalyticsUtil.js.map +1 -1
  18. package/.dist/utils/PaymentUtil.d.ts +1 -1
  19. package/.dist/utils/PaymentUtil.js +14 -66
  20. package/.dist/utils/PaymentUtil.js.map +1 -1
  21. package/package.json +3 -3
  22. package/src/graphql/fragments/order.fragment.ts +1 -0
  23. package/src/graphql/mutations/refundOrder.mutation.ts +13 -0
  24. package/src/graphql/queries/order.query.ts +11 -0
  25. package/src/interfaces/IOrder.ts +1 -0
  26. package/src/interfaces/IOrderQuery.ts +1 -0
  27. package/src/interfaces/IRefundModal.ts +1 -0
  28. package/src/interfaces/ISeason.ts +1 -0
  29. package/src/proto/email.proto +11 -0
  30. package/src/proto/event.proto +1 -0
  31. package/src/proto/order.proto +4 -0
  32. package/src/schemas/Order.ts +3 -0
  33. package/src/utils/AnalyticsUtil.ts +141 -58
  34. package/src/utils/PaymentUtil.ts +19 -93
@@ -108,6 +108,8 @@ message QueueOrderReceiptEmailRequest {
108
108
  repeated dayIdsTimeObj dayIdsTimeCalendar = 34;
109
109
  string ticketDeliveryType = 35;
110
110
  string physicalDeliveryInstructions = 36;
111
+ string promoterFee = 37;
112
+ string processingFee = 38;
111
113
  }
112
114
 
113
115
  message QueueOrderQRCodeEmailRequest {
@@ -147,6 +149,8 @@ message QueueOrderQRCodeEmailRequest {
147
149
  repeated dayIdsTimeObj dayIdsTimeCalendar = 33;
148
150
  string ticketDeliveryType = 34;
149
151
  string physicalDeliveryInstructions = 35;
152
+ string promoterFee = 36;
153
+ string processingFee = 37;
150
154
  }
151
155
 
152
156
  message QueueSeasonOrderReceiptEmailRequest {
@@ -185,6 +189,8 @@ message QueueSeasonOrderReceiptEmailRequest {
185
189
  repeated dayIdsTimeObj dayIdsTime = 32;
186
190
  repeated dayIdsTimeObj dayIdsTimeCalendar = 33;
187
191
  repeated Event events = 34;
192
+ string promoterFee = 35;
193
+ string processingFee = 36;
188
194
  }
189
195
 
190
196
  message QueueOrderRefundEmailRequest {
@@ -218,6 +224,10 @@ message QueueOrderRefundEmailRequest {
218
224
  string refundReason = 27;
219
225
  repeated dayIdsTimeObj dayIdsTime = 28;
220
226
  repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
227
+ string timezone = 30;
228
+ string promoterFee = 31;
229
+ string processingFee = 32;
230
+ string tax = 33;
221
231
  // string ticketDeliveryType = 30;
222
232
  // string physicalDeliveryInstructions = 31;
223
233
  }
@@ -253,6 +263,7 @@ message QueueOrderCanceledEmailRequest {
253
263
  string refundReason = 27;
254
264
  repeated dayIdsTimeObj dayIdsTime = 28;
255
265
  repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
266
+ string timezone = 30;
256
267
  }
257
268
 
258
269
 
@@ -402,6 +402,7 @@ message CancelTicketRequest {
402
402
  repeated string ticketTypeId = 3;
403
403
  repeated string upgradesTypeId = 4;
404
404
  string promotionCode = 5;
405
+ repeated string upgradeId = 6;
405
406
  }
406
407
 
407
408
  message CancelTicketResponse {
@@ -40,6 +40,7 @@ message Order {
40
40
  bool printed = 29;
41
41
  string parentSeasonOrderId = 30;
42
42
  repeated orderFees fees = 31;
43
+ ProcessingFees promoterFee = 32;
43
44
  }
44
45
  message ProcessingFees {
45
46
  Refund refund = 0;
@@ -304,6 +305,8 @@ message RefundOrderRequest {
304
305
  string refundReason = 7;
305
306
  bool processingFee = 8;
306
307
  string eventType = 9;
308
+ bool promoterFee = 10;
309
+
307
310
  }
308
311
 
309
312
  message RefundOrderResponse {
@@ -404,6 +407,7 @@ message SendOrderRefundEmailRequest {
404
407
  repeated string ticketIds = 2;
405
408
  repeated string upgradeIds = 3;
406
409
  bool processingFee = 4;
410
+ bool promoterFee = 5;
407
411
  }
408
412
 
409
413
  message SendOrderRefundEmailResponse {
@@ -414,6 +414,9 @@ export default {
414
414
  processingFee: {
415
415
  refund: Refund
416
416
  },
417
+ promoterFee: {
418
+ refund: Refund
419
+ },
417
420
  refundReason: {
418
421
  type: String,
419
422
  required: false,
@@ -33,10 +33,10 @@ const makeCoordinates = (
33
33
  ) => {
34
34
  const { startDate, intervalLength, intervalNum, interval } = intervalInfo;
35
35
 
36
- const coordinates = makeArray(intervalNum).map((_, index) => {
36
+ const coordinates = makeArray(intervalNum).map((_, index) => {
37
37
  // set x to beginning second of interval
38
38
  let x: number;
39
- switch(interval) {
39
+ switch (interval) {
40
40
  case AnalyticsIntervalEnum.Hour:
41
41
  x = Time.getStartOfHour(index * intervalLength + startDate);
42
42
  break;
@@ -57,11 +57,13 @@ const makeCoordinates = (
57
57
  break;
58
58
  }
59
59
 
60
- const y = sumFn(orders
60
+ const filteredOrder = orders
61
61
  .filter((order) => {
62
62
  const createdAt = order.createdAt as number;
63
63
  return x <= createdAt && createdAt < x + intervalLength;
64
- }));
64
+ })
65
+
66
+ const y = sumFn(filteredOrder);
65
67
 
66
68
  return {
67
69
  x,
@@ -155,13 +157,13 @@ const getIntervalFromDuration = (duration: number): AnalyticsIntervalEnum => {
155
157
  const maxWeek = maxDuration(AnalyticsIntervalEnum.Week);
156
158
  const maxMonth = maxDuration(AnalyticsIntervalEnum.Month);
157
159
 
158
- if(duration <= maxHour) {
160
+ if (duration <= maxHour) {
159
161
  return AnalyticsIntervalEnum.Hour;
160
- } else if(duration <= maxDay) {
162
+ } else if (duration <= maxDay) {
161
163
  return AnalyticsIntervalEnum.Day;
162
- } else if(duration <= maxWeek) {
164
+ } else if (duration <= maxWeek) {
163
165
  return AnalyticsIntervalEnum.Week
164
- } else if(duration <= maxMonth) {
166
+ } else if (duration <= maxMonth) {
165
167
  return AnalyticsIntervalEnum.Month;
166
168
  } else {
167
169
  return AnalyticsIntervalEnum.Year;
@@ -187,18 +189,18 @@ const getIntervalInfo = (
187
189
  startDate = startDate || orders[orders.length - 1]?.createdAt as number || Time.getStartOfCurrentDay();
188
190
  endDate = endDate || orders[0]?.createdAt as number || Time.getEndOfCurrentDay();
189
191
 
190
- if(startDate === endDate) {
192
+ if (startDate === endDate) {
191
193
  endDate = Time.getEndOfCurrentDay();
192
194
  }
193
195
 
194
196
  const duration = endDate - startDate; // duration in seconds
195
197
  const intervalFromDuration = getIntervalFromDuration(duration);
196
198
  const intervalOptions = intervalsMap[intervalFromDuration];
197
- if(!interval) {
199
+ if (!interval) {
198
200
  interval = getIntervalFromDuration(duration);
199
201
  }
200
202
 
201
- if(!intervalOptions.includes(interval)) {
203
+ if (!intervalOptions.includes(interval)) {
202
204
  interval = intervalOptions[0];
203
205
  }
204
206
 
@@ -271,7 +273,7 @@ export default {
271
273
  label: type,
272
274
  interval: interval,
273
275
  intervalOptions: [],
274
- coordinates: [{ x: 0, y: 0}],
276
+ coordinates: [{ x: 0, y: 0 }],
275
277
  segments: [],
276
278
  type: AnalyticsValueTypeEnum.Quantity,
277
279
  } as IAnalytics;
@@ -283,20 +285,31 @@ export default {
283
285
  orders: IOrder[],
284
286
  intervalInfo: IntervalInfo,
285
287
  ): IAnalytics {
286
- const coordinatesSumFn = (orders: IOrder[]) =>
287
- orders
288
- // .filter(order => order.type === OrderTypeEnum.Paid)
289
- .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
290
-
288
+
289
+ const coordinatesSumFn = (orders: IOrder[]) => orders.reduce((cur, order) => {
290
+ let total = 0
291
+ if (order.type == OrderTypeEnum.RSVP) {
292
+ total = sum(order.tickets.map(ticket => Number(ticket?.values) || 0)) + sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
293
+ } else {
294
+ total = sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price))
295
+ }
296
+ return cur + total
297
+ }, 0);
298
+
299
+ // const coordinatesSumFn = (orders: IOrder[]) =>
300
+ // orders
301
+ // // .filter(order => order.type === OrderTypeEnum.Paid)
302
+ // .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
303
+
291
304
  const coordinates = makeCoordinates(orders, intervalInfo, coordinatesSumFn);
292
305
  const { interval, intervalOptions } = intervalInfo;
293
306
 
294
307
 
295
308
  let segments: IAnalytics[] = [];
296
309
  const coordinatesSumFn2 = (orders: IOrder[]) =>
297
- orders
298
- // .filter(order => order.type === OrderTypeEnum.Paid)
299
- .reduce((cur, order) => cur + order.tickets.length, 0);
310
+ orders
311
+ // .filter(order => order.type === OrderTypeEnum.Paid)
312
+ .reduce((cur, order) => cur + order.tickets.length, 0);
300
313
  const segmentCoordinates = makeCoordinates(orders, intervalInfo, coordinatesSumFn2);
301
314
  let segment: IAnalytics = {
302
315
  label: 'Tickets Sold',
@@ -308,8 +321,8 @@ export default {
308
321
  };
309
322
  segments.push(segment);
310
323
  const coordinatesSumFn3 = (orders: IOrder[]) => orders.length//sum(orders.map(order => { return order.state != OrderStateEnum.Refunded ? 1 : 0} ))
311
- // .reduce((cur,order) => cur + sum(order.tickets.map(ticket => { return ticket.refund.refunded == false ? 1 : 0})),0)
312
-
324
+ // .reduce((cur,order) => cur + sum(order.tickets.map(ticket => { return ticket.refund.refunded == false ? 1 : 0})),0)
325
+
313
326
  // const coordinatesSumFn3 = (orders: IOrder[]) => orders.length;
314
327
  const segmentCoordinates2 = makeCoordinates(orders, intervalInfo, coordinatesSumFn3);
315
328
  segment = {
@@ -340,10 +353,23 @@ export default {
340
353
  intervalInfo: IntervalInfo,
341
354
  showSegments: boolean,
342
355
  ): IAnalytics {
343
- const coordinatesSumFn = (orders: IOrder[]) =>
344
- orders
345
- // .filter(order => order.type === OrderTypeEnum.Paid)
346
- .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price )) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
356
+
357
+ const coordinatesSumFn = (orders: IOrder[]) => orders.reduce((cur, order) => {
358
+ let total = 0
359
+ if (order.type == OrderTypeEnum.RSVP) {
360
+ total = sum(order.tickets.map(ticket => Number(ticket?.values) || 0)) + sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
361
+ } else {
362
+ total = sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price))
363
+ }
364
+ return cur + total
365
+ }, 0);
366
+
367
+ // const coordinatesSumFn = (orders: IOrder[]) =>
368
+ // orders
369
+ // // .filter(order => order.type === OrderTypeEnum.Paid)
370
+ // .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
371
+
372
+
347
373
  let segmentTypes;
348
374
  let segmentCoordinatesHOSumFn;
349
375
  // if (showSegments) {
@@ -385,10 +411,22 @@ export default {
385
411
  intervalInfo: IntervalInfo,
386
412
  showSegments: boolean,
387
413
  ): IAnalytics {
388
- const coordinatesSumFn = (orders: IOrder[]) =>
389
- orders
390
- // .filter(order => order.type === OrderTypeEnum.Paid)
391
- .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)), 0);
414
+ const coordinatesSumFn = (orders: IOrder[]) => orders.reduce((cur, order) => {
415
+ let total = 0
416
+ if (order.type == OrderTypeEnum.RSVP) {
417
+ total = sum(order.tickets.map(ticket => Number(ticket?.values) || 0)) || 0
418
+ // total = sum(order.tickets.map(ticket => Number(ticket?.values)|| 0)) + sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
419
+ } else {
420
+ total = sum(order.tickets.map(ticket => ticket.price))
421
+ }
422
+ return cur + total
423
+ }, 0);
424
+
425
+
426
+ // const coordinatesSumFn = (orders: IOrder[]) =>
427
+ // orders
428
+ // // .filter(order => order.type === OrderTypeEnum.Paid)
429
+ // .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)), 0);
392
430
 
393
431
  let segmentTypes;
394
432
  let segmentCoordinatesHOSumFn;
@@ -404,13 +442,29 @@ export default {
404
442
  }, {})
405
443
  );
406
444
 
407
- segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) =>
408
- orders
409
- // .filter(order => order.type === OrderTypeEnum.Paid)
410
- .reduce((cur, order) => cur + sum(
411
- order.tickets
412
- .filter((ticket) => ticket.name === segmentType)
413
- .map((ticket) => ticket.price)), 0);
445
+ segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) => {
446
+ // const ordersData = orders
447
+ // // .filter(order => order.type === OrderTypeEnum.Paid)
448
+ // .reduce((cur, order) => cur + sum(
449
+ // order.tickets
450
+ // .filter((ticket) => ticket.name === segmentType)
451
+ // .map((ticket) => ticket.price)), 0);
452
+
453
+ // return ordersData
454
+ // }
455
+
456
+ const ordersData = orders.reduce((cur, order) => {
457
+ let total;
458
+ if (order.type == OrderTypeEnum.RSVP) {
459
+ total = sum(order.tickets.filter((ticket) => ticket.name === segmentType).map(ticket => Number(ticket?.values) || 0))
460
+ } else {
461
+ total = sum(order.tickets.filter((ticket) => ticket.name === segmentType).map(ticket => Number(ticket?.price) || 0))
462
+ }
463
+ return cur + total
464
+ }, 0);
465
+ return ordersData
466
+ }
467
+
414
468
  }
415
469
 
416
470
  return makeAnalytics(
@@ -581,12 +635,12 @@ export default {
581
635
  return cur;
582
636
  }, {})
583
637
  );
584
-
638
+
585
639
  segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) =>
586
640
  orders
587
641
  // .filter(order => order.type === OrderTypeEnum.Paid)
588
642
  .reduce((cur, order) =>
589
- cur + order.upgrades.filter((upgrade) => upgrade.name === segmentType ).length, 0);
643
+ cur + order.upgrades.filter((upgrade) => upgrade.name === segmentType).length, 0);
590
644
  }
591
645
 
592
646
  return makeAnalytics(
@@ -606,11 +660,25 @@ export default {
606
660
  intervalInfo: IntervalInfo,
607
661
  showSegments: boolean,
608
662
  ): IAnalytics {
609
- const coordinatesSumFn = (orders: IOrder[]) =>
610
- orders
611
- .reduce((cur, order) =>
612
- cur + order.upgrades.filter(upgrade => upgrade.price === 0).length,
613
- 0);
663
+
664
+ const coordinatesSumFn = (orders: IOrder[]) => orders.reduce((cur, order) => {
665
+ let total = 0
666
+ if (order.type == OrderTypeEnum.RSVP) {
667
+ total = sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
668
+ // total = sum(order.tickets.map(ticket => Number(ticket?.values)|| 0)) + sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
669
+ } else {
670
+ total = sum(order.upgrades.map(upgrade => upgrade.price))
671
+ // total = sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price))
672
+ }
673
+ return cur + total
674
+ }, 0);
675
+
676
+
677
+ // const coordinatesSumFn = (orders: IOrder[]) =>
678
+ // orders
679
+ // .reduce((cur, order) =>
680
+ // cur + order.upgrades.filter(upgrade => upgrade.price === 0).length,
681
+ // 0);
614
682
 
615
683
  let segmentTypes;
616
684
  let segmentCoordinatesHOSumFn;
@@ -625,7 +693,7 @@ export default {
625
693
  return cur;
626
694
  }, {})
627
695
  );
628
-
696
+
629
697
  segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) =>
630
698
  orders
631
699
  .reduce((cur, order) =>
@@ -710,16 +778,30 @@ export default {
710
778
  segmentTypes = [EventAnalyticsEnum.SoldOutPercentage, EventAnalyticsEnum.TotalSales];
711
779
 
712
780
  segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) => {
713
- switch(segmentType) {
781
+ switch (segmentType) {
714
782
  case EventAnalyticsEnum.SoldOutPercentage:
715
783
  return 0;
716
784
  case EventAnalyticsEnum.TotalSales:
717
- return orders.reduce((cur: number, next: IOrder) => cur + next?.payments?.[0]?.transferAmount ?? 0, 0);
785
+ return calculateTotalSale(orders)
786
+
787
+ // orders.reduce((cur: number, next: IOrder) => cur + next?.payments?.[0]?.transferAmount ?? 0, 0)
718
788
  }
719
789
  }
720
790
  }
721
791
 
722
- return makeAnalytics(
792
+
793
+ const calculateTotalSale = (orders) => orders
794
+ .reduce((cur, order) => {
795
+ let total = 0
796
+ if (order.type == OrderTypeEnum.RSVP) {
797
+ total = sum(order.tickets.map(ticket => Number(ticket?.values) || 0)) + sum(order.upgrades.map(upgrade => Number(upgrade?.price) || 0))
798
+ } else {
799
+ total = sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price))
800
+ }
801
+ return cur + total
802
+ }, 0);
803
+
804
+ const data = makeAnalytics(
723
805
  type,
724
806
  orders,
725
807
  intervalInfo,
@@ -728,6 +810,7 @@ export default {
728
810
  segmentTypes,
729
811
  segmentCoordinatesHOSumFn
730
812
  );
813
+ return data
731
814
  },
732
815
  userAnalytics(
733
816
  type: AnalyticsTypeEnum,
@@ -744,8 +827,8 @@ export default {
744
827
  let segmentCoordinatesHOSumFn;
745
828
  if (showSegments) {
746
829
  segmentTypes = [
747
- UserAnalyticsEnum.EventsAttendedCount,
748
- UserAnalyticsEnum.TicketsPurchasedCount,
830
+ UserAnalyticsEnum.EventsAttendedCount,
831
+ UserAnalyticsEnum.TicketsPurchasedCount,
749
832
  UserAnalyticsEnum.LifeTimeValue
750
833
  ];
751
834
 
@@ -757,7 +840,7 @@ export default {
757
840
  return orders.reduce((cur: number, next: IOrder) => cur + next.tickets.length ?? 0, 0);
758
841
  case UserAnalyticsEnum.LifeTimeValue:
759
842
  return orders.reduce((cur: number, next: IOrder) => cur + next.payments?.[0]?.transferAmount ?? 0, 0);
760
-
843
+
761
844
  }
762
845
  }
763
846
  }
@@ -880,19 +963,19 @@ export default {
880
963
  },
881
964
 
882
965
  getDateFormat(time: any, interval: AnalyticsIntervalEnum, timezone: string = 'America/Denver') {
883
- switch(interval) {
966
+ switch (interval) {
884
967
  case AnalyticsIntervalEnum.Hour:
885
- return Time.format(time, 'h:mma',timezone);
968
+ return Time.format(time, 'h:mma', timezone);
886
969
  case AnalyticsIntervalEnum.Day:
887
- return Time.format(time, 'MMM DD',timezone);
970
+ return Time.format(time, 'MMM DD', timezone);
888
971
  case AnalyticsIntervalEnum.Week:
889
- return `${Time.format(time, 'MMM DD',timezone)} - ${Time.format(time + (Time.DAY * 7), 'MMM DD',timezone)}`;
972
+ return `${Time.format(time, 'MMM DD', timezone)} - ${Time.format(time + (Time.DAY * 7), 'MMM DD', timezone)}`;
890
973
  case AnalyticsIntervalEnum.Month:
891
- return Time.format(time, 'MMM YYYY',timezone);
974
+ return Time.format(time, 'MMM YYYY', timezone);
892
975
  case AnalyticsIntervalEnum.Year:
893
- return Time.format(time, 'YYYY',timezone);
976
+ return Time.format(time, 'YYYY', timezone);
894
977
  default:
895
- return Time.format(time, 'MMM DD',timezone);
978
+ return Time.format(time, 'MMM DD', timezone);
896
979
  }
897
980
  },
898
981
 
@@ -252,11 +252,7 @@ class PaymentUtil {
252
252
  const totalTicketAndUpgrades = ticketTotal + upgradeTotal
253
253
 
254
254
  const promoterFeeFlatPerOrderTotal = promoterOrderFees.reduce((acc, fee: any) => {
255
- if (fee.type == FeeTypeEnum.Flat) {
256
-
257
- return acc + getFeeAmount(fee)
258
- }
259
- return acc
255
+ return fee.type == FeeTypeEnum.Flat ? (acc + getFeeAmount(fee)) : acc
260
256
  }, 0)
261
257
 
262
258
  const promoterFeeFlatPerTicketTotal = tickets.reduce((cur, ticket) => {
@@ -391,10 +387,10 @@ class PaymentUtil {
391
387
  selloutFeeFlatPerOrderAmt +
392
388
  selloutSeatedFeeAmt + ticketGuestFeeTotalForSellout + SelloutFeeFlatPerUpgradeTotal
393
389
  )
394
-
395
390
  const preStripeTotal = promoterTotal + selloutFeesTotal
396
391
 
397
392
  let stripeFeeAmt = 0
393
+
398
394
  const stripeFeePercentage = stripeFees.find(fee => fee.type == FeeTypeEnum.Percent)?.value || 0
399
395
  const stripeFeeFlat = stripeFees.find(fee => fee.type == FeeTypeEnum.Flat)?.value || 0
400
396
  stripeFeeAmt = (preStripeTotal + (stripeFeeFlat)) / (1 - (stripeFeePercentage / 100)) - preStripeTotal
@@ -452,20 +448,6 @@ class PaymentUtil {
452
448
  return 0;
453
449
  }
454
450
 
455
- // depricated
456
-
457
- // function applyOrderFee(orderSubtotal, fee) {
458
- // if (fee.type === FeeTypeEnum.Flat) {
459
- // return fee.value
460
- // // return orderSubtotal + fee.value;
461
- // }
462
- // if (fee.type === FeeTypeEnum.Percent) {
463
- // // return orderSubtotal / (1 - fee.value / 100);
464
- // return orderSubtotal * (fee.value / 100);
465
-
466
- // }
467
- // }
468
-
469
451
  // return Calculated fees amount based on type
470
452
  function getFeeAmount(fee, amt = 0) {
471
453
  if (fee.type === FeeTypeEnum.Flat) {
@@ -475,79 +457,22 @@ class PaymentUtil {
475
457
  return amt * (fee.value / 100);
476
458
  }
477
459
  }
478
-
479
- // function applySelloutFee(amt, fee) {
480
- // if (fee.type === FeeTypeEnum.Flat) {
481
- // return amt + fee.value;
482
- // }
483
- // if (fee.type === FeeTypeEnum.Percent) {
484
- // // return amt / (1 - fee.value / 100);
485
- // return amt * (fee.value / 100);
486
- // }
487
- // }
488
- // let totconsole.log(toto)o = preStripeTotal + stripeFeeAmt;
489
-
490
- // return Math.round(preStripeTotal + stripeFeeAmt);
491
460
  let promoterFeeAmount = promoterFeeFlatPerTicketTotal + promoterFeeFlatPerOrderTotal + promoterFeePercentPerTicketTotal +
492
461
  promoterFeePercentPerOrder + ticketGuestFeeTotalForPromoter + promoterFeeFlatPerUpgradeTotal;
493
- let total = {
494
- salesTax: salesTaxAmount || 0,
495
- total: (preStripeTotal + stripeFeeAmt) || 0,
496
- promoterFees: (promoterFeeAmount) || 0,
497
- stripeFees: stripeFeeAmt || 0,
498
- selloutFees: selloutFeesTotal || 0,
499
- orderSubtotal: orderSubtotal || 0,
500
- subTotal: totalTicketAndUpgrades || 0,
501
- totalFees: (promoterFeeAmount + stripeFeeAmt + selloutFeesTotal + salesTaxAmount) || 0,
502
- totalWithoutTaxFees: (promoterFeeAmount + stripeFeeAmt + selloutFeesTotal) || 0
462
+
463
+
464
+ let total = {
465
+ salesTax: Math.round(salesTaxAmount || 0),
466
+ total: Math.round((preStripeTotal + stripeFeeAmt) || 0),
467
+ promoterFees: Math.round((promoterFeeAmount) || 0),
468
+ stripeFees: Math.round(stripeFeeAmt || 0),
469
+ selloutFees: Math.round(selloutFeesTotal || 0),
470
+ orderSubtotal: Math.round(orderSubtotal || 0),
471
+ subTotal: Math.round(totalTicketAndUpgrades || 0),
472
+ totalFees: Math.round((promoterFeeAmount + stripeFeeAmt + selloutFeesTotal + salesTaxAmount) || 0),
473
+ totalWithoutTaxFees: Math.round((promoterFeeAmount + stripeFeeAmt + selloutFeesTotal) || 0)
503
474
  }
504
475
  return total
505
-
506
-
507
- // const ticketTaxFeeTotal = tickets.reduce((cur, ticket) => {
508
- // return (
509
- // cur +
510
- // salesTax.reduce((cur, fee) => {
511
- // const value = cur + applyTicketFee(ticket, fee);
512
- // return value;
513
- // }, 0)
514
- // );
515
- // }, 0);
516
-
517
-
518
-
519
-
520
-
521
-
522
-
523
- // const upgradeTaxFeeTotal = upgrades.reduce((cur, upgrade) => {
524
- // return (
525
- // cur +
526
- // salesTax.reduce((curr, fee) => curr + applyUpgradeFee(upgrade, fee), 0)
527
- // );
528
- // }, 0);
529
-
530
- // const upgradeFeeTotal = upgrades.reduce((cur, upgrade) => {
531
- // return (
532
- // cur +
533
- // upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
534
- // );
535
- // }, 0);
536
-
537
- // const promoterFeeFlatPerOrder = promoterOrderFees.reduce((cur, fee) => {
538
- // return applyOrderFee(cur, fee);
539
- // }, ticketTotal + upgradeTotal);
540
-
541
- // console.log(promoterOrderTotal)
542
-
543
-
544
- // Applying sellout fees
545
-
546
-
547
- // applying sales tax fees
548
-
549
-
550
- // return Math.round(orderTotal);
551
476
  }
552
477
 
553
478
 
@@ -600,10 +525,11 @@ class PaymentUtil {
600
525
  return Math.round(total - subtotal);
601
526
  }
602
527
 
603
- calculateFeeWithoutTax(params: IPaymentCalculatorParams): number {
604
- const total = this.calculatePaymentTotal(params).total;
605
- let subtotal = this.calculatePaymentSubtotal(params);
606
- return Math.round(total - subtotal);
528
+ calculateFeeWithoutTax(params: IPaymentCalculatorParams): any {
529
+ const total = this.calculatePaymentTotal(params);
530
+ // let subtotal = this.calculatePaymentSubtotal(params);
531
+ // return Math.round(total - subtotal);
532
+ return total
607
533
  }
608
534
  calculateOrganizationFee(params: IPaymentCalculatorParams): number {
609
535
  let { tickets = [], upgrades = [], fees = [], paymentMethodType } = params;