@things-factory/operato-pms 9.0.0-beta.9 → 9.0.1

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 (116) hide show
  1. package/_index.html +0 -1
  2. package/dist-server/controllers/render-dispatchment.js +2 -2
  3. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  4. package/dist-server/graphql/resolvers/block/block-query.js +1 -2
  5. package/dist-server/graphql/resolvers/block/block-query.js.map +1 -1
  6. package/dist-server/graphql/resolvers/block/index.js +4 -1
  7. package/dist-server/graphql/resolvers/block/index.js.map +1 -1
  8. package/dist-server/graphql/resolvers/block/update-multiple-block.js +17 -6
  9. package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -1
  10. package/dist-server/graphql/resolvers/block-detail/index.js +4 -1
  11. package/dist-server/graphql/resolvers/block-detail/index.js.map +1 -1
  12. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js +18 -7
  13. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -1
  14. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js +6 -1
  15. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js.map +1 -1
  16. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js +1 -2
  17. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js.map +1 -1
  18. package/dist-server/graphql/resolvers/daily-block-detail/index.js +7 -1
  19. package/dist-server/graphql/resolvers/daily-block-detail/index.js.map +1 -1
  20. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js +5 -1
  21. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js.map +1 -1
  22. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js +13 -4
  23. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -1
  24. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +1 -2
  25. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  26. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +19 -11
  27. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  28. package/dist-server/graphql/resolvers/daily-dispatch/index.js +5 -1
  29. package/dist-server/graphql/resolvers/daily-dispatch/index.js.map +1 -1
  30. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +11 -3
  31. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  32. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js +1 -2
  33. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map +1 -1
  34. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +1 -2
  35. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  36. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +5 -1
  37. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
  38. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +14 -6
  39. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  40. package/dist-server/graphql/resolvers/daily-harvest/index.js +5 -1
  41. package/dist-server/graphql/resolvers/daily-harvest/index.js.map +1 -1
  42. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +12 -4
  43. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  44. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js +1 -2
  45. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map +1 -1
  46. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +1 -2
  47. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  48. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +16 -7
  49. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  50. package/dist-server/graphql/resolvers/daily-loading/index.js +5 -1
  51. package/dist-server/graphql/resolvers/daily-loading/index.js.map +1 -1
  52. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +21 -11
  53. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  54. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js +1 -2
  55. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js.map +1 -1
  56. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js +4 -1
  57. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js.map +1 -1
  58. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js +5 -1
  59. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js.map +1 -1
  60. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +16 -2
  61. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -1
  62. package/dist-server/graphql/resolvers/organization/index.js +4 -1
  63. package/dist-server/graphql/resolvers/organization/index.js.map +1 -1
  64. package/dist-server/graphql/resolvers/organization/organization-query.js +1 -2
  65. package/dist-server/graphql/resolvers/organization/organization-query.js.map +1 -1
  66. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +14 -4
  67. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -1
  68. package/dist-server/graphql/resolvers/organization-staff/index.js +4 -1
  69. package/dist-server/graphql/resolvers/organization-staff/index.js.map +1 -1
  70. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +5 -4
  71. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  72. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +19 -10
  73. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -1
  74. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js +5 -1
  75. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js.map +1 -1
  76. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +6 -1
  77. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -1
  78. package/dist-server/graphql/resolvers/plantation-setting/index.js +7 -1
  79. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -1
  80. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +3 -1
  81. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -1
  82. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +13 -4
  83. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -1
  84. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +5 -1
  85. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -1
  86. package/dist-server/graphql/resolvers/ramp/index.js +4 -1
  87. package/dist-server/graphql/resolvers/ramp/index.js.map +1 -1
  88. package/dist-server/graphql/resolvers/ramp/ramp-query.js +1 -2
  89. package/dist-server/graphql/resolvers/ramp/ramp-query.js.map +1 -1
  90. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +19 -10
  91. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -1
  92. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +3 -1
  93. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
  94. package/dist-server/graphql/resolvers/report/index.js +10 -1
  95. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  96. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +3 -1
  97. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
  98. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +3 -1
  99. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
  100. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +3 -1
  101. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
  102. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +4 -1
  103. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  104. package/dist-server/graphql/resolvers/truck/index.js +4 -1
  105. package/dist-server/graphql/resolvers/truck/index.js.map +1 -1
  106. package/dist-server/graphql/resolvers/truck/truck-query.js +1 -2
  107. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -1
  108. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +17 -9
  109. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -1
  110. package/dist-server/tsconfig.tsbuildinfo +1 -1
  111. package/dist-server/utils/no-generator.d.ts +4 -4
  112. package/dist-server/utils/transaction-util.js +18 -6
  113. package/dist-server/utils/transaction-util.js.map +1 -1
  114. package/package.json +56 -56
  115. package/views/auth-page.html +0 -1
  116. package/views/public/home.html +0 -1
@@ -38,27 +38,37 @@ exports.updateDailyLoading = {
38
38
  }
39
39
  };
40
40
  async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetailPatches, user, tx) {
41
- const truckRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Truck)) || (0, shell_1.getRepository)(entities_1.Truck);
42
- const blockRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Block)) || (0, shell_1.getRepository)(entities_1.Block);
43
- const rampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Ramp)) || (0, shell_1.getRepository)(entities_1.Ramp);
44
- const dailyLoadingDetailRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.DailyLoadingDetail)) || (0, shell_1.getRepository)(entities_1.DailyLoadingDetail);
41
+ const truckRepo = tx?.getRepository(entities_1.Truck) || (0, shell_1.getRepository)(entities_1.Truck);
42
+ const blockRepo = tx?.getRepository(entities_1.Block) || (0, shell_1.getRepository)(entities_1.Block);
43
+ const rampRepo = tx?.getRepository(entities_1.Ramp) || (0, shell_1.getRepository)(entities_1.Ramp);
44
+ const dailyLoadingDetailRepo = tx?.getRepository(entities_1.DailyLoadingDetail) || (0, shell_1.getRepository)(entities_1.DailyLoadingDetail);
45
45
  let updatedDailyLoadingDetails = [];
46
46
  const dailyLoadingDetails = dailyLoading.dailyLoadingDetails;
47
47
  // for existing data row
48
48
  const existingDailyLoadingDetails = dailyLoadingDetailPatches.filter(detail => detail.name !== null);
49
49
  // new row added in client side
50
50
  const newDailyLoadingDetail = dailyLoadingDetailPatches.filter(detail => detail.name === null);
51
- if ((existingDailyLoadingDetails === null || existingDailyLoadingDetails === void 0 ? void 0 : existingDailyLoadingDetails.length) > 0) {
51
+ if (existingDailyLoadingDetails?.length > 0) {
52
52
  updatedDailyLoadingDetails = await Promise.all(dailyLoadingDetails.map(async (existingRecord) => {
53
53
  const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name === existingRecord.name);
54
54
  if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {
55
55
  await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx);
56
56
  }
57
- return Object.assign(Object.assign({}, existingRecord), { dailyLoading, truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }), block: await blockRepo.findOneBy({ id: existingRecord.block.id }), ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }), totalBunchLoaded: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.totalBunchLoaded) || 0, totalBunchWeight: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.totalBunchWeight) || 0, remark: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.remark) || null, updater: user });
57
+ return {
58
+ ...existingRecord,
59
+ dailyLoading,
60
+ truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }),
61
+ block: await blockRepo.findOneBy({ id: existingRecord.block.id }),
62
+ ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }),
63
+ totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,
64
+ totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,
65
+ remark: foundDailyLoadingDetailPatch?.remark || null,
66
+ updater: user
67
+ };
58
68
  }));
