@things-factory/worksheet-base 4.3.324 → 4.3.327

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +24 -3
  2. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/outbound/picking-worksheet-controller.js +4 -4
  4. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +38 -21
  6. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/vas/vas-worksheet-controller.js +2 -128
  8. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/worksheet-controller.js +4 -2
  10. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  11. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +21 -19
  12. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  13. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +3 -3
  14. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  15. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +356 -353
  16. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +1 -1
  18. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +1 -1
  20. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +2 -1
  22. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/vas/index.js +1 -2
  24. package/dist-server/graphql/resolvers/worksheet/vas/index.js.map +1 -1
  25. package/dist-server/graphql/types/worksheet/index.js +0 -6
  26. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  27. package/package.json +4 -4
  28. package/server/controllers/inbound/putaway-worksheet-controller.ts +30 -8
  29. package/server/controllers/outbound/picking-worksheet-controller.ts +4 -4
  30. package/server/controllers/outbound/sorting-worksheet-controller.ts +42 -21
  31. package/server/controllers/vas/vas-worksheet-controller.ts +2 -177
  32. package/server/controllers/worksheet-controller.ts +5 -3
  33. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +22 -21
  34. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +3 -3
  35. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +395 -391
  36. package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +1 -1
  37. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +2 -2
  38. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +3 -2
  39. package/server/graphql/resolvers/worksheet/vas/index.ts +0 -2
  40. package/server/graphql/types/worksheet/index.ts +0 -6
  41. package/dist-server/graphql/resolvers/worksheet/vas/edit-vas.js +0 -16
  42. package/dist-server/graphql/resolvers/worksheet/vas/edit-vas.js.map +0 -1
  43. package/server/graphql/resolvers/worksheet/vas/edit-vas.ts +0 -25
@@ -237,7 +237,7 @@ export class VasWorksheetController extends WorksheetController {
237
237
  }
238
238
 
