@things-factory/operato-pms 4.3.595 → 4.3.609
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 +6 -6
- 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
|
@@ -232,8 +232,11 @@ class HarvestingCreateRecord extends localize(i18next)(PageView) {
|
|
|
232
232
|
const changedColumn = event.detail.column.name
|
|
233
233
|
let { totalBunchHarvested, totalTonnageHarvested } = changeRecord
|
|
234
234
|
|
|
235
|
-
if (changedColumn === 'totalBunchHarvested'
|
|
236
|
-
|
|
235
|
+
if (changedColumn === 'totalBunchHarvested') {
|
|
236
|
+
// Check if the value is a positive integer
|
|
237
|
+
if (!totalBunchHarvested || totalBunchHarvested < 0 || !Number.isInteger(totalBunchHarvested)) {
|
|
238
|
+
throw new Error(i18next.t('text.total_no_of_bunches_should_be_positive_and_whole_number'))
|
|
239
|
+
}
|
|
237
240
|
}
|
|
238
241
|
|
|
239
242
|
if (changedColumn === 'totalTonnageHarvested' && totalTonnageHarvested < 0) {
|
|
@@ -370,6 +370,8 @@ class EditLoadingRecord extends localize(i18next)(PageView) {
|
|
|
370
370
|
ramp: { id: record.ramp.id, name: record.ramp.name },
|
|
371
371
|
totalBunchLoaded: Number(record?.totalBunchLoaded || 0),
|
|
372
372
|
totalBunchWeight: Number(record.totalBunchWeight),
|
|
373
|
+
prevTotalBunchLoaded: Number(record.__origin__.totalBunchLoaded),
|
|
374
|
+
prevTotalBunchWeight: Number(record.__origin__.totalBunchWeight),
|
|
373
375
|
remark: record?.remark ? record.remark : null
|
|
374
376
|
}
|
|
375
377
|
|
|
@@ -225,19 +225,19 @@ class ReportDailyFfbDispatchAndProduction extends connect(store)(localize(i18nex
|
|
|
225
225
|
width: 130
|
|
226
226
|
}
|
|
227
227
|
}),
|
|
228
|
-
{
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
},
|
|
228
|
+
// {
|
|
229
|
+
// type: 'string',
|
|
230
|
+
// name: 'unknown',
|
|
231
|
+
// header: 'UNKNOWN',
|
|
232
|
+
// record: { editable: false, align: 'center' },
|
|
233
|
+
// imex: {
|
|
234
|
+
// header: 'UNKNOWN',
|
|
235
|
+
// key: 'unknown',
|
|
236
|
+
// width: 30,
|
|
237
|
+
// type: 'string'
|
|
238
|
+
// },
|
|
239
|
+
// width: 130
|
|
240
|
+
// },
|
|
241
241
|
{
|
|
242
242
|
type: 'string',
|
|
243
243
|
name: 'today',
|
|
@@ -314,15 +314,11 @@ class ReportDailyFfbDispatchAndProduction extends connect(store)(localize(i18nex
|
|
|
314
314
|
|
|
315
315
|
const response = await client.query({
|
|
316
316
|
query: gql`
|
|
317
|
-
query
|
|
318
|
-
|
|
317
|
+
query blocks($filters: [Filter], $pagination: Pagination) {
|
|
318
|
+
blocks(filters: $filters, pagination: $pagination) {
|
|
319
319
|
items {
|
|
320
320
|
id
|
|
321
321
|
name
|
|
322
|
-
block {
|
|
323
|
-
id
|
|
324
|
-
name
|
|
325
|
-
}
|
|
326
322
|
}
|
|
327
323
|
}
|
|
328
324
|
}
|
|
@@ -331,11 +327,11 @@ class ReportDailyFfbDispatchAndProduction extends connect(store)(localize(i18nex
|
|
|
331
327
|
})
|
|
332
328
|
|
|
333
329
|
if (!response.errors) {
|
|
334
|
-
return response.data.
|
|
335
|
-
if (!acc.find(itm => itm.id ==
|
|
330
|
+
return response.data.blocks.items.reduce((acc, block) => {
|
|
331
|
+
if (!acc.find(itm => itm.id == block.id) && !block.deletedAt)
|
|
336
332
|
acc.push({
|
|
337
|
-
id:
|
|
338
|
-
name:
|
|
333
|
+
id: block.id,
|
|
334
|
+
name: block.name
|
|
339
335
|
})
|
|
340
336
|
|
|
341
337
|
return acc
|
|
@@ -66,8 +66,8 @@ __decorate([
|
|
|
66
66
|
__metadata("design:type", entities_1.Organization)
|
|
67
67
|
], DailyDispatch.prototype, "dispatchTo", void 0);
|
|
68
68
|
__decorate([
|
|
69
|
-
(0, typeorm_1.Column)({ nullable: true }),
|
|
70
|
-
__metadata("design:type",
|
|
69
|
+
(0, typeorm_1.Column)({ type: 'timestamp', nullable: true }),
|
|
70
|
+
__metadata("design:type", Object)
|
|
71
71
|
], DailyDispatch.prototype, "dispatchAt", void 0);
|
|
72
72
|
__decorate([
|
|
73
73
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-dispatch.js","sourceRoot":"","sources":["../../server/entities/daily-dispatch.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAEhB,yDAAgD;AAChD,iDAA8C;AAE9C,0CAAyF;AAMlF,IAAM,aAAa,GAAnB,MAAM,aAAa;CAwEzB,CAAA;AAvEC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;yCACrB;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;6CAAA;AAEd;IAAC,IAAA,gBAAM,GAAE;;2CACG;AAEZ;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACR;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjD,4BAAiB;6CAAA;AAEzB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACL;AAEtB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAClC,gBAAK;gDAAA;AAEhB;IAAC,IAAA,gBAAM,GAAE;;kDACU;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACC;AAE5B;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;0DACX;AAE3B;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC;;2DACtD;AAE3C;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,uBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxC,uBAAY;iDAAA;AAExB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"daily-dispatch.js","sourceRoot":"","sources":["../../server/entities/daily-dispatch.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAEhB,yDAAgD;AAChD,iDAA8C;AAE9C,0CAAyF;AAMlF,IAAM,aAAa,GAAnB,MAAM,aAAa;CAwEzB,CAAA;AAvEC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;yCACrB;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;6CAAA;AAEd;IAAC,IAAA,gBAAM,GAAE;;2CACG;AAEZ;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACR;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjD,4BAAiB;6CAAA;AAEzB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACL;AAEtB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAClC,gBAAK;gDAAA;AAEhB;IAAC,IAAA,gBAAM,GAAE;;kDACU;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACC;AAE5B;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;0DACX;AAE3B;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC;;2DACtD;AAE3C;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,uBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxC,uBAAY;iDAAA;AAExB;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACrB;AAEzB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACP;AAGpB;IAAC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;6CACV;AAGd;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACpC;AAElB;IAAC,IAAA,gBAAM,GAAE;;6CACK;AAEd;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAChB,IAAI;gDAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;gDAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;gDAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;8CAAA;AAEb;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;8CAAA;AAvEF,aAAa;IAJzB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,qBAAqB,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE;QACxG,MAAM,EAAE,IAAI;KACb,CAAC;GACW,aAAa,CAwEzB;AAxEY,sCAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ramp-block-history.js","sourceRoot":"","sources":["../../server/entities/ramp-block-history.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAAgD;AAChD,iDAA8C;AAC9C,qCAAsH;AACtH,0CAA6E;
|
|
1
|
+
{"version":3,"file":"ramp-block-history.js","sourceRoot":"","sources":["../../server/entities/ramp-block-history.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAAgD;AAChD,iDAA8C;AAC9C,qCAAsH;AACtH,0CAA6E;AAItE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CA0D5B,CAAA;AAzDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;4CACrB;AAEV;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAChB;AAEX;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;gDAAA;AAEd;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAK;+CAAA;AAEZ;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,eAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtC,eAAI;8CAAA;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,wBAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtC,wBAAa;uDAAA;AAE5B;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;gDACxB;AAEd;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;wDAChB;AAEtB;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;uDACjB;AAQrB;IAAC,IAAA,gBAAM,GAAE;;yDACc;AAEvB;IAAC,IAAA,gBAAM,GAAE;;yDACc;AAEvB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAChB,IAAI;mDAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;mDAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;mDAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;iDAAA;AAEb;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;iDAAA;AAzDF,gBAAgB;IAF5B,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,yBAAyB,EAAE,CAAC,gBAAkC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACrG,gBAAgB,CA0D5B;AA1DY,4CAAgB"}
|
|
@@ -5,22 +5,70 @@ const typeorm_1 = require("typeorm");
|
|
|
5
5
|
const entities_1 = require("../../../entities");
|
|
6
6
|
exports.deleteDailyDispatch = {
|
|
7
7
|
async deleteDailyDispatch(_, { name }, context) {
|
|
8
|
-
const { domain, tx } = context.state;
|
|
8
|
+
const { user, domain, tx } = context.state;
|
|
9
|
+
// Step 1: Fetch the daily dispatch record
|
|
9
10
|
const dailyDispatch = await tx
|
|
10
11
|
.getRepository(entities_1.DailyDispatch)
|
|
11
12
|
.findOneOrFail({ where: { name, deletedAt: (0, typeorm_1.IsNull)() }, relations: ['dailyDispatchDetails'] });
|
|
13
|
+
// Step 2: Soft delete the daily dispatch record
|
|
12
14
|
await tx.getRepository(entities_1.DailyDispatch).update({
|
|
13
15
|
domain,
|
|
14
16
|
name
|
|
15
17
|
}, {
|
|
16
18
|
deletedAt: new Date()
|
|
17
19
|
});
|
|
20
|
+
// Step 3: Soft delete related daily dispatch details
|
|
18
21
|
await tx.getRepository(entities_1.DailyDispatchDetail).update({
|
|
19
22
|
domain,
|
|
20
23
|
dailyDispatch: dailyDispatch
|
|
21
24
|
}, {
|
|
22
25
|
deletedAt: new Date()
|
|
23
26
|
});
|
|
27
|
+
// Step 4: Soft delete related record transactions
|
|
28
|
+
await tx.getRepository(entities_1.RecordTransaction).update({
|
|
29
|
+
domain,
|
|
30
|
+
refActionID: dailyDispatch.id
|
|
31
|
+
}, {
|
|
32
|
+
deletedAt: new Date()
|
|
33
|
+
});
|
|
34
|
+
// Step 5: Reverse the effects of the dispatch in ramp_block_histories
|
|
35
|
+
await reverseRampBlockHistories(domain, user, dailyDispatch, tx);
|
|
24
36
|
}
|
|
25
37
|
};
|
|
38
|
+
// Helper function to reverse ramp block histories
|
|
39
|
+
async function reverseRampBlockHistories(domain, user, dailyDispatch, tx) {
|
|
40
|
+
const rampBlockHistoryRepo = tx.getRepository(entities_1.RampBlockHistory);
|
|
41
|
+
// Fetch all ramp block histories related to this dispatch
|
|
42
|
+
const rampBlockHistories = await rampBlockHistoryRepo.find({
|
|
43
|
+
where: {
|
|
44
|
+
domain,
|
|
45
|
+
dailyDispatch: dailyDispatch.id,
|
|
46
|
+
transactionType: 'DISPATCH'
|
|
47
|
+
},
|
|
48
|
+
relations: ['ramp', 'block', 'domain']
|
|
49
|
+
});
|
|
50
|
+
// Reverse the effects of each ramp block history record
|
|
51
|
+
for (const history of rampBlockHistories) {
|
|
52
|
+
// Create a new ramp block history record to reverse the dispatch
|
|
53
|
+
await rampBlockHistoryRepo.save({
|
|
54
|
+
weight: -history.weight,
|
|
55
|
+
previousWeight: history.previousWeight,
|
|
56
|
+
currentWeight: parseFloat((history.previousWeight + -history.weight).toFixed(4)),
|
|
57
|
+
transactionType: 'REVERSE_DISPATCH',
|
|
58
|
+
transactionDate: dailyDispatch.dispatchDate,
|
|
59
|
+
domain: history.domain,
|
|
60
|
+
block: history.block,
|
|
61
|
+
ramp: history.ramp,
|
|
62
|
+
dailyDispatch,
|
|
63
|
+
creator: user,
|
|
64
|
+
updater: user
|
|
65
|
+
});
|
|
66
|
+
// Soft delete the original ramp block history record
|
|
67
|
+
await rampBlockHistoryRepo.update({
|
|
68
|
+
id: history.id
|
|
69
|
+
}, {
|
|
70
|
+
deletedAt: new Date()
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
26
74
|
//# sourceMappingURL=delete-daily-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"delete-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.ts"],"names":[],"mappings":";;;AAEA,qCAA+C;AAC/C,gDAA2G;AAE9F,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAE7F,0CAA0C;QAC1C,MAAM,aAAa,GAAG,MAAM,EAAE;aAC3B,aAAa,CAAC,wBAAa,CAAC;aAC5B,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,SAAS,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;QAE/F,gDAAgD;QAChD,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAa,CAAC,CAAC,MAAM,CAC1C;YACE,MAAM;YACN,IAAI;SACL,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;QAED,qDAAqD;QACrD,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,MAAM,CAChD;YACE,MAAM;YACN,aAAa,EAAE,aAAa;SAC7B,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;QAED,kDAAkD;QAClD,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAC,MAAM,CAC9C;YACE,MAAM;YACN,WAAW,EAAE,aAAa,CAAC,EAAE;SAC9B,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;QAED,sEAAsE;QACtE,MAAM,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;CACF,CAAA;AAED,kDAAkD;AAClD,KAAK,UAAU,yBAAyB,CACtC,MAAc,EACd,IAAU,EACV,aAA4B,EAC5B,EAAkB;IAElB,MAAM,oBAAoB,GAAG,EAAE,CAAC,aAAa,CAAC,2BAAgB,CAAC,CAAA;IAE/D,0DAA0D;IAC1D,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;QACzD,KAAK,EAAE;YACL,MAAM;YACN,aAAa,EAAE,aAAa,CAAC,EAAE;YAC/B,eAAe,EAAE,UAAU;SAC5B;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;KACvC,CAAC,CAAA;IAEF,wDAAwD;IACxD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;QACxC,iEAAiE;QACjE,MAAM,oBAAoB,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM;YACvB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,eAAe,EAAE,kBAAkB;YACnC,eAAe,EAAE,aAAa,CAAC,YAAY;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,qDAAqD;QACrD,MAAM,oBAAoB,CAAC,MAAM,CAC/B;YACE,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;KACF;AACH,CAAC"}
|
|
@@ -1,132 +1,144 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
3
|
+
exports.generateDailyDispatch = void 0;
|
|
5
4
|
const constants_1 = require("../../../constants");
|
|
6
5
|
const entities_1 = require("../../../entities");
|
|
7
6
|
const utils_1 = require("../../../utils");
|
|
8
7
|
exports.generateDailyDispatch = {
|
|
9
8
|
async generateDailyDispatch(_, { dailyDispatch }, context) {
|
|
10
9
|
const { domain, user, tx } = context.state;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
try {
|
|
11
|
+
const { dailyDispatchDetails, driver, transport, dispatchTo, dispatchAt, chitNo, percentage } = dailyDispatch;
|
|
12
|
+
// Validate input data
|
|
13
|
+
if (!dailyDispatchDetails || dailyDispatchDetails.length === 0) {
|
|
14
|
+
throw new Error('Daily dispatch details are required.');
|
|
15
|
+
}
|
|
16
|
+
// Fetch related entities
|
|
17
|
+
const driverEntity = driver ? await fetchEntity(tx.getRepository(entities_1.OrganizationStaff), driver.id) : null;
|
|
18
|
+
const transportEntity = transport ? await fetchEntity(tx.getRepository(entities_1.Truck), transport.id) : null;
|
|
19
|
+
const dispatchToEntity = dispatchTo ? await fetchEntity(tx.getRepository(entities_1.Organization), dispatchTo.id) : null;
|
|
20
|
+
// Calculate total tonnage released
|
|
21
|
+
const totalTonnageRelease = dailyDispatchDetails.reduce((sum, detail) => sum + detail.collectedRampWeight, 0);
|
|
22
|
+
// Create daily dispatch record
|
|
23
|
+
const newDailyDispatch = await createDailyDispatch({
|
|
24
|
+
domain,
|
|
25
|
+
transport: transportEntity,
|
|
26
|
+
driver: driverEntity,
|
|
27
|
+
dispatchTo: dispatchToEntity,
|
|
28
|
+
totalTonnageRelease,
|
|
29
|
+
chitNo,
|
|
30
|
+
percentage,
|
|
31
|
+
dispatchAt,
|
|
32
|
+
user,
|
|
33
|
+
tx
|
|
18
34
|
});
|
|
35
|
+
// Create daily dispatch details
|
|
36
|
+
const createdDetails = await addDailyDispatchDetail(domain, newDailyDispatch, dailyDispatchDetails, user, tx);
|
|
37
|
+
// Generate transaction history and ramp block histories
|
|
38
|
+
await generateDispatchTransaction(domain, newDailyDispatch, createdDetails, user, tx);
|
|
39
|
+
return newDailyDispatch;
|
|
19
40
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
if (dailyDispatch === null || dailyDispatch === void 0 ? void 0 : dailyDispatch.dispatchTo) {
|
|
26
|
-
dispatchTo = await tx.getRepository(entities_1.Organization).findOne({
|
|
27
|
-
where: { id: dailyDispatch.dispatchTo.id }
|
|
28
|
-
});
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('Error generating daily dispatch:', error);
|
|
43
|
+
throw new Error('Failed to generate daily dispatch.');
|
|
29
44
|
}
|
|
30
|
-
const totalTonnageRelease = dailyDispatchDetails.reduce(function (prev, cur) {
|
|
31
|
-
return prev + cur.collectedRampWeight;
|
|
32
|
-
}, 0);
|
|
33
|
-
// 1. Create daily dispatchment
|
|
34
|
-
let newDailyDispatch = new entities_1.DailyDispatch();
|
|
35
|
-
newDailyDispatch.name = utils_1.NoGenerator.dailyDispatch();
|
|
36
|
-
newDailyDispatch.domain = domain;
|
|
37
|
-
newDailyDispatch.transport = transport;
|
|
38
|
-
newDailyDispatch.transportNo = transport.name;
|
|
39
|
-
newDailyDispatch.driver = driver;
|
|
40
|
-
newDailyDispatch.driverIdentification = (driver === null || driver === void 0 ? void 0 : driver.idNumber) ? driver.idNumber : null;
|
|
41
|
-
newDailyDispatch.externalDriver = (driver === null || driver === void 0 ? void 0 : driver.name) ? driver === null || driver === void 0 ? void 0 : driver.name : null;
|
|
42
|
-
newDailyDispatch.totalTonnageRelease = totalTonnageRelease;
|
|
43
|
-
newDailyDispatch.chitNo = dailyDispatch === null || dailyDispatch === void 0 ? void 0 : dailyDispatch.chitNo;
|
|
44
|
-
newDailyDispatch.percentage = dailyDispatch === null || dailyDispatch === void 0 ? void 0 : dailyDispatch.percentage;
|
|
45
|
-
newDailyDispatch.dispatchTo = dispatchTo;
|
|
46
|
-
newDailyDispatch.dispatchDate = dailyDispatch.dispatchAt.split('T')[0];
|
|
47
|
-
newDailyDispatch.dispatchAt = dailyDispatch.dispatchAt;
|
|
48
|
-
newDailyDispatch.status = constants_1.RECORD_STATUS.STORED;
|
|
49
|
-
newDailyDispatch.creator = user;
|
|
50
|
-
newDailyDispatch = await tx.getRepository(entities_1.DailyDispatch).save(newDailyDispatch);
|
|
51
|
-
// 2. Create daily dispatch detail
|
|
52
|
-
dailyDispatchDetails = await addDailyDispatchDetail(domain, newDailyDispatch, dailyDispatchDetails.map((record) => {
|
|
53
|
-
return Object.assign({}, record);
|
|
54
|
-
}), user, tx);
|
|
55
|
-
await generateDispatchTransaction(domain, newDailyDispatch, dailyDispatchDetails, user, tx);
|
|
56
|
-
return newDailyDispatch;
|
|
57
45
|
}
|
|
58
46
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
47
|
+
// Helper function to fetch an entity by ID
|
|
48
|
+
async function fetchEntity(repository, id) {
|
|
49
|
+
const entity = await repository.findOne({ where: { id } });
|
|
50
|
+
if (!entity) {
|
|
51
|
+
throw new Error(`Entity with ID ${id} not found.`);
|
|
52
|
+
}
|
|
53
|
+
return entity;
|
|
54
|
+
}
|
|
55
|
+
// Helper function to create a daily dispatch record
|
|
56
|
+
async function createDailyDispatch({ domain, transport, driver, dispatchTo, totalTonnageRelease, chitNo, percentage, dispatchAt, user, tx }) {
|
|
57
|
+
const dailyDispatchRepo = tx.getRepository(entities_1.DailyDispatch);
|
|
58
|
+
// Convert dispatchAt to a string if it's a Date object
|
|
59
|
+
const dispatchDate = typeof dispatchAt === 'string' ? dispatchAt.split('T')[0] : dispatchAt.toISOString().split('T')[0];
|
|
60
|
+
const newDailyDispatch = dailyDispatchRepo.create({
|
|
61
|
+
name: utils_1.NoGenerator.dailyDispatch(),
|
|
62
|
+
domain,
|
|
63
|
+
transport,
|
|
64
|
+
transportNo: (transport === null || transport === void 0 ? void 0 : transport.name) || null,
|
|
65
|
+
driver,
|
|
66
|
+
driverIdentification: (driver === null || driver === void 0 ? void 0 : driver.idNumber) || null,
|
|
67
|
+
externalDriver: (driver === null || driver === void 0 ? void 0 : driver.name) || null,
|
|
68
|
+
totalTonnageRelease,
|
|
69
|
+
chitNo,
|
|
70
|
+
percentage,
|
|
71
|
+
dispatchTo,
|
|
72
|
+
dispatchDate,
|
|
73
|
+
dispatchAt: typeof dispatchAt === 'string' ? dispatchAt : dispatchAt.toISOString(),
|
|
74
|
+
status: constants_1.RECORD_STATUS.STORED,
|
|
75
|
+
creator: user
|
|
76
|
+
});
|
|
77
|
+
return await dailyDispatchRepo.save(newDailyDispatch);
|
|
78
|
+
}
|
|
79
|
+
// Helper function to add daily dispatch details
|
|
80
|
+
async function addDailyDispatchDetail(domain, dailyDispatch, details, user, tx) {
|
|
81
|
+
const rampRepo = tx.getRepository(entities_1.Ramp);
|
|
82
|
+
const detailRepo = tx.getRepository(entities_1.DailyDispatchDetail);
|
|
83
|
+
// Extract unique ramp IDs from details
|
|
84
|
+
// const uniqueRampIds = new Set(details.map(detail => detail.ramp.id))
|
|
85
|
+
// Validate opening quantities for all unique ramps
|
|
86
|
+
// for (const rampId of uniqueRampIds) {
|
|
87
|
+
// const ramp = await fetchEntity(rampRepo, rampId)
|
|
88
|
+
// await validateOpeningQuantities(domain, ramp, tx)
|
|
89
|
+
// }
|
|
90
|
+
// Create and save daily dispatch details
|
|
91
|
+
const createdDetails = await Promise.all(details.map(async (detail) => {
|
|
92
|
+
const ramp = await fetchEntity(rampRepo, detail.ramp.id);
|
|
93
|
+
return detailRepo.create(Object.assign(Object.assign({}, detail), { domain, name: utils_1.NoGenerator.dailyDispatchDetail(), ramp,
|
|
94
|
+
dailyDispatch, creator: user, updater: user }));
|
|
64
95
|
}));
|
|
65
|
-
return await
|
|
96
|
+
return await detailRepo.save(createdDetails);
|
|
66
97
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const blockRepo =
|
|
70
|
-
for (
|
|
71
|
-
const dispatchedTonnage =
|
|
72
|
-
const dispatchDate =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
async function generateDispatchTransaction(domain, dailyDispatch, // Ensure this is passed correctly
|
|
99
|
+
details, user, tx) {
|
|
100
|
+
const blockRepo = tx.getRepository(entities_1.Block);
|
|
101
|
+
for (const detail of details) {
|
|
102
|
+
const dispatchedTonnage = detail.collectedRampWeight;
|
|
103
|
+
const dispatchDate = typeof dailyDispatch.dispatchAt === 'string'
|
|
104
|
+
? dailyDispatch.dispatchAt.split('T')[0]
|
|
105
|
+
: dailyDispatch.dispatchAt.toISOString().split('T')[0];
|
|
106
|
+
const ramp = detail.ramp;
|
|
107
|
+
// Generate transaction history
|
|
108
|
+
await (0, utils_1.generateTransactionHistory)(null, domain, ramp, dailyDispatch.id, dailyDispatch.name, constants_1.TRANSACTION_TYPE.DISPATCHMENT, dispatchDate, 0, -dispatchedTonnage, user, tx);
|
|
109
|
+
// Fetch the latest ramp block histories
|
|
110
|
+
const rampBlockHistories = await tx.query(`
|
|
111
|
+
SELECT * FROM (
|
|
112
|
+
SELECT *, ROW_NUMBER () OVER (PARTITION BY ramp_id, block_id ORDER BY transaction_date DESC, transaction_type) AS rn
|
|
113
|
+
FROM ramp_block_histories
|
|
114
|
+
WHERE ramp_id = $1 AND transaction_date <= $2
|
|
115
|
+
) foo WHERE rn = 1
|
|
80
116
|
`, [ramp.id, dispatchDate]);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// // insert into ramp_block_histories (id,transaction_type, creator_id, updater_id, transaction_date, created_at, updated_at, weight, domain_id, block_id, ramp_id)
|
|
92
|
-
// let processedData = await tx.query(
|
|
93
|
-
// `
|
|
94
|
-
// insert into ramp_block_histories (id, seq, transaction_type, creator_id, updater_id, transaction_date, created_at, updated_at, domain_id, ramp_id, weight, previous_weight, current_weight, block_id, daily_dispatch_id)
|
|
95
|
-
// SELECT uuid_generate_v4() AS id, (select seq from ramp_block_histories where ramp_id = '${ramp.id}' and domain_id = '${domain.id}' order by seq desc limit 1) + 1,'DISPATCH' AS transaction_type,
|
|
96
|
-
// '0933baea-e099-494b-9791-3dfe805731f0' AS creator_id, '0933baea-e099-494b-9791-3dfe805731f0' AS updater_id,
|
|
97
|
-
// $1 AS transaction_date, $2 AS created_at, $3 AS updated_at,
|
|
98
|
-
// $4 AS domain_id, $5 AS ramp_id,
|
|
99
|
-
// $6 AS weight,
|
|
100
|
-
// $7 AS previous_weight,
|
|
101
|
-
// $8 AS current_weight,
|
|
102
|
-
// $9 AS block_id,
|
|
103
|
-
// $10 AS daily_dispatch_id
|
|
104
|
-
// `,
|
|
105
|
-
// [
|
|
106
|
-
// dispatchDate,
|
|
107
|
-
// dt2.created_at,
|
|
108
|
-
// dt2.updated_at,
|
|
109
|
-
// domain.id,
|
|
110
|
-
// ramp.id,
|
|
111
|
-
// parseFloat(weight),
|
|
112
|
-
// parseFloat(currentRampBlockWeight),
|
|
113
|
-
// parseFloat(currentRampBlockWeight) + parseFloat(weight),
|
|
114
|
-
// dt2.block_id,
|
|
115
|
-
// newDailyDispatch.id
|
|
116
|
-
// ]
|
|
117
|
-
// )
|
|
118
|
-
await (0, utils_1.generateRampBlockHistories)(block, domain, ramp, 'DISPATCH', dispatchDate, parseFloat(weight), user, null, newDailyDispatch, tx);
|
|
119
|
-
// await txMgr.query(`
|
|
120
|
-
// SELECT * FROM (
|
|
121
|
-
// SELECT *, ROW_NUMBER () OVER (PARTITION BY ramp_id, block_id ORDER BY transaction_date desc) AS rn FROM ramp_block_histories
|
|
122
|
-
// WHERE ramp_id =$1 AND transaction_date <= $2
|
|
123
|
-
// ) foo WHERE rn = 1
|
|
124
|
-
// `, [dt.ramp_id, dt.transaction_date]
|
|
125
|
-
// )
|
|
126
|
-
let x = dt2;
|
|
117
|
+
// Calculate total ramp weight
|
|
118
|
+
const totalRampWeight = rampBlockHistories.reduce((total, history) => total + history.previous_weight + history.weight, 0);
|
|
119
|
+
// Distribute dispatched tonnage across blocks
|
|
120
|
+
for (const history of rampBlockHistories) {
|
|
121
|
+
const block = await fetchEntity(blockRepo, history.block_id);
|
|
122
|
+
const currentRampBlockWeight = history.previous_weight + history.weight;
|
|
123
|
+
const percentage = parseFloat((currentRampBlockWeight / totalRampWeight).toFixed(4));
|
|
124
|
+
const weight = parseFloat((-dispatchedTonnage * percentage).toFixed(4));
|
|
125
|
+
await (0, utils_1.generateRampBlockHistories)(block, domain, ramp, 'DISPATCH', dispatchDate, weight, user, null, dailyDispatch, // Pass dailyDispatch object
|
|
126
|
+
tx);
|
|
127
127
|
}
|
|
128
|
-
let x = rampBlockHistory;
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
|
-
|
|
130
|
+
// async function validateOpeningQuantities(domain: Domain, ramp: Ramp, tx: EntityManager): Promise<void> {
|
|
131
|
+
// const rampBlockHistoryRepo = tx.getRepository(RampBlockHistory)
|
|
132
|
+
// const blocks = await tx.getRepository(Block).find({ where: { ramp } })
|
|
133
|
+
// for (const block of blocks) {
|
|
134
|
+
// const history = await rampBlockHistoryRepo.findOne({
|
|
135
|
+
// where: { domain, ramp, block, transactionType: 'OPENING_QUANTITY' }
|
|
136
|
+
// })
|
|
137
|
+
// if (!history) {
|
|
138
|
+
// throw new Error(
|
|
139
|
+
// `No opening quantity defined for block ${block.id} in ramp ${ramp.id}. Please set an opening quantity before creating dispatch records.`
|
|
140
|
+
// )
|
|
141
|
+
// }
|
|
142
|
+
// }
|
|
143
|
+
// }
|
|
132
144
|
//# sourceMappingURL=generate-daily-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generate-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,65 @@ exports.updateDailyDispatch = {
|
|
|
8
8
|
const repository = tx.getRepository(entities_1.DailyDispatch);
|
|
9
9
|
const dailyDispatch = await repository.findOne({
|
|
10
10
|
where: { domain, name },
|
|
11
|
-
relations: ['dailyDispatchDetails']
|
|
11
|
+
relations: ['dailyDispatchDetails', 'dailyDispatchDetails.ramp']
|
|
12
12
|
});
|
|
13
|
+
if (!dailyDispatch) {
|
|
14
|
+
throw new Error('Daily dispatch record not found.');
|
|
15
|
+
}
|
|
16
|
+
// Step 1: Update daily dispatch details
|
|
13
17
|
let foundDailyDispatchDetails = dailyDispatch.dailyDispatchDetails;
|
|
14
18
|
foundDailyDispatchDetails = foundDailyDispatchDetails.map(record => {
|
|
15
19
|
const matchedDispatchDetail = dailyDispatchDetails.find(dispatchDetail => dispatchDetail.name === record.name);
|
|
16
20
|
return Object.assign(Object.assign(Object.assign({}, record), matchedDispatchDetail), { updater: user });
|
|
17
21
|
});
|
|
18
22
|
await tx.getRepository(entities_1.DailyDispatchDetail).save(foundDailyDispatchDetails);
|
|
19
|
-
|
|
23
|
+
// Step 2: Update daily dispatch record
|
|
24
|
+
const updatedDailyDispatch = await repository.save(Object.assign(Object.assign({}, dailyDispatch), { chitNo,
|
|
20
25
|
percentage, updater: user }));
|
|
26
|
+
// Step 3: Handle tonnage variance for ramp block histories
|
|
27
|
+
await handleTonnageVariance(domain, dailyDispatch, foundDailyDispatchDetails, user, tx);
|
|
28
|
+
return updatedDailyDispatch;
|
|
21
29
|
}
|
|
22
30
|
};
|
|
31
|
+
// Helper function to handle tonnage variance
|
|
32
|
+
async function handleTonnageVariance(domain, dailyDispatch, dailyDispatchDetails, user, tx) {
|
|
33
|
+
const rampBlockHistoryRepo = tx.getRepository(entities_1.RampBlockHistory);
|
|
34
|
+
for (const detail of dailyDispatchDetails) {
|
|
35
|
+
const { collectedRampWeight, adjustedWeight } = detail;
|
|
36
|
+
// Calculate the variance
|
|
37
|
+
const variance = adjustedWeight - collectedRampWeight;
|
|
38
|
+
if (variance === 0) {
|
|
39
|
+
continue; // No variance, skip adjustment
|
|
40
|
+
}
|
|
41
|
+
// Fetch the original ramp block histories for this dispatch detail
|
|
42
|
+
const rampBlockHistories = await rampBlockHistoryRepo.find({
|
|
43
|
+
where: {
|
|
44
|
+
domain,
|
|
45
|
+
dailyDispatch: dailyDispatch.id,
|
|
46
|
+
ramp: detail.ramp,
|
|
47
|
+
transactionType: 'DISPATCH'
|
|
48
|
+
},
|
|
49
|
+
relations: ['ramp', 'block']
|
|
50
|
+
});
|
|
51
|
+
// Adjust the ramp block histories based on the variance
|
|
52
|
+
for (const history of rampBlockHistories) {
|
|
53
|
+
// Calculate the proportional adjustment for this block
|
|
54
|
+
const blockAdjustment = parseFloat((variance * (history.weight / collectedRampWeight)).toFixed(4));
|
|
55
|
+
// Create a new ramp block history record to reflect the adjustment
|
|
56
|
+
await rampBlockHistoryRepo.save({
|
|
57
|
+
domain,
|
|
58
|
+
block: history.block,
|
|
59
|
+
ramp: history.ramp,
|
|
60
|
+
transactionType: 'TONNAGE_VARIANCE',
|
|
61
|
+
transactionDate: dailyDispatch.dispatchDate,
|
|
62
|
+
weight: blockAdjustment,
|
|
63
|
+
previousWeight: history.previousWeight,
|
|
64
|
+
currentWeight: parseFloat((history.previousWeight + blockAdjustment).toFixed(4)),
|
|
65
|
+
dailyDispatch,
|
|
66
|
+
creator: user,
|
|
67
|
+
updater: user
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
23
72
|
//# sourceMappingURL=update-daily-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts"],"names":[],"mappings":";;;AAGA,gDAAwF;AAE3E,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,OAAY;QAChG,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAE7F,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAa,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACvB,SAAS,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SACjE,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;QAED,wCAAwC;QACxC,IAAI,yBAAyB,GAA0B,aAAa,CAAC,oBAAoB,CAAA;QAEzF,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjE,MAAM,qBAAqB,GAAQ,oBAAoB,CAAC,IAAI,CAC1D,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CACtD,CAAA;YAED,qDACK,MAAM,GACN,qBAAqB,KACxB,OAAO,EAAE,IAAI,IACd;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAE3E,uCAAuC;QACvC,MAAM,oBAAoB,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC7C,aAAa,KAChB,MAAM;YACN,UAAU,EACV,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,2DAA2D;QAC3D,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAEvF,OAAO,oBAAoB,CAAA;IAC7B,CAAC;CACF,CAAA;AAED,6CAA6C;AAC7C,KAAK,UAAU,qBAAqB,CAClC,MAAc,EACd,aAA4B,EAC5B,oBAA2C,EAC3C,IAAU,EACV,EAAiB;IAEjB,MAAM,oBAAoB,GAAG,EAAE,CAAC,aAAa,CAAC,2BAAgB,CAAC,CAAA;IAE/D,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE;QACzC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;QAEtD,yBAAyB;QACzB,MAAM,QAAQ,GAAG,cAAc,GAAG,mBAAmB,CAAA;QAErD,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClB,SAAQ,CAAC,+BAA+B;SACzC;QAED,mEAAmE;QACnE,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;YACzD,KAAK,EAAE;gBACL,MAAM;gBACN,aAAa,EAAE,aAAa,CAAC,EAAE;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,eAAe,EAAE,UAAU;aAC5B;YACD,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC7B,CAAC,CAAA;QAEF,wDAAwD;QACxD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;YACxC,uDAAuD;YACvD,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAElG,mEAAmE;YACnE,MAAM,oBAAoB,CAAC,IAAI,CAAC;gBAC9B,MAAM;gBACN,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe,EAAE,kBAAkB;gBACnC,eAAe,EAAE,aAAa,CAAC,YAAY;gBAC3C,MAAM,EAAE,eAAe;gBACvB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,aAAa,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChF,aAAa;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;SACH;KACF;AACH,CAAC"}
|
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deleteDailyHarvest = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
|
-
const constants_1 = require("../../../constants");
|
|
6
5
|
const entities_1 = require("../../../entities");
|
|
7
|
-
const utils_1 = require("../../../utils");
|
|
8
6
|
exports.deleteDailyHarvest = {
|
|
9
7
|
async deleteDailyHarvest(_, { name }, context) {
|
|
10
8
|
try {
|
|
@@ -24,12 +22,12 @@ exports.deleteDailyHarvest = {
|
|
|
24
22
|
}, {
|
|
25
23
|
deletedAt: new Date()
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
await tx.getRepository(entities_1.RecordTransaction).update({
|
|
26
|
+
domain,
|
|
27
|
+
refActionID: dailyHarvest.id
|
|
28
|
+
}, {
|
|
29
|
+
deletedAt: new Date()
|
|
30
30
|
});
|
|
31
|
-
await tx.getRepository(entities_1.PlantationInventory).save(Object.assign(Object.assign({}, foundPlantationInv), { totalBunches: foundPlantationInv.totalBunches - dailyHarvest.totalBunchHarvested, updater: user }));
|
|
32
|
-
await (0, utils_1.generateTransactionHistory)(dailyHarvest.block, domain, null, dailyHarvest.id, dailyHarvest.name, constants_1.TRANSACTION_TYPE.HARVEST, dailyHarvest.harvestDate, -dailyHarvest.totalBunchHarvested, 0, user, tx);
|
|
33
31
|
return true;
|
|
34
32
|
}
|
|
35
33
|
catch (error) {
|