@sellout/models 0.0.186 → 0.0.187-alpha.0
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.
- package/.dist/graphql/queries/order.query.js +0 -1
- package/.dist/graphql/queries/order.query.js.map +1 -1
- package/.dist/graphql/queries/orders.query.js +0 -1
- package/.dist/graphql/queries/orders.query.js.map +1 -1
- package/.dist/interfaces/ICreateOrderParams.d.ts +0 -2
- package/.dist/interfaces/IFee.d.ts +0 -1
- package/.dist/interfaces/IOrder.d.ts +1 -2
- package/.dist/interfaces/IOrder.js.map +1 -1
- package/.dist/interfaces/IOrderSummary.d.ts +0 -1
- package/.dist/schemas/Order.d.ts +0 -81
- package/.dist/schemas/Order.js +0 -81
- package/.dist/schemas/Order.js.map +1 -1
- package/.dist/sellout-proto.js +118 -1014
- package/.dist/utils/OrderUtil.js +195 -111
- package/.dist/utils/OrderUtil.js.map +1 -1
- package/.dist/utils/PaymentUtil.d.ts +2 -2
- package/.dist/utils/PaymentUtil.js +198 -190
- package/.dist/utils/PaymentUtil.js.map +1 -1
- package/package.json +3 -3
- package/src/graphql/queries/order.query.ts +0 -1
- package/src/graphql/queries/orders.query.ts +0 -1
- package/src/interfaces/ICreateOrderParams.ts +0 -2
- package/src/interfaces/IFee.ts +0 -2
- package/src/interfaces/IOrder.ts +1 -2
- package/src/interfaces/IOrderSummary.ts +0 -1
- package/src/proto/email.proto +2 -0
- package/src/proto/event.proto +3 -0
- package/src/proto/fee.proto +0 -1
- package/src/proto/order.proto +1 -35
- package/src/schemas/Order.ts +0 -81
- package/src/utils/OrderUtil.ts +219 -128
- package/src/utils/PaymentUtil.ts +269 -243
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.d.ts +0 -2
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.js +0 -13
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.js.map +0 -1
- package/src/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.ts +0 -9
package/src/interfaces/IOrder.ts
CHANGED
|
@@ -25,7 +25,6 @@ export default interface IOrder {
|
|
|
25
25
|
venueIds: string[];
|
|
26
26
|
artistIds: string[];
|
|
27
27
|
feeIds: string[]; // BACKFILL
|
|
28
|
-
fees: IFee[];
|
|
29
28
|
stripeChargeId?: string; // BACKFILL
|
|
30
29
|
tickets: IOrderTicket[];
|
|
31
30
|
upgrades: IOrderUpgrade[];
|
|
@@ -61,7 +60,7 @@ export interface ISeasonGraphQL extends ISeason {
|
|
|
61
60
|
|
|
62
61
|
export interface IOrderGraphQL extends IOrder {
|
|
63
62
|
user: IUser;
|
|
64
|
-
fees: IFee
|
|
63
|
+
fees: IFee;
|
|
65
64
|
event: IEventGraphQL;
|
|
66
65
|
season: ISeasonGraphQL;
|
|
67
66
|
};
|
|
@@ -22,7 +22,6 @@ export default interface IOrderSummary {
|
|
|
22
22
|
selloutFee: number | string;
|
|
23
23
|
stripeFee: number | string;
|
|
24
24
|
promoterFee: number | string;
|
|
25
|
-
salesTaxFee: number | string;
|
|
26
25
|
createdAt: number | string;
|
|
27
26
|
allTickets:IOrderSummaryItem[];
|
|
28
27
|
tickets: IOrderSummaryItem[];
|
package/src/proto/email.proto
CHANGED
|
@@ -218,6 +218,7 @@ message QueueOrderRefundEmailRequest {
|
|
|
218
218
|
string refundReason = 27;
|
|
219
219
|
repeated dayIdsTimeObj dayIdsTime = 28;
|
|
220
220
|
repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
|
|
221
|
+
string timezone = 30;
|
|
221
222
|
// string ticketDeliveryType = 30;
|
|
222
223
|
// string physicalDeliveryInstructions = 31;
|
|
223
224
|
}
|
|
@@ -253,6 +254,7 @@ message QueueOrderCanceledEmailRequest {
|
|
|
253
254
|
string refundReason = 27;
|
|
254
255
|
repeated dayIdsTimeObj dayIdsTime = 28;
|
|
255
256
|
repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
|
|
257
|
+
string timezone = 30;
|
|
256
258
|
}
|
|
257
259
|
|
|
258
260
|
|
package/src/proto/event.proto
CHANGED
|
@@ -72,6 +72,8 @@ message PublicEvent {
|
|
|
72
72
|
int32 endsAt = 23;
|
|
73
73
|
string venue = 24;
|
|
74
74
|
string status = 25;
|
|
75
|
+
string venueTimezone = 26;
|
|
76
|
+
int32 announceAt = 27;
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
message PublicEventDetails {
|
|
@@ -304,6 +306,7 @@ message QueryEventsResponse {
|
|
|
304
306
|
|
|
305
307
|
message QueryEventsListRequest {
|
|
306
308
|
string spanContext = 0;
|
|
309
|
+
string orgId = 1;
|
|
307
310
|
}
|
|
308
311
|
|
|
309
312
|
|
package/src/proto/fee.proto
CHANGED
package/src/proto/order.proto
CHANGED
|
@@ -39,7 +39,6 @@ message Order {
|
|
|
39
39
|
bool hidden = 28;
|
|
40
40
|
bool printed = 29;
|
|
41
41
|
string parentSeasonOrderId = 30;
|
|
42
|
-
repeated orderFees fees = 31;
|
|
43
42
|
}
|
|
44
43
|
message ProcessingFees {
|
|
45
44
|
Refund refund = 0;
|
|
@@ -68,28 +67,6 @@ message OrderTicket {
|
|
|
68
67
|
bool guestTicket = 18;
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
message orderFees {
|
|
72
|
-
string _id = 0;
|
|
73
|
-
string name = 1;
|
|
74
|
-
string orgId = 2;
|
|
75
|
-
string eventId = 3;
|
|
76
|
-
string type = 4;
|
|
77
|
-
double value = 5;
|
|
78
|
-
string appliedTo = 6;
|
|
79
|
-
string appliedBy = 7;
|
|
80
|
-
int32 minAppliedToPrice = 8;
|
|
81
|
-
int32 maxAppliedToPrice = 9;
|
|
82
|
-
repeated string filters = 10;
|
|
83
|
-
string createdBy = 11;
|
|
84
|
-
int32 createdAt = 12;
|
|
85
|
-
string updatedBy = 13;
|
|
86
|
-
int32 updatedAt = 14;
|
|
87
|
-
bool disabled = 15;
|
|
88
|
-
string seasonId = 16;
|
|
89
|
-
string amount = 17;
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
70
|
message TeiMemberInfoParams {
|
|
94
71
|
string firstName = 0;
|
|
95
72
|
string lastName = 1;
|
|
@@ -498,14 +475,6 @@ message FindOrderByEventIdResponse{
|
|
|
498
475
|
int32 ticketUnscanned = 5;
|
|
499
476
|
}
|
|
500
477
|
|
|
501
|
-
message FindEventOrderCountResponse{
|
|
502
|
-
StatusCode status = 0;
|
|
503
|
-
repeated Error errors = 1;
|
|
504
|
-
int32 eventOrderCount = 2;
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
478
|
message FindOrderByFeeIdRequest {
|
|
510
479
|
string spanContext = 0;
|
|
511
480
|
string feeId = 1;
|
|
@@ -638,7 +607,6 @@ message GetPromoUsedResponse {
|
|
|
638
607
|
}
|
|
639
608
|
|
|
640
609
|
|
|
641
|
-
|
|
642
610
|
service OrderService {
|
|
643
611
|
// Create
|
|
644
612
|
rpc createOrder(CreateOrderRequest) returns (CreateOrderResponse) {}
|
|
@@ -647,7 +615,7 @@ service OrderService {
|
|
|
647
615
|
rpc createSeasonOrderPaymentIntent(CreateSeasonOrderPaymentIntentRequest) returns (CreateOrderPaymentIntentResponse) {}
|
|
648
616
|
// QR Code
|
|
649
617
|
rpc sendOrderQRCodeEmail(SendOrderQRCodeEmailRequest) returns (SendOrderQRCodeEmailResponse) {}
|
|
650
|
-
rpc sendSeasonOrderReceiptEmail(
|
|
618
|
+
rpc sendSeasonOrderReceiptEmail(SendOrderQRCodeEmailRequest) returns (SendOrderQRCodeEmailResponse) {}
|
|
651
619
|
rpc sendOrderReceiptEmail(SendOrderReceiptEmailRequest) returns (SendOrderReceiptEmailResponse) {}
|
|
652
620
|
rpc sendOrderRefundEmail(SendOrderRefundEmailRequest) returns (SendOrderRefundEmailResponse) {}
|
|
653
621
|
rpc resendOrderRefundEmail(SendOrderRefundEmailRequest) returns (SendOrderRefundEmailResponse) {}
|
|
@@ -668,11 +636,9 @@ service OrderService {
|
|
|
668
636
|
// Report
|
|
669
637
|
rpc generateOrderReport(GenerateOrderReportRequest) returns (GenerateOrderReportResponse) {}
|
|
670
638
|
// Find
|
|
671
|
-
rpc generateActivityReport(GenerateOrderReportRequest) returns (GenerateOrderReportResponse) {}
|
|
672
639
|
rpc queryOrders(QueryOrdersRequest) returns (QueryOrdersResponse) {}
|
|
673
640
|
rpc findOrderById(FindOrderByIdRequest) returns (FindOrderByIdResponse) {}
|
|
674
641
|
rpc findOrderByEventId(FindOrderByEventIdRequest) returns (FindOrderByEventIdResponse) {}
|
|
675
|
-
rpc eventOrderCount(FindOrderByEventIdRequest) returns (FindEventOrderCountResponse) {}
|
|
676
642
|
rpc findOrderByFeeId(FindOrderByFeeIdRequest) returns (FindOrderByIdResponse) {}
|
|
677
643
|
rpc findOrderByEmail(FindOrderByEmailRequest) returns (FindOrderByEmailResponse) {}
|
|
678
644
|
rpc queryOrderAnalytics(QueryOrderAnalyticsRequest) returns (QueryOrderAnalyticsResponse) {}
|
package/src/schemas/Order.ts
CHANGED
|
@@ -46,86 +46,6 @@ const Scan = {
|
|
|
46
46
|
required: false,
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
const Fees = {
|
|
50
|
-
_id: {
|
|
51
|
-
type: String,
|
|
52
|
-
required: false,
|
|
53
|
-
},
|
|
54
|
-
name: {
|
|
55
|
-
type: String,
|
|
56
|
-
required: false,
|
|
57
|
-
},
|
|
58
|
-
orgId: {
|
|
59
|
-
type: String,
|
|
60
|
-
required: false,
|
|
61
|
-
default: null,
|
|
62
|
-
},
|
|
63
|
-
eventId: {
|
|
64
|
-
type: String,
|
|
65
|
-
required: false,
|
|
66
|
-
default: null,
|
|
67
|
-
}, seasonId: {
|
|
68
|
-
type: String,
|
|
69
|
-
required: false,
|
|
70
|
-
default: null,
|
|
71
|
-
},
|
|
72
|
-
type: {
|
|
73
|
-
type: String,
|
|
74
|
-
required: false,
|
|
75
|
-
},
|
|
76
|
-
value: {
|
|
77
|
-
type: Number,
|
|
78
|
-
required: false,
|
|
79
|
-
},
|
|
80
|
-
appliedTo: {
|
|
81
|
-
type: String,
|
|
82
|
-
required: false,
|
|
83
|
-
},
|
|
84
|
-
appliedBy: {
|
|
85
|
-
type: String,
|
|
86
|
-
required: false,
|
|
87
|
-
},
|
|
88
|
-
minAppliedToPrice: {
|
|
89
|
-
type: Number,
|
|
90
|
-
required: false,
|
|
91
|
-
default: null,
|
|
92
|
-
},
|
|
93
|
-
maxAppliedToPrice: {
|
|
94
|
-
type: Number,
|
|
95
|
-
required: false,
|
|
96
|
-
default: null,
|
|
97
|
-
},
|
|
98
|
-
filters: [{
|
|
99
|
-
type: String,
|
|
100
|
-
required: false,
|
|
101
|
-
default: [],
|
|
102
|
-
}],
|
|
103
|
-
createdBy: {
|
|
104
|
-
type: String,
|
|
105
|
-
required: false,
|
|
106
|
-
},
|
|
107
|
-
createdAt: {
|
|
108
|
-
type: Number,
|
|
109
|
-
required: false,
|
|
110
|
-
},
|
|
111
|
-
updatedBy: {
|
|
112
|
-
type: String,
|
|
113
|
-
required: false,
|
|
114
|
-
},
|
|
115
|
-
updatedAt: {
|
|
116
|
-
type: Number,
|
|
117
|
-
required: false,
|
|
118
|
-
},
|
|
119
|
-
disabled: {
|
|
120
|
-
type: Boolean,
|
|
121
|
-
required: false,
|
|
122
|
-
default: false,
|
|
123
|
-
},
|
|
124
|
-
amount: {
|
|
125
|
-
type: String,
|
|
126
|
-
required: false,
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
49
|
const TeiMemberInfoInput = {
|
|
130
50
|
firstName: {
|
|
131
51
|
type: String,
|
|
@@ -391,7 +311,6 @@ export default {
|
|
|
391
311
|
required: false,
|
|
392
312
|
},
|
|
393
313
|
tickets: [OrderTicket],
|
|
394
|
-
fees: [Fees],
|
|
395
314
|
upgrades: [OrderUpgrade],
|
|
396
315
|
recipientEmails: [{
|
|
397
316
|
type: String,
|
package/src/utils/OrderUtil.ts
CHANGED
|
@@ -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
|
-
})
|
|
31
|
+
})
|
|
32
32
|
}, 0);
|
|
33
33
|
} else {
|
|
34
34
|
if (
|
|
@@ -40,124 +40,212 @@ export default {
|
|
|
40
40
|
if (!order.tickets) order.tickets = [];
|
|
41
41
|
if (!order.upgrades) order.upgrades = [];
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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);
|
|
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
|
+
}
|
|
65
|
+
|
|
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
|
+
}
|
|
136
83
|
|
|
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
|
+
}
|
|
137
92
|
|
|
138
93
|
const ticketTotal = order.tickets.reduce(
|
|
139
94
|
(cur, ticket) => cur + ticket.price,
|
|
140
95
|
0
|
|
141
96
|
);
|
|
142
97
|
|
|
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
|
+
|
|
143
105
|
const upgradeTotal = order.upgrades.reduce(
|
|
144
106
|
(cur, upgrade) => cur + upgrade.price,
|
|
145
107
|
0
|
|
146
108
|
);
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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);
|
|
153
116
|
const orderSubtotal =
|
|
154
|
-
ticketTotal + upgradeTotal +
|
|
155
|
-
|
|
156
|
-
|
|
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
|
+
});
|
|
157
125
|
|
|
126
|
+
const orderTotal = orderFees.reduce((cur, fee) => {
|
|
127
|
+
return applyOrderFee(cur, fee);
|
|
128
|
+
}, orderSubtotal);
|
|
129
|
+
|
|
130
|
+
return Math.round(orderTotal);
|
|
158
131
|
}
|
|
159
132
|
},
|
|
160
133
|
|
|
134
|
+
// orderTotalExport(order: IOrder, fees: any[]): number {
|
|
135
|
+
// if (order?.payments && order?.payments.length > 0) {
|
|
136
|
+
// return order.payments.reduce((cur: number, payment: IPayment): number => {
|
|
137
|
+
// const paymentTickets = order.tickets.filter(ticket => ticket.paymentId === payment._id)
|
|
138
|
+
// const paymentUpgrades = order.upgrades.filter(upgrade => upgrade.paymentId === payment._id)
|
|
139
|
+
// const total = PaymentUtil.calculatePaymentTotalDublicate({
|
|
140
|
+
// tickets: paymentTickets,
|
|
141
|
+
// upgrades: paymentUpgrades,
|
|
142
|
+
// fees: fees,
|
|
143
|
+
// paymentMethodType: payment.paymentMethodType,
|
|
144
|
+
// })
|
|
145
|
+
// return cur + total
|
|
146
|
+
// }, 0);
|
|
147
|
+
// } else {
|
|
148
|
+
// if (
|
|
149
|
+
// (!order.tickets || !order.tickets.length) &&
|
|
150
|
+
// (!order.upgrades || !order.upgrades.length)
|
|
151
|
+
// )
|
|
152
|
+
// return 0;
|
|
153
|
+
|
|
154
|
+
// if (!order.tickets) order.tickets = [];
|
|
155
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
156
|
+
|
|
157
|
+
// const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
|
|
158
|
+
// const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
|
|
159
|
+
// let orderFees = fees.filter(f => f.appliedTo === "Order");
|
|
160
|
+
|
|
161
|
+
// function applyTicketFee(ticket, fee) {
|
|
162
|
+
// if (fee.filters.includes("Seated") && !ticket.seat) return 0;
|
|
163
|
+
// const noMax = fee.maxAppliedToPrice === 0;
|
|
164
|
+
// if (
|
|
165
|
+
// (fee.minAppliedToPrice <= ticket.price &&
|
|
166
|
+
// ticket.price <= fee.maxAppliedToPrice) ||
|
|
167
|
+
// noMax
|
|
168
|
+
// ) {
|
|
169
|
+
// if (fee.type === "Flat") {
|
|
170
|
+
// return fee.value;
|
|
171
|
+
// }
|
|
172
|
+
// if (fee.type === "Percent") {
|
|
173
|
+
// return (ticket.price * fee.value) / 100;
|
|
174
|
+
// }
|
|
175
|
+
// } else {
|
|
176
|
+
// return 0;
|
|
177
|
+
// }
|
|
178
|
+
// }
|
|
179
|
+
|
|
180
|
+
// function applyUpgradeFee(upgrade, fee) {
|
|
181
|
+
// const noMax = fee.maxAppliedToPrice === 0;
|
|
182
|
+
// if (
|
|
183
|
+
// (fee.minAppliedToPrice <= upgrade.price &&
|
|
184
|
+
// upgrade.price <= fee.minAppliedToPrice) ||
|
|
185
|
+
// noMax
|
|
186
|
+
// ) {
|
|
187
|
+
// if (fee.type === "Flat") {
|
|
188
|
+
// return fee.value;
|
|
189
|
+
// }
|
|
190
|
+
// if (fee.type === "Percent") {
|
|
191
|
+
// return (upgrade.price * fee.value) / 100;
|
|
192
|
+
// }
|
|
193
|
+
// } else {
|
|
194
|
+
// return 0;
|
|
195
|
+
// }
|
|
196
|
+
// }
|
|
197
|
+
|
|
198
|
+
// function applyOrderFee(orderSubtotal, fee) {
|
|
199
|
+
// if (fee.type === "Flat") {
|
|
200
|
+
// return orderSubtotal + fee.value;
|
|
201
|
+
// }
|
|
202
|
+
// if (fee.type === "Percent") {
|
|
203
|
+
// return orderSubtotal / (1 - fee.value / 100);
|
|
204
|
+
// }
|
|
205
|
+
// }
|
|
206
|
+
|
|
207
|
+
// const ticketTotal = order.tickets.reduce(
|
|
208
|
+
// (cur, ticket) => cur + ticket.price,
|
|
209
|
+
// 0
|
|
210
|
+
// );
|
|
211
|
+
|
|
212
|
+
// const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
|
|
213
|
+
// return (
|
|
214
|
+
// cur +
|
|
215
|
+
// ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
|
|
216
|
+
// );
|
|
217
|
+
// }, 0);
|
|
218
|
+
|
|
219
|
+
// const upgradeTotal = order.upgrades.reduce(
|
|
220
|
+
// (cur, upgrade) => cur + upgrade.price,
|
|
221
|
+
// 0
|
|
222
|
+
// );
|
|
223
|
+
|
|
224
|
+
// const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
|
|
225
|
+
// return (
|
|
226
|
+
// cur +
|
|
227
|
+
// upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
|
|
228
|
+
// );
|
|
229
|
+
// }, 0);
|
|
230
|
+
// const orderSubtotal =
|
|
231
|
+
// ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
|
|
232
|
+
|
|
233
|
+
// // Order matters here. Flat type fees must be
|
|
234
|
+
// // applied before Percent type fees
|
|
235
|
+
// orderFees = orderFees.sort(({ type }) => {
|
|
236
|
+
// if (type === "Flat") return -1;
|
|
237
|
+
// return 1;
|
|
238
|
+
// });
|
|
239
|
+
|
|
240
|
+
// const orderTotal = orderFees.reduce((cur, fee) => {
|
|
241
|
+
// return applyOrderFee(cur, fee);
|
|
242
|
+
// }, orderSubtotal);
|
|
243
|
+
|
|
244
|
+
// return Math.round(orderTotal);
|
|
245
|
+
// }
|
|
246
|
+
// },
|
|
247
|
+
|
|
248
|
+
|
|
161
249
|
|
|
162
250
|
guestFees(order: IOrder, fees: IFee[]): any {
|
|
163
251
|
let guestTicketFees = fees.find(
|
|
@@ -202,37 +290,23 @@ export default {
|
|
|
202
290
|
const orderTotal = this.orderTotal(order, fees);
|
|
203
291
|
return orderTotal - (order.refundedAmount || 0);
|
|
204
292
|
},
|
|
293
|
+
// orderExportTotalWithRefund(order, fees) {
|
|
294
|
+
// const orderTotal = this.orderTotalExport(order, fees);
|
|
295
|
+
// return orderTotal - (order.refundedAmount || 0);
|
|
296
|
+
// },
|
|
205
297
|
orderTransferAmountWithRefund(order, fees) {
|
|
206
298
|
const promoterFees = FeeUtil.promoterFees(fees);
|
|
207
299
|
return this.orderTotalWithRefund(order, promoterFees);
|
|
208
300
|
},
|
|
209
301
|
orderSubtotal(order: IOrder): number {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
fees: [],
|
|
217
|
-
paymentMethodType: payment.paymentMethodType,
|
|
218
|
-
})
|
|
219
|
-
}, 0);
|
|
220
|
-
} else {
|
|
221
|
-
subTotal = PaymentUtil.calculatePaymentSubtotalValue({
|
|
222
|
-
tickets: order.tickets,
|
|
223
|
-
upgrades: order.upgrades
|
|
302
|
+
const subTotal = order?.payments?.reduce((cur: number, payment: IPayment): number => {
|
|
303
|
+
return cur + PaymentUtil.calculatePaymentSubtotal({
|
|
304
|
+
tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
|
|
305
|
+
upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
|
|
306
|
+
fees: [],
|
|
307
|
+
paymentMethodType: payment.paymentMethodType,
|
|
224
308
|
})
|
|
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);
|
|
309
|
+
}, 0);
|
|
236
310
|
|
|
237
311
|
return subTotal || 0
|
|
238
312
|
},
|
|
@@ -283,6 +357,12 @@ export default {
|
|
|
283
357
|
return this.orderTotal(order, fees) - this.orderSubtotal(order);
|
|
284
358
|
},
|
|
285
359
|
|
|
360
|
+
// selloutExortFees(order, fees) {
|
|
361
|
+
// if (!order.tickets) order.tickets = [];
|
|
362
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
363
|
+
// fees = FeeUtil.selloutFees(fees);
|
|
364
|
+
// return this.orderTotalExport(order, fees) - this.orderSubtotal(order);
|
|
365
|
+
// },
|
|
286
366
|
// This one is special because stripe fees
|
|
287
367
|
// can be applied as a percentage
|
|
288
368
|
stripeFees(order, fees) {
|
|
@@ -297,6 +377,17 @@ export default {
|
|
|
297
377
|
return stripeFeeT;
|
|
298
378
|
},
|
|
299
379
|
|
|
380
|
+
// stripeFeesExport(order, fees) {
|
|
381
|
+
// if (!order.tickets) order.tickets = [];
|
|
382
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
383
|
+
// const total = this.orderTotalExport(order, fees);
|
|
384
|
+
// const subtotal = this.orderSubtotal(order);
|
|
385
|
+
// const selloutFees = this.selloutExortFees(order, fees);
|
|
386
|
+
// const promoterFees = this.promoterFees(order, fees);
|
|
387
|
+
// let stripeFee = total - subtotal - selloutFees - promoterFees;
|
|
388
|
+
// let stripeFeeT = stripeFee < 0 ? 0 : stripeFee;
|
|
389
|
+
// return stripeFeeT;
|
|
390
|
+
// },
|
|
300
391
|
promoterFees(order, fees) {
|
|
301
392
|
if (!order.tickets) order.tickets = [];
|
|
302
393
|
if (!order.upgrades) order.upgrades = [];
|