@mercurjs/commission 1.3.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/.medusa/server/src/admin/index.js +20 -0
- package/.medusa/server/src/admin/index.mjs +21 -0
- package/.medusa/server/src/api/admin/commission/commission-lines/route.d.ts +75 -0
- package/.medusa/server/src/api/admin/commission/commission-lines/route.js +95 -0
- package/.medusa/server/src/api/admin/commission/default/route.d.ts +53 -0
- package/.medusa/server/src/api/admin/commission/default/route.js +103 -0
- package/.medusa/server/src/api/admin/commission/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/commission/middlewares.js +44 -0
- package/.medusa/server/src/api/admin/commission/query-config.d.ts +21 -0
- package/.medusa/server/src/api/admin/commission/query-config.js +35 -0
- package/.medusa/server/src/api/admin/commission/rules/[id]/route.d.ts +104 -0
- package/.medusa/server/src/api/admin/commission/rules/[id]/route.js +149 -0
- package/.medusa/server/src/api/admin/commission/rules/route.d.ts +78 -0
- package/.medusa/server/src/api/admin/commission/rules/route.js +114 -0
- package/.medusa/server/src/api/admin/commission/search/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/commission/search/route.js +25 -0
- package/.medusa/server/src/api/admin/commission/validators.d.ts +456 -0
- package/.medusa/server/src/api/admin/commission/validators.js +108 -0
- package/.medusa/server/src/api/admin/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/middlewares.js +6 -0
- package/.medusa/server/src/api/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/middlewares.js +9 -0
- package/.medusa/server/src/api/vendor/commission/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/vendor/commission/middlewares.js +16 -0
- package/.medusa/server/src/api/vendor/commission/query-config.d.ts +10 -0
- package/.medusa/server/src/api/vendor/commission/query-config.js +14 -0
- package/.medusa/server/src/api/vendor/commission/route.d.ts +84 -0
- package/.medusa/server/src/api/vendor/commission/route.js +111 -0
- package/.medusa/server/src/api/vendor/commission/validators.d.ts +27 -0
- package/.medusa/server/src/api/vendor/commission/validators.js +13 -0
- package/.medusa/server/src/api/vendor/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/vendor/middlewares.js +10 -0
- package/.medusa/server/src/api/vendor/orders/[id]/commission/route.d.ts +3 -0
- package/.medusa/server/src/api/vendor/orders/[id]/commission/route.js +15 -0
- package/.medusa/server/src/api/vendor/orders/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/vendor/orders/middlewares.js +17 -0
- package/.medusa/server/src/modules/commission/index.d.ts +50 -0
- package/.medusa/server/src/modules/commission/index.js +14 -0
- package/.medusa/server/src/modules/commission/migrations/Migration20250124152358.d.ts +5 -0
- package/.medusa/server/src/modules/commission/migrations/Migration20250124152358.js +25 -0
- package/.medusa/server/src/modules/commission/migrations/Migration20250127073504.d.ts +5 -0
- package/.medusa/server/src/modules/commission/migrations/Migration20250127073504.js +28 -0
- package/.medusa/server/src/modules/commission/models/commission_line.d.ts +7 -0
- package/.medusa/server/src/modules/commission/models/commission_line.js +12 -0
- package/.medusa/server/src/modules/commission/models/commission_rate.d.ts +24 -0
- package/.medusa/server/src/modules/commission/models/commission_rate.js +20 -0
- package/.medusa/server/src/modules/commission/models/commission_rule.d.ts +17 -0
- package/.medusa/server/src/modules/commission/models/commission_rule.js +16 -0
- package/.medusa/server/src/modules/commission/models/index.d.ts +3 -0
- package/.medusa/server/src/modules/commission/models/index.js +20 -0
- package/.medusa/server/src/modules/commission/service.d.ts +61 -0
- package/.medusa/server/src/modules/commission/service.js +45 -0
- package/.medusa/server/src/subscribers/commission-order-set-placed.d.ts +5 -0
- package/.medusa/server/src/subscribers/commission-order-set-placed.js +44 -0
- package/.medusa/server/src/workflows/commission/index.d.ts +2 -0
- package/.medusa/server/src/workflows/commission/index.js +19 -0
- package/.medusa/server/src/workflows/commission/steps/calculate-commission-lines.d.ts +7 -0
- package/.medusa/server/src/workflows/commission/steps/calculate-commission-lines.js +81 -0
- package/.medusa/server/src/workflows/commission/steps/check-for-duplicate.d.ts +2 -0
- package/.medusa/server/src/workflows/commission/steps/check-for-duplicate.js +19 -0
- package/.medusa/server/src/workflows/commission/steps/create-commission-lines.d.ts +22 -0
- package/.medusa/server/src/workflows/commission/steps/create-commission-lines.js +12 -0
- package/.medusa/server/src/workflows/commission/steps/create-commission-rule.d.ts +2 -0
- package/.medusa/server/src/workflows/commission/steps/create-commission-rule.js +40 -0
- package/.medusa/server/src/workflows/commission/steps/delete-commission-rule.d.ts +1 -0
- package/.medusa/server/src/workflows/commission/steps/delete-commission-rule.js +14 -0
- package/.medusa/server/src/workflows/commission/steps/find-commission-references.d.ts +10 -0
- package/.medusa/server/src/workflows/commission/steps/find-commission-references.js +40 -0
- package/.medusa/server/src/workflows/commission/steps/find-commission-rules.d.ts +10 -0
- package/.medusa/server/src/workflows/commission/steps/find-commission-rules.js +81 -0
- package/.medusa/server/src/workflows/commission/steps/index.d.ts +10 -0
- package/.medusa/server/src/workflows/commission/steps/index.js +27 -0
- package/.medusa/server/src/workflows/commission/steps/list-commission-lines.d.ts +27 -0
- package/.medusa/server/src/workflows/commission/steps/list-commission-lines.js +72 -0
- package/.medusa/server/src/workflows/commission/steps/list-order-commission-lines.d.ts +10 -0
- package/.medusa/server/src/workflows/commission/steps/list-order-commission-lines.js +31 -0
- package/.medusa/server/src/workflows/commission/steps/update-commission-rule.d.ts +50 -0
- package/.medusa/server/src/workflows/commission/steps/update-commission-rule.js +17 -0
- package/.medusa/server/src/workflows/commission/workflows/calculate-commission.d.ts +26 -0
- package/.medusa/server/src/workflows/commission/workflows/calculate-commission.js +11 -0
- package/.medusa/server/src/workflows/commission/workflows/create-commission-rule.d.ts +4 -0
- package/.medusa/server/src/workflows/commission/workflows/create-commission-rule.js +16 -0
- package/.medusa/server/src/workflows/commission/workflows/delete-commission-rule.d.ts +3 -0
- package/.medusa/server/src/workflows/commission/workflows/delete-commission-rule.js +15 -0
- package/.medusa/server/src/workflows/commission/workflows/index.d.ts +8 -0
- package/.medusa/server/src/workflows/commission/workflows/index.js +25 -0
- package/.medusa/server/src/workflows/commission/workflows/list-commission-lines.d.ts +27 -0
- package/.medusa/server/src/workflows/commission/workflows/list-commission-lines.js +9 -0
- package/.medusa/server/src/workflows/commission/workflows/list-commission-rules.d.ts +12 -0
- package/.medusa/server/src/workflows/commission/workflows/list-commission-rules.js +47 -0
- package/.medusa/server/src/workflows/commission/workflows/list-order-commission-lines.d.ts +9 -0
- package/.medusa/server/src/workflows/commission/workflows/list-order-commission-lines.js +9 -0
- package/.medusa/server/src/workflows/commission/workflows/update-commission-rule.d.ts +51 -0
- package/.medusa/server/src/workflows/commission/workflows/update-commission-rule.js +9 -0
- package/.medusa/server/src/workflows/commission/workflows/upsert-default-commission-rule.d.ts +2 -0
- package/.medusa/server/src/workflows/commission/workflows/upsert-default-commission-rule.js +21 -0
- package/.medusa/server/src/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/index.js +18 -0
- package/README.md +22 -0
- package/package.json +86 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CommissionCalculationContext, CommissionRuleDTO } from "@mercurjs/framework";
|
|
2
|
+
declare const CommissionModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
3
|
+
readonly CommissionRate: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
4
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
5
|
+
type: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
percentage_rate: import("@medusajs/framework/utils").NullableModifier<number, import("@medusajs/framework/utils").NumberProperty>;
|
|
7
|
+
include_tax: import("@medusajs/framework/utils").BooleanProperty;
|
|
8
|
+
price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
9
|
+
max_price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
10
|
+
min_price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
11
|
+
rule: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
12
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
13
|
+
name: import("@medusajs/framework/utils").TextProperty;
|
|
14
|
+
reference: import("@medusajs/framework/utils").TextProperty;
|
|
15
|
+
reference_id: import("@medusajs/framework/utils").TextProperty;
|
|
16
|
+
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
17
|
+
rate: import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "commission_rate">>;
|
|
18
|
+
}>, "commission_rule">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
19
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
20
|
+
name: import("@medusajs/framework/utils").TextProperty;
|
|
21
|
+
reference: import("@medusajs/framework/utils").TextProperty;
|
|
22
|
+
reference_id: import("@medusajs/framework/utils").TextProperty;
|
|
23
|
+
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
24
|
+
rate: import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "commission_rate">>;
|
|
25
|
+
}>, "commission_rule">, undefined>, true>;
|
|
26
|
+
}>, "commission_rate">;
|
|
27
|
+
readonly CommissionRule: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
28
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
29
|
+
name: import("@medusajs/framework/utils").TextProperty;
|
|
30
|
+
reference: import("@medusajs/framework/utils").TextProperty;
|
|
31
|
+
reference_id: import("@medusajs/framework/utils").TextProperty;
|
|
32
|
+
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
33
|
+
rate: import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
34
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
35
|
+
type: import("@medusajs/framework/utils").TextProperty;
|
|
36
|
+
percentage_rate: import("@medusajs/framework/utils").NullableModifier<number, import("@medusajs/framework/utils").NumberProperty>;
|
|
37
|
+
include_tax: import("@medusajs/framework/utils").BooleanProperty;
|
|
38
|
+
price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
39
|
+
max_price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
40
|
+
min_price_set_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
41
|
+
rule: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "commission_rule">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "commission_rule">, undefined>, true>;
|
|
42
|
+
}>, "commission_rate">>;
|
|
43
|
+
}>, "commission_rule">;
|
|
44
|
+
readonly CommissionLine: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
45
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
46
|
+
item_line_id: import("@medusajs/framework/utils").TextProperty;
|
|
47
|
+
rule_id: import("@medusajs/framework/utils").TextProperty;
|
|
48
|
+
currency_code: import("@medusajs/framework/utils").TextProperty;
|
|
49
|
+
value: import("@medusajs/framework/utils").BigNumberProperty;
|
|
50
|
+
}>, "commission_line">;
|
|
51
|
+
}>>;
|
|
52
|
+
declare class CommissionModuleService extends CommissionModuleService_base {
|
|
53
|
+
private selectCommissionRule;
|
|
54
|
+
/**
|
|
55
|
+
* Looks for first applicable CommissionRule for given context. The queries are executed in assumed priority order.
|
|
56
|
+
* @param ctx Calculation context
|
|
57
|
+
* @returns CommissionRule applicable for given context or null
|
|
58
|
+
*/
|
|
59
|
+
selectCommissionForProductLine(ctx: CommissionCalculationContext): Promise<CommissionRuleDTO | null>;
|
|
60
|
+
}
|
|
61
|
+
export default CommissionModuleService;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const models_1 = require("./models");
|
|
5
|
+
const commission_line_1 = require("./models/commission_line");
|
|
6
|
+
class CommissionModuleService extends (0, utils_1.MedusaService)({
|
|
7
|
+
CommissionRate: models_1.CommissionRate,
|
|
8
|
+
CommissionRule: models_1.CommissionRule,
|
|
9
|
+
CommissionLine: commission_line_1.CommissionLine,
|
|
10
|
+
}) {
|
|
11
|
+
async selectCommissionRule(reference, reference_id) {
|
|
12
|
+
const [rule] = await this.listCommissionRules({ reference, reference_id, is_active: true, deleted_at: null }, { relations: ["rate"] });
|
|
13
|
+
return rule;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Looks for first applicable CommissionRule for given context. The queries are executed in assumed priority order.
|
|
17
|
+
* @param ctx Calculation context
|
|
18
|
+
* @returns CommissionRule applicable for given context or null
|
|
19
|
+
*/
|
|
20
|
+
async selectCommissionForProductLine(ctx) {
|
|
21
|
+
const ruleQueries = [
|
|
22
|
+
{
|
|
23
|
+
reference: "seller+product_type",
|
|
24
|
+
reference_id: `${ctx.seller_id}+${ctx.product_type_id}`,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
reference: "seller+product_category",
|
|
28
|
+
reference_id: `${ctx.seller_id}+${ctx.product_category_id}`,
|
|
29
|
+
},
|
|
30
|
+
{ reference: "seller", reference_id: ctx.seller_id },
|
|
31
|
+
{ reference: "product_type", reference_id: ctx.product_type_id },
|
|
32
|
+
{ reference: "product_category", reference_id: ctx.product_category_id },
|
|
33
|
+
{ reference: "site", reference_id: "" },
|
|
34
|
+
];
|
|
35
|
+
for (const { reference, reference_id } of ruleQueries) {
|
|
36
|
+
const rule = await this.selectCommissionRule(reference, reference_id);
|
|
37
|
+
if (rule) {
|
|
38
|
+
return rule;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = CommissionModuleService;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvbW1pc3Npb24vc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUEwRDtBQUUxRCxxQ0FBMEQ7QUFDMUQsOERBQTBEO0FBTTFELE1BQU0sdUJBQXdCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xELGNBQWMsRUFBZCx1QkFBYztJQUNkLGNBQWMsRUFBZCx1QkFBYztJQUNkLGNBQWMsRUFBZCxnQ0FBYztDQUNmLENBQUM7SUFDUSxLQUFLLENBQUMsb0JBQW9CLENBQUMsU0FBaUIsRUFBRSxZQUFvQjtRQUN4RSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzNDLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFDOUQsRUFBRSxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUN4QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyw4QkFBOEIsQ0FDbEMsR0FBaUM7UUFFakMsTUFBTSxXQUFXLEdBQUc7WUFDbEI7Z0JBQ0UsU0FBUyxFQUFFLHFCQUFxQjtnQkFDaEMsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFO2FBQ3hEO1lBQ0Q7Z0JBQ0UsU0FBUyxFQUFFLHlCQUF5QjtnQkFDcEMsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUU7YUFDNUQ7WUFDRCxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUU7WUFDcEQsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFO1lBQ2hFLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsbUJBQW1CLEVBQUU7WUFDeEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7U0FDeEMsQ0FBQztRQUVGLEtBQUssTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDdEUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSx1QkFBdUIsQ0FBQyJ9
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = commissionOrderSetPlacedHandler;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const framework_1 = require("@mercurjs/framework");
|
|
7
|
+
const workflows_1 = require("../workflows/commission/workflows");
|
|
8
|
+
async function commissionOrderSetPlacedHandler({ event, container, }) {
|
|
9
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
10
|
+
const { data: [set], } = await query.graph({
|
|
11
|
+
entity: "order_set",
|
|
12
|
+
fields: ["orders.id"],
|
|
13
|
+
filters: {
|
|
14
|
+
id: event.data.id,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const ordersCreated = set.orders.map((o) => o.id);
|
|
18
|
+
for (const order_id of ordersCreated) {
|
|
19
|
+
const { data: [seller], } = await query.graph({
|
|
20
|
+
entity: framework_1.SELLER_ORDER_LINK,
|
|
21
|
+
fields: ["seller_id"],
|
|
22
|
+
filters: {
|
|
23
|
+
order_id: order_id,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
if (!seller) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await workflows_1.calculateCommissionWorkflow.run({
|
|
30
|
+
input: {
|
|
31
|
+
order_id: order_id,
|
|
32
|
+
seller_id: seller.seller_id,
|
|
33
|
+
},
|
|
34
|
+
container,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.config = {
|
|
39
|
+
event: framework_1.OrderSetWorkflowEvents.PLACED,
|
|
40
|
+
context: {
|
|
41
|
+
subscriberId: "commission-order-set-placed-handler",
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWlzc2lvbi1vcmRlci1zZXQtcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2NvbW1pc3Npb24tb3JkZXItc2V0LXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxrREF5Q0M7QUE5Q0QscURBQXNFO0FBRXRFLG1EQUFnRjtBQUNoRixpRUFBZ0Y7QUFFakUsS0FBSyxVQUFVLCtCQUErQixDQUFDLEVBQzVELEtBQUssRUFDTCxTQUFTLEdBQ3NCO0lBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUNaLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyQixPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1NBQ2xCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVsRCxLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FDZixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsNkJBQWlCO1lBQ3pCLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUNyQixPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7YUFDbkI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sdUNBQTJCLENBQUMsR0FBRyxDQUFDO1lBQ3BDLEtBQUssRUFBRTtnQkFDTCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO2FBQzVCO1lBQ0QsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxrQ0FBc0IsQ0FBQyxNQUFNO0lBQ3BDLE9BQU8sRUFBRTtRQUNQLFlBQVksRUFBRSxxQ0FBcUM7S0FDcEQ7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./workflows"), exports);
|
|
18
|
+
__exportStar(require("./steps"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1QiwwQ0FBd0IifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CreateCommissionLineDTO } from "@mercurjs/framework";
|
|
2
|
+
type StepInput = {
|
|
3
|
+
seller_id: string;
|
|
4
|
+
order_id: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const calculateCommissionLinesStep: import("@medusajs/framework/workflows-sdk").StepFunction<StepInput, CreateCommissionLineDTO[]>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateCommissionLinesStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const commission_1 = require("../../../modules/commission");
|
|
7
|
+
async function calculateFlatCommission(rate, currency, container) {
|
|
8
|
+
const priceService = container.resolve(utils_1.Modules.PRICING);
|
|
9
|
+
const priceSet = await priceService.retrievePriceSet(rate.price_set_id, {
|
|
10
|
+
relations: ["prices"],
|
|
11
|
+
});
|
|
12
|
+
const price = priceSet.prices?.find((p) => p.currency_code === currency);
|
|
13
|
+
return price?.amount || utils_1.MathBN.convert(0);
|
|
14
|
+
}
|
|
15
|
+
async function calculatePercentageCommission(rate, item, currency, container) {
|
|
16
|
+
const total = utils_1.MathBN.convert(item.total);
|
|
17
|
+
const taxValue = utils_1.MathBN.convert(item.tax_total);
|
|
18
|
+
const calculationBase = rate.include_tax ? total : total.minus(taxValue);
|
|
19
|
+
const commissionValue = utils_1.MathBN.mult(calculationBase, utils_1.MathBN.div(rate.percentage_rate, 100));
|
|
20
|
+
const priceService = container.resolve(utils_1.Modules.PRICING);
|
|
21
|
+
const minPriceSet = rate.min_price_set_id
|
|
22
|
+
? await priceService.retrievePriceSet(rate.min_price_set_id, {
|
|
23
|
+
relations: ["prices"],
|
|
24
|
+
})
|
|
25
|
+
: undefined;
|
|
26
|
+
const maxPriceSet = rate.max_price_set_id
|
|
27
|
+
? await priceService.retrievePriceSet(rate.max_price_set_id, {
|
|
28
|
+
relations: ["prices"],
|
|
29
|
+
})
|
|
30
|
+
: undefined;
|
|
31
|
+
const minValue = minPriceSet?.prices?.find((p) => p.currency_code === currency)
|
|
32
|
+
?.amount || utils_1.MathBN.convert(0);
|
|
33
|
+
const maxValue = maxPriceSet?.prices?.find((p) => p.currency_code === currency)
|
|
34
|
+
?.amount || utils_1.MathBN.convert(Number.POSITIVE_INFINITY);
|
|
35
|
+
return utils_1.MathBN.max(minValue, utils_1.MathBN.min(maxValue, commissionValue));
|
|
36
|
+
}
|
|
37
|
+
async function calculateCommissionValue(rate, item, currency, container) {
|
|
38
|
+
if (rate.type === "flat") {
|
|
39
|
+
return calculateFlatCommission(rate, currency, container);
|
|
40
|
+
}
|
|
41
|
+
if (rate.type === "percentage") {
|
|
42
|
+
return calculatePercentageCommission(rate, item, currency, container);
|
|
43
|
+
}
|
|
44
|
+
return utils_1.MathBN.convert(0);
|
|
45
|
+
}
|
|
46
|
+
exports.calculateCommissionLinesStep = (0, workflows_sdk_1.createStep)("calculate-commission-lines", async ({ order_id, seller_id }, { container }) => {
|
|
47
|
+
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
48
|
+
const order = await orderService.retrieveOrder(order_id, {
|
|
49
|
+
relations: ["items"],
|
|
50
|
+
// At least one of the computed totals fields should be requested in select,
|
|
51
|
+
// in order for decorateTotals to be called
|
|
52
|
+
select: ["*", "item_total"],
|
|
53
|
+
});
|
|
54
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
55
|
+
const commissionService = container.resolve(commission_1.COMMISSION_MODULE);
|
|
56
|
+
const commissionLines = [];
|
|
57
|
+
for (const item of order.items) {
|
|
58
|
+
const { data: [product], } = await query.graph({
|
|
59
|
+
entity: "product",
|
|
60
|
+
fields: ["categories.id"],
|
|
61
|
+
filters: {
|
|
62
|
+
id: item.product_id,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const commissionRule = await commissionService.selectCommissionForProductLine({
|
|
66
|
+
product_category_id: product.categories[0]?.id || "",
|
|
67
|
+
product_type_id: item.product_type_id || "",
|
|
68
|
+
seller_id: seller_id,
|
|
69
|
+
});
|
|
70
|
+
if (commissionRule) {
|
|
71
|
+
commissionLines.push({
|
|
72
|
+
item_line_id: item.id,
|
|
73
|
+
value: await calculateCommissionValue(commissionRule.rate, item, order.currency_code, container),
|
|
74
|
+
currency_code: order.currency_code,
|
|
75
|
+
rule_id: commissionRule.id,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return new workflows_sdk_1.StepResponse(commissionLines);
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbW1pc3Npb24tbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvY2FsY3VsYXRlLWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEscURBSW1DO0FBQ25DLHFFQUE2RTtBQUU3RSw0REFHcUM7QUFXckMsS0FBSyxVQUFVLHVCQUF1QixDQUNwQyxJQUF1QixFQUN2QixRQUFnQixFQUNoQixTQUEwQjtJQUUxQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBYSxFQUFFO1FBQ3ZFLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUN0QixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FDakMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUN4QixDQUFDO0lBRWQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLGNBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELEtBQUssVUFBVSw2QkFBNkIsQ0FDMUMsSUFBdUIsRUFDdkIsSUFBc0IsRUFDdEIsUUFBZ0IsRUFDaEIsU0FBMEI7SUFFMUIsTUFBTSxLQUFLLEdBQUcsY0FBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsTUFBTSxRQUFRLEdBQUcsY0FBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFD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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkForDuplicateStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const commission_1 = require("../../../modules/commission");
|
|
7
|
+
exports.checkForDuplicateStep = (0, workflows_sdk_1.createStep)("check-for-rule-duplicate", async (input, { container }) => {
|
|
8
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
9
|
+
const commissionRule = await service.listCommissionRules({
|
|
10
|
+
reference: input.reference,
|
|
11
|
+
reference_id: input.reference_id,
|
|
12
|
+
deleted_at: null,
|
|
13
|
+
});
|
|
14
|
+
if (commissionRule.length > 0) {
|
|
15
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.CONFLICT, "Rule already exists!");
|
|
16
|
+
}
|
|
17
|
+
return new workflows_sdk_1.StepResponse(true);
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZm9yLWR1cGxpY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY29tbWlzc2lvbi9zdGVwcy9jaGVjay1mb3ItZHVwbGljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF3RDtBQUN4RCxxRUFBNkU7QUFFN0UsNERBR3FDO0FBTXhCLFFBQUEscUJBQXFCLEdBQUcsSUFBQSwwQkFBVSxFQUM3QywwQkFBMEIsRUFDMUIsS0FBSyxFQUFFLEtBQThCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3RELE1BQU0sT0FBTyxHQUNYLFNBQVMsQ0FBQyxPQUFPLENBQTBCLDhCQUFpQixDQUFDLENBQUM7SUFFaEUsTUFBTSxjQUFjLEdBQ2xCLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUFDO0lBRUwsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CreateCommissionLineDTO } from "@mercurjs/framework";
|
|
2
|
+
export declare const createCommissionLinesStep: import("@medusajs/framework/workflows-sdk").StepFunction<CreateCommissionLineDTO[], {
|
|
3
|
+
id: string;
|
|
4
|
+
item_line_id: string;
|
|
5
|
+
rule_id: string;
|
|
6
|
+
currency_code: string;
|
|
7
|
+
value: number;
|
|
8
|
+
raw_value: Record<string, unknown>;
|
|
9
|
+
created_at: Date;
|
|
10
|
+
updated_at: Date;
|
|
11
|
+
deleted_at: Date | null;
|
|
12
|
+
} & {
|
|
13
|
+
id: string;
|
|
14
|
+
item_line_id: string;
|
|
15
|
+
rule_id: string;
|
|
16
|
+
currency_code: string;
|
|
17
|
+
value: number;
|
|
18
|
+
raw_value: Record<string, unknown>;
|
|
19
|
+
created_at: Date;
|
|
20
|
+
updated_at: Date;
|
|
21
|
+
deleted_at: Date | null;
|
|
22
|
+
}[]>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCommissionLinesStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const commission_1 = require("../../../modules/commission");
|
|
6
|
+
exports.createCommissionLinesStep = (0, workflows_sdk_1.createStep)("create-commission-lines", async (input, { container }) => {
|
|
7
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
8
|
+
// @ts-expect-error BigNumber incompatible interface
|
|
9
|
+
const result = await service.createCommissionLines(input);
|
|
10
|
+
return new workflows_sdk_1.StepResponse(result);
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbW1pc3Npb24tbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvY3JlYXRlLWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBRTdFLDREQUdxQztBQUd4QixRQUFBLHlCQUF5QixHQUFHLElBQUEsMEJBQVUsRUFDakQseUJBQXlCLEVBQ3pCLEtBQUssRUFBRSxLQUFnQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN4RCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUMvQiw4QkFBaUIsQ0FDUyxDQUFDO0lBRTdCLG9EQUFvRDtJQUNwRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUxRCxPQUFPLElBQUksNEJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCommissionRuleStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const commission_1 = require("../../../modules/commission");
|
|
7
|
+
exports.createCommissionRuleStep = (0, workflows_sdk_1.createStep)("create-commission-rule", async (input, { container }) => {
|
|
8
|
+
const pricingService = container.resolve(utils_1.Modules.PRICING);
|
|
9
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
10
|
+
const price_set_id = input.rate.price_set
|
|
11
|
+
? (await pricingService.createPriceSets({
|
|
12
|
+
prices: input.rate.price_set,
|
|
13
|
+
})).id
|
|
14
|
+
: null;
|
|
15
|
+
const min_price_set_id = input.rate.min_price_set
|
|
16
|
+
? (await pricingService.createPriceSets({
|
|
17
|
+
prices: input.rate.min_price_set,
|
|
18
|
+
})).id
|
|
19
|
+
: null;
|
|
20
|
+
const max_price_set_id = input.rate.max_price_set
|
|
21
|
+
? (await pricingService.createPriceSets({
|
|
22
|
+
prices: input.rate.max_price_set,
|
|
23
|
+
})).id
|
|
24
|
+
: null;
|
|
25
|
+
const commission_rate = await service.createCommissionRates({
|
|
26
|
+
...input.rate,
|
|
27
|
+
max_price_set_id,
|
|
28
|
+
min_price_set_id,
|
|
29
|
+
price_set_id,
|
|
30
|
+
});
|
|
31
|
+
const commissionRule = await service.createCommissionRules({
|
|
32
|
+
...input,
|
|
33
|
+
rate: commission_rate.id,
|
|
34
|
+
});
|
|
35
|
+
return new workflows_sdk_1.StepResponse(commissionRule, commissionRule.id);
|
|
36
|
+
}, async (commissionRuleId, { container }) => {
|
|
37
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
38
|
+
await service.deleteCommissionRules([commissionRuleId]);
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbW1pc3Npb24tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY29tbWlzc2lvbi9zdGVwcy9jcmVhdGUtY29tbWlzc2lvbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFvRDtBQUNwRCxxRUFBNkU7QUFFN0UsNERBR3FDO0FBTXhCLFFBQUEsd0JBQXdCLEdBQUcsSUFBQSwwQkFBVSxFQUNoRCx3QkFBd0IsRUFDeEIsS0FBSyxFQUFFLEtBQThCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3RELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELE1BQU0sT0FBTyxHQUNYLFNBQVMsQ0FBQyxPQUFPLENBQTBCLDhCQUFpQixDQUFDLENBQUM7SUFFaEUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTO1FBQ3ZDLENBQUMsQ0FBQyxDQUNFLE1BQU0sY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUNuQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FDSCxDQUFDLEVBQUU7UUFDTixDQUFDLENBQUMsSUFBSSxDQUFDO0lBRVQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWE7UUFDL0MsQ0FBQyxDQUFDLENBQ0UsTUFBTSxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ25DLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWE7U0FDakMsQ0FBQyxDQUNILENBQUMsRUFBRTtRQUNOLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFVCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYTtRQUMvQyxDQUFDLENBQUMsQ0FDRSxNQUFNLGNBQWMsQ0FBQyxlQUFlLENBQUM7WUFDbkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYTtTQUNqQyxDQUFDLENBQ0gsQ0FBQyxFQUFFO1FBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVULE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDO1FBQzFELEdBQUcsS0FBSyxDQUFDLElBQUk7UUFDYixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLFlBQVk7S0FDYixDQUFDLENBQUM7SUFFSCxNQUFNLGNBQWMsR0FDbEIsTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQUM7UUFDbEMsR0FBRyxLQUFLO1FBQ1IsSUFBSSxFQUFFLGVBQWUsQ0FBQyxFQUFFO0tBQ3pCLENBQUMsQ0FBQztJQUVMLE9BQU8sSUFBSSw0QkFBWSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxFQUNELEtBQUssRUFBRSxnQkFBd0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDaEQsTUFBTSxPQUFPLEdBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBMEIsOEJBQWlCLENBQUMsQ0FBQztJQUVoRSxNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const deleteCommissionRuleStep: import("@medusajs/framework/workflows-sdk").StepFunction<string, string>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteCommissionRuleStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const commission_1 = require("../../../modules/commission");
|
|
6
|
+
exports.deleteCommissionRuleStep = (0, workflows_sdk_1.createStep)("delete-commission-rule", async (id, { container }) => {
|
|
7
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
8
|
+
await service.softDeleteCommissionRules(id);
|
|
9
|
+
return new workflows_sdk_1.StepResponse(id);
|
|
10
|
+
}, async (id, { container }) => {
|
|
11
|
+
const service = container.resolve(commission_1.COMMISSION_MODULE);
|
|
12
|
+
await service.restoreCommissionRules(id);
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNvbW1pc3Npb24tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY29tbWlzc2lvbi9zdGVwcy9kZWxldGUtY29tbWlzc2lvbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSw0REFHcUM7QUFFeEIsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ2hELHdCQUF3QixFQUN4QixLQUFLLEVBQUUsRUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNsQyxNQUFNLE9BQU8sR0FDWCxTQUFTLENBQUMsT0FBTyxDQUEwQiw4QkFBaUIsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUMsRUFDRCxLQUFLLEVBQUUsRUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNsQyxNQUFNLE9BQU8sR0FDWCxTQUFTLENBQUMsT0FBTyxDQUEwQiw4QkFBaUIsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type StepInput = Array<{
|
|
2
|
+
reference: string;
|
|
3
|
+
reference_id: string;
|
|
4
|
+
}>;
|
|
5
|
+
export declare const findCommissionReferencesStep: import("@medusajs/framework/workflows-sdk").StepFunction<StepInput, {
|
|
6
|
+
sellers: any[];
|
|
7
|
+
productTypes: any[];
|
|
8
|
+
productCategories: any[];
|
|
9
|
+
}>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findCommissionReferencesStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
exports.findCommissionReferencesStep = (0, workflows_sdk_1.createStep)('find-commission-references', async (input, { container }) => {
|
|
6
|
+
const knex = container.resolve('__pg_connection__');
|
|
7
|
+
const sellerIds = input
|
|
8
|
+
.filter((i) => i.reference === 'seller')
|
|
9
|
+
.map((v) => v.reference_id);
|
|
10
|
+
const productTypeIds = input
|
|
11
|
+
.filter((i) => i.reference === 'product_type')
|
|
12
|
+
.map((v) => v.reference_id);
|
|
13
|
+
const productCategoryIds = input
|
|
14
|
+
.filter((i) => i.reference === 'product_category')
|
|
15
|
+
.map((v) => v.reference_id);
|
|
16
|
+
input
|
|
17
|
+
.filter((i) => i.reference === 'seller+product_type' ||
|
|
18
|
+
i.reference === 'seller+product_category')
|
|
19
|
+
.forEach((v) => {
|
|
20
|
+
const ids = v.reference_id.split('+');
|
|
21
|
+
sellerIds.push(ids[0]);
|
|
22
|
+
if (v.reference === 'seller+product_category') {
|
|
23
|
+
productCategoryIds.push(ids[1]);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
productTypeIds.push(ids[1]);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const sellers = await knex('seller')
|
|
30
|
+
.select(['id', 'name AS value'])
|
|
31
|
+
.whereIn('id', [...new Set(sellerIds)]);
|
|
32
|
+
const productTypes = await knex('product_type')
|
|
33
|
+
.select(['id', 'value'])
|
|
34
|
+
.whereIn('id', [...new Set(productTypeIds)]);
|
|
35
|
+
const productCategories = await knex('product_category')
|
|
36
|
+
.select(['id', 'name AS value'])
|
|
37
|
+
.whereIn('id', [...new Set(productCategoryIds)]);
|
|
38
|
+
return new workflows_sdk_1.StepResponse({ sellers, productTypes, productCategories });
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jb21taXNzaW9uLXJlZmVyZW5jZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvZmluZC1jb21taXNzaW9uLXJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBSS9ELFFBQUEsNEJBQTRCLEdBQUcsSUFBQSwwQkFBVSxFQUNwRCw0QkFBNEIsRUFDNUIsS0FBSyxFQUFFLEtBQWdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFNBQVMsR0FBRyxLQUFLO1NBQ3BCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUM7U0FDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDN0IsTUFBTSxjQUFjLEdBQUcsS0FBSztTQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQzdCLE1BQU0sa0JBQWtCLEdBQUcsS0FBSztTQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssa0JBQWtCLENBQUM7U0FDakQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFN0IsS0FBSztTQUNGLE1BQU0sQ0FDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxDQUFDLFNBQVMsS0FBSyxxQkFBcUI7UUFDckMsQ0FBQyxDQUFDLFNBQVMsS0FBSyx5QkFBeUIsQ0FDNUM7U0FDQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNiLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEIsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLHlCQUF5QixFQUFFLENBQUM7WUFDOUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFSixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDakMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQy9CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV6QyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDNUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUU5QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ3JELE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztTQUMvQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUVsRCxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZFLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findCommissionRulesStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
async function selectPriceSetPrices(container, price_set_id) {
|
|
7
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
8
|
+
const { data: [price] } = await query.graph({
|
|
9
|
+
entity: 'price_set',
|
|
10
|
+
fields: ['*', 'prices.*'],
|
|
11
|
+
filters: {
|
|
12
|
+
id: price_set_id
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return price
|
|
16
|
+
? {
|
|
17
|
+
id: price.id,
|
|
18
|
+
prices: price.prices.map((p) => ({
|
|
19
|
+
currency_code: p.currency_code,
|
|
20
|
+
amount: p.amount
|
|
21
|
+
}))
|
|
22
|
+
}
|
|
23
|
+
: {
|
|
24
|
+
id: null,
|
|
25
|
+
prices: []
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.findCommissionRulesStep = (0, workflows_sdk_1.createStep)('find-commission-rules', async (input, { container }) => {
|
|
29
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
30
|
+
const filters = input.ids
|
|
31
|
+
? { id: input.ids }
|
|
32
|
+
: { reference: { $ne: 'site' } };
|
|
33
|
+
const { data: commissions, metadata } = await query.graph({
|
|
34
|
+
entity: 'commission_rule',
|
|
35
|
+
fields: ['*', 'rate.*'],
|
|
36
|
+
filters: filters,
|
|
37
|
+
pagination: input.pagination
|
|
38
|
+
});
|
|
39
|
+
const commission_rules = [];
|
|
40
|
+
for (const commission of commissions) {
|
|
41
|
+
const aggregate = {
|
|
42
|
+
id: commission.id,
|
|
43
|
+
name: commission.name,
|
|
44
|
+
reference: commission.reference,
|
|
45
|
+
reference_id: commission.reference_id,
|
|
46
|
+
is_active: commission.is_active,
|
|
47
|
+
type: commission.rate.type,
|
|
48
|
+
include_tax: commission.rate.include_tax,
|
|
49
|
+
percentage_rate: commission.rate.percentage_rate,
|
|
50
|
+
price_set_id: null,
|
|
51
|
+
price_set: [],
|
|
52
|
+
min_price_set_id: null,
|
|
53
|
+
min_price_set: [],
|
|
54
|
+
max_price_set_id: null,
|
|
55
|
+
max_price_set: [],
|
|
56
|
+
fee_value: `${commission.rate.percentage_rate}%`
|
|
57
|
+
};
|
|
58
|
+
if (commission.rate.min_price_set_id) {
|
|
59
|
+
const minPrice = await selectPriceSetPrices(container, commission.rate.min_price_set_id);
|
|
60
|
+
aggregate.min_price_set_id = minPrice.id;
|
|
61
|
+
aggregate.min_price_set = minPrice.prices;
|
|
62
|
+
}
|
|
63
|
+
if (commission.rate.max_price_set_id) {
|
|
64
|
+
const maxPrice = await selectPriceSetPrices(container, commission.rate.max_price_set_id);
|
|
65
|
+
aggregate.max_price_set_id = maxPrice.id;
|
|
66
|
+
aggregate.max_price_set = maxPrice.prices;
|
|
67
|
+
}
|
|
68
|
+
if (commission.rate.type === 'flat') {
|
|
69
|
+
const price = await selectPriceSetPrices(container, commission.rate.price_set_id);
|
|
70
|
+
aggregate.price_set_id = price.id;
|
|
71
|
+
aggregate.price_set = price.prices;
|
|
72
|
+
aggregate.fee_value =
|
|
73
|
+
price.prices
|
|
74
|
+
.map((p) => `${p.amount}${p.currency_code?.toUpperCase()}`)
|
|
75
|
+
.join('/') || '-';
|
|
76
|
+
}
|
|
77
|
+
commission_rules.push(aggregate);
|
|
78
|
+
}
|
|
79
|
+
return new workflows_sdk_1.StepResponse({ commission_rules, count: metadata?.count || 0 });
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jb21taXNzaW9uLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jb21taXNzaW9uL3N0ZXBzL2ZpbmQtY29tbWlzc2lvbi1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUscUVBQTRFO0FBRTVFLEtBQUssVUFBVSxvQkFBb0IsQ0FDakMsU0FBMEIsRUFDMUIsWUFBb0I7SUFFcEIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQ2QsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUN6QixPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsWUFBWTtTQUNqQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sS0FBSztRQUNWLENBQUMsQ0FBQztZQUNFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNaLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhO2dCQUM5QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFDSCxDQUFDLENBQUM7WUFDRSxFQUFFLEVBQUUsSUFBSTtZQUNSLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQTtBQUNQLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDSCxLQU1DLEVBQ0QsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRztRQUN2QixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNuQixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQTtJQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEQsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUE7SUFFRixNQUFNLGdCQUFnQixHQUFVLEVBQUUsQ0FBQTtJQUVsQyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNqQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQy9CLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUNyQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDL0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ3hDLGVBQWUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDaEQsWUFBWSxFQUFFLElBQUk7WUFDbEIsU0FBUyxFQUFFLEVBQUU7WUFDYixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsYUFBYSxFQUFFLEVBQUU7WUFDakIsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUc7U0FDakQsQ0FBQTtRQUVELElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sb0JBQW9CLENBQ3pDLFNBQVMsRUFDVCxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUNqQyxDQUFBO1lBRUQsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUE7WUFDeEMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFBO1FBQzNDLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFvQixDQUN6QyxTQUFTLEVBQ1QsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FDakMsQ0FBQTtZQUVELFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFBO1lBQ3hDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQTtRQUMzQyxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEtBQUssR0FBRyxNQUFNLG9CQUFvQixDQUN0QyxTQUFTLEVBQ1QsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQzdCLENBQUE7WUFFRCxTQUFTLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUE7WUFDakMsU0FBUyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFBO1lBRWxDLFNBQVMsQ0FBQyxTQUFTO2dCQUNqQixLQUFLLENBQUMsTUFBTTtxQkFDVCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7cUJBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUE7UUFDdkIsQ0FBQztRQUVELGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzVFLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './create-commission-rule';
|
|
2
|
+
export * from './create-commission-lines';
|
|
3
|
+
export * from './delete-commission-rule';
|
|
4
|
+
export * from './update-commission-rule';
|
|
5
|
+
export * from './calculate-commission-lines';
|
|
6
|
+
export * from './check-for-duplicate';
|
|
7
|
+
export * from './find-commission-rules';
|
|
8
|
+
export * from './find-commission-references';
|
|
9
|
+
export * from './list-order-commission-lines';
|
|
10
|
+
export * from './list-commission-lines';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create-commission-rule"), exports);
|
|
18
|
+
__exportStar(require("./create-commission-lines"), exports);
|
|
19
|
+
__exportStar(require("./delete-commission-rule"), exports);
|
|
20
|
+
__exportStar(require("./update-commission-rule"), exports);
|
|
21
|
+
__exportStar(require("./calculate-commission-lines"), exports);
|
|
22
|
+
__exportStar(require("./check-for-duplicate"), exports);
|
|
23
|
+
__exportStar(require("./find-commission-rules"), exports);
|
|
24
|
+
__exportStar(require("./find-commission-references"), exports);
|
|
25
|
+
__exportStar(require("./list-order-commission-lines"), exports);
|
|
26
|
+
__exportStar(require("./list-commission-lines"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3QztBQUN4Qyw0REFBeUM7QUFDekMsMkRBQXdDO0FBQ3hDLDJEQUF3QztBQUN4QywrREFBNEM7QUFDNUMsd0RBQXFDO0FBQ3JDLDBEQUF1QztBQUN2QywrREFBNEM7QUFDNUMsZ0VBQTZDO0FBQzdDLDBEQUF1QyJ9
|