59
69
  updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails);
60
70
  }
61
- if ((newDailyLoadingDetail === null || newDailyLoadingDetail === void 0 ? void 0 : newDailyLoadingDetail.length) > 0) {
71
+ if (newDailyLoadingDetail?.length > 0) {
62
72
  await Promise.all(newDailyLoadingDetail.map(async (dailyLoadingDetail) => {
63
73
  let newDailyLoadingDetail = new entities_1.DailyLoadingDetail();
64
74
  newDailyLoadingDetail.domain = domain;
@@ -66,9 +76,9 @@ async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetail
66
76
  newDailyLoadingDetail.truck = await truckRepo.findOneBy({ id: dailyLoadingDetail.truck.id });
67
77
  newDailyLoadingDetail.block = await blockRepo.findOneBy({ id: dailyLoadingDetail.block.id });
68
78
  newDailyLoadingDetail.ramp = await rampRepo.findOneBy({ id: dailyLoadingDetail.ramp.id });
69
- newDailyLoadingDetail.totalBunchLoaded = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.totalBunchLoaded) || 0;
70
- newDailyLoadingDetail.totalBunchWeight = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.totalBunchWeight) || 0;
71
- newDailyLoadingDetail.remark = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.remark) || null;
79
+ newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0;
80
+ newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0;
81
+ newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null;
72
82
  newDailyLoadingDetail.creator = user;
73
83
  newDailyLoadingDetail.dailyLoading = dailyLoading;
74
84
  await dailyLoadingDetailRepo.save(newDailyLoadingDetail);
@@ -76,7 +86,7 @@ async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetail
76
86
  }
77
87
  }
78
88
  async function updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx) {
79
- const plantationInvRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.PlantationInventory)) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
89
+ const plantationInvRepo = tx?.getRepository(entities_1.PlantationInventory) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
80
90
  let existingRampTonnage = await plantationInvRepo.findOne({
81
91
  where: { domain: { id: domain.id }, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp: { id: existingRecord.ramp.id } },
82
92
  relations: ['domain', 'block', 'ramp']
@@ -1 +1 @@
1
- {"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyLoading = {\n async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyLoadingRepo = tx.getRepository(DailyLoading)\n\n let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({\n where: { name },\n relations: [\n 'dailyLoadingDetails',\n 'dailyLoadingDetails.truck',\n 'dailyLoadingDetails.ramp',\n 'dailyLoadingDetails.block'\n ]\n })\n\n // get sum of bunch loaded from all trip\n var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n var totalWeight: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n dailyLoading.totalBunch = totalBunch\n dailyLoading.totalWeight = totalWeight\n dailyLoading.loadingDate = dailyLoadingPatch.loadingDate\n dailyLoading.updater = user\n dailyLoading = await dailyLoadingRepo.save(dailyLoading)\n\n // 2. Create daily loading detail\n await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)\n\n return dailyLoading\n }\n}\n\nexport async function updateDailyLoadingDetail(\n domain: Domain,\n dailyLoading: DailyLoading,\n dailyLoadingDetailPatches: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n let updatedDailyLoadingDetails: any[] = []\n const dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n // for existing data row\n const existingDailyLoadingDetails: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(\n detail => detail.name !== null\n )\n\n // new row added in client side\n const newDailyLoadingDetail: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(detail => detail.name === null)\n\n if (existingDailyLoadingDetails?.length > 0) {\n updatedDailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (existingRecord: DailyLoadingDetail) => {\n const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(\n detail => detail.name === existingRecord.name\n )\n\n if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {\n await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx)\n }\n\n return {\n ...existingRecord,\n dailyLoading,\n truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }),\n block: await blockRepo.findOneBy({ id: existingRecord.block.id }),\n ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }),\n totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,\n totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,\n remark: foundDailyLoadingDetailPatch?.remark || null,\n updater: user\n }\n })\n )\n updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)\n }\n\n if (newDailyLoadingDetail?.length > 0) {\n await Promise.all(\n newDailyLoadingDetail.map(async (dailyLoadingDetail: DailyLoadingDetail) => {\n let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()\n newDailyLoadingDetail.domain = domain\n newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()\n newDailyLoadingDetail.truck = await truckRepo.findOneBy({ id: dailyLoadingDetail.truck.id })\n newDailyLoadingDetail.block = await blockRepo.findOneBy({ id: dailyLoadingDetail.block.id })\n newDailyLoadingDetail.ramp = await rampRepo.findOneBy({ id: dailyLoadingDetail.ramp.id })\n newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0\n newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0\n newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null\n newDailyLoadingDetail.creator = user\n newDailyLoadingDetail.dailyLoading = dailyLoading\n\n await dailyLoadingDetailRepo.save(newDailyLoadingDetail)\n })\n )\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n dailyLoading: DailyLoading,\n foundDailyLoadingDetailPatch: any,\n existingRecord: DailyLoadingDetail,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: { id: existingRecord.ramp.id } },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n const tonnageChanges: number = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n existingRampTonnage.block,\n domain,\n existingRampTonnage.ramp,\n dailyLoading.id,\n dailyLoading.name,\n TRANSACTION_TYPE.LOADING_ADJUSTMENT,\n dailyLoading.loadingDate,\n 0,\n tonnageChanges,\n user,\n tx\n )\n }\n}\n"]}
1
+ {"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyLoading = {\n async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyLoadingRepo = tx.getRepository(DailyLoading)\n\n let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({\n where: { name },\n relations: [\n 'dailyLoadingDetails',\n 'dailyLoadingDetails.truck',\n 'dailyLoadingDetails.ramp',\n 'dailyLoadingDetails.block'\n ]\n })\n\n // get sum of bunch loaded from all trip\n var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n var totalWeight: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n dailyLoading.totalBunch = totalBunch\n dailyLoading.totalWeight = totalWeight\n dailyLoading.loadingDate = dailyLoadingPatch.loadingDate\n dailyLoading.updater = user\n dailyLoading = await dailyLoadingRepo.save(dailyLoading)\n\n // 2. Create daily loading detail\n await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)\n\n return dailyLoading\n }\n}\n\nexport async function updateDailyLoadingDetail(\n domain: Domain,\n dailyLoading: DailyLoading,\n dailyLoadingDetailPatches: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n let updatedDailyLoadingDetails: any[] = []\n const dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n // for existing data row\n const existingDailyLoadingDetails: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(\n detail => detail.name !== null\n )\n\n // new row added in client side\n const newDailyLoadingDetail: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(detail => detail.name === null)\n\n if (existingDailyLoadingDetails?.length > 0) {\n updatedDailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (existingRecord: DailyLoadingDetail) => {\n const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(\n detail => detail.name === existingRecord.name\n )\n\n if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {\n await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx)\n }\n\n return {\n ...existingRecord,\n dailyLoading,\n truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }),\n block: await blockRepo.findOneBy({ id: existingRecord.block.id }),\n ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }),\n totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,\n totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,\n remark: foundDailyLoadingDetailPatch?.remark || null,\n updater: user\n }\n })\n )\n updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)\n }\n\n if (newDailyLoadingDetail?.length > 0) {\n await Promise.all(\n newDailyLoadingDetail.map(async (dailyLoadingDetail: DailyLoadingDetail) => {\n let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()\n newDailyLoadingDetail.domain = domain\n newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()\n newDailyLoadingDetail.truck = await truckRepo.findOneBy({ id: dailyLoadingDetail.truck.id })\n newDailyLoadingDetail.block = await blockRepo.findOneBy({ id: dailyLoadingDetail.block.id })\n newDailyLoadingDetail.ramp = await rampRepo.findOneBy({ id: dailyLoadingDetail.ramp.id })\n newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0\n newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0\n newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null\n newDailyLoadingDetail.creator = user\n newDailyLoadingDetail.dailyLoading = dailyLoading\n\n await dailyLoadingDetailRepo.save(newDailyLoadingDetail)\n })\n )\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n dailyLoading: DailyLoading,\n foundDailyLoadingDetailPatch: any,\n existingRecord: DailyLoadingDetail,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: { id: existingRecord.ramp.id } },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n const tonnageChanges: number = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n existingRampTonnage.block,\n domain,\n existingRampTonnage.ramp,\n dailyLoading.id,\n dailyLoading.name,\n TRANSACTION_TYPE.LOADING_ADJUSTMENT,\n dailyLoading.loadingDate,\n 0,\n tonnageChanges,\n user,\n tx\n )\n }\n}\n"]}
@@ -13,7 +13,6 @@ exports.Query = {
13
13
  });