239
239
  async activateVAS(worksheetNo: string, vasWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {
240
- const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.VAS, [
240
+ const worksheet: Worksheet = await this.findWorksheetByNo(worksheetNo, [
241
241
  'vasOrder',
242
242
  'worksheetDetails',
243
243
  'worksheetDetails.targetVas'
@@ -261,7 +261,7 @@ export class VasWorksheetController extends WorksheetController {
261
261
  }
262
262
 
263
263
  await this.updateOrderTargets(targetVass)
264
- return await this.activateWorksheet(worksheet, worksheetDetails, vasWorksheetDetails)
264
+ return worksheet
265
265
  }
266
266
 
267
267
  async unpackingWithPallet(
@@ -1098,179 +1098,4 @@ export class VasWorksheetController extends WorksheetController {
1098
1098
  await this.COMPLETE_TRX_MAP[operationGuide](this.trxMgr, targetVas, this.user)
1099
1099
  }
1100
1100
  }
1101
-
1102
- async editVas(
1103
- tx: any,
1104
- domain: Domain,
1105
- user: User,
1106
- orderVasPatch: OrderVasPatch[],
1107
- orderVasItemPatch: OrderVasItemPatch[],
1108
- orderNo: string
1109
- ): Promise<Boolean> {
1110
- let results = []
1111
- const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({ where: { name: orderNo } })
1112
- const orderVasRepo = getRepository(OrderVas)
1113
- const orderVasItemRepo = getRepository(OrderVasItem)
1114
- const worksheetDetailRepo = getRepository(WorksheetDetail)
1115
- const worksheetRepo = getRepository(Worksheet)
1116
- let vasWorksheet: Worksheet = await getRepository(Worksheet).findOne({
1117
- where: { domain, releaseGood: releaseGood.id, type: 'VAS' }
1118
- })
1119
- // Order Vas
1120
- if (orderVasPatch.length > 0) {
1121
- const _deleteRecords = orderVasPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === '-')
1122
- const _createRecords = orderVasPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
1123
- const _updateRecords = orderVasPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
1124
-
1125
- if (_deleteRecords.length > 0) {
1126
- for (let i = 0; i < _deleteRecords.length; i++) {
1127
- const deleteRecord = _deleteRecords[i]
1128
- if (vasWorksheet) {
1129
- await worksheetDetailRepo.delete({ targetVas: deleteRecord.id })
1130
- }
1131
- await orderVasItemRepo.delete({ orderVas: deleteRecord.id })
1132
- await orderVasRepo.delete(deleteRecord.id)
1133
- }
1134
- }
1135
-
1136
- if (_createRecords.length > 0) {
1137
- for (let i = 0; i < _createRecords.length; i++) {
1138
- const newRecord = _createRecords[i]
1139
-
1140
- const result = await orderVasRepo.save({
1141
- ...newRecord,
1142
- id: uuidv4(),
1143
- name: `${_createRecords[i].product.name} - ${new Date()}`,
1144
- domain: domain,
1145
- creator: user,
1146
- updater: user
1147
- })
1148
-
1149
- results.push({ ...result, cuFlag: '+' })
1150
-
1151
- // create wds if worksheet is available
1152
- if (vasWorksheet) {
1153
- const orderVas: OrderVas[] = await getRepository(OrderVas).find({ where: { id: result.id } })
1154
- await this.createWorksheetDetails(vasWorksheet, WORKSHEET_TYPE.VAS, orderVas)
1155
- } else if (releaseGood.status === 'READY_TO_PICK' && !vasWorksheet) {
1156
- const orderVas: OrderVas[] = await getRepository(OrderVas).find({ where: { id: result.id } })
1157
- vasWorksheet = await this.generateWorksheet(
1158
- WORKSHEET_TYPE.VAS,
1159
- releaseGood,
1160
- orderVas,
1161
- ORDER_STATUS.READY_TO_PICK,
1162
- ORDER_INVENTORY_STATUS.READY_TO_PICK
1163
- )
1164
- }
1165
-
1166
- // create new ovi
1167
- for (let ii = 0; ii < newRecord.orderVasItemsPatch.length; ii++) {
1168
- await orderVasItemRepo.save({
1169
- orderVas: result.id,
1170
- name: `${newRecord.orderVasItemsPatch[ii].vas.name} (${newRecord.orderVasItemsPatch[ii].vas.description})- ${result.id}`,
1171
- vas: newRecord.orderVasItemsPatch[ii].vas,
1172
- vasQty: newRecord.orderVasItemsPatch[ii].vasQty,
1173
- domain: domain,
1174
- creator: user,
1175
- createdAt: new Date()
1176
- })
1177
- }
1178
- }
1179
- }
1180
-
1181
- if (_updateRecords.length > 0) {
1182
- for (let i = 0; i < _updateRecords.length; i++) {
1183
- const newRecord = _updateRecords[i]
1184
- const orderVas: OrderVas = await orderVasRepo.findOne({
1185
- where: { domain, id: newRecord.id },
1186
- relations: ['product', 'productDetail', 'newProduct', 'newProductDetail', 'releaseGood', 'orderVasItems']
1187
- })
1188
-
1189
- const result = await orderVasRepo.save({
1190
- ...orderVas,
1191
- ...newRecord,
1192
- updater: user
1193
- })
1194
-
1195
- results.push({ ...result, cuFlag: 'M' })
1196
-
1197
- for (let ii = 0; ii < newRecord.orderVasItemsPatch.length; ii++) {
1198
- await orderVasItemRepo.update(
1199
- { id: newRecord.orderVasItemsPatch[ii].id },
1200
- {
1201
- orderVas: result.id,
1202
- name: `${newRecord.orderVasItemsPatch[ii].vas.name}- ${result.id}`,
1203
- vas: newRecord.orderVasItemsPatch[ii].vas,
1204
- vasQty: newRecord.orderVasItemsPatch[ii].vasQty,
1205
- domain: domain,
1206
- creator: user,
1207
- createdAt: new Date()
1208
- }
1209
- )
1210
- }
1211
- }
1212
- }
1213
- }
1214
-
1215
- // order Vas Item
1216
- if (orderVasItemPatch?.length > 0) {
1217
- const _deleteRecords = orderVasItemPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === '-')
1218
- const _createRecords = orderVasItemPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
1219
- const _updateRecords = orderVasItemPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
1220
-
1221
- if (_deleteRecords.length > 0) {
1222
- for (let i = 0; i < _deleteRecords.length; i++) {
1223
- const deleteRecord = _deleteRecords[i]
1224
- if (deleteRecord.id) {
1225
- await orderVasItemRepo.delete(deleteRecord.id)
1226
- }
1227
- }
1228
- }
1229
-
1230
- if (_createRecords.length > 0) {
1231
- for (let i = 0; i < _createRecords.length; i++) {
1232
- const newRecord = _createRecords[i]
1233
- const result = await orderVasItemRepo.save({
1234
- id: uuidv4(),
1235
- orderVas: newRecord.orderVas.id,
1236
- name: `${newRecord.vas.name}- ${newRecord.orderVas.id}`,
1237
- vas: newRecord.vas,
1238
- vasQty: newRecord.vasQty,
1239
- domain: domain,
1240
- creator: user,
1241
- createdAt: new Date()
1242
- })
1243
- results.push({ ...result, cuFlag: '+' })
1244
- }
1245
- }
1246
-
1247
- if (_updateRecords.length > 0) {
1248
- for (let i = 0; i < _updateRecords.length; i++) {
1249
- const newRecord = _updateRecords[i]
1250
-
1251
- const result = await getRepository(OrderVasItem).update(
1252
- {
1253
- id: newRecord.id
1254
- },
1255
- { vasQty: newRecord.vasQty, updater: user.id, updatedAt: new Date() }
1256
- )
1257
-
1258
- results.push({ ...result, cuFlag: 'M' })
1259
- }
1260
- }
1261
- }
1262
-
1263
- // delete worksheet if no orderVas Left
1264
- if (vasWorksheet) {
1265
- const vasWorksheetDetails: WorksheetDetail[] = await getRepository(WorksheetDetail).find({
1266
- where: { domain, worksheet: vasWorksheet.id }
1267
- })
1268
-
1269
- if (vasWorksheetDetails.length == 0) {
1270
- await worksheetRepo.delete(vasWorksheet.id)
1271
- }
1272
- }
1273
-
1274
- return results ? true : false
1275
- }
1276
1101
  }
@@ -416,7 +416,7 @@ export class WorksheetController {
416
416
  let existingWorksheet: Worksheet
417
417
  try {
418
418
  existingWorksheet = await this.findWorksheetByRefOrder(refOrder, type)
419
- } catch (e) { }
419
+ } catch (e) {}
420
420
 
421
421
  if (existingWorksheet)
422
422
  throw new Error(
@@ -432,7 +432,7 @@ export class WorksheetController {
432
432
  name: WorksheetNoGenerator.generate(type),
433
433
  type,
434
434
  status:
435
- refOrderType == 'replenishment' && type == WORKSHEET_TYPE.PUTAWAY_REPLENISHMENT
435
+ (refOrderType == 'replenishment' && type == WORKSHEET_TYPE.PUTAWAY_REPLENISHMENT) || type == WORKSHEET_TYPE.VAS
436
436
  ? WORKSHEET_STATUS.EXECUTING
437
437
  : WORKSHEET_STATUS.DEACTIVATED,
438
438
  creator: this.user,
@@ -501,7 +501,9 @@ export class WorksheetController {
501
501
  name: WorksheetNoGenerator.generate(type, true),
502
502
  type,
503
503
  status:
504
- type == WORKSHEET_TYPE.PUTAWAY_REPLENISHMENT ? WORKSHEET_STATUS.EXECUTING : WORKSHEET_STATUS.DEACTIVATED,
504
+ type == WORKSHEET_TYPE.PUTAWAY_REPLENISHMENT || type == WORKSHEET_TYPE.VAS
505
+ ? WORKSHEET_STATUS.EXECUTING
506
+ : WORKSHEET_STATUS.DEACTIVATED,
505
507
  [orderTargetField]: orderTarget,
506
508
  creator: this.user,
507
509
  updater: this.user,
@@ -31,23 +31,27 @@ import { LastMileAPI } from '@things-factory/integration-lmd'
31
31
  export const confirmCancellationReleaseOrder = {
32
32
  async confirmCancellationReleaseOrder(_: any, { name }, context: any) {
33
33
  const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
34
- let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
35
- where: { domain, name, status: ORDER_STATUS.PENDING_CANCEL },
36
- relations: [
37
- 'bizplace',
38
- 'bizplace.domain',
39
- 'orderProducts',
40
- 'orderProducts.productDetail',
41
- 'orderInventories',
42
- 'orderInventories.inventory',
43
- 'orderInventories.inventory.location',
44
- 'orderInventories.product',
45
- 'orderInventories.productDetail',
46
- 'orderVass',
47
- 'lastMileDelivery',
48
- 'orderPackages'
49
- ]
50
- })
34
+
35
+ let releaseGood: ReleaseGood = await tx
36
+ .getRepository(ReleaseGood)
37
+ .createQueryBuilder('rg')
38
+ .innerJoinAndSelect('rg.bizplace', 'b')
39
+ .innerJoinAndSelect('b.domain', 'd')
40
+ .innerJoinAndSelect('rg.orderProducts', 'op')
41
+ .innerJoinAndSelect('op.productDetail', 'oppd')
42
+ .innerJoinAndSelect('rg.orderInventories', 'oi')
43
+ .innerJoinAndSelect('oi.inventory', 'i')
44
+ .innerJoinAndSelect('oi.product', 'p')
45
+ .innerJoinAndSelect('oi.productDetail', 'pd')
46
+ .leftJoinAndSelect('rg.orderVass', 'ov')
47
+ .leftJoinAndSelect('rg.lastMileDelivery', 'lmd')
48
+ .leftJoinAndSelect('rg.orderPackages', 'opk')
49
+ .where(`rg.domain_id = :domain`, { domain: domain.id })
50
+ .andWhere(`rg.name = :name`, { name })
51
+ .andWhere(`rg.status = :status`, {
52
+ status: ORDER_STATUS.PENDING_CANCEL
53
+ })
54
+ .getOne()
51
55
 
52
56
  if (!releaseGood) throw new Error(`Release good order doesn't exists.`)
53
57
  let targetOIs: OrderInventory[] = releaseGood.orderInventories
@@ -63,7 +67,6 @@ export const confirmCancellationReleaseOrder = {
63
67
  await Promise.all(
64
68
  pickedOIs.map(async (orderInventory: OrderInventory) => {
65
69
  let inventory: Inventory = orderInventory.inventory
66
- let location: Location = inventory?.location
67
70
 
68
71
  if (inventory && inventory.id) {
69
72
  await tx
@@ -138,7 +141,6 @@ export const confirmCancellationReleaseOrder = {
138
141
  .getRepository(OrderInventory)
139
142
  .update(cancelOIs, { status: ORDER_INVENTORY_STATUS.CANCELLED, updater: user })
140
143
  }
141
-
142
144
  if (replacedOIs && replacedOIs.length) {
143
145
  await tx
144
146
  .getRepository(OrderInventory)
@@ -187,7 +189,6 @@ export const confirmCancellationReleaseOrder = {
187
189
  })
188
190
  await tx.getRepository(WorksheetDetail).save(foundWSD)
189
191
  }
190
-
191
192
  // find DO and change status to pending cancel
192
193
  let foundDO: DeliveryOrder[] = await tx.getRepository(DeliveryOrder).find({
193
194
  where: { domain, releaseGood, status: ORDER_STATUS.PENDING_CANCEL },
@@ -319,7 +320,7 @@ async function updateStockForOrderInventories(
319
320
  })
320
321
  if (application) {
321
322
  const powrupController: PowrupController = new PowrupController()
322
- await powrupController.updateStock(orderInventories, customerDomain, user, tx)
323
+ powrupController.updateStock(orderInventories, customerDomain, user, tx)
323
324
  }
324
325
  }
325
326
  }
@@ -131,7 +131,7 @@ export async function cycleCountAdjustment(
131
131
 
132
132
  if (application) {
133
133
  const powrupController: PowrupController = new PowrupController()
134
- await powrupController.updateStock([inventory], customerDomain, user, tx)
134
+ powrupController.updateStock([inventory], customerDomain, user, tx)
135
135
  }
136
136
  } else if (targetInventory.inspectedQty == 0) {
137
137
  // create STORED, CC_ADJUSTMENT history
@@ -167,7 +167,7 @@ export async function cycleCountAdjustment(
167
167
 
168
168
  if (application) {
169
169
  const powrupController: PowrupController = new PowrupController()
170
- await powrupController.updateStock([inventory], customerDomain, user, tx)
170
+ powrupController.updateStock([inventory], customerDomain, user, tx)
171
171
  }
172
172
  } else {
173
173
  const prevLocationId: string = inventory.location.id
@@ -227,7 +227,7 @@ export async function cycleCountAdjustment(
227
227
 
228
228
  if (application) {
229
229
  const powrupController: PowrupController = new PowrupController()
230
- await powrupController.updateStock([inventory], customerDomain, user, tx)
230
+ powrupController.updateStock([inventory], customerDomain, user, tx)
231
231
  }
232
232
 
233
233
  targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED