@things-factory/warehouse-base 4.3.669 → 4.3.671
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/package.json +10 -10
- package/dist-server/constants/adjustment-code.js +0 -13
- package/dist-server/constants/adjustment-code.js.map +0 -1
- package/dist-server/constants/index.js +0 -23
- package/dist-server/constants/index.js.map +0 -1
- package/dist-server/constants/inventory.js +0 -74
- package/dist-server/constants/inventory.js.map +0 -1
- package/dist-server/constants/location.js +0 -19
- package/dist-server/constants/location.js.map +0 -1
- package/dist-server/constants/pallet.js +0 -13
- package/dist-server/constants/pallet.js.map +0 -1
- package/dist-server/constants/rule-type.js +0 -8
- package/dist-server/constants/rule-type.js.map +0 -1
- package/dist-server/constants/tote.js +0 -9
- package/dist-server/constants/tote.js.map +0 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +0 -125
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +0 -1
- package/dist-server/controllers/ecommerce/index.js +0 -22
- package/dist-server/controllers/ecommerce/index.js.map +0 -1
- package/dist-server/controllers/ecommerce/pos-controller.js +0 -65
- package/dist-server/controllers/ecommerce/pos-controller.js.map +0 -1
- package/dist-server/controllers/ecommerce/powrup-controller.js +0 -87
- package/dist-server/controllers/ecommerce/powrup-controller.js.map +0 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +0 -85
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +0 -1
- package/dist-server/controllers/ecommerce/webspert-controller.js +0 -131
- package/dist-server/controllers/ecommerce/webspert-controller.js.map +0 -1
- package/dist-server/controllers/index.js +0 -19
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/controllers/warehouse-controller.js +0 -143
- package/dist-server/controllers/warehouse-controller.js.map +0 -1
- package/dist-server/index.js +0 -35
- package/dist-server/index.js.map +0 -1
- package/dist-server/middlewares/index.js +0 -1
- package/dist-server/middlewares/index.js.map +0 -1
- package/dist-server/migrations/index.js +0 -12
- package/dist-server/migrations/index.js.map +0 -1
- package/dist-server/service/index.js +0 -96
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/service/inventory/index.js +0 -9
- package/dist-server/service/inventory/index.js.map +0 -1
- package/dist-server/service/inventory/inventory-mutation.js +0 -414
- package/dist-server/service/inventory/inventory-mutation.js.map +0 -1
- package/dist-server/service/inventory/inventory-query.js +0 -1211
- package/dist-server/service/inventory/inventory-query.js.map +0 -1
- package/dist-server/service/inventory/inventory-types.js +0 -478
- package/dist-server/service/inventory/inventory-types.js.map +0 -1
- package/dist-server/service/inventory/inventory.js +0 -569
- package/dist-server/service/inventory/inventory.js.map +0 -1
- package/dist-server/service/inventory-change/index.js +0 -9
- package/dist-server/service/inventory-change/index.js.map +0 -1
- package/dist-server/service/inventory-change/inventory-change-mutation.js +0 -1188
- package/dist-server/service/inventory-change/inventory-change-mutation.js.map +0 -1
- package/dist-server/service/inventory-change/inventory-change-query.js +0 -150
- package/dist-server/service/inventory-change/inventory-change-query.js.map +0 -1
- package/dist-server/service/inventory-change/inventory-change-types.js +0 -73
- package/dist-server/service/inventory-change/inventory-change-types.js.map +0 -1
- package/dist-server/service/inventory-change/inventory-change.js +0 -225
- package/dist-server/service/inventory-change/inventory-change.js.map +0 -1
- package/dist-server/service/inventory-history/index.js +0 -9
- package/dist-server/service/inventory-history/index.js.map +0 -1
- package/dist-server/service/inventory-history/inventory-history-mutation.js +0 -121
- package/dist-server/service/inventory-history/inventory-history-mutation.js.map +0 -1
- package/dist-server/service/inventory-history/inventory-history-query.js +0 -1694
- package/dist-server/service/inventory-history/inventory-history-query.js.map +0 -1
- package/dist-server/service/inventory-history/inventory-history-types.js +0 -626
- package/dist-server/service/inventory-history/inventory-history-types.js.map +0 -1
- package/dist-server/service/inventory-history/inventory-history.js +0 -238
- package/dist-server/service/inventory-history/inventory-history.js.map +0 -1
- package/dist-server/service/inventory-item/index.js +0 -9
- package/dist-server/service/inventory-item/index.js.map +0 -1
- package/dist-server/service/inventory-item/inventory-item-mutation.js +0 -274
- package/dist-server/service/inventory-item/inventory-item-mutation.js.map +0 -1
- package/dist-server/service/inventory-item/inventory-item-query.js +0 -265
- package/dist-server/service/inventory-item/inventory-item-query.js.map +0 -1
- package/dist-server/service/inventory-item/inventory-item-type.js +0 -127
- package/dist-server/service/inventory-item/inventory-item-type.js.map +0 -1
- package/dist-server/service/inventory-item/inventory-item.js +0 -146
- package/dist-server/service/inventory-item/inventory-item.js.map +0 -1
- package/dist-server/service/inventory-item-change/index.js +0 -9
- package/dist-server/service/inventory-item-change/index.js.map +0 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js +0 -121
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js.map +0 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js +0 -87
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js.map +0 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js +0 -107
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js.map +0 -1
- package/dist-server/service/inventory-item-change/inventory-item-change.js +0 -110
- package/dist-server/service/inventory-item-change/inventory-item-change.js.map +0 -1
- package/dist-server/service/inventory-product/index.js +0 -9
- package/dist-server/service/inventory-product/index.js.map +0 -1
- package/dist-server/service/inventory-product/inventory-product-mutation.js +0 -120
- package/dist-server/service/inventory-product/inventory-product-mutation.js.map +0 -1
- package/dist-server/service/inventory-product/inventory-product-query.js +0 -87
- package/dist-server/service/inventory-product/inventory-product-query.js.map +0 -1
- package/dist-server/service/inventory-product/inventory-product-type.js +0 -95
- package/dist-server/service/inventory-product/inventory-product-type.js.map +0 -1
- package/dist-server/service/inventory-product/inventory-product.js +0 -112
- package/dist-server/service/inventory-product/inventory-product.js.map +0 -1
- package/dist-server/service/location/index.js +0 -9
- package/dist-server/service/location/index.js.map +0 -1
- package/dist-server/service/location/location-mutation.js +0 -279
- package/dist-server/service/location/location-mutation.js.map +0 -1
- package/dist-server/service/location/location-query.js +0 -321
- package/dist-server/service/location/location-query.js.map +0 -1
- package/dist-server/service/location/location-types.js +0 -296
- package/dist-server/service/location/location-types.js.map +0 -1
- package/dist-server/service/location/location.js +0 -146
- package/dist-server/service/location/location.js.map +0 -1
- package/dist-server/service/movement/index.js +0 -9
- package/dist-server/service/movement/index.js.map +0 -1
- package/dist-server/service/movement/movement-mutation.js +0 -80
- package/dist-server/service/movement/movement-mutation.js.map +0 -1
- package/dist-server/service/movement/movement-query.js +0 -286
- package/dist-server/service/movement/movement-query.js.map +0 -1
- package/dist-server/service/movement/movement-types.js +0 -117
- package/dist-server/service/movement/movement-types.js.map +0 -1
- package/dist-server/service/movement/movement.js +0 -101
- package/dist-server/service/movement/movement.js.map +0 -1
- package/dist-server/service/pallet/index.js +0 -9
- package/dist-server/service/pallet/index.js.map +0 -1
- package/dist-server/service/pallet/pallet-mutation.js +0 -194
- package/dist-server/service/pallet/pallet-mutation.js.map +0 -1
- package/dist-server/service/pallet/pallet-query.js +0 -164
- package/dist-server/service/pallet/pallet-query.js.map +0 -1
- package/dist-server/service/pallet/pallet-types.js +0 -109
- package/dist-server/service/pallet/pallet-types.js.map +0 -1
- package/dist-server/service/pallet/pallet.js +0 -112
- package/dist-server/service/pallet/pallet.js.map +0 -1
- package/dist-server/service/pallet-count/index.js +0 -9
- package/dist-server/service/pallet-count/index.js.map +0 -1
- package/dist-server/service/pallet-count/pallet-count-mutation.js +0 -153
- package/dist-server/service/pallet-count/pallet-count-mutation.js.map +0 -1
- package/dist-server/service/pallet-count/pallet-count-query.js +0 -86
- package/dist-server/service/pallet-count/pallet-count-query.js.map +0 -1
- package/dist-server/service/pallet-count/pallet-count-types.js +0 -65
- package/dist-server/service/pallet-count/pallet-count-types.js.map +0 -1
- package/dist-server/service/pallet-count/pallet-count.js +0 -89
- package/dist-server/service/pallet-count/pallet-count.js.map +0 -1
- package/dist-server/service/pallet-history/index.js +0 -9
- package/dist-server/service/pallet-history/index.js.map +0 -1
- package/dist-server/service/pallet-history/pallet-history-mutation.js +0 -120
- package/dist-server/service/pallet-history/pallet-history-mutation.js.map +0 -1
- package/dist-server/service/pallet-history/pallet-history-query.js +0 -87
- package/dist-server/service/pallet-history/pallet-history-query.js.map +0 -1
- package/dist-server/service/pallet-history/pallet-history-types.js +0 -65
- package/dist-server/service/pallet-history/pallet-history-types.js.map +0 -1
- package/dist-server/service/pallet-history/pallet-history.js +0 -107
- package/dist-server/service/pallet-history/pallet-history.js.map +0 -1
- package/dist-server/service/product-detail-stock/index.js +0 -9
- package/dist-server/service/product-detail-stock/index.js.map +0 -1
- package/dist-server/service/product-detail-stock/product-detail-stock-mutation.js +0 -120
- package/dist-server/service/product-detail-stock/product-detail-stock-mutation.js.map +0 -1
- package/dist-server/service/product-detail-stock/product-detail-stock-query.js +0 -66
- package/dist-server/service/product-detail-stock/product-detail-stock-query.js.map +0 -1
- package/dist-server/service/product-detail-stock/product-detail-stock-types.js +0 -57
- package/dist-server/service/product-detail-stock/product-detail-stock-types.js.map +0 -1
- package/dist-server/service/product-detail-stock/product-detail-stock.js +0 -90
- package/dist-server/service/product-detail-stock/product-detail-stock.js.map +0 -1
- package/dist-server/service/reduced-inventory-history/index.js +0 -6
- package/dist-server/service/reduced-inventory-history/index.js.map +0 -1
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +0 -133
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +0 -1
- package/dist-server/service/tote/index.js +0 -9
- package/dist-server/service/tote/index.js.map +0 -1
- package/dist-server/service/tote/tote-mutation.js +0 -192
- package/dist-server/service/tote/tote-mutation.js.map +0 -1
- package/dist-server/service/tote/tote-query.js +0 -162
- package/dist-server/service/tote/tote-query.js.map +0 -1
- package/dist-server/service/tote/tote-types.js +0 -75
- package/dist-server/service/tote/tote-types.js.map +0 -1
- package/dist-server/service/tote/tote.js +0 -98
- package/dist-server/service/tote/tote.js.map +0 -1
- package/dist-server/service/warehouse/index.js +0 -9
- package/dist-server/service/warehouse/index.js.map +0 -1
- package/dist-server/service/warehouse/warehouse-mutation.js +0 -148
- package/dist-server/service/warehouse/warehouse-mutation.js.map +0 -1
- package/dist-server/service/warehouse/warehouse-query.js +0 -91
- package/dist-server/service/warehouse/warehouse-query.js.map +0 -1
- package/dist-server/service/warehouse/warehouse-types.js +0 -82
- package/dist-server/service/warehouse/warehouse-types.js.map +0 -1
- package/dist-server/service/warehouse/warehouse.js +0 -114
- package/dist-server/service/warehouse/warehouse.js.map +0 -1
- package/dist-server/utils/datetime-util.js +0 -61
- package/dist-server/utils/datetime-util.js.map +0 -1
- package/dist-server/utils/index.js +0 -20
- package/dist-server/utils/index.js.map +0 -1
- package/dist-server/utils/inventory-no-generator.js +0 -17
- package/dist-server/utils/inventory-no-generator.js.map +0 -1
- package/dist-server/utils/inventory-util.js +0 -413
- package/dist-server/utils/inventory-util.js.map +0 -1
|
@@ -1,414 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.InventoryMutation = void 0;
|
|
16
|
-
const type_graphql_1 = require("type-graphql");
|
|
17
|
-
const typeorm_1 = require("typeorm");
|
|
18
|
-
const auth_base_1 = require("@things-factory/auth-base");
|
|
19
|
-
const biz_base_1 = require("@things-factory/biz-base");
|
|
20
|
-
const id_rule_base_1 = require("@things-factory/id-rule-base");
|
|
21
|
-
const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
|
|
22
|
-
const product_base_1 = require("@things-factory/product-base");
|
|
23
|
-
const constants_1 = require("../../constants");
|
|
24
|
-
const controllers_1 = require("../../controllers");
|
|
25
|
-
const utils_1 = require("../../utils");
|
|
26
|
-
const inventory_history_1 = require("../inventory-history/inventory-history");
|
|
27
|
-
const location_1 = require("../location/location");
|
|
28
|
-
const inventory_1 = require("./inventory");
|
|
29
|
-
const inventory_types_1 = require("./inventory-types");
|
|
30
|
-
let InventoryMutation = class InventoryMutation {
|
|
31
|
-
async createInventory(inventory, context) {
|
|
32
|
-
const { tx } = context.state;
|
|
33
|
-
return await tx.getRepository(inventory_1.Inventory).save(Object.assign({ domain: context.state.domain, creator: context.state.user, updater: context.state.user }, inventory));
|
|
34
|
-
}
|
|
35
|
-
async updateInventory(patch, context) {
|
|
36
|
-
const { domain, user, tx } = context.state;
|
|
37
|
-
const invQb = await tx
|
|
38
|
-
.getRepository(inventory_1.Inventory)
|
|
39
|
-
.createQueryBuilder('INV')
|
|
40
|
-
.where('INV.domain_id = :domainId', { domainId: domain.id })
|
|
41
|
-
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: patch.bizplace.id })
|
|
42
|
-
.andWhere('INV.batch_id = :batchId', { batchId: patch.batchId })
|
|
43
|
-
.andWhere('INV.product_id = :productId', { productId: patch.product.id })
|
|
44
|
-
.andWhere('INV.packing_type = :packingType', { packingType: patch.packingType })
|
|
45
|
-
.andWhere('INV.packing_size = :packingSize', { packingSize: patch.packingSize });
|
|
46
|
-
if (patch === null || patch === void 0 ? void 0 : patch.cartonId)
|
|
47
|
-
invQb.andWhere('INV.carton_id = :cartonId', { cartonId: patch.cartonId });
|
|
48
|
-
else
|
|
49
|
-
invQb.andWhere('INV.pallet_id = :palletId', { palletId: patch.palletId });
|
|
50
|
-
const inventory = await invQb.getOne();
|
|
51
|
-
return await tx.getRepository(inventory_1.Inventory).save(Object.assign(Object.assign(Object.assign({}, inventory), patch), { updater: user }));
|
|
52
|
-
}
|
|
53
|
-
async updateInventoryRemark(id, remark, context) {
|
|
54
|
-
const { domain, user, tx } = context.state;
|
|
55
|
-
const repository = tx.getRepository(inventory_1.Inventory);
|
|
56
|
-
const inventory = await repository.findOne({ where: { domain: domain, id } });
|
|
57
|
-
return await repository.save(Object.assign(Object.assign({}, inventory), { remark, updater: user }));
|
|
58
|
-
}
|
|
59
|
-
async deleteInventory(name, context) {
|
|
60
|
-
const { tx } = context.state;
|
|
61
|
-
await tx.getRepository(inventory_1.Inventory).delete({ domain: context.state.domain, name });
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
async updateMultipleInventory(patches, context) {
|
|
65
|
-
const { domain, user, tx } = context.state;
|
|
66
|
-
let results = [];
|
|
67
|
-
const _createRecords = patches.filter((patch) => !patch.id);
|
|
68
|
-
const _updateRecords = patches.filter((patch) => patch.id);
|
|
69
|
-
const inventoryRepo = tx.getRepository(inventory_1.Inventory);
|
|
70
|
-
if (_createRecords.length > 0) {
|
|
71
|
-
let today = new Date();
|
|
72
|
-
let year = today.getFullYear();
|
|
73
|
-
let month = today.getMonth();
|
|
74
|
-
let date = today.getDate();
|
|
75
|
-
for (let i = 0; i < _createRecords.length; i++) {
|
|
76
|
-
const total = await tx.getRepository(inventory_1.Inventory).count({
|
|
77
|
-
createdAt: (0, typeorm_1.MoreThan)(new Date(year, month, date))
|
|
78
|
-
});
|
|
79
|
-
const newRecord = _createRecords[i];
|
|
80
|
-
if (newRecord.location && newRecord.location.id) {
|
|
81
|
-
var location = await tx.getRepository(location_1.Location).findOne({
|
|
82
|
-
where: { id: newRecord.location.id },
|
|
83
|
-
relations: ['warehouse']
|
|
84
|
-
});
|
|
85
|
-
newRecord.location = location;
|
|
86
|
-
newRecord.zone = location.zone;
|
|
87
|
-
newRecord.warehouse = location.warehouse;
|
|
88
|
-
}
|
|
89
|
-
if (newRecord.bizplace && newRecord.bizplace.id) {
|
|
90
|
-
newRecord.bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne(newRecord.bizplace.id);
|
|
91
|
-
}
|
|
92
|
-
if (newRecord.product && newRecord.product.id) {
|
|
93
|
-
var product = await tx.getRepository(product_base_1.Product).findOne(newRecord.product.id);
|
|
94
|
-
newRecord.product = product;
|
|
95
|
-
}
|
|
96
|
-
let palletId = 'P' +
|
|
97
|
-
year.toString().substr(year.toString().length - 2) +
|
|
98
|
-
('0' + (month + 1).toString()).substr(('0' + (month + 1).toString()).toString().length - 2) +
|
|
99
|
-
('0' + date.toString()).substr(('0' + date.toString()).length - 2) +
|
|
100
|
-
('0000' + (total + 1).toString()).substr(('0000' + (total + 1).toString()).length - 4);
|
|
101
|
-
newRecord.name = palletId;
|
|
102
|
-
newRecord.status = newRecord.qty < 1 ? 'TERMINATED' : 'STORED';
|
|
103
|
-
newRecord.palletId = palletId;
|
|
104
|
-
const result = await inventoryRepo.save(Object.assign({ domain: domain, creator: user, updater: user, lastSeq: 0 }, newRecord));
|
|
105
|
-
await tx.getRepository(inventory_history_1.InventoryHistory).save(Object.assign(Object.assign({}, newRecord), { domain: domain, creator: user, updater: user, name: utils_1.InventoryNoGenerator.inventoryHistoryName(), seq: 0, transactionType: 'NEW', productId: newRecord.product.id, warehouseId: newRecord.warehouse.id, locationId: newRecord.location.id }));
|
|
106
|
-
results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (_updateRecords.length > 0) {
|
|
110
|
-
for (let i = 0; i < _updateRecords.length; i++) {
|
|
111
|
-
const newRecord = _updateRecords[i];
|
|
112
|
-
const newHistoryRecord = JSON.parse(JSON.stringify(_updateRecords[i]));
|
|
113
|
-
let transactionType = '';
|
|
114
|
-
let inventory = await inventoryRepo.findOne({
|
|
115
|
-
where: { id: newRecord.id },
|
|
116
|
-
relations: ['warehouse', 'location', 'product', 'bizplace']
|
|
117
|
-
});
|
|
118
|
-
newHistoryRecord.openingQty = inventory.qty;
|
|
119
|
-
newHistoryRecord.openingUomValue = inventory.uomValue;
|
|
120
|
-
// Get last sequence from InventoryHistory
|
|
121
|
-
let latestEntry = await tx.getRepository(inventory_history_1.InventoryHistory).find({
|
|
122
|
-
where: { palletId: inventory.palletId },
|
|
123
|
-
order: { seq: 'DESC' },
|
|
124
|
-
take: 1
|
|
125
|
-
});
|
|
126
|
-
let lastSeq = latestEntry[0].seq;
|
|
127
|
-
// Condition 1: Change location (RELOCATE)
|
|
128
|
-
if (newRecord.location && newRecord.location.id) {
|
|
129
|
-
var location = await tx.getRepository(location_1.Location).findOne({
|
|
130
|
-
where: { id: newRecord.location.id },
|
|
131
|
-
relations: ['warehouse']
|
|
132
|
-
});
|
|
133
|
-
newRecord.location = location;
|
|
134
|
-
newRecord.zone = location.zone;
|
|
135
|
-
newRecord.warehouse = location.warehouse;
|
|
136
|
-
newHistoryRecord.location = location;
|
|
137
|
-
newHistoryRecord.zone = location.zone;
|
|
138
|
-
newHistoryRecord.warehouse = location.warehouse;
|
|
139
|
-
transactionType = 'RELOCATE';
|
|
140
|
-
}
|
|
141
|
-
// Condition 2: Change of qty or uomValue.
|
|
142
|
-
// Set qty movement for inventory history
|
|
143
|
-
if (typeof newRecord.qty != 'undefined') {
|
|
144
|
-
transactionType = 'ADJUSTMENT';
|
|
145
|
-
newHistoryRecord.qty = newRecord.qty - inventory.qty;
|
|
146
|
-
if (newRecord.qty < 1) {
|
|
147
|
-
newRecord.status = 'TERMINATED';
|
|
148
|
-
newRecord.qty = 0;
|
|
149
|
-
newRecord.uomValue = 0;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
newHistoryRecord.qty = 0;
|
|
154
|
-
}
|
|
155
|
-
// Set uomValue movement for inventory history
|
|
156
|
-
if (typeof newRecord.uomValue != 'undefined') {
|
|
157
|
-
transactionType = 'ADJUSTMENT';
|
|
158
|
-
newHistoryRecord.uomValue = newRecord.uomValue - inventory.uomValue;
|
|
159
|
-
if (newRecord.uomValue < 1) {
|
|
160
|
-
newRecord.uomValue = 0;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
newHistoryRecord.uomValue = 0;
|
|
165
|
-
}
|
|
166
|
-
// Condition 3: Change of bizplace or product or batch id or packing type
|
|
167
|
-
if (newRecord.bizplace && newRecord.bizplace.id) {
|
|
168
|
-
newRecord.bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne(newRecord.bizplace.id);
|
|
169
|
-
}
|
|
170
|
-
if (newRecord.product && newRecord.product.id) {
|
|
171
|
-
newRecord.product = await tx.getRepository(product_base_1.Product).findOne(newRecord.product.id);
|
|
172
|
-
}
|
|
173
|
-
if ((newRecord.product && newRecord.product.id) ||
|
|
174
|
-
(newRecord.bizplace && newRecord.bizplace.id) ||
|
|
175
|
-
newRecord.batchId ||
|
|
176
|
-
newRecord.packingType) {
|
|
177
|
-
if (inventory.bizplace.id !== (newRecord.bizplace ? newRecord.bizplace.id : '') ||
|
|
178
|
-
inventory.product.id !== (newRecord.product ? newRecord.product.id : '') ||
|
|
179
|
-
inventory.batchId !== newRecord.batchId ||
|
|
180
|
-
inventory.packingType !== newRecord.packingType) {
|
|
181
|
-
transactionType = 'ADJUSTMENT';
|
|
182
|
-
lastSeq = lastSeq + 1;
|
|
183
|
-
let inventoryHistory = Object.assign(Object.assign({}, inventory), { domain: domain, bizplace: inventory.bizplace.id, openingQty: inventory.qty, openingUomValue: inventory.uomValue, qty: -inventory.qty || 0, uomValue: -inventory.uomValue || 0, name: utils_1.InventoryNoGenerator.inventoryHistoryName(), seq: lastSeq, transactionType: transactionType, status: constants_1.INVENTORY_STATUS.TERMINATED, productId: inventory.product.id, warehouseId: inventory.warehouse.id, locationId: inventory.location.id, creator: user, updater: user });
|
|
184
|
-
delete inventoryHistory.id;
|
|
185
|
-
await tx.getRepository(inventory_history_1.InventoryHistory).save(inventoryHistory);
|
|
186
|
-
newHistoryRecord.qty = newRecord.qty || inventory.qty;
|
|
187
|
-
newHistoryRecord.uomValue = newRecord.uomValue || inventory.uomValue || 0;
|
|
188
|
-
newHistoryRecord.openingQty = 0;
|
|
189
|
-
newHistoryRecord.openingUomValue = 0;
|
|
190
|
-
newHistoryRecord.batchId = newRecord.batchId || inventory.batchId || '-';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
//Transaction type will be RELOCATE if there is only location change. Any other changes will be considered Adjustment.
|
|
194
|
-
lastSeq = lastSeq + 1;
|
|
195
|
-
let inventoryHistory = Object.assign(Object.assign(Object.assign({}, inventory), newHistoryRecord), { domain: domain, creator: user, updater: user, name: utils_1.InventoryNoGenerator.inventoryHistoryName(), seq: lastSeq, transactionType: transactionType == '' ? 'ADJUSTMENT' : transactionType, productId: newHistoryRecord.product ? newHistoryRecord.product.id : inventory.product.id, warehouseId: newHistoryRecord.warehouse ? newHistoryRecord.warehouse.id : inventory.warehouse.id, locationId: newHistoryRecord.location ? newHistoryRecord.location.id : inventory.location.id });
|
|
196
|
-
delete inventoryHistory.id;
|
|
197
|
-
await tx.getRepository(inventory_history_1.InventoryHistory).save(inventoryHistory);
|
|
198
|
-
const result = await inventoryRepo.save(Object.assign(Object.assign(Object.assign({}, inventory), newRecord), { updater: user, lastSeq: lastSeq }));
|
|
199
|
-
results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return results;
|
|
203
|
-
}
|
|
204
|
-
async deleteInventories(ids, context) {
|
|
205
|
-
const { tx } = context.state;
|
|
206
|
-
await tx.getRepository(inventory_1.Inventory).delete({
|
|
207
|
-
id: (0, typeorm_1.In)(ids)
|
|
208
|
-
});
|
|
209
|
-
return true;
|
|
210
|
-
}
|
|
211
|
-
async inventoryTransfer(originPalletId, palletId, cartonId, fromLocationName, toLocationName, qty, context) {
|
|
212
|
-
const { domain, user, tx } = context.state;
|
|
213
|
-
const fromLocation = await tx.getRepository(location_1.Location).findOne({
|
|
214
|
-
where: { domain: domain, name: fromLocationName },
|
|
215
|
-
relations: ['domain', 'warehouse']
|
|
216
|
-
});
|
|
217
|
-
// 1. check toLocation exist
|
|
218
|
-
const toLocation = await tx.getRepository(location_1.Location).findOne({
|
|
219
|
-
where: { domain: domain, name: toLocationName },
|
|
220
|
-
relations: ['domain', 'warehouse']
|
|
221
|
-
});
|
|
222
|
-
if (!toLocation)
|
|
223
|
-
throw new Error(`To location doesn't exists`);
|
|
224
|
-
if (qty < 0)
|
|
225
|
-
throw new Error(`Invalid quantity`);
|
|
226
|
-
// 2. search for related inventory
|
|
227
|
-
const invQb = await tx
|
|
228
|
-
.getRepository(inventory_1.Inventory)
|
|
229
|
-
.createQueryBuilder('INV')
|
|
230
|
-
.innerJoinAndSelect('INV.location', 'loc')
|
|
231
|
-
.innerJoinAndSelect('INV.product', 'product')
|
|
232
|
-
.innerJoinAndSelect('INV.bizplace', 'bizplace')
|
|
233
|
-
.leftJoinAndSelect('INV.refInventory', 'refInventory')
|
|
234
|
-
.leftJoinAndSelect('INV.reusablePallet', 'reusablePallet')
|
|
235
|
-
.leftJoinAndSelect('INV.productDetail', 'productDetail')
|
|
236
|
-
.leftJoinAndSelect('bizplace.domain', 'domain')
|
|
237
|
-
.leftJoinAndSelect('product.productDetails', 'productDetails')
|
|
238
|
-
.where('INV.domain_id = :domainId', { domainId: domain.id })
|
|
239
|
-
.andWhere('INV.pallet_id = :palletId', { palletId: originPalletId });
|
|
240
|
-
let inventory = await invQb.getOne();
|
|
241
|
-
if (!inventory)
|
|
242
|
-
throw new Error('Inventory not found');
|
|
243
|
-
// Check if quantity has decimals and validate against product settings
|
|
244
|
-
if (qty % 1 !== 0 && !inventory.product.isInventoryDecimal) {
|
|
245
|
-
throw new Error('Decimal quantities are not allowed for this product');
|
|
246
|
-
}
|
|
247
|
-
if (qty > inventory.qty - ((inventory === null || inventory === void 0 ? void 0 : inventory.lockedQty) > 0 ? inventory.lockedQty : 0))
|
|
248
|
-
throw new Error('Transfer quantity exceeded inventory quantity');
|
|
249
|
-
if (toLocation.name == inventory.location.name)
|
|
250
|
-
throw new Error('Inventory is in current location');
|
|
251
|
-
let transactionInventory = new utils_1.InventoryUtil(tx, domain, user);
|
|
252
|
-
const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOne({
|
|
253
|
-
where: { domain: inventory.bizplace.domain, status: integration_sellercraft_1.SellercraftStatus.ACTIVE },
|
|
254
|
-
relations: ['domain']
|
|
255
|
-
});
|
|
256
|
-
const customerDomain = inventory.bizplace.domain;
|
|
257
|
-
const customerBizplaceId = inventory.bizplace.id;
|
|
258
|
-
const companyBizplace = await (0, biz_base_1.getCompanyBizplace)(domain, null, customerBizplaceId, tx);
|
|
259
|
-
const application = await tx.getRepository(auth_base_1.Application).findOne({
|
|
260
|
-
domain: companyBizplace.domain,
|
|
261
|
-
status: 'ACTIVE',
|
|
262
|
-
type: auth_base_1.ApplicationType.POWRUP
|
|
263
|
-
});
|
|
264
|
-
const partialTransferFunc = async function (inventory, qty, fromLocation, toLocation, cartonId, palletId, context) {
|
|
265
|
-
const { user, tx } = context.state;
|
|
266
|
-
if (qty < inventory.qty - ((inventory === null || inventory === void 0 ? void 0 : inventory.lockedQty) > 0 ? inventory.lockedQty : 0)) {
|
|
267
|
-
if (!palletId || palletId.trim() == '')
|
|
268
|
-
throw new Error('Require new lot id for partial transfer');
|
|
269
|
-
let transferQty = qty;
|
|
270
|
-
let transferUomValue = (inventory.uomValue / inventory.qty) * qty;
|
|
271
|
-
let newInventory = Object.assign(Object.assign({}, inventory), { palletId, location: toLocation, warehouse: toLocation.warehouse, zone: toLocation.zone, creator: user, updater: user });
|
|
272
|
-
delete newInventory.id;
|
|
273
|
-
delete newInventory.updatedAt;
|
|
274
|
-
delete newInventory.createdAt;
|
|
275
|
-
newInventory.cartonId = cartonId;
|
|
276
|
-
newInventory.qty = transferQty;
|
|
277
|
-
newInventory.lockedQty = 0;
|
|
278
|
-
newInventory.transferQty = 0;
|
|
279
|
-
newInventory.uomValue = transferUomValue;
|
|
280
|
-
newInventory.lockedUomValue = 0;
|
|
281
|
-
newInventory.transferUomValue = 0;
|
|
282
|
-
await transactionInventory.transactionInventory(Object.assign(Object.assign({}, inventory), { qty: inventory.qty - transferQty, uomValue: inventory.uomValue - transferUomValue }), null, -transferQty, -transferUomValue, constants_1.INVENTORY_TRANSACTION_TYPE.RELOCATE);
|
|
283
|
-
await transactionInventory.transactionInventory(newInventory, null, transferQty, transferUomValue, constants_1.INVENTORY_TRANSACTION_TYPE.RELOCATE);
|
|
284
|
-
if (sellercraft) {
|
|
285
|
-
const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
|
|
286
|
-
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory);
|
|
287
|
-
await sellercraftCtrl.updateSellercraftStock(sellercraft, newInventory);
|
|
288
|
-
}
|
|
289
|
-
if (application) {
|
|
290
|
-
const powrupController = new controllers_1.PowrupController();
|
|
291
|
-
powrupController.updateStock([inventory], customerDomain, user, tx);
|
|
292
|
-
powrupController.updateStock([newInventory], customerDomain, user, tx);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
inventory.warehouse = toLocation.warehouse;
|
|
297
|
-
inventory.location = toLocation;
|
|
298
|
-
inventory.zone = toLocation.zone;
|
|
299
|
-
inventory.updater = user;
|
|
300
|
-
inventory.cartonId = cartonId;
|
|
301
|
-
let isNotEmptyLocation = await tx.getRepository(inventory_1.Inventory).findOne({
|
|
302
|
-
where: { location: fromLocation, status: constants_1.INVENTORY_STATUS.STORED, id: (0, typeorm_1.Not)(inventory.id) }
|
|
303
|
-
});
|
|
304
|
-
if (!isNotEmptyLocation) {
|
|
305
|
-
await tx.getRepository(location_1.Location).save(Object.assign(Object.assign({}, fromLocation), { status: constants_1.LOCATION_STATUS.EMPTY }));
|
|
306
|
-
}
|
|
307
|
-
await transactionInventory.transactionInventory(inventory, null, 0, 0, constants_1.INVENTORY_TRANSACTION_TYPE.RELOCATE);
|
|
308
|
-
if (sellercraft) {
|
|
309
|
-
const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
|
|
310
|
-
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
if (inventory.cartonId && inventory.cartonId != '') {
|
|
315
|
-
if (!cartonId) {
|
|
316
|
-
cartonId = inventory.cartonId;
|
|
317
|
-
}
|
|
318
|
-
// throw new Error('Require carton id')
|
|
319
|
-
if (qty < inventory.qty - ((inventory === null || inventory === void 0 ? void 0 : inventory.lockedQty) > 0 ? inventory.lockedQty : 0)) {
|
|
320
|
-
palletId = await (0, id_rule_base_1.generateId)({
|
|
321
|
-
domain: domain,
|
|
322
|
-
type: constants_1.RULE_TYPE.LOT_NUMBER_ID,
|
|
323
|
-
seed: { date: utils_1.DateGenerator.generateDate() }
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
await partialTransferFunc(inventory, qty, fromLocation, toLocation, cartonId, palletId, context);
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
await partialTransferFunc(inventory, qty, fromLocation, toLocation, null, palletId, context);
|
|
330
|
-
}
|
|
331
|
-
return true;
|
|
332
|
-
}
|
|
333
|
-
};
|
|
334
|
-
__decorate([
|
|
335
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
336
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
337
|
-
(0, type_graphql_1.Mutation)(returns => inventory_1.Inventory),
|
|
338
|
-
__param(0, (0, type_graphql_1.Arg)('inventory')),
|
|
339
|
-
__param(1, (0, type_graphql_1.Ctx)()),
|
|
340
|
-
__metadata("design:type", Function),
|
|
341
|
-
__metadata("design:paramtypes", [inventory_types_1.NewInventory, Object]),
|
|
342
|
-
__metadata("design:returntype", Promise)
|
|
343
|
-
], InventoryMutation.prototype, "createInventory", null);
|
|
344
|
-
__decorate([
|
|
345
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
346
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
347
|
-
(0, type_graphql_1.Mutation)(returns => inventory_1.Inventory),
|
|
348
|
-
__param(0, (0, type_graphql_1.Arg)('patch')),
|
|
349
|
-
__param(1, (0, type_graphql_1.Ctx)()),
|
|
350
|
-
__metadata("design:type", Function),
|
|
351
|
-
__metadata("design:paramtypes", [inventory_types_1.InventoryPatch, Object]),
|
|
352
|
-
__metadata("design:returntype", Promise)
|
|
353
|
-
], InventoryMutation.prototype, "updateInventory", null);
|
|
354
|
-
__decorate([
|
|
355
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
356
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
357
|
-
(0, type_graphql_1.Mutation)(returns => inventory_1.Inventory),
|
|
358
|
-
__param(0, (0, type_graphql_1.Arg)('id')),
|
|
359
|
-
__param(1, (0, type_graphql_1.Arg)('remark')),
|
|
360
|
-
__param(2, (0, type_graphql_1.Ctx)()),
|
|
361
|
-
__metadata("design:type", Function),
|
|
362
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
363
|
-
__metadata("design:returntype", Promise)
|
|
364
|
-
], InventoryMutation.prototype, "updateInventoryRemark", null);
|
|
365
|
-
__decorate([
|
|
366
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
367
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
368
|
-
(0, type_graphql_1.Mutation)(returns => Boolean),
|
|
369
|
-
__param(0, (0, type_graphql_1.Arg)('name')),
|
|
370
|
-
__param(1, (0, type_graphql_1.Ctx)()),
|
|
371
|
-
__metadata("design:type", Function),
|
|
372
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
373
|
-
__metadata("design:returntype", Promise)
|
|
374
|
-
], InventoryMutation.prototype, "deleteInventory", null);
|
|
375
|
-
__decorate([
|
|
376
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
377
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
378
|
-
(0, type_graphql_1.Mutation)(returns => [inventory_1.Inventory]),
|
|
379
|
-
__param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_types_1.InventoryPatch])),
|
|
380
|
-
__param(1, (0, type_graphql_1.Ctx)()),
|
|
381
|
-
__metadata("design:type", Function),
|
|
382
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
383
|
-
__metadata("design:returntype", Promise)
|
|
384
|
-
], InventoryMutation.prototype, "updateMultipleInventory", null);
|
|
385
|
-
__decorate([
|
|
386
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
387
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
388
|
-
(0, type_graphql_1.Mutation)(returns => Boolean),
|
|
389
|
-
__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
|
390
|
-
__param(1, (0, type_graphql_1.Ctx)()),
|
|
391
|
-
__metadata("design:type", Function),
|
|
392
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
393
|
-
__metadata("design:returntype", Promise)
|
|
394
|
-
], InventoryMutation.prototype, "deleteInventories", null);
|
|
395
|
-
__decorate([
|
|
396
|
-
(0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
|
|
397
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
398
|
-
(0, type_graphql_1.Mutation)(returns => Boolean),
|
|
399
|
-
__param(0, (0, type_graphql_1.Arg)('originPalletId')),
|
|
400
|
-
__param(1, (0, type_graphql_1.Arg)('palletId', { nullable: true })),
|
|
401
|
-
__param(2, (0, type_graphql_1.Arg)('cartonId', { nullable: true })),
|
|
402
|
-
__param(3, (0, type_graphql_1.Arg)('fromLocationName')),
|
|
403
|
-
__param(4, (0, type_graphql_1.Arg)('toLocationName')),
|
|
404
|
-
__param(5, (0, type_graphql_1.Arg)('qty')),
|
|
405
|
-
__param(6, (0, type_graphql_1.Ctx)()),
|
|
406
|
-
__metadata("design:type", Function),
|
|
407
|
-
__metadata("design:paramtypes", [String, String, String, String, String, Number, Object]),
|
|
408
|
-
__metadata("design:returntype", Promise)
|
|
409
|
-
], InventoryMutation.prototype, "inventoryTransfer", null);
|
|
410
|
-
InventoryMutation = __decorate([
|
|
411
|
-
(0, type_graphql_1.Resolver)(inventory_1.Inventory)
|
|
412
|
-
], InventoryMutation);
|
|
413
|
-
exports.InventoryMutation = InventoryMutation;
|
|
414
|
-
//# sourceMappingURL=inventory-mutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-mutation.js","sourceRoot":"","sources":["../../../server/service/inventory/inventory-mutation.ts"],"names":[],"mappings":"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"}
|