14
14
  },
15
15
  async dailyLoadingDetails(_, params, context) {
16
- var _a;
17
16
  const { tx } = context.state;
18
17
  const queryBuilder = tx.getRepository(entities_1.DailyLoadingDetail).createQueryBuilder();
19
18
  (0, shell_1.buildQuery)(queryBuilder, params, context);
@@ -21,7 +20,7 @@ exports.Query = {
21
20
  .leftJoinAndSelect('DailyLoadingDetail.domain', 'Domain')
22
21
  .leftJoinAndSelect('DailyLoadingDetail.creator', 'Creator')
23
22
  .leftJoinAndSelect('DailyLoadingDetail.updater', 'Updater');
24
- if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
23
+ if (params.filters?.length > 0)
25
24
  queryBuilder.andWhere('DailyLoadingDetail.deletedAt IS NULL');
26
25
  else
27
26
  queryBuilder.where('DailyLoadingDetail.deletedAt IS NULL');
@@ -1 +1 @@
1
- {"version":3,"file":"daily-loading-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAkF;AAErE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QAC3E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACpF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,2BAA2B,EAAE,QAAQ,CAAC;aACxD,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC;aAC1D,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAE7D,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAA;;YACxF,YAAY,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAE/D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyLoadingDetail as DailyLoadingDetailEntity } from '../../../entities'\n\nexport const Query = {\n async dailyLoadingDetail(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n return await tx.getRepository(DailyLoadingDetailEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async dailyLoadingDetails(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyLoadingDetailEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyLoadingDetail.domain', 'Domain')\n .leftJoinAndSelect('DailyLoadingDetail.creator', 'Creator')\n .leftJoinAndSelect('DailyLoadingDetail.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyLoadingDetail.deletedAt IS NULL')\n else queryBuilder.where('DailyLoadingDetail.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"daily-loading-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAkF;AAErE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC3E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACpF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,2BAA2B,EAAE,QAAQ,CAAC;aACxD,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC;aAC1D,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAA;;YACxF,YAAY,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAE/D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyLoadingDetail as DailyLoadingDetailEntity } from '../../../entities'\n\nexport const Query = {\n async dailyLoadingDetail(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n return await tx.getRepository(DailyLoadingDetailEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async dailyLoadingDetails(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyLoadingDetailEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyLoadingDetail.domain', 'Domain')\n .leftJoinAndSelect('DailyLoadingDetail.creator', 'Creator')\n .leftJoinAndSelect('DailyLoadingDetail.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyLoadingDetail.deletedAt IS NULL')\n else queryBuilder.where('DailyLoadingDetail.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
@@ -6,6 +6,9 @@ const update_daily_loading_ramp_1 = require("./update-daily-loading-ramp");
6
6
  const delete_daily_loading_ramp_1 = require("./delete-daily-loading-ramp");
7
7
  exports.DailyLoadingRampResolver = {
8
8
  Query: daily_loading_ramp_query_1.Query,
9
- Mutation: Object.assign(Object.assign({}, update_daily_loading_ramp_1.updateDailyLoadingRamp), delete_daily_loading_ramp_1.deleteDailyLoadingRamp)
9
+ Mutation: {
10
+ ...update_daily_loading_ramp_1.updateDailyLoadingRamp,
11
+ ...delete_daily_loading_ramp_1.deleteDailyLoadingRamp
12
+ }
10
13
  };
11
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-ramp/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkD;AAElD,2EAAoE;AACpE,2EAAoE;AAEvD,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAL,gCAAK;IACL,QAAQ,kCACH,kDAAsB,GACtB,kDAAsB,CAC1B;CACF,CAAA","sourcesContent":["import { Query } from './daily-loading-ramp-query'\n\nimport { updateDailyLoadingRamp } from './update-daily-loading-ramp'\nimport { deleteDailyLoadingRamp } from './delete-daily-loading-ramp'\n\nexport const DailyLoadingRampResolver = {\n Query,\n Mutation: {\n ...updateDailyLoadingRamp,\n ...deleteDailyLoadingRamp\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-ramp/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkD;AAElD,2EAAoE;AACpE,2EAAoE;AAEvD,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAL,gCAAK;IACL,QAAQ,EAAE;QACR,GAAG,kDAAsB;QACzB,GAAG,kDAAsB;KAC1B;CACF,CAAA","sourcesContent":["import { Query } from './daily-loading-ramp-query'\n\nimport { updateDailyLoadingRamp } from './update-daily-loading-ramp'\nimport { deleteDailyLoadingRamp } from './delete-daily-loading-ramp'\n\nexport const DailyLoadingRampResolver = {\n Query,\n Mutation: {\n ...updateDailyLoadingRamp,\n ...deleteDailyLoadingRamp\n }\n}\n"]}
@@ -9,7 +9,11 @@ exports.updateDailyLoadingRamp = {
9
9
  const dailyLoadingRamp = await repository.findOne({
10
10
  where: { domain: { id: domain.id }, name }
11
11
  });
12
- return await repository.save(Object.assign(Object.assign(Object.assign({}, dailyLoadingRamp), patch), { updater: user }));
12
+ return await repository.save({
13
+ ...dailyLoadingRamp,
14
+ ...patch,
15
+ updater: user
16
+ });
13
17
  }
14
18
  };
15
19
  //# sourceMappingURL=update-daily-loading-ramp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-daily-loading-ramp.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAEvC,QAAA,sBAAsB,GAAG;IACpC,KAAK,CAAC,sBAAsB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAwB;QAC5E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,2BAAgB,CAAC,CAAA;QACrD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,gBAAgB,GAChB,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { DailyLoadingRamp } from '../../../entities'\n\nexport const updateDailyLoadingRamp = {\n async updateDailyLoadingRamp(_: any, { name, patch }, context: ResolverContext) {\n const { domain, tx, user } = context.state\n\n const repository = tx.getRepository(DailyLoadingRamp)\n const dailyLoadingRamp = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...dailyLoadingRamp,\n ...patch,\n updater: user\n })\n }\n}\n"]}
1
+ {"version":3,"file":"update-daily-loading-ramp.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAEvC,QAAA,sBAAsB,GAAG;IACpC,KAAK,CAAC,sBAAsB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAwB;QAC5E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,2BAAgB,CAAC,CAAA;QACrD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,gBAAgB;YACnB,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { DailyLoadingRamp } from '../../../entities'\n\nexport const updateDailyLoadingRamp = {\n async updateDailyLoadingRamp(_: any, { name, patch }, context: ResolverContext) {\n const { domain, tx, user } = context.state\n\n const repository = tx.getRepository(DailyLoadingRamp)\n const dailyLoadingRamp = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...dailyLoadingRamp,\n ...patch,\n updater: user\n })\n }\n}\n"]}
@@ -17,7 +17,14 @@ exports.Query = {
17
17
  let data = await getDailyProductionData(blockId, year, month, tx);
18
18
  let result = [];
19
19
  result = data.map(itm => {
20
- return Object.assign(Object.assign({}, itm), { blockId, tonnage: itm.todayWeightCollected, year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
20
+ return {
21
+ ...itm,
22
+ blockId,
23
+ tonnage: itm.todayWeightCollected,
24
+ year: itm.dateDay.getFullYear(),
25
+ month: itm.dateDay.getMonth(),
26
+ date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })
27
+ };
21
28
  });
22
29
  return result;
23
30
  }
@@ -31,7 +38,14 @@ exports.Query = {
31
38
  let data = await getDailyProductionData(blockId, year, month, tx);
32
39
  let result = [];
33
40
  result = data.map(itm => {
34
- return Object.assign(Object.assign({}, itm), { blockId, yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4), year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
41
+ return {
42
+ ...itm,
43
+ blockId,
44
+ yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4),
45
+ year: itm.dateDay.getFullYear(),
46
+ month: itm.dateDay.getMonth(),
47
+ date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })
48
+ };
35
49
  });
36
50
  return result;
37
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/dashboard-query.ts"],"names":[],"mappings":";;;AAoGA,wDAgJC;AAlPD,gEAAgE;AAEnD,QAAA,KAAK,GAAG;IACnB;;;;OAIG;IACH,KAAK,CAAC,yBAAyB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAwB;QACzF,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YAEjD,IAAI,IAAI,GAAU,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;YACxE,IAAI,MAAM,GAAG,EAAE,CAAA;YAEf,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtB,uCACK,GAAG,KACN,OAAO,EACP,OAAO,EAAE,GAAG,CAAC,oBAAoB,EACjC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAC/B,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAC7B,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAChF;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YAEjD,IAAI,IAAI,GAAU,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;YACxE,IAAI,MAAM,GAAG,EAAE,CAAA;YAEf,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtB,uCACK,GAAG,KACN,OAAO,EACP,KAAK,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACrG,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAC/B,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAC7B,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAChF;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,UAAU,EAAE,EAAE,OAAwB;QACvE,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,EAAE;YAAE,UAAU,GAAG,IAAI,IAAI,EAAE,CAAA;QAE5D,IAAI,YAAY,GAAG,EAAE,CAAA;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;gBACxF,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,0DAA0D;gBAC1D,uDAAuD;aACxD,CAAC,CAAA;YACF,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,YAAY,CAAC,OAAO,EAAE,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,CAAM,EAAE,EAAE,SAAS,EAAE,EAAE,OAAwB;QAChF,OAAO;YACL,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,oDAAoD;YACpD,mDAAmD;SACpD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,SAAS,EAAE,EAAE,OAAwB;QACvE,OAAO;YACL,kBAAkB,EAAE,CAAC;YACrB,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,4DAA4D;YAC5D,yDAAyD;YACzD,0DAA0D;SAC3D,CAAA;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,IAAY,EACZ,KAAa,EACb,EAAiB;IAEjB,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;;QAWT,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,OAAO,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;;;;GAIzG,CAAC,CAAA;IAEF,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IAEpC,IAAI,cAAc,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CACnH,GAAG,CACJ,CAAA;IAED,IAAI,YAAY,GAAG;QACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;GAcD,EACC,CAAC,YAAY,CAAC,CACf,CAAA;IAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8BM,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,2CAA2C,OAAO,IAAI,CAAC,CAAC,CAAC,IACtG;;;;yCAIiC,cAAc,yBAAyB,YAAY;;;;;;;;;;;;;;;;;;;;;;MAsBtF,EACF,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;IAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;GAElC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,aAAa,EAAE,GAAG,CAAC,gBAAgB;YACnC,oBAAoB,EAAE,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACxE,oBAAoB,EAAE,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,oBAAoB,EAAE,GAAG,CAAC,sBAAsB;YAChD,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,oBAAoB,EAAE,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,oBAAoB,EAAE,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SACtE,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { EntityManager } from 'typeorm'\n\n// import { buildQuery, ListParam } from '@things-factory/shell'\n\nexport const Query = {\n /**\n * @param blockId: id of the block\n * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01\n * @returns tonnage data with its sorted date\n */\n async monthlyTonnageProductions(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n tonnage: itm.todayWeightCollected,\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async monthlyYields(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4),\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async weeklyBunchesCount(_: any, { targetDate }, context: ResolverContext) {\n if (!targetDate || targetDate == '') targetDate = new Date()\n\n let bunchesCount = []\n\n for (let i = 0; i < 7; i++) {\n bunchesCount.push({\n date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),\n harvestedCount: 0,\n collectedCount: 0\n // harvestedCount: Math.floor(Math.random() * 1000) + 500,\n // collectedCount: Math.floor(Math.random() * 500) + 50\n })\n targetDate.setDate(targetDate.getDate() - 1)\n }\n\n return bunchesCount.reverse()\n },\n\n async tonnageAndBunchesInventories(_: any, { something }, context: ResolverContext) {\n return {\n bunches: 0,\n tonnage: 0\n // bunches: Math.floor(Math.random() * 10000) + 500,\n // tonnage: Math.floor(Math.random() * 10000) + 500\n }\n },\n\n async productionsOverview(_: any, { something }, context: ResolverContext) {\n return {\n averageBunchWeight: 0,\n bunchesCount: 0,\n tonnageWeighed: 0\n // averageBunchWeight: Math.floor(Math.random() * 150) + 70,\n // bunchesCount: Math.floor(Math.random() * 10000) + 500,\n // tonnageWeighed: Math.floor(Math.random() * 10000) + 500\n }\n }\n}\n\nexport async function getDailyProductionData(\n blockId: String,\n year: number,\n month: number,\n tx: EntityManager\n): Promise<any> {\n await tx.query(`\n CREATE TEMP TABLE temp_blocks on commit drop AS (\n WITH RECURSIVE b AS ( \n SELECT b.id AS block_id, * FROM blocks b \n WHERE b.deleted_at IS null\n UNION ALL\n SELECT b.id AS block_id, cb.* FROM blocks cb\n INNER JOIN b ON b.id = cb.parent_block_id\n WHERE cb.deleted_at IS null\n )\n SELECT block_id, id, name FROM b \n ${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}\n GROUP BY block_id, id, name \n ORDER BY block_id, id, name \n );\n `)\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [fromDate.getFullYear().toString(), String(fromDate.getMonth() + 1).padStart(2, '0'), '01'].join(\n '-'\n )\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_records on commit drop AS (\t\n select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches, \n round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,\n sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,\n sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,\n round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,\n round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,\t \n transaction_date\n from record_transactions t2\n inner join temp_blocks blk on blk.id = t2.block_id\n where transaction_date <= $1\n group by blk.block_id, transaction_date\n )\n `,\n [toDateString]\n )\n\n await tx.query(\n `\n create temp table temp_daily_production_data on commit drop as (\n select *,\n prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,\n prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,\n prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (\n select md.dateDay as date_day,\n coalesce(\n (\n select sum(today_field_bunches) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_bunch_bal_in_field,\n coalesce(\n (\n select sum(today_ramp_weight) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_weight_bal_in_ramp,\n coalesce(today_bunch_harvest, 0) as today_bunch_harvest,\n coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,\n coalesce(today_bunch_collected, 0) as today_bunch_collected, \n coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,\n coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected, \n coalesce(sum(today_ramp_weight_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_ramp_weight_collected,\n coalesce(today_weight_dispatch, 0) as today_weight_dispatch, \n coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,\n coalesce(tot.today_out_turn, 0) as today_out_turn,\n coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,\n ${\n blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`\n } as block,\n coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,\n coalesce(thr.today_hectare_cover, 0) as today_hectare_cover\n from \n (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n left join (\n select * from temp_records trx\n where transaction_date between $1 and $2 \n order by transaction_date\n ) as dt on dt.transaction_date::date = md.dateDay\n LEFT JOIN (\n select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date \n from daily_harvests dh \n inner join temp_blocks blk on blk.id = dh.block_id\n where harvest_date between $1 and $2\n group by blk.block_id, harvest_date\n ) as thr ON thr.harvest_date::date = md.dateDay\n LEFT JOIN (\n select count(*) AS today_out_turn, dh.harvest_date \n from daily_harvest_details dhd \n inner join daily_harvests dh on dh.id = dhd.daily_harvest_id\n inner join temp_blocks blk on blk.id = dh.block_id\n where dh.harvest_date between $1 and $2\n GROUP BY blk.block_id, dh.harvest_date\n ) as tot ON tot.harvest_date::date = md.dateDay\n ) dt\n )`,\n [fromDateString, toDateString]\n )\n\n const result: any = await tx.query(`\n select * from temp_daily_production_data dt\n `)\n\n return result.map(itm => {\n return {\n block: itm.block,\n dateDay: itm.date_day,\n diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),\n prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),\n prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),\n toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),\n toDateOutTurn: itm.to_date_out_turn,\n toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),\n todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),\n todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),\n todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),\n todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),\n todayHarvestingRound: itm.today_harvesting_round,\n todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),\n todayOutTurn: itm.today_out_turn,\n todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),\n todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),\n todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)\n }\n })\n}\n"]}
1
+ {"version":3,"file":"dashboard-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/dashboard-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager } from 'typeorm'\n\n// import { buildQuery, ListParam } from '@things-factory/shell'\n\nexport const Query = {\n /**\n * @param blockId: id of the block\n * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01\n * @returns tonnage data with its sorted date\n */\n async monthlyTonnageProductions(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n tonnage: itm.todayWeightCollected,\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async monthlyYields(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4),\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async weeklyBunchesCount(_: any, { targetDate }, context: ResolverContext) {\n if (!targetDate || targetDate == '') targetDate = new Date()\n\n let bunchesCount = []\n\n for (let i = 0; i < 7; i++) {\n bunchesCount.push({\n date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),\n harvestedCount: 0,\n collectedCount: 0\n // harvestedCount: Math.floor(Math.random() * 1000) + 500,\n // collectedCount: Math.floor(Math.random() * 500) + 50\n })\n targetDate.setDate(targetDate.getDate() - 1)\n }\n\n return bunchesCount.reverse()\n },\n\n async tonnageAndBunchesInventories(_: any, { something }, context: ResolverContext) {\n return {\n bunches: 0,\n tonnage: 0\n // bunches: Math.floor(Math.random() * 10000) + 500,\n // tonnage: Math.floor(Math.random() * 10000) + 500\n }\n },\n\n async productionsOverview(_: any, { something }, context: ResolverContext) {\n return {\n averageBunchWeight: 0,\n bunchesCount: 0,\n tonnageWeighed: 0\n // averageBunchWeight: Math.floor(Math.random() * 150) + 70,\n // bunchesCount: Math.floor(Math.random() * 10000) + 500,\n // tonnageWeighed: Math.floor(Math.random() * 10000) + 500\n }\n }\n}\n\nexport async function getDailyProductionData(\n blockId: String,\n year: number,\n month: number,\n tx: EntityManager\n): Promise<any> {\n await tx.query(`\n CREATE TEMP TABLE temp_blocks on commit drop AS (\n WITH RECURSIVE b AS ( \n SELECT b.id AS block_id, * FROM blocks b \n WHERE b.deleted_at IS null\n UNION ALL\n SELECT b.id AS block_id, cb.* FROM blocks cb\n INNER JOIN b ON b.id = cb.parent_block_id\n WHERE cb.deleted_at IS null\n )\n SELECT block_id, id, name FROM b \n ${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}\n GROUP BY block_id, id, name \n ORDER BY block_id, id, name \n );\n `)\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [fromDate.getFullYear().toString(), String(fromDate.getMonth() + 1).padStart(2, '0'), '01'].join(\n '-'\n )\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_records on commit drop AS (\t\n select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches, \n round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,\n sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,\n sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,\n round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,\n round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,\t \n transaction_date\n from record_transactions t2\n inner join temp_blocks blk on blk.id = t2.block_id\n where transaction_date <= $1\n group by blk.block_id, transaction_date\n )\n `,\n [toDateString]\n )\n\n await tx.query(\n `\n create temp table temp_daily_production_data on commit drop as (\n select *,\n prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,\n prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,\n prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (\n select md.dateDay as date_day,\n coalesce(\n (\n select sum(today_field_bunches) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_bunch_bal_in_field,\n coalesce(\n (\n select sum(today_ramp_weight) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_weight_bal_in_ramp,\n coalesce(today_bunch_harvest, 0) as today_bunch_harvest,\n coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,\n coalesce(today_bunch_collected, 0) as today_bunch_collected, \n coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,\n coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected, \n coalesce(sum(today_ramp_weight_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_ramp_weight_collected,\n coalesce(today_weight_dispatch, 0) as today_weight_dispatch, \n coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,\n coalesce(tot.today_out_turn, 0) as today_out_turn,\n coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,\n ${\n blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`\n } as block,\n coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,\n coalesce(thr.today_hectare_cover, 0) as today_hectare_cover\n from \n (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n left join (\n select * from temp_records trx\n where transaction_date between $1 and $2 \n order by transaction_date\n ) as dt on dt.transaction_date::date = md.dateDay\n LEFT JOIN (\n select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date \n from daily_harvests dh \n inner join temp_blocks blk on blk.id = dh.block_id\n where harvest_date between $1 and $2\n group by blk.block_id, harvest_date\n ) as thr ON thr.harvest_date::date = md.dateDay\n LEFT JOIN (\n select count(*) AS today_out_turn, dh.harvest_date \n from daily_harvest_details dhd \n inner join daily_harvests dh on dh.id = dhd.daily_harvest_id\n inner join temp_blocks blk on blk.id = dh.block_id\n where dh.harvest_date between $1 and $2\n GROUP BY blk.block_id, dh.harvest_date\n ) as tot ON tot.harvest_date::date = md.dateDay\n ) dt\n )`,\n [fromDateString, toDateString]\n )\n\n const result: any = await tx.query(`\n select * from temp_daily_production_data dt\n `)\n\n return result.map(itm => {\n return {\n block: itm.block,\n dateDay: itm.date_day,\n diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),\n prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),\n prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),\n toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),\n toDateOutTurn: itm.to_date_out_turn,\n toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),\n todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),\n todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),\n todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),\n todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),\n todayHarvestingRound: itm.today_harvesting_round,\n todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),\n todayOutTurn: itm.today_out_turn,\n todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),\n todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),\n todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)\n }\n })\n}\n"]}
@@ -6,6 +6,9 @@ const update_multiple_organization_1 = require("./update-multiple-organization")
6
6
  const delete_organizations_1 = require("./delete-organizations");
7
7
  exports.OrganizationResolver = {
8
8
  Query: organization_query_1.Query,
9
- Mutation: Object.assign(Object.assign({}, update_multiple_organization_1.updateMultipleOrganizationResolver), delete_organizations_1.deleteOrganizations)
9
+ Mutation: {
10
+ ...update_multiple_organization_1.updateMultipleOrganizationResolver,
11
+ ...delete_organizations_1.deleteOrganizations
12
+ }
10
13
  };
11
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/index.ts"],"names":[],"mappings":";;;AAAA,6DAA4C;AAC5C,iFAAmF;AACnF,iEAA4D;AAE/C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,0BAAK;IACL,QAAQ,kCACH,iEAAkC,GAClC,0CAAmB,CACvB;CACF,CAAA","sourcesContent":["import { Query } from './organization-query'\nimport { updateMultipleOrganizationResolver } from './update-multiple-organization'\nimport { deleteOrganizations } from './delete-organizations'\n\nexport const OrganizationResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationResolver,\n ...deleteOrganizations\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/index.ts"],"names":[],"mappings":";;;AAAA,6DAA4C;AAC5C,iFAAmF;AACnF,iEAA4D;AAE/C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,0BAAK;IACL,QAAQ,EAAE;QACR,GAAG,iEAAkC;QACrC,GAAG,0CAAmB;KACvB;CACF,CAAA","sourcesContent":["import { Query } from './organization-query'\nimport { updateMultipleOrganizationResolver } from './update-multiple-organization'\nimport { deleteOrganizations } from './delete-organizations'\n\nexport const OrganizationResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationResolver,\n ...deleteOrganizations\n }\n}\n"]}
@@ -13,7 +13,6 @@ exports.Query = {
13
13
  });
14
14
  },
