@merkaly/api 0.6.0 → 0.6.3
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/account/address/request.validator.d.ts +2 -0
- package/dist/account/address/request.validator.js +13 -0
- package/dist/account/payment/request.validator.d.ts +2 -0
- package/dist/account/payment/request.validator.js +12 -0
- package/dist/account/user/request.validator.d.ts +2 -0
- package/dist/account/user/request.validator.js +11 -0
- package/dist/account/user/user.entity.d.ts +6 -1
- package/dist/app.schemas.d.ts +54 -0
- package/dist/app.types.d.ts +20 -0
- package/dist/finance/invoice/request.validator.d.ts +2 -0
- package/dist/finance/invoice/request.validator.js +15 -0
- package/dist/finance/payment/payment.entity.d.ts +5 -4
- package/dist/finance/payment/request.validator.d.ts +2 -0
- package/dist/finance/payment/request.validator.js +11 -0
- package/dist/finance/refund/refund.entity.d.ts +2 -1
- package/dist/finance/refund/request.validator.d.ts +2 -0
- package/dist/finance/refund/request.validator.js +11 -0
- package/dist/index.d.ts +32 -7
- package/dist/index.js +26 -2
- package/dist/inventory/catalog/attribute/request.validator.d.ts +2 -0
- package/dist/inventory/catalog/attribute/request.validator.js +11 -0
- package/dist/inventory/catalog/brand/request.validator.d.ts +2 -0
- package/dist/inventory/catalog/brand/request.validator.js +8 -0
- package/dist/inventory/catalog/category/category.entity.d.ts +3 -1
- package/dist/inventory/catalog/category/request.validator.d.ts +2 -0
- package/dist/inventory/catalog/category/request.validator.js +8 -0
- package/dist/inventory/catalog/collection/request.validator.d.ts +2 -0
- package/dist/inventory/catalog/collection/request.validator.js +10 -0
- package/dist/inventory/catalog/product/product.entity.d.ts +9 -5
- package/dist/inventory/catalog/product/request.validator.d.ts +12 -4
- package/dist/inventory/catalog/product/request.validator.js +50 -16
- package/dist/inventory/catalog/variant/request.validator.d.ts +3 -0
- package/dist/inventory/catalog/variant/request.validator.js +22 -0
- package/dist/inventory/catalog/variant/variant.entity.d.ts +5 -4
- package/dist/inventory/configuration/measurement/request.validator.d.ts +4 -0
- package/dist/inventory/configuration/measurement/request.validator.js +22 -0
- package/dist/inventory/stock/balance/balance.entity.d.ts +2 -0
- package/dist/inventory/stock/balance/balance.status.enum.d.ts +6 -0
- package/dist/inventory/stock/balance/balance.status.enum.js +7 -0
- package/dist/inventory/stock/balance/index.d.ts +1 -0
- package/dist/inventory/stock/balance/index.js +1 -1
- package/dist/inventory/stock/transfer/request.validator.d.ts +6 -2
- package/dist/inventory/stock/transfer/request.validator.js +22 -0
- package/dist/inventory/stock/transfer/transfer.item.entity.d.ts +2 -0
- package/dist/inventory/stock/warehouse/request.validator.d.ts +2 -0
- package/dist/inventory/stock/warehouse/request.validator.js +26 -0
- package/dist/order/purchase/item/item.entity.d.ts +3 -1
- package/dist/order/purchase/item/request.validator.d.ts +3 -0
- package/dist/order/purchase/item/request.validator.js +22 -0
- package/dist/order/purchase/transaction/request.validator.d.ts +5 -2
- package/dist/order/purchase/transaction/request.validator.js +26 -4
- package/dist/order/purchase/vendor/request.validator.d.ts +2 -0
- package/dist/order/purchase/vendor/request.validator.js +14 -0
- package/dist/order/sale/customer/request.validator.d.ts +2 -0
- package/dist/order/sale/customer/request.validator.js +17 -0
- package/dist/order/sale/item/item.entity.d.ts +3 -1
- package/dist/order/sale/item/request.validator.d.ts +3 -0
- package/dist/order/sale/item/request.validator.js +20 -0
- package/dist/order/sale/transaction/request.validator.d.ts +7 -2
- package/dist/order/sale/transaction/request.validator.js +31 -1
- package/dist/settings/organization/index.d.ts +1 -0
- package/dist/settings/organization/index.js +1 -0
- package/dist/settings/organization/organization.enum.d.ts +8 -12
- package/dist/settings/organization/organization.enum.js +8 -12
- package/dist/settings/organization/request.validator.d.ts +51 -0
- package/dist/settings/organization/request.validator.js +244 -0
- package/dist/transaction.entity.d.ts +3 -1
- package/package.json +16 -6
- package/dist/abstract.repository.d.ts +0 -63
- package/dist/finance/subscription/index.d.ts +0 -2
- package/dist/finance/subscription/index.js +0 -1
- package/dist/finance/subscription/subscription.entity.d.ts +0 -14
- package/dist/finance/subscription/subscription.enum.d.ts +0 -15
- package/dist/finance/subscription/subscription.enum.js +0 -17
- package/dist/finance/tax/index.d.ts +0 -2
- package/dist/finance/tax/index.js +0 -1
- package/dist/finance/tax/tax.entity.d.ts +0 -10
- package/dist/finance/tax/tax.enum.d.ts +0 -8
- package/dist/finance/tax/tax.enum.js +0 -9
- package/dist/not-equal-to.decorator.d.ts +0 -2
- package/dist/not-equal-to.decorator.js +0 -22
|
@@ -13,6 +13,14 @@ import * as abstract_validator_1 from '../../../index.js';
|
|
|
13
13
|
export class ProductAttributeRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
14
14
|
type;
|
|
15
15
|
values = [];
|
|
16
|
+
constructor(attribute) {
|
|
17
|
+
super();
|
|
18
|
+
if (!attribute) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.type = (attribute.type?._id || attribute.type);
|
|
22
|
+
this.values = attribute.values ?? [];
|
|
23
|
+
}
|
|
16
24
|
}
|
|
17
25
|
__decorate([
|
|
18
26
|
(0, class_validator_1.IsMongoId)(),
|
|
@@ -28,14 +36,43 @@ export class CreateProductRequestValidator extends abstract_validator_1.Abstract
|
|
|
28
36
|
name;
|
|
29
37
|
sku;
|
|
30
38
|
description;
|
|
31
|
-
|
|
39
|
+
sellPrice;
|
|
40
|
+
buyPrice;
|
|
32
41
|
minStockLevel;
|
|
33
|
-
measure = { amount:
|
|
42
|
+
measure = { amount: null, kind: null, unit: null };
|
|
34
43
|
pictures = [];
|
|
35
44
|
category;
|
|
36
45
|
brand;
|
|
37
46
|
hashtags = [];
|
|
38
47
|
attributes = [];
|
|
48
|
+
constructor(product) {
|
|
49
|
+
super();
|
|
50
|
+
if (!product) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.name = product.name;
|
|
54
|
+
this.sku = product.sku;
|
|
55
|
+
this.description = product.description;
|
|
56
|
+
this.sellPrice = product.sellPrice ?? product.price;
|
|
57
|
+
this.buyPrice = product.buyPrice ?? product.cost;
|
|
58
|
+
this.minStockLevel = product.minStockLevel ?? product.policy?.minStock;
|
|
59
|
+
this.category = (product.category?._id || product.category);
|
|
60
|
+
this.brand = (product.brand?._id || product.brand);
|
|
61
|
+
this.hashtags = product.hashtags ?? [];
|
|
62
|
+
if (product.measure !== undefined) {
|
|
63
|
+
const measureUnit = product.measure?.unit;
|
|
64
|
+
this.measure = {
|
|
65
|
+
amount: product.measure?.amount ?? null,
|
|
66
|
+
kind: (product.measure?.kind?._id || product.measure?.kind),
|
|
67
|
+
unit: (measureUnit?._id || measureUnit),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
this.pictures =
|
|
71
|
+
product.pictures?.map((picture) => (picture?._id || picture)) ?? this.pictures;
|
|
72
|
+
this.attributes =
|
|
73
|
+
product.attributes?.map((attribute) => new ProductAttributeRequestValidator(attribute)) ??
|
|
74
|
+
this.attributes;
|
|
75
|
+
}
|
|
39
76
|
}
|
|
40
77
|
__decorate([
|
|
41
78
|
(0, class_validator_1.IsString)(),
|
|
@@ -57,9 +94,16 @@ __decorate([
|
|
|
57
94
|
], CreateProductRequestValidator.prototype, "description", void 0);
|
|
58
95
|
__decorate([
|
|
59
96
|
(0, class_validator_1.IsInt)(),
|
|
60
|
-
(0, class_validator_1.
|
|
97
|
+
(0, class_validator_1.Min)(0),
|
|
98
|
+
(0, class_validator_1.IsOptional)(),
|
|
61
99
|
__metadata("design:type", Number)
|
|
62
|
-
], CreateProductRequestValidator.prototype, "
|
|
100
|
+
], CreateProductRequestValidator.prototype, "sellPrice", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, class_validator_1.IsInt)(),
|
|
103
|
+
(0, class_validator_1.Min)(0),
|
|
104
|
+
(0, class_validator_1.IsOptional)(),
|
|
105
|
+
__metadata("design:type", Number)
|
|
106
|
+
], CreateProductRequestValidator.prototype, "buyPrice", void 0);
|
|
63
107
|
__decorate([
|
|
64
108
|
(0, class_validator_1.IsInt)(),
|
|
65
109
|
(0, class_validator_1.Min)(0),
|
|
@@ -90,12 +134,14 @@ __decorate([
|
|
|
90
134
|
(0, class_validator_1.IsArray)(),
|
|
91
135
|
(0, class_validator_1.IsString)({ each: true }),
|
|
92
136
|
(0, class_validator_1.Length)(0, 50, { each: true }),
|
|
137
|
+
(0, class_validator_1.IsOptional)(),
|
|
93
138
|
__metadata("design:type", Array)
|
|
94
139
|
], CreateProductRequestValidator.prototype, "hashtags", void 0);
|
|
95
140
|
__decorate([
|
|
96
141
|
(0, class_validator_1.IsArray)(),
|
|
97
142
|
(0, class_transformer_1.Type)(() => ProductAttributeRequestValidator),
|
|
98
143
|
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
144
|
+
(0, class_validator_1.IsOptional)(),
|
|
99
145
|
__metadata("design:type", Array)
|
|
100
146
|
], CreateProductRequestValidator.prototype, "attributes", void 0);
|
|
101
147
|
export class UpdateProductRequestValidator extends CreateProductRequestValidator {
|
|
@@ -104,19 +150,7 @@ __decorate([
|
|
|
104
150
|
(0, class_validator_1.IsOptional)(),
|
|
105
151
|
__metadata("design:type", String)
|
|
106
152
|
], UpdateProductRequestValidator.prototype, "name", void 0);
|
|
107
|
-
__decorate([
|
|
108
|
-
(0, class_validator_1.IsOptional)(),
|
|
109
|
-
__metadata("design:type", Number)
|
|
110
|
-
], UpdateProductRequestValidator.prototype, "price", void 0);
|
|
111
153
|
__decorate([
|
|
112
154
|
(0, class_validator_1.IsOptional)(),
|
|
113
155
|
__metadata("design:type", Object)
|
|
114
156
|
], UpdateProductRequestValidator.prototype, "measure", void 0);
|
|
115
|
-
__decorate([
|
|
116
|
-
(0, class_validator_1.IsOptional)(),
|
|
117
|
-
__metadata("design:type", Array)
|
|
118
|
-
], UpdateProductRequestValidator.prototype, "hashtags", void 0);
|
|
119
|
-
__decorate([
|
|
120
|
-
(0, class_validator_1.IsOptional)(),
|
|
121
|
-
__metadata("design:type", Array)
|
|
122
|
-
], UpdateProductRequestValidator.prototype, "attributes", void 0);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
import type { CatalogVariantEntity } from './';
|
|
2
3
|
export declare class VariantOptionRequestValidator extends AbstractRequestValidator {
|
|
3
4
|
type: string;
|
|
4
5
|
value: string;
|
|
6
|
+
constructor(option?: CatalogVariantEntity['options'][number]);
|
|
5
7
|
}
|
|
6
8
|
export declare class CreateVariantRequestValidator extends AbstractRequestValidator {
|
|
7
9
|
product?: string;
|
|
@@ -11,6 +13,7 @@ export declare class CreateVariantRequestValidator extends AbstractRequestValida
|
|
|
11
13
|
options?: VariantOptionRequestValidator[];
|
|
12
14
|
active?: boolean;
|
|
13
15
|
gtin?: string;
|
|
16
|
+
constructor(variant?: CatalogVariantEntity);
|
|
14
17
|
}
|
|
15
18
|
export declare class UpdateVariantRequestValidator extends CreateVariantRequestValidator {
|
|
16
19
|
}
|
|
@@ -13,6 +13,14 @@ import * as abstract_validator_1 from '../../../index.js';
|
|
|
13
13
|
export class VariantOptionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
14
14
|
type;
|
|
15
15
|
value;
|
|
16
|
+
constructor(option) {
|
|
17
|
+
super();
|
|
18
|
+
if (!option) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.type = (option.type?._id || option.type);
|
|
22
|
+
this.value = option.value;
|
|
23
|
+
}
|
|
16
24
|
}
|
|
17
25
|
__decorate([
|
|
18
26
|
(0, class_validator_1.IsMongoId)(),
|
|
@@ -32,6 +40,20 @@ export class CreateVariantRequestValidator extends abstract_validator_1.Abstract
|
|
|
32
40
|
options = [];
|
|
33
41
|
active;
|
|
34
42
|
gtin;
|
|
43
|
+
constructor(variant) {
|
|
44
|
+
super();
|
|
45
|
+
if (!variant) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.product = (variant.product?._id || variant.product);
|
|
49
|
+
this.sku = variant.identifier?.sku;
|
|
50
|
+
this.price = variant.price;
|
|
51
|
+
this.minStockLevel = variant.policy?.minStock;
|
|
52
|
+
this.active = variant.active;
|
|
53
|
+
this.gtin = variant.identifier?.gtin;
|
|
54
|
+
this.options =
|
|
55
|
+
variant.options?.map((option) => new VariantOptionRequestValidator(option)) ?? this.options;
|
|
56
|
+
}
|
|
35
57
|
}
|
|
36
58
|
__decorate([
|
|
37
59
|
(0, class_validator_1.IsMongoId)(),
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { AssetEntity } from '../../../assets/asset';
|
|
2
|
-
import { StockBalanceStatusEnum } from '
|
|
2
|
+
import { StockBalanceStatusEnum } from '../../stock/balance';
|
|
3
3
|
import { AbstractEntity } from '../../..';
|
|
4
|
+
import { VariantIdentifierEntity } from '../../..';
|
|
5
|
+
import { VariantPolicyEntity } from '../../..';
|
|
4
6
|
import type { CatalogAttributeEntity } from '../attribute';
|
|
5
7
|
import type { CatalogProductEntity } from '../product';
|
|
6
8
|
import type { StockBalanceEntity } from '../../stock/balance';
|
|
7
9
|
export declare class CatalogVariantEntity extends AbstractEntity {
|
|
8
10
|
product?: CatalogProductEntity;
|
|
9
|
-
sku?: string;
|
|
10
11
|
price: number;
|
|
11
|
-
|
|
12
|
+
policy: VariantPolicyEntity;
|
|
13
|
+
identifier: VariantIdentifierEntity;
|
|
12
14
|
options: {
|
|
13
15
|
type: CatalogAttributeEntity;
|
|
14
16
|
value: string;
|
|
15
17
|
}[];
|
|
16
18
|
active: boolean;
|
|
17
|
-
gtin?: string;
|
|
18
19
|
pictures: AssetEntity[];
|
|
19
20
|
readonly total: number;
|
|
20
21
|
readonly stock: number;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
import type { ConfigurationMeasurementEntity } from './';
|
|
3
|
+
import type { ConfigurationUnitEntity } from '../unit';
|
|
2
4
|
export declare class ConfigurationUnitRequestValidator extends AbstractRequestValidator {
|
|
3
5
|
active?: boolean;
|
|
4
6
|
description?: string;
|
|
5
7
|
isBaseUnit?: boolean;
|
|
6
8
|
name: string;
|
|
7
9
|
symbol: string;
|
|
10
|
+
constructor(unit?: ConfigurationUnitEntity);
|
|
8
11
|
}
|
|
9
12
|
export declare class CreateConfigurationMeasurementRequestValidator extends AbstractRequestValidator {
|
|
10
13
|
name: string;
|
|
11
14
|
description?: string;
|
|
12
15
|
active?: boolean;
|
|
13
16
|
units?: ConfigurationUnitRequestValidator[];
|
|
17
|
+
constructor(measurement?: ConfigurationMeasurementEntity);
|
|
14
18
|
}
|
|
15
19
|
export declare class UpdateConfigurationMeasurementRequestValidator extends CreateConfigurationMeasurementRequestValidator {
|
|
16
20
|
name: string;
|
|
@@ -16,6 +16,17 @@ export class ConfigurationUnitRequestValidator extends abstract_validator_1.Abst
|
|
|
16
16
|
isBaseUnit;
|
|
17
17
|
name;
|
|
18
18
|
symbol;
|
|
19
|
+
constructor(unit) {
|
|
20
|
+
super();
|
|
21
|
+
if (!unit) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.active = unit.active;
|
|
25
|
+
this.description = unit.description;
|
|
26
|
+
this.isBaseUnit = unit.isBaseUnit;
|
|
27
|
+
this.name = unit.name;
|
|
28
|
+
this.symbol = unit.symbol;
|
|
29
|
+
}
|
|
19
30
|
}
|
|
20
31
|
__decorate([
|
|
21
32
|
(0, class_validator_1.IsBoolean)(),
|
|
@@ -50,6 +61,17 @@ export class CreateConfigurationMeasurementRequestValidator extends abstract_val
|
|
|
50
61
|
description;
|
|
51
62
|
active;
|
|
52
63
|
units = [];
|
|
64
|
+
constructor(measurement) {
|
|
65
|
+
super();
|
|
66
|
+
if (!measurement) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.name = measurement.name;
|
|
70
|
+
this.description = measurement.description;
|
|
71
|
+
this.active = measurement.active;
|
|
72
|
+
this.units =
|
|
73
|
+
measurement.units?.map((unit) => new ConfigurationUnitRequestValidator(unit)) ?? [];
|
|
74
|
+
}
|
|
53
75
|
}
|
|
54
76
|
__decorate([
|
|
55
77
|
(0, class_validator_1.IsString)(),
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { CatalogProductEntity } from '../../catalog/product';
|
|
1
2
|
import { CatalogVariantEntity } from '../../catalog/variant';
|
|
2
3
|
import { StockWarehouseEntity } from '../warehouse';
|
|
3
4
|
import { AbstractEntity } from '../../..';
|
|
4
5
|
export declare class StockBalanceEntity extends AbstractEntity {
|
|
5
6
|
warehouse: StockWarehouseEntity;
|
|
6
7
|
variant: CatalogVariantEntity;
|
|
8
|
+
readonly product: CatalogProductEntity;
|
|
7
9
|
stock: number;
|
|
8
10
|
reserved: number;
|
|
9
11
|
incoming: number;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var StockBalanceStatusEnum;
|
|
2
|
+
(function (StockBalanceStatusEnum) {
|
|
3
|
+
StockBalanceStatusEnum["HEALTHY"] = "healthy";
|
|
4
|
+
StockBalanceStatusEnum["NOT_CONFIGURED"] = "not_configured";
|
|
5
|
+
StockBalanceStatusEnum["OUT_STOCK"] = "out_stock";
|
|
6
|
+
StockBalanceStatusEnum["LOW_STOCK"] = "low_stock";
|
|
7
|
+
})(StockBalanceStatusEnum || (StockBalanceStatusEnum = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export * from './balance.status.enum.js';
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { TransferStatusEnum } from './';
|
|
2
2
|
import { AbstractRequestValidator } from '../../..';
|
|
3
|
+
import type { StockTransferEntity } from './';
|
|
4
|
+
import type { StockTransferItemEntity } from './';
|
|
3
5
|
export declare class StockTransferItemRequestValidator extends AbstractRequestValidator {
|
|
4
6
|
product: string;
|
|
5
7
|
variant: string;
|
|
6
8
|
quantity: number;
|
|
7
9
|
notes?: string;
|
|
10
|
+
constructor(item?: StockTransferItemEntity);
|
|
8
11
|
}
|
|
9
12
|
export declare class CreateStockTransferRequestValidator extends AbstractRequestValidator {
|
|
10
|
-
origin
|
|
11
|
-
destination
|
|
13
|
+
origin?: string;
|
|
14
|
+
destination?: string;
|
|
12
15
|
items: StockTransferItemRequestValidator[];
|
|
13
16
|
notes?: string;
|
|
14
17
|
status?: TransferStatusEnum;
|
|
18
|
+
constructor(transfer?: StockTransferEntity);
|
|
15
19
|
}
|
|
16
20
|
export declare class UpdateStockTransferRequestValidator extends CreateStockTransferRequestValidator {
|
|
17
21
|
origin: string;
|
|
@@ -17,6 +17,16 @@ export class StockTransferItemRequestValidator extends abstract_validator_1.Abst
|
|
|
17
17
|
variant;
|
|
18
18
|
quantity;
|
|
19
19
|
notes;
|
|
20
|
+
constructor(item) {
|
|
21
|
+
super();
|
|
22
|
+
if (!item) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.product = (item.product?._id || item.product);
|
|
26
|
+
this.variant = (item.variant?._id || item.variant);
|
|
27
|
+
this.quantity = item.quantity;
|
|
28
|
+
this.notes = item.notes;
|
|
29
|
+
}
|
|
20
30
|
}
|
|
21
31
|
__decorate([
|
|
22
32
|
(0, class_validator_1.IsMongoId)(),
|
|
@@ -43,6 +53,18 @@ export class CreateStockTransferRequestValidator extends abstract_validator_1.Ab
|
|
|
43
53
|
items;
|
|
44
54
|
notes;
|
|
45
55
|
status;
|
|
56
|
+
constructor(transfer) {
|
|
57
|
+
super();
|
|
58
|
+
if (!transfer) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.origin = (transfer.origin?._id || transfer.origin);
|
|
62
|
+
this.destination = (transfer.destination?._id || transfer.destination);
|
|
63
|
+
this.notes = transfer.notes;
|
|
64
|
+
this.status = transfer.status;
|
|
65
|
+
this.items =
|
|
66
|
+
transfer.items?.map((item) => new StockTransferItemRequestValidator(item)) ?? this.items;
|
|
67
|
+
}
|
|
46
68
|
}
|
|
47
69
|
__decorate([
|
|
48
70
|
(0, class_validator_1.IsMongoId)(),
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { CatalogProductEntity } from '../../catalog/product';
|
|
2
2
|
import { CatalogVariantEntity } from '../../catalog/variant';
|
|
3
3
|
import { AbstractEntity } from '../../..';
|
|
4
|
+
import type { StockBalanceEntity } from '../balance';
|
|
4
5
|
export declare class StockTransferItemEntity extends AbstractEntity {
|
|
5
6
|
product: CatalogProductEntity;
|
|
6
7
|
variant: CatalogVariantEntity;
|
|
7
8
|
quantity: number;
|
|
8
9
|
notes?: string;
|
|
10
|
+
readonly balance: StockBalanceEntity;
|
|
9
11
|
readonly isProcessable: boolean;
|
|
10
12
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { AbstractRequestValidator } from '../../..';
|
|
2
2
|
import { AddressValidator } from '../../..';
|
|
3
|
+
import type { StockWarehouseEntity } from './';
|
|
3
4
|
export declare class CreateStockWarehouseRequestValidator extends AbstractRequestValidator {
|
|
4
5
|
name: string;
|
|
5
6
|
description?: string;
|
|
6
7
|
address?: AddressValidator;
|
|
7
8
|
isDefault?: boolean;
|
|
8
9
|
active?: boolean;
|
|
10
|
+
constructor(warehouse?: StockWarehouseEntity);
|
|
9
11
|
}
|
|
10
12
|
export declare class UpdateStockWarehouseRequestValidator extends CreateStockWarehouseRequestValidator {
|
|
11
13
|
name: string;
|
|
@@ -17,6 +17,32 @@ export class CreateStockWarehouseRequestValidator extends abstract_validator_1.A
|
|
|
17
17
|
address;
|
|
18
18
|
isDefault;
|
|
19
19
|
active;
|
|
20
|
+
constructor(warehouse) {
|
|
21
|
+
super();
|
|
22
|
+
if (!warehouse) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.name = warehouse.name;
|
|
26
|
+
this.description = warehouse.description;
|
|
27
|
+
this.isDefault = warehouse.isDefault;
|
|
28
|
+
this.active = warehouse.active;
|
|
29
|
+
const address = warehouse.address;
|
|
30
|
+
const location = address?.location;
|
|
31
|
+
this.address = address
|
|
32
|
+
? Object.assign(new address_validator_1.AddressValidator(), {
|
|
33
|
+
line1: address.line1,
|
|
34
|
+
line2: address.line2,
|
|
35
|
+
name: address.name,
|
|
36
|
+
city: address.city,
|
|
37
|
+
state: address.state,
|
|
38
|
+
locality: address.locality,
|
|
39
|
+
country: address.country,
|
|
40
|
+
code: address.code,
|
|
41
|
+
latitude: location?.lat,
|
|
42
|
+
longitude: location?.lng,
|
|
43
|
+
})
|
|
44
|
+
: undefined;
|
|
45
|
+
}
|
|
20
46
|
}
|
|
21
47
|
__decorate([
|
|
22
48
|
(0, class_validator_1.IsString)(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CatalogProductEntity } from '../../../inventory/catalog/product';
|
|
2
2
|
import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
|
|
3
|
+
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
3
4
|
import { StockWarehouseEntity } from '../../../inventory/stock/warehouse';
|
|
4
5
|
import { AbstractEntity } from '../../..';
|
|
5
|
-
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
6
6
|
interface ItemPricing {
|
|
7
7
|
product: number;
|
|
8
8
|
readonly total: number;
|
|
@@ -16,6 +16,8 @@ export declare class ItemEntity extends AbstractEntity {
|
|
|
16
16
|
quantity: number;
|
|
17
17
|
notes: string;
|
|
18
18
|
price: ItemPricing;
|
|
19
|
+
readonly 'price.unit': number;
|
|
20
|
+
readonly 'price.total': number;
|
|
19
21
|
readonly balance?: StockBalanceEntity;
|
|
20
22
|
readonly isProcessable: boolean;
|
|
21
23
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
import type { ItemEntity } from '../../sale/item';
|
|
2
3
|
export declare class PurchaseItemRequestValidator extends AbstractRequestValidator {
|
|
4
|
+
product: string;
|
|
3
5
|
variant: string;
|
|
4
6
|
warehouse?: string;
|
|
5
7
|
quantity: number;
|
|
6
8
|
price: number;
|
|
7
9
|
notes: string;
|
|
10
|
+
constructor(item?: ItemEntity);
|
|
8
11
|
get total(): number;
|
|
9
12
|
}
|
|
@@ -10,15 +10,37 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import * as class_validator_1 from "class-validator";
|
|
11
11
|
import * as abstract_validator_1 from '../../../index.js';
|
|
12
12
|
export class PurchaseItemRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
13
|
+
product;
|
|
13
14
|
variant;
|
|
14
15
|
warehouse;
|
|
15
16
|
quantity = 1;
|
|
16
17
|
price = 0;
|
|
17
18
|
notes = String();
|
|
19
|
+
constructor(item) {
|
|
20
|
+
super();
|
|
21
|
+
if (!item) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.product = (item.product?._id || item.product);
|
|
25
|
+
this.variant = (item.variant?._id || item.variant);
|
|
26
|
+
this.warehouse = (item.warehouse?._id || item.warehouse);
|
|
27
|
+
if (item.quantity !== undefined) {
|
|
28
|
+
this.quantity = item.quantity;
|
|
29
|
+
}
|
|
30
|
+
this.price = item.price?.unit || item.get?.('price.unit') || this.price;
|
|
31
|
+
if (item.notes !== undefined) {
|
|
32
|
+
this.notes = item.notes;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
18
35
|
get total() {
|
|
19
36
|
return Math.round(this.quantity * this.price);
|
|
20
37
|
}
|
|
21
38
|
}
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsMongoId)(),
|
|
41
|
+
(0, class_validator_1.IsOptional)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], PurchaseItemRequestValidator.prototype, "product", void 0);
|
|
22
44
|
__decorate([
|
|
23
45
|
(0, class_validator_1.IsMongoId)(),
|
|
24
46
|
__metadata("design:type", String)
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { FinancePaymentStatusEnum } from '../../../finance/payment';
|
|
1
|
+
import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../../finance/payment';
|
|
2
2
|
import { PurchaseTransactionStatusEnum } from './';
|
|
3
3
|
import { AbstractRequestValidator } from '../../..';
|
|
4
4
|
import { PurchaseItemRequestValidator } from '../item';
|
|
5
|
+
import type { PurchaseTransactionEntity } from './transaction.entity.js';
|
|
5
6
|
export declare class CreatePurchaseTransactionRequestValidator extends AbstractRequestValidator {
|
|
6
7
|
items: PurchaseItemRequestValidator[];
|
|
8
|
+
method: FinancePaymentMethodEnum;
|
|
7
9
|
notes?: string;
|
|
8
10
|
vendor?: string;
|
|
9
11
|
warehouse?: string;
|
|
10
12
|
payment: FinancePaymentStatusEnum;
|
|
11
13
|
status?: PurchaseTransactionStatusEnum;
|
|
14
|
+
constructor(order?: PurchaseTransactionEntity);
|
|
12
15
|
get total(): {
|
|
13
16
|
units: number;
|
|
14
17
|
price: number;
|
|
@@ -16,5 +19,5 @@ export declare class CreatePurchaseTransactionRequestValidator extends AbstractR
|
|
|
16
19
|
}
|
|
17
20
|
export declare class UpdatePurchaseTransactionRequestValidator extends CreatePurchaseTransactionRequestValidator {
|
|
18
21
|
items: PurchaseItemRequestValidator[];
|
|
19
|
-
|
|
22
|
+
method: FinancePaymentMethodEnum;
|
|
20
23
|
}
|
|
@@ -15,11 +15,30 @@ import * as abstract_validator_1 from '../../../index.js';
|
|
|
15
15
|
import * as request_validator_1 from '../item/index.js';
|
|
16
16
|
export class CreatePurchaseTransactionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
17
17
|
items = [];
|
|
18
|
+
method;
|
|
18
19
|
notes;
|
|
19
20
|
vendor;
|
|
20
21
|
warehouse;
|
|
21
22
|
payment = payment_enum_1.FinancePaymentStatusEnum.PENDING;
|
|
22
23
|
status = transaction_enum_1.PurchaseTransactionStatusEnum.OPEN;
|
|
24
|
+
constructor(order) {
|
|
25
|
+
super();
|
|
26
|
+
if (!order) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.notes = order.notes;
|
|
30
|
+
this.method = order.payment?.method;
|
|
31
|
+
this.vendor = (order.vendor?._id || order.vendor);
|
|
32
|
+
if (order.status !== undefined) {
|
|
33
|
+
this.status = order.status;
|
|
34
|
+
}
|
|
35
|
+
if (order.payment?.status !== undefined) {
|
|
36
|
+
this.payment = order.payment.status;
|
|
37
|
+
}
|
|
38
|
+
const [warehouse] = [...new Set(order.items?.map((item) => item.warehouse).filter(Boolean))];
|
|
39
|
+
this.warehouse = (warehouse?._id || warehouse);
|
|
40
|
+
this.items = order.items?.map((it) => new request_validator_1.PurchaseItemRequestValidator(it)) ?? this.items;
|
|
41
|
+
}
|
|
23
42
|
get total() {
|
|
24
43
|
return this.items.reduce((acc, item) => {
|
|
25
44
|
acc.units += item.quantity;
|
|
@@ -34,6 +53,10 @@ __decorate([
|
|
|
34
53
|
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
35
54
|
__metadata("design:type", Array)
|
|
36
55
|
], CreatePurchaseTransactionRequestValidator.prototype, "items", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], CreatePurchaseTransactionRequestValidator.prototype, "method", void 0);
|
|
37
60
|
__decorate([
|
|
38
61
|
(0, class_validator_1.IsString)(),
|
|
39
62
|
(0, class_validator_1.Length)(0, 500),
|
|
@@ -69,7 +92,6 @@ __decorate([
|
|
|
69
92
|
__metadata("design:type", Array)
|
|
70
93
|
], UpdatePurchaseTransactionRequestValidator.prototype, "items", void 0);
|
|
71
94
|
__decorate([
|
|
72
|
-
(0, class_validator_1.
|
|
73
|
-
(
|
|
74
|
-
|
|
75
|
-
], UpdatePurchaseTransactionRequestValidator.prototype, "payment", void 0);
|
|
95
|
+
(0, class_validator_1.IsOptional)(),
|
|
96
|
+
__metadata("design:type", String)
|
|
97
|
+
], UpdatePurchaseTransactionRequestValidator.prototype, "method", void 0);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
import type { PurchaseVendorEntity } from './';
|
|
2
3
|
export declare class CreatePurchaseVendorRequestValidator extends AbstractRequestValidator {
|
|
3
4
|
name: string;
|
|
4
5
|
description?: string;
|
|
@@ -8,6 +9,7 @@ export declare class CreatePurchaseVendorRequestValidator extends AbstractReques
|
|
|
8
9
|
website?: string;
|
|
9
10
|
taxId?: string;
|
|
10
11
|
active?: boolean;
|
|
12
|
+
constructor(vendor?: PurchaseVendorEntity);
|
|
11
13
|
}
|
|
12
14
|
export declare class UpdatePurchaseVendorRequestValidator extends CreatePurchaseVendorRequestValidator {
|
|
13
15
|
name: string;
|
|
@@ -18,6 +18,20 @@ export class CreatePurchaseVendorRequestValidator extends abstract_validator_1.A
|
|
|
18
18
|
website;
|
|
19
19
|
taxId;
|
|
20
20
|
active;
|
|
21
|
+
constructor(vendor) {
|
|
22
|
+
super();
|
|
23
|
+
if (!vendor) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this.name = vendor.name;
|
|
27
|
+
this.description = vendor.description;
|
|
28
|
+
this.email = vendor.email;
|
|
29
|
+
this.logo = vendor.logo;
|
|
30
|
+
this.phone = vendor.phone;
|
|
31
|
+
this.website = vendor.website;
|
|
32
|
+
this.taxId = vendor.taxId;
|
|
33
|
+
this.active = vendor.active;
|
|
34
|
+
}
|
|
21
35
|
}
|
|
22
36
|
__decorate([
|
|
23
37
|
(0, class_validator_1.IsString)(),
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SaleCustomerTypeEnum } from './';
|
|
2
2
|
import { AbstractRequestValidator } from '../../..';
|
|
3
|
+
import type { SaleCustomerEntity } from './';
|
|
3
4
|
export declare class CreateSaleCustomerRequestValidator extends AbstractRequestValidator {
|
|
4
5
|
name: string;
|
|
5
6
|
type: SaleCustomerTypeEnum;
|
|
@@ -10,6 +11,7 @@ export declare class CreateSaleCustomerRequestValidator extends AbstractRequestV
|
|
|
10
11
|
website?: string;
|
|
11
12
|
taxId?: string;
|
|
12
13
|
active?: boolean;
|
|
14
|
+
constructor(customer?: SaleCustomerEntity);
|
|
13
15
|
}
|
|
14
16
|
export declare class UpdateSaleCustomerRequestValidator extends CreateSaleCustomerRequestValidator {
|
|
15
17
|
name: string;
|
|
@@ -20,6 +20,23 @@ export class CreateSaleCustomerRequestValidator extends abstract_validator_1.Abs
|
|
|
20
20
|
website;
|
|
21
21
|
taxId;
|
|
22
22
|
active;
|
|
23
|
+
constructor(customer) {
|
|
24
|
+
super();
|
|
25
|
+
if (!customer) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.name = customer.name;
|
|
29
|
+
this.description = customer.description;
|
|
30
|
+
this.email = customer.email;
|
|
31
|
+
this.logo = customer.logo;
|
|
32
|
+
this.phone = customer.phone;
|
|
33
|
+
this.website = customer.website;
|
|
34
|
+
this.taxId = customer.taxId;
|
|
35
|
+
this.active = customer.active;
|
|
36
|
+
if (customer.type !== undefined) {
|
|
37
|
+
this.type = customer.type;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
23
40
|
}
|
|
24
41
|
__decorate([
|
|
25
42
|
(0, class_validator_1.IsString)(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CatalogProductEntity } from '../../../inventory/catalog/product';
|
|
2
2
|
import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
|
|
3
|
+
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
3
4
|
import { StockWarehouseEntity } from '../../../inventory/stock/warehouse';
|
|
4
5
|
import { AbstractEntity } from '../../..';
|
|
5
|
-
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
6
6
|
interface ItemPricing {
|
|
7
7
|
product: number;
|
|
8
8
|
readonly total: number;
|
|
@@ -16,6 +16,8 @@ export declare class ItemEntity extends AbstractEntity {
|
|
|
16
16
|
quantity: number;
|
|
17
17
|
notes: string;
|
|
18
18
|
price: ItemPricing;
|
|
19
|
+
readonly 'price.unit': number;
|
|
20
|
+
readonly 'price.total': number;
|
|
19
21
|
readonly balance?: StockBalanceEntity;
|
|
20
22
|
readonly isProcessable: boolean;
|
|
21
23
|
}
|