@things-factory/operato-pms 4.3.591 → 4.3.601

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 (68) hide show
  1. package/client/pages/harvesting/harvesting-create-record.js +5 -2
  2. package/client/pages/loading/edit-loading-record.js +2 -0
  3. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +19 -23
  4. package/dist-server/entities/daily-dispatch.js +2 -2
  5. package/dist-server/entities/daily-dispatch.js.map +1 -1
  6. package/dist-server/entities/ramp-block-history.js.map +1 -1
  7. package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js +49 -1
  8. package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js.map +1 -1
  9. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +124 -112
  10. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  11. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +51 -2
  12. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  13. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +5 -7
  14. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
  15. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +3 -3
  16. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  17. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js +6 -0
  18. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js.map +1 -1
  19. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +68 -52
  20. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  21. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +16 -22
  22. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  23. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +50 -19
  24. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
  25. package/dist-server/graphql/resolvers/report/daily-production-reports.js +96 -67
  26. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  27. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +1 -0
  28. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  29. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +7 -2
  30. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
  31. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +11 -5
  32. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
  33. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +21 -9
  34. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
  35. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +5 -2
  36. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  37. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +5 -2
  38. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  39. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +2 -0
  40. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
  41. package/dist-server/utils/transaction-util.js +32 -53
  42. package/dist-server/utils/transaction-util.js.map +1 -1
  43. package/package.json +3 -3
  44. package/server/entities/daily-dispatch.ts +2 -2
  45. package/server/entities/ramp-block-history.ts +2 -5
  46. package/server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.ts +69 -2
  47. package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +179 -141
  48. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +68 -5
  49. package/server/graphql/resolvers/daily-harvest/delete-daily-harvest.ts +9 -26
  50. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +3 -3
  51. package/server/graphql/resolvers/daily-loading/delete-daily-loading.ts +11 -1
  52. package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +95 -98
  53. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +44 -47
  54. package/server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts +61 -26
  55. package/server/graphql/resolvers/report/daily-production-reports.ts +103 -72
  56. package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +5 -2
  57. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +20 -9
  58. package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +16 -12
  59. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +26 -12
  60. package/server/graphql/resolvers/report/monthly-production-reports.ts +5 -3
  61. package/server/graphql/resolvers/report/yearly-production-reports.ts +5 -2
  62. package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +2 -0
  63. package/server/utils/transaction-util.ts +36 -56
  64. package/translations/en.json +1 -1
  65. package/translations/ja.json +1 -1
  66. package/translations/ko.json +1 -1
  67. package/translations/ms.json +1 -1
  68. package/translations/zh.json +1 -1
@@ -38,7 +38,7 @@ async function updateTransactionHistory(block, domain, ramp, refActionID, refRec
38
38
  });
39
39
  if (!existingTransactionRecord)
40
40
  throw new Error('Oops! Could not find current harvest record');
41
- await transactionRepo.update({ id: existingTransactionRecord.id }, { fieldBunches: totalBunches, updater: user, updatedAt: new Date() });
41
+ await transactionRepo.update({ id: existingTransactionRecord.id }, { fieldBunches: totalBunches, transactionDate, block, updater: user, updatedAt: new Date() });
42
42
  }
43
43
  return true;
44
44
  }
@@ -48,64 +48,43 @@ exports.updateTransactionHistory = updateTransactionHistory;
48
48
  * seq will be calculated based on number of records for one specific plantation inventory
49
49
  */
50
50
  async function generateRampBlockHistories(block, domain, ramp, transactionType, transactionDate, rampWeight, user, deletedAt, dailyDispatch, trxMgr) {
51
- console.log(block, domain, ramp, user);
52
51
  const rampBlockHistoryRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(entities_1.RampBlockHistory)) || (0, typeorm_1.getRepository)(entities_1.RampBlockHistory);
53
52
  if (!(ramp === null || ramp === void 0 ? void 0 : ramp.id))
54
53
  throw new Error(`Can't find a matching ramp.`);
54
+ // Fetch the last ramp block history for the given block, ramp, and domain
55
55
  const lastRampBlockHistory = await rampBlockHistoryRepo.findOne({
56
56
  where: { domain, ramp, block },
57
- order: { seq: 'DESC' }
57
+ order: { createdAt: 'DESC' }
58
58
  });