15
15
  async organizations(_, params, context) {
16
- var _a;
17
16
  const { tx } = context.state;
18
17
  const queryBuilder = tx.getRepository(entities_1.Organization).createQueryBuilder();
19
18
  (0, shell_1.buildQuery)(queryBuilder, params, context);
@@ -21,7 +20,7 @@ exports.Query = {
21
20
  .leftJoinAndSelect('Organization.domain', 'Domain')
22
21
  .leftJoinAndSelect('Organization.creator', 'Creator')
23
22
  .leftJoinAndSelect('Organization.updater', 'Updater');
24
- if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
23
+ if (params.filters?.length > 0)
25
24
  queryBuilder.andWhere('Organization.deletedAt IS NULL');
26
25
  else
27
26
  queryBuilder.where('Organization.deletedAt IS NULL');
@@ -1 +1 @@
1
- {"version":3,"file":"organization-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/organization-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAsE;AAEzD,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aAClD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACpD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QAEvD,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAA;;YAClF,YAAY,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Organization as OrganizationEntity } from '../../../entities'\n\nexport const Query = {\n async organization(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async organizations(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(OrganizationEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('Organization.domain', 'Domain')\n .leftJoinAndSelect('Organization.creator', 'Creator')\n .leftJoinAndSelect('Organization.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('Organization.deletedAt IS NULL')\n else queryBuilder.where('Organization.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"organization-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/organization-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAsE;AAEzD,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aAClD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACpD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QAEvD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAA;;YAClF,YAAY,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Organization as OrganizationEntity } from '../../../entities'\n\nexport const Query = {\n async organization(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async organizations(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(OrganizationEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('Organization.domain', 'Domain')\n .leftJoinAndSelect('Organization.creator', 'Creator')\n .leftJoinAndSelect('Organization.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('Organization.deletedAt IS NULL')\n else queryBuilder.where('Organization.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
@@ -16,16 +16,26 @@ async function updateMultipleOrganization(_, { patches }, context) {
16
16
  if (_createRecords.length > 0) {
17
17
  for (let i = 0; i < _createRecords.length; i++) {
18
18
  const newRecord = _createRecords[i];
19
- const result = await organizationRepo.save(Object.assign(Object.assign({}, newRecord), { domain, status: constants_1.ORGANIZATION_STATUS.ACTIVE, creator: user, updater: user }));
20
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
19
+ const result = await organizationRepo.save({
20
+ ...newRecord,
21
+ domain,
22
+ status: constants_1.ORGANIZATION_STATUS.ACTIVE,
23
+ creator: user,
24
+ updater: user
25
+ });
26
+ results.push({ ...result, cuFlag: '+' });
21
27
  }
22
28
  }
23
29
  if (_updateRecords.length > 0) {
24
30
  for (let i = 0; i < _updateRecords.length; i++) {
25
31
  const newRecord = _updateRecords[i];
26
32
  const organization = await organizationRepo.findOneBy({ id: newRecord.id });
27
- const result = await organizationRepo.save(Object.assign(Object.assign(Object.assign({}, organization), newRecord), { updater: user }));
28
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
33
+ const result = await organizationRepo.save({
34
+ ...organization,
35
+ ...newRecord,
36
+ updater: user
37
+ });
38
+ results.push({ ...result, cuFlag: 'M' });
29
39
  }
30
40
  }
31
41
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"update-multiple-organization.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/update-multiple-organization.ts"],"names":[],"mappings":";;;AAOA,gEAwCC;AA/CD,kDAAwD;AACxD,gDAAgD;AAEnC,QAAA,kCAAkC,GAAG;IAChD,0BAA0B;CAC3B,CAAA;AAEM,KAAK,UAAU,0BAA0B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;IAC5F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,gBAAgB,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAA;IAEvD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,iCACrC,SAAS,KACZ,MAAM,EACN,MAAM,EAAE,+BAAmB,CAAC,MAAM,EAClC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAE3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,+CACrC,YAAY,GACZ,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { ORGANIZATION_STATUS } from '../../../constants'\nimport { Organization } from '../../../entities'\n\nexport const updateMultipleOrganizationResolver = {\n updateMultipleOrganization\n}\n\nexport async function updateMultipleOrganization(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationRepo = tx.getRepository(Organization)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await organizationRepo.save({\n ...newRecord,\n domain,\n status: ORGANIZATION_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const organization = await organizationRepo.findOneBy({ id: newRecord.id })\n\n const result = await organizationRepo.save({\n ...organization,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
1
+ {"version":3,"file":"update-multiple-organization.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/update-multiple-organization.ts"],"names":[],"mappings":";;;AAOA,gEAwCC;AA/CD,kDAAwD;AACxD,gDAAgD;AAEnC,QAAA,kCAAkC,GAAG;IAChD,0BAA0B;CAC3B,CAAA;AAEM,KAAK,UAAU,0BAA0B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;IAC5F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,gBAAgB,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAA;IAEvD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC;gBACzC,GAAG,SAAS;gBACZ,MAAM;gBACN,MAAM,EAAE,+BAAmB,CAAC,MAAM;gBAClC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAE3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC;gBACzC,GAAG,YAAY;gBACf,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { ORGANIZATION_STATUS } from '../../../constants'\nimport { Organization } from '../../../entities'\n\nexport const updateMultipleOrganizationResolver = {\n updateMultipleOrganization\n}\n\nexport async function updateMultipleOrganization(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationRepo = tx.getRepository(Organization)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await organizationRepo.save({\n ...newRecord,\n domain,\n status: ORGANIZATION_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const organization = await organizationRepo.findOneBy({ id: newRecord.id })\n\n const result = await organizationRepo.save({\n ...organization,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -6,6 +6,9 @@ const update_multiple_organization_staff_1 = require("./update-multiple-organiza
6
6
  const delete_organization_staffs_1 = require("./delete-organization-staffs");
7
7
  exports.OrganizationStaffResolver = {
8
8
  Query: organization_staff_query_1.Query,
9
- Mutation: Object.assign(Object.assign({}, update_multiple_organization_staff_1.updateMultipleOrganizationStaffResolver), delete_organization_staffs_1.deleteOrganizationStaffs)
9
+ Mutation: {
10
+ ...update_multiple_organization_staff_1.updateMultipleOrganizationStaffResolver,
11
+ ...delete_organization_staffs_1.deleteOrganizationStaffs
12
+ }
10
13
  };
11
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkD;AAElD,6FAA8F;AAC9F,6EAAuE;AAE1D,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAL,gCAAK;IACL,QAAQ,kCACH,4EAAuC,GACvC,qDAAwB,CAC5B;CACF,CAAA","sourcesContent":["import { Query } from './organization-staff-query'\n\nimport { updateMultipleOrganizationStaffResolver } from './update-multiple-organization-staff'\nimport { deleteOrganizationStaffs } from './delete-organization-staffs'\n\nexport const OrganizationStaffResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationStaffResolver,\n ...deleteOrganizationStaffs\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkD;AAElD,6FAA8F;AAC9F,6EAAuE;AAE1D,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAL,gCAAK;IACL,QAAQ,EAAE;QACR,GAAG,4EAAuC;QAC1C,GAAG,qDAAwB;KAC5B;CACF,CAAA","sourcesContent":["import { Query } from './organization-staff-query'\n\nimport { updateMultipleOrganizationStaffResolver } from './update-multiple-organization-staff'\nimport { deleteOrganizationStaffs } from './delete-organization-staffs'\n\nexport const OrganizationStaffResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationStaffResolver,\n ...deleteOrganizationStaffs\n }\n}\n"]}
@@ -13,7 +13,6 @@ exports.Query = {
13
13
  });
14
14
  },
15
15
  async organizationStaffs(_, params, context) {
16
- var _a;
17
16
  const { tx } = context.state;
18
17
  const queryBuilder = await tx.getRepository(entities_1.OrganizationStaff).createQueryBuilder();
19
18
  (0, shell_1.buildQuery)(queryBuilder, params, context);
@@ -22,14 +21,16 @@ exports.Query = {
22
21
  .leftJoinAndSelect('OrganizationStaff.organization', 'Organization')
23
22
  .leftJoinAndSelect('OrganizationStaff.creator', 'Creator')
24
23
  .leftJoinAndSelect('OrganizationStaff.updater', 'Updater');
25
- if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
24
+ if (params.filters?.length > 0)
26
25
  queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL');
27
26
  else
28
27
  queryBuilder.where('OrganizationStaff.deletedAt IS NULL');
29
28
  let [items, total] = await queryBuilder.getManyAndCount();
30
29
  items = items.map(item => {
31
- var _a;
32
- return Object.assign(Object.assign({}, item), { organizationName: (_a = item.organization) === null || _a === void 0 ? void 0 : _a.name });
30
+ return {
31
+ ...item,
32
+ organizationName: item.organization?.name
33
+ };
33
34
  });
34
35
  return { items, total };
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"organization-staff-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/organization-staff-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAgF;AAEnE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAChE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,OAAO,CAAC;YAC7D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QAC1E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACzF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,0BAA0B,EAAE,QAAQ,CAAC;aACvD,iBAAiB,CAAC,gCAAgC,EAAE,cAAc,CAAC;aACnE,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC;aACzD,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAA;;YACvF,YAAY,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAEzD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;YACvB,uCACK,IAAI,KACP,gBAAgB,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,IAC1C;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { OrganizationStaff as OrganizationStaffEntity } from '../../../entities'\n\nexport const Query = {\n async organizationStaff(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationStaffEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'organization', 'creator', 'updater']\n })\n },\n\n async organizationStaffs(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = await tx.getRepository(OrganizationStaffEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('OrganizationStaff.domain', 'Domain')\n .leftJoinAndSelect('OrganizationStaff.organization', 'Organization')\n .leftJoinAndSelect('OrganizationStaff.creator', 'Creator')\n .leftJoinAndSelect('OrganizationStaff.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL')\n else queryBuilder.where('OrganizationStaff.deletedAt IS NULL')\n\n let [items, total] = await queryBuilder.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n organizationName: item.organization?.name\n }\n })\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"organization-staff-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/organization-staff-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAgF;AAEnE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAChE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,OAAO,CAAC;YAC7D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC1E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACzF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,0BAA0B,EAAE,QAAQ,CAAC;aACvD,iBAAiB,CAAC,gCAAgC,EAAE,cAAc,CAAC;aACnE,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC;aACzD,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAA;;YACvF,YAAY,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAEzD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO;gBACL,GAAG,IAAI;gBACP,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI;aAC1C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { OrganizationStaff as OrganizationStaffEntity } from '../../../entities'\n\nexport const Query = {\n async organizationStaff(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationStaffEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'organization', 'creator', 'updater']\n })\n },\n\n async organizationStaffs(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = await tx.getRepository(OrganizationStaffEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('OrganizationStaff.domain', 'Domain')\n .leftJoinAndSelect('OrganizationStaff.organization', 'Organization')\n .leftJoinAndSelect('OrganizationStaff.creator', 'Creator')\n .leftJoinAndSelect('OrganizationStaff.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL')\n else queryBuilder.where('OrganizationStaff.deletedAt IS NULL')\n\n let [items, total] = await queryBuilder.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n organizationName: item.organization?.name\n }\n })\n\n return { items, total }\n }\n}\n"]}
@@ -8,7 +8,6 @@ exports.updateMultipleOrganizationStaffResolver = {
8
8
  updateMultipleOrganizationStaff
9
9
  };
