@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.
- package/client/pages/harvesting/harvesting-create-record.js +5 -2
- package/client/pages/loading/edit-loading-record.js +2 -0
- package/client/pages/report/report-daily-ffb-dispatch-and-production.js +19 -23
- package/dist-server/entities/daily-dispatch.js +2 -2
- package/dist-server/entities/daily-dispatch.js.map +1 -1
- package/dist-server/entities/ramp-block-history.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js +49 -1
- package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +124 -112
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +51 -2
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +5 -7
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +3 -3
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js +6 -0
- package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +68 -52
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +16 -22
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +50 -19
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-production-reports.js +96 -67
- package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +1 -0
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +7 -2
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +11 -5
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +21 -9
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js +5 -2
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js +5 -2
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +2 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
- package/dist-server/utils/transaction-util.js +32 -53
- package/dist-server/utils/transaction-util.js.map +1 -1
- package/package.json +3 -3
- package/server/entities/daily-dispatch.ts +2 -2
- package/server/entities/ramp-block-history.ts +2 -5
- package/server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.ts +69 -2
- package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +179 -141
- package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +68 -5
- package/server/graphql/resolvers/daily-harvest/delete-daily-harvest.ts +9 -26
- package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +3 -3
- package/server/graphql/resolvers/daily-loading/delete-daily-loading.ts +11 -1
- package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +95 -98
- package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +44 -47
- package/server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts +61 -26
- package/server/graphql/resolvers/report/daily-production-reports.ts +103 -72
- package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +5 -2
- package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +20 -9
- package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +16 -12
- package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +26 -12
- package/server/graphql/resolvers/report/monthly-production-reports.ts +5 -3
- package/server/graphql/resolvers/report/yearly-production-reports.ts +5 -2
- package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +2 -0
- package/server/utils/transaction-util.ts +36 -56
- package/translations/en.json +1 -1
- package/translations/ja.json +1 -1
- package/translations/ko.json +1 -1
- package/translations/ms.json +1 -1
- 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: {
|
|
57
|
+
order: { createdAt: 'DESC' }
|
|
58
58
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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":";;;AAEA,4CAA8E;AAC9E,0CAQoB;AACpB,oCAAsC;AACtC,qCAAkE;AAElE;;;GAGG;AAEI,KAAK,UAAU,0BAA0B,CAC9C,KAAY,EACZ,MAAc,EACd,IAAU,EACV,WAAgB,EAChB,WAAmB,EACnB,eAAuB,EACvB,eAAuB,EACvB,YAAoB,EACpB,UAAkB,EAClB,IAAU,EACV,MAAsB;IAEtB,MAAM,eAAe,GACnB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,4BAAiB,CAAC,KAAI,IAAA,uBAAa,EAAC,4BAAiB,CAAC,CAAA;IAE9E,IAAI,qBAAqB,GAAsB,IAAI,4BAAiB,EAAE,CAAA;IACtE,qBAAqB,CAAC,IAAI,GAAG,mBAAW,CAAC,sBAAsB,EAAE,CAAA;IACjE,qBAAqB,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/C,qBAAqB,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/C,qBAAqB,CAAC,eAAe,GAAG,eAAe,CAAA;IACvD,qBAAqB,CAAC,eAAe,GAAG,eAAe,CAAA;IACvD,qBAAqB,CAAC,YAAY,GAAG,YAAY,CAAA;IACjD,qBAAqB,CAAC,UAAU,GAAG,UAAU,CAAA;IAC7C,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,MAAM,GAAG,MAAM,CAAA;IACrC,qBAAqB,CAAC,KAAK,GAAG,KAAK,CAAA;IACnC,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAA;IACpC,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAA;IACpC,MAAM,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAEjD,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAhCD,gEAgCC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,KAAY,EACZ,MAAc,EACd,IAAU,EACV,WAAgB,EAChB,WAAmB,EACnB,eAAuB,EACvB,eAAuB,EACvB,YAAoB,EACpB,UAAkB,EAClB,IAAU,EACV,MAAsB;IAEtB,MAAM,eAAe,GACnB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,4BAAiB,CAAC,KAAI,IAAA,uBAAa,EAAC,4BAAiB,CAAC,CAAA;IAE9E,IAAI,yBAA4C,CAAA;IAEhD,QAAQ,eAAe,EAAE;QACvB,KAAK,4BAAgB,CAAC,OAAO;YAC3B,yBAAyB,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE;aACvD,CAAC,CAAA;YAEF,IAAI,CAAC,yBAAyB;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAE9F,MAAM,eAAe,CAAC,MAAM,CAC1B,EAAE,EAAE,EAAE,yBAAyB,CAAC,EAAE,EAAE,EACpC,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
}
|