59
- let res;
60
- if (!lastRampBlockHistory) {
61
- res = await rampBlockHistoryRepo
62
- .createQueryBuilder()
63
- .insert()
64
- .into(entities_1.RampBlockHistory)
65
- .values([
66
- {
67
- transactionDate,
68
- transactionType,
69
- seq: 0,
70
- domain,
71
- block,
72
- ramp,
73
- weight: rampWeight,
74
- previousWeight: 0,
75
- currentWeight: rampWeight,
76
- dailyDispatch,
77
- deletedAt: deletedAt ? deletedAt : null,
78
- creator: user,
79
- updater: user
80
- }
81
- ])
82
- .returning('*')
83
- .execute();
84
- }
85
- else {
86
- const previousWeight = lastRampBlockHistory.currentWeight;
87
- res = await rampBlockHistoryRepo
88
- .createQueryBuilder()
89
- .insert()
90
- .into(entities_1.RampBlockHistory)
91
- .values([
92
- {
93
- domain,
94
- block,
95
- ramp,
96
- transactionType,
97
- transactionDate,
98
- weight: rampWeight,
99
- previousWeight,
100
- currentWeight: parseFloat((previousWeight + rampWeight).toFixed(4)),
101
- creator: user,
102
- updater: user,
103
- seq: () => `(select seq from ramp_block_histories where ramp_id = '${ramp.id}' and block_id = '${block.id}' and domain_id = '${domain.id}' order by seq desc limit 1) + 1`
104
- }
105
- ])
106
- .returning('*')
107
- .execute();
108
- }
59
+ // if (!lastRampBlockHistory) {
60
+ // throw new Error(
61
+ // `No opening quantity defined for block ${block.id} in ramp ${ramp.id}. Please set an opening quantity before creating dispatch records to avoid negative calculation in report.`
62
+ // )
63
+ // }
64
+ const previousWeight = lastRampBlockHistory.currentWeight;
65
+ const res = await rampBlockHistoryRepo
66
+ .createQueryBuilder()
67
+ .insert()
68
+ .into(entities_1.RampBlockHistory)
69
+ .values([
70
+ {
71
+ domain,
72
+ block,
73
+ ramp,
74
+ transactionType,
75
+ transactionDate,
76
+ weight: rampWeight,
77
+ previousWeight,
78
+ currentWeight: parseFloat((previousWeight + rampWeight).toFixed(4)),
79
+ dailyDispatch,
80
+ creator: user,
81
+ updater: user,
82
+ seq: () => `(select seq from ramp_block_histories where ramp_id = '${ramp.id}' and block_id = '${block.id}' and domain_id = '${domain.id}' order by seq desc limit 1) + 1`
83
+ }
84
+ ])
85
+ .returning('*')
86
+ .execute();
87
+ // Extract the newly created ramp block history
109
88
  let newRampBlockHistory = res.generatedMaps[0];
110
89
  return newRampBlockHistory;
111
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-util.js","sourceRoot":"","sources":["../../server/utils/transaction-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-util.js","sourceRoot":"","sources":["../../server/utils/transaction-util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-pms",
3
- "version": "4.3.591",
3
+ "version": "4.3.601",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -55,7 +55,7 @@
55
55
  "@operato/scene-wheel-sorter": "^0.1.8",
56
56
  "@things-factory/apptool-ui": "^4.3.591",
57
57
  "@things-factory/auth-ui": "^4.3.591",
58
- "@things-factory/biz-base": "^4.3.591",
58
+ "@things-factory/biz-base": "^4.3.595",
59
59
  "@things-factory/board-service": "^4.3.591",
60
60
  "@things-factory/board-ui": "^4.3.591",
61
61
  "@things-factory/code-ui": "^4.3.591",
@@ -95,5 +95,5 @@
95
95
  "devDependencies": {
96
96
  "@things-factory/builder": "^4.3.591"
97
97
  },
98
- "gitHead": "b8528f316a234ad95d0f285d5ade988b44f1195f"
98
+ "gitHead": "d7949f19d5fb44db88037b9e4a4167d49121954d"
99
99
  }