10
10
  async function updateMultipleOrganizationStaff(_, { patches }, context) {
11
- var _a, _b, _c;
12
11
  const { tx, domain, user } = context.state;
13
12
  let results = [];
14
13
  const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
@@ -18,25 +17,35 @@ async function updateMultipleOrganizationStaff(_, { patches }, context) {
18
17
  for (let i = 0; i < _createRecords.length; i++) {
19
18
  const newRecord = _createRecords[i];
20
19
  const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
21
- where: { id: (_a = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _a === void 0 ? void 0 : _a.id }
20
+ where: { id: newRecord?.organization?.id }
22
21
  });
23
- const result = await organizationStaffRepo.save(Object.assign(Object.assign({}, newRecord), { organization,
24
- domain, status: constants_1.ORGANIZATION_STAFF_STATUS.ACTIVE, creator: user, updater: user }));
25
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
22
+ const result = await organizationStaffRepo.save({
23
+ ...newRecord,
24
+ organization,
25
+ domain,
26
+ status: constants_1.ORGANIZATION_STAFF_STATUS.ACTIVE,
27
+ creator: user,
28
+ updater: user
29
+ });
30
+ results.push({ ...result, cuFlag: '+' });
26
31
  }
27
32
  }
28
33
  if (_updateRecords.length > 0) {
29
34
  for (let i = 0; i < _updateRecords.length; i++) {
30
35
  let newRecord = _updateRecords[i];
31
36
  const organizationStaff = await organizationStaffRepo.findOneBy({ id: newRecord.id });
32
- if ((_b = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _b === void 0 ? void 0 : _b.id) {
37
+ if (newRecord?.organization?.id) {
33
38
  const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
34
- where: { id: (_c = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _c === void 0 ? void 0 : _c.id }
39
+ where: { id: newRecord?.organization?.id }
35
40
  });
36
- newRecord = Object.assign(Object.assign({}, newRecord), { organization });
41
+ newRecord = { ...newRecord, organization };
37
42
  }
38
- const result = await organizationStaffRepo.save(Object.assign(Object.assign(Object.assign({}, organizationStaff), newRecord), { updater: user }));
39
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
43
+ const result = await organizationStaffRepo.save({
44
+ ...organizationStaff,
45
+ ...newRecord,
46
+ updater: user
47
+ });
48
+ results.push({ ...result, cuFlag: 'M' });
40
49
  }
41
50
  }
42
51
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"update-multiple-organization-staff.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/update-multiple-organization-staff.ts"],"names":[],"mappings":";;;AAOA,0EAoDC;AA3DD,kDAA8D;AAC9D,gDAAmE;AAEtD,QAAA,uCAAuC,GAAG;IACrD,+BAA+B;CAChC,CAAA;AAEM,KAAK,UAAU,+BAA+B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;;IACjG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,qBAAqB,GAAG,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAA;IAEjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;gBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;aAC3C,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,iCAC1C,SAAS,KACZ,YAAY;gBACZ,MAAM,EACN,MAAM,EAAE,qCAAyB,CAAC,MAAM,EACxC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAErF,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;oBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;iBAC3C,CAAC,CAAA;gBACF,SAAS,mCAAQ,SAAS,KAAE,YAAY,GAAE,CAAA;YAC5C,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,+CAC1C,iBAAiB,GACjB,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { ORGANIZATION_STAFF_STATUS } from '../../../constants'\nimport { Organization, OrganizationStaff } from '../../../entities'\n\nexport const updateMultipleOrganizationStaffResolver = {\n updateMultipleOrganizationStaff\n}\n\nexport async function updateMultipleOrganizationStaff(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n\n const result = await organizationStaffRepo.save({\n ...newRecord,\n organization,\n domain,\n status: ORGANIZATION_STAFF_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n let newRecord = _updateRecords[i]\n const organizationStaff = await organizationStaffRepo.findOneBy({ id: newRecord.id })\n\n if (newRecord?.organization?.id) {\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n newRecord = { ...newRecord, organization }\n }\n\n const result = await organizationStaffRepo.save({\n ...organizationStaff,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
1
+ {"version":3,"file":"update-multiple-organization-staff.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/update-multiple-organization-staff.ts"],"names":[],"mappings":";;;AAOA,0EAoDC;AA3DD,kDAA8D;AAC9D,gDAAmE;AAEtD,QAAA,uCAAuC,GAAG;IACrD,+BAA+B;CAChC,CAAA;AAEM,KAAK,UAAU,+BAA+B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;IACjG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,qBAAqB,GAAG,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAA;IAEjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;gBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;aAC3C,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC;gBAC9C,GAAG,SAAS;gBACZ,YAAY;gBACZ,MAAM;gBACN,MAAM,EAAE,qCAAyB,CAAC,MAAM;gBACxC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAErF,IAAI,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;oBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;iBAC3C,CAAC,CAAA;gBACF,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,CAAA;YAC5C,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC;gBAC9C,GAAG,iBAAiB;gBACpB,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { ORGANIZATION_STAFF_STATUS } from '../../../constants'\nimport { Organization, OrganizationStaff } from '../../../entities'\n\nexport const updateMultipleOrganizationStaffResolver = {\n updateMultipleOrganizationStaff\n}\n\nexport async function updateMultipleOrganizationStaff(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n\n const result = await organizationStaffRepo.save({\n ...newRecord,\n organization,\n domain,\n status: ORGANIZATION_STAFF_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n let newRecord = _updateRecords[i]\n const organizationStaff = await organizationStaffRepo.findOneBy({ id: newRecord.id })\n\n if (newRecord?.organization?.id) {\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n newRecord = { ...newRecord, organization }\n }\n\n const result = await organizationStaffRepo.save({\n ...organizationStaff,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -27,7 +27,11 @@ exports.Query = {
27
27
  .leftJoinAndSelect('PlantationInventory.updater', 'Updater')
28
28
  .getManyAndCount();
29
29
  items = items.map((item) => {
30
- return Object.assign(Object.assign({}, item), { rampName: (item === null || item === void 0 ? void 0 : item.ramp) ? item.ramp.name : null, rampId: (item === null || item === void 0 ? void 0 : item.ramp) ? item.ramp.id : null });
30
+ return {
31
+ ...item,
32
+ rampName: item?.ramp ? item.ramp.name : null,
33
+ rampId: item?.ramp ? item.ramp.id : null
34
+ };
31
35
  });
32
36
  return { items, total };
33
37
  }