@@ -55,8 +55,8 @@ export class DailyDispatch {
55
55
  @ManyToOne(type => Organization, { nullable: true })
56
56
  dispatchTo: Organization
57
57
 
58
- @Column({ nullable: true })
59
- dispatchAt: Date
58
+ @Column({ type: 'timestamp', nullable: true })
59
+ dispatchAt: Date | string
60
60
 
61
61
  @Column({ nullable: true })
62
62
  dispatchDate: string
@@ -4,11 +4,7 @@ import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedCol
4
4
  import { Block, Ramp, PlantationInventory, DailyDispatch } from '../entities'
5
5
 
6
6
  @Entity()
7
- @Index(
8
- 'ix_ramp_block_history_0',
9
- (rampBlockHistory: RampBlockHistory) => [rampBlockHistory.id],
10
- { unique: true }
11
- )
7
+ @Index('ix_ramp_block_history_0', (rampBlockHistory: RampBlockHistory) => [rampBlockHistory.id], { unique: true })
12
8
  export class RampBlockHistory {
13
9
  @PrimaryGeneratedColumn('uuid')
14
10
  id: string
@@ -41,6 +37,7 @@ export class RampBlockHistory {
41
37
  * transactionType
42
38
  * LOADING
43
39
  * DISPATCH
40
+ * REVERSE_DISPATCH
44
41
  */
45
42
  @Column()
46
43
  transactionType: string
@@ -1,14 +1,18 @@
1
1
  import { Domain } from '@things-factory/shell'
2
+ import { User } from '@things-factory/auth-base'
2
3
  import { EntityManager, IsNull } from 'typeorm'
3
- import { DailyDispatch, DailyDispatchDetail } from '../../../entities'
4
+ import { DailyDispatch, DailyDispatchDetail, RecordTransaction, RampBlockHistory } from '../../../entities'
4
5
 
5
6
  export const deleteDailyDispatch = {
6
7
  async deleteDailyDispatch(_: any, { name }, context: any) {
7
- const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
8
+ const { user, domain, tx }: { user: User; domain: Domain; tx: EntityManager } = context.state
9
+
10
+ // Step 1: Fetch the daily dispatch record
8
11
  const dailyDispatch = await tx
9
12
  .getRepository(DailyDispatch)
10
13
  .findOneOrFail({ where: { name, deletedAt: IsNull() }, relations: ['dailyDispatchDetails'] })
11
14
 
15
+ // Step 2: Soft delete the daily dispatch record
12
16
  await tx.getRepository(DailyDispatch).update(
13
17
  {
14
18
  domain,
@@ -19,6 +23,7 @@ export const deleteDailyDispatch = {
19
23
  }
20
24
  )
21
25
 
26
+ // Step 3: Soft delete related daily dispatch details
22
27
  await tx.getRepository(DailyDispatchDetail).update(
23
28
  {
24
29
  domain,
@@ -28,5 +33,67 @@ export const deleteDailyDispatch = {
28
33
  deletedAt: new Date()
29
34
  }
30
35
  )
36
+
37
+ // Step 4: Soft delete related record transactions
38
+ await tx.getRepository(RecordTransaction).update(
39
+ {
40
+ domain,
41
+ refActionID: dailyDispatch.id
42
+ },
43
+ {
44
+ deletedAt: new Date()
45
+ }
46
+ )
47
+
48
+ // Step 5: Reverse the effects of the dispatch in ramp_block_histories
49
+ await reverseRampBlockHistories(domain, user, dailyDispatch, tx)
50
+ }
51
+ }
52
+
53
+ // Helper function to reverse ramp block histories
54
+ async function reverseRampBlockHistories(
55
+ domain: Domain,
56
+ user: User,
57
+ dailyDispatch: DailyDispatch,
58
+ tx?: EntityManager
59
+ ): Promise<void> {
60
+ const rampBlockHistoryRepo = tx.getRepository(RampBlockHistory)
61
+
62
+ // Fetch all ramp block histories related to this dispatch
63
+ const rampBlockHistories = await rampBlockHistoryRepo.find({
64
+ where: {
65
+ domain,
66
+ dailyDispatch: dailyDispatch.id,
67
+ transactionType: 'DISPATCH'
68
+ },
69
+ relations: ['ramp', 'block', 'domain']
70
+ })
71
+
72
+ // Reverse the effects of each ramp block history record
73
+ for (const history of rampBlockHistories) {
74
+ // Create a new ramp block history record to reverse the dispatch
75
+ await rampBlockHistoryRepo.save({
76
+ weight: -history.weight, // Reverse the weight (e.g., if dispatch was -100, reversal will be +100)
77
+ previousWeight: history.previousWeight,
78
+ currentWeight: parseFloat((history.previousWeight + -history.weight).toFixed(4)),
79
+ transactionType: 'REVERSE_DISPATCH', // Use a new transaction type for reversals
80
+ transactionDate: dailyDispatch.dispatchDate, // Use the current date for the reversal
81
+ domain: history.domain,
82
+ block: history.block,
83
+ ramp: history.ramp,
84
+ dailyDispatch,
85
+ creator: user,
86
+ updater: user
87
+ })
88
+
89
+ // Soft delete the original ramp block history record
90
+ await rampBlockHistoryRepo.update(
91
+ {
92
+ id: history.id
93
+ },
94
+ {
95
+ deletedAt: new Date()
96
+ }
97
+ )
31
98
  }
32
99
  }