@things-factory/operato-pms 4.3.344 → 4.3.360
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/edit-harvesting-record.js +4 -6
- package/client/pages/harvesting/harvesting-create-record.js +3 -6
- package/config.development.js +81 -0
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +7 -4
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +6 -2
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-production-reports.js +4 -4
- package/package.json +2 -2
- package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +12 -10
- package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +7 -6
- package/server/graphql/resolvers/report/daily-production-reports.ts +4 -4
|
@@ -381,7 +381,9 @@ class EditHarvestingRecord extends localize(i18next)(PageView) {
|
|
|
381
381
|
dailyHarvestPatch.collectedBunch = parseFloat(dailyCollection.collectedBunch)
|
|
382
382
|
dailyHarvestPatch.yesterdayBalanceBunchInField = parseFloat(dailyCollection.yesterdayBalanceBunchInField)
|
|
383
383
|
dailyHarvestPatch.coverage = parseFloat(dailyHarvestPatch.coverage)
|
|
384
|
-
|
|
384
|
+
|
|
385
|
+
if (this.harvestGrist.dirtyData.records || this.harvestGrist.dirtyData.records.length)
|
|
386
|
+
dailyHarvestPatch.dailyHarvestDetails = this._getHarvestDetails()
|
|
385
387
|
|
|
386
388
|
const response = await client.mutate({
|
|
387
389
|
mutation: gql`
|
|
@@ -416,12 +418,8 @@ class EditHarvestingRecord extends localize(i18next)(PageView) {
|
|
|
416
418
|
}
|
|
417
419
|
|
|
418
420
|
_validateHarvestData() {
|
|
419
|
-
// no records
|
|
420
|
-
if (!this.harvestGrist.dirtyData.records || !this.harvestGrist.dirtyData.records.length)
|
|
421
|
-
throw new Error(i18next.t('text.no_records'))
|
|
422
|
-
|
|
423
|
-
// required field (batchId, packingType, weight, unit, packQty, palletQty)
|
|
424
421
|
if (
|
|
422
|
+
(this.harvestGrist.dirtyData.records || this.harvestGrist.dirtyData.records.length) &&
|
|
425
423
|
this.harvestGrist.dirtyData.records.filter(
|
|
426
424
|
record => !record.organizationStaff || isNaN(record.totalBunchHarvested)
|
|
427
425
|
).length
|
|
@@ -345,7 +345,8 @@ class HarvestingCreateRecord extends localize(i18next)(PageView) {
|
|
|
345
345
|
dailyHarvest.collectedBunch = parseFloat(dailyCollection.collectedBunch)
|
|
346
346
|
dailyHarvest.yesterdayBalanceBunchInField = parseFloat(dailyCollection.yesterdayBalanceBunchInField)
|
|
347
347
|
dailyHarvest.coverage = parseFloat(dailyHarvest.coverage)
|
|
348
|
-
|
|
348
|
+
|
|
349
|
+
if (this.harvestGrist.dirtyData.records) dailyHarvest.dailyHarvestDetails = this._getHarvestDetails()
|
|
349
350
|
|
|
350
351
|
const response = await client.mutate({
|
|
351
352
|
mutation: gql`
|
|
@@ -380,12 +381,8 @@ class HarvestingCreateRecord extends localize(i18next)(PageView) {
|
|
|
380
381
|
}
|
|
381
382
|
|
|
382
383
|
_validateHarvestData() {
|
|
383
|
-
// no records
|
|
384
|
-
if (!this.harvestGrist.dirtyData.records || !this.harvestGrist.dirtyData.records.length)
|
|
385
|
-
throw new Error(i18next.t('text.no_records'))
|
|
386
|
-
|
|
387
|
-
// required field (batchId, packingType, weight, unit, packQty, palletQty)
|
|
388
384
|
if (
|
|
385
|
+
this.harvestGrist.dirtyData.records &&
|
|
389
386
|
this.harvestGrist.dirtyData.records.filter(record => !record.organizationStaff || !record.totalBunchHarvested)
|
|
390
387
|
.length
|
|
391
388
|
)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
useVirtualHostBasedDomain: false,
|
|
3
|
+
fallbackRoute: '/',
|
|
4
|
+
subdomainOffset: 2,
|
|
5
|
+
port: 1400,
|
|
6
|
+
inspect: '9330',
|
|
7
|
+
ormconfig: {
|
|
8
|
+
name: 'default',
|
|
9
|
+
type: 'postgres',
|
|
10
|
+
database: 'pms',
|
|
11
|
+
username: 'postgres',
|
|
12
|
+
password: 'hatio',
|
|
13
|
+
host: 'localhost',
|
|
14
|
+
port: 15432,
|
|
15
|
+
synchronize: true,
|
|
16
|
+
logging: true
|
|
17
|
+
},
|
|
18
|
+
password: {
|
|
19
|
+
lowerCase: true,
|
|
20
|
+
upperCase: false,
|
|
21
|
+
digit: false,
|
|
22
|
+
specialCharacter: false,
|
|
23
|
+
allowRepeat: true,
|
|
24
|
+
useTightPattern: false,
|
|
25
|
+
useLoosePattern: true,
|
|
26
|
+
tightCharacterLength: 4,
|
|
27
|
+
looseCharacterLength: 4,
|
|
28
|
+
history: 2
|
|
29
|
+
},
|
|
30
|
+
uploads: 'uploads',
|
|
31
|
+
attachmentsPath: 'attachments',
|
|
32
|
+
SECRET: '0xD58F835B69D207A76CC5F84a70a1D0d4C79dfC95',
|
|
33
|
+
logger: {
|
|
34
|
+
file: {
|
|
35
|
+
filename: 'logs/application-%DATE%.log',
|
|
36
|
+
datePattern: 'YYYY-MM-DD-HH',
|
|
37
|
+
zippedArchive: true,
|
|
38
|
+
maxSize: '200m',
|
|
39
|
+
maxFiles: '1m',
|
|
40
|
+
level: 'info'
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
// email: {
|
|
44
|
+
// host: 'smtp.office365.com',
|
|
45
|
+
// port: 587,
|
|
46
|
+
// secure: false, // true for 465, false for other ports
|
|
47
|
+
// auth: {
|
|
48
|
+
// user: 'no-reply@hatiolab.com', // generated ethereal user
|
|
49
|
+
// pass: 'h@ti0LAB1008' // generated ethereal password
|
|
50
|
+
// },
|
|
51
|
+
// secureConnection: false,
|
|
52
|
+
// tls: {
|
|
53
|
+
// ciphers: 'SSLv3'
|
|
54
|
+
// }
|
|
55
|
+
// },
|
|
56
|
+
// sender: 'no-reply@hatiolab.com',
|
|
57
|
+
// notification: {
|
|
58
|
+
// fcm: {
|
|
59
|
+
// serviceAccount: {
|
|
60
|
+
// project_id: 'operato',
|
|
61
|
+
// private_key:
|
|
62
|
+
// '-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYNOfyNjPMSeG9\nzU1qs0cpVK5cVfadcUaw5g+hkQZMOMlAA7uqW2eX4vkayj7MzbYUayH+sei8044Q\nJIyl6f26dNX1VT3UgTmSmCS0v48EBEZHCgusrUGFjduLRN6OS6uvrXW1xKA18k9q\nai1C2EHCXF2AE4PTvf239RC1UIOnVePcMtT7rMTdHRO4s8OKVuSDbzIt8k1cV3Zt\nES0YsJlkELqBisYpV//2/ZSILTt39J9JzrVef03X9kkoo9p+YnNyy6tWsfQPfgJO\nybiRGBNxiyJ/E2pxRo/WqU0go9OzYJlGaSUrUx09heNiRD1b0MAOmyPDJz/6AaTk\nkU/A+kLzAgMBAAECggEADQ5s2gtR53VSujk1V/Xe8e0Di99DwaWUj5w6YhcK7/wX\nPdQRN4Fw6RLeLjL7xeG/rCNSwzm6hKSrQJL5zLnWW7XbMdyQRk6jdmnVAEv3zACi\nFH9+eFK3e+Q214XfgWz/v4p/FZdRLCYni5VBNHcwyWxLLS/V1ynzB3KM1sDiTRmI\npcT7+uTtwrKgJq64sXtFE2pYrFxDdCiyqzkhv/2ed4YIowAjpKBbbcCDKeVxVkoz\nC1P4PAzs9EeUuKSWYrWaUjN17lqtRlYeT1ylR1PIJuWqd4cKfgoEgz+lHwRPDCEX\nAYbk3nofiJIPBhSfCHrXS755wK48mY8vMwFdfCPJeQKBgQDsz4tjYTHdat5A25n5\nekwMxZwFQ5OvMV4eulwZUDMypTAYSz1iB6sDlgwKDm5omZIfuneqCEIvrqxV/kx3\n5wV/DANHO3hYxdp/NV7rM23xmqlaKZhHQbDono1Fm/LP6DEmJiD7N2eFKsXYcPpR\nSAIdCv0X3zkDQ4zRi51yJlCXzQKBgQDpufJBxCoXngiQJ2j14lWVAeOOdQ6zh5Ip\nBcDwF0X67cNSN3Wl40bS4yLFdolhEAyj5m0WPuYYXpjzhHhZ0W3V3ItdBkrmwIvy\nWOWu26qN0ZbwxVS2qVpHuj6iHWJKHuDZZUkFtJg3BeeBSOUHSA8TvjnA0xd83xeb\n8ZJasWoFvwKBgQDFs/gQ/gIdcq0exLfluh5nw0qgcmyHpNWJHdjqITS9IX/nqFkU\n0IYLtmdStf2jQiLmbkydHcvz9wZVvLqml67VBHhwLcwpgPULoskd34/4V0Dvzy4c\nv1Esw8H5zVqIDLeLu+VpFjZMzQrjyl6RIWbyTExEc84rVWfpQYAu3qIGOQKBgAFr\nXatEk7TdAtRNSPflTfu/rTAaSeKROjQBkvBiU8x4US1YpOBDBxUUyAtG8wKh5FHC\nfnsaGq+fM3KXJVv2R6J62mXQOfg4xyDLpWlwcBK4aSBBMoiBcsjouqSlZQlqMpdf\nZBgixqHe6U8BsFJg/6ZxC0y+e3AIss4Bo4/lb+1lAoGAFOexvaBh21K6W3inmRW4\nLlkVYJaBJ20OwokXg5aXjBiHxqmk7VLAuFbkpb5LOKH2xPILRQ0OEkn51yVymS3T\n9lLpHOFTQXt5tF2/F7NW7kaQJNlLr/h5jPi3O9XHeFmuaN2z150ZB6zzgjeGKzr8\ni+1fgTsRfDtNw8xkSH9qL1Y=\n-----END PRIVATE KEY-----\n',
|
|
63
|
+
// client_email: 'firebase-adminsdk-xmm2e@operato.iam.gserviceaccount.com'
|
|
64
|
+
// },
|
|
65
|
+
// appConfig: {
|
|
66
|
+
// apiKey: 'AIzaSyDdTM2BTLHSt2LNS0G5QB8G0i4KBXFiG7U',
|
|
67
|
+
// projectId: 'operato',
|
|
68
|
+
// messagingSenderId: 79537064975,
|
|
69
|
+
// appId: '1:79537064975:web:32f53119e9c8c6ee2a277a'
|
|
70
|
+
// },
|
|
71
|
+
// serverKey:
|
|
72
|
+
// 'AAAAEoTHTA8:APA91bGwt-4HT82Dfwf_VwbQaKT0_qHd0Y3tuW41udjWz5Lz0Ko0mEMD6WbHHSILvQpa6yuoGGKCMsrU7VW2qWRrUm3CYpyG9oSwshNm1tIhljAnOuUfwHCoawbVLwf9qlWpHt4dwCoc'
|
|
73
|
+
// },
|
|
74
|
+
// vapidKey: {
|
|
75
|
+
// subject: 'mailto:heartyoh@hatiolab.com',
|
|
76
|
+
// publicKey: 'BAkVkITsCXBIsYL1yeaBmx5_dn57we-ZXMjirPPHzC2dan82cdEnAio_53PQ-1_w3ykWCBPrrFAWQ_d9N4cFF0o',
|
|
77
|
+
// privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
|
|
78
|
+
// }
|
|
79
|
+
// },
|
|
80
|
+
reportApiUrl: 'http://localhost:8888/rest/report/show_html'
|
|
81
|
+
}
|
|
@@ -8,7 +8,9 @@ const utils_1 = require("../../../utils");
|
|
|
8
8
|
exports.generateDailyHarvest = {
|
|
9
9
|
async generateDailyHarvest(_, { dailyHarvest }, context) {
|
|
10
10
|
const { domain, user, tx } = context.state;
|
|
11
|
-
let dailyHarvestDetails =
|
|
11
|
+
let dailyHarvestDetails = [];
|
|
12
|
+
if (dailyHarvest === null || dailyHarvest === void 0 ? void 0 : dailyHarvest.dailyHarvestDetails)
|
|
13
|
+
dailyHarvestDetails = dailyHarvest.dailyHarvestDetails;
|
|
12
14
|
const block = await tx.getRepository(entities_1.Block).findOne({
|
|
13
15
|
where: { domain, name: dailyHarvest.block, deletedAt: (0, typeorm_1.IsNull)() }
|
|
14
16
|
});
|
|
@@ -35,9 +37,10 @@ exports.generateDailyHarvest = {
|
|
|
35
37
|
newDailyHarvest.updater = user;
|
|
36
38
|
await tx.getRepository(entities_1.DailyHarvest).save(newDailyHarvest);
|
|
37
39
|
// 2. Create daily harvest detail
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
if (dailyHarvest === null || dailyHarvest === void 0 ? void 0 : dailyHarvest.dailyHarvestDetails)
|
|
41
|
+
await addDailyHarvestDetail(domain, newDailyHarvest, dailyHarvestDetails.map((record) => {
|
|
42
|
+
return Object.assign({}, record);
|
|
43
|
+
}), user, tx);
|
|
41
44
|
// 3. Create bunches inventory in field
|
|
42
45
|
await addPlantationInventory(domain, newDailyHarvest, block, user, tx);
|
|
43
46
|
return newDailyHarvest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts"],"names":[],"mappings":";;;AAAA,qCAA0E;AAK1E,kDAAsG;AACtG,gDAAmH;AACnH,0CAAwE;AAE3D,QAAA,oBAAoB,GAAG;IAClC,KAAK,CAAC,oBAAoB,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAY;QAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"generate-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,13 @@ exports.updateDailyHarvest = {
|
|
|
17
17
|
});
|
|
18
18
|
// for existing data row
|
|
19
19
|
let foundDailyHarvestDetails = foundDailyHarvest.dailyHarvestDetails; // from DB
|
|
20
|
-
let existingDailyHarvestDetails =
|
|
20
|
+
let existingDailyHarvestDetails = [];
|
|
21
|
+
let newDailyHarvestDetails = [];
|
|
22
|
+
if (foundDailyHarvestDetails && (foundDailyHarvestDetails === null || foundDailyHarvestDetails === void 0 ? void 0 : foundDailyHarvestDetails.length))
|
|
23
|
+
existingDailyHarvestDetails = dailyHarvestPatch.dailyHarvestDetails.filter(detail => detail.name !== null); // from client side
|
|
21
24
|
// new row has been added
|
|
22
|
-
|
|
25
|
+
if (dailyHarvestPatch === null || dailyHarvestPatch === void 0 ? void 0 : dailyHarvestPatch.dailyHarvestDetails)
|
|
26
|
+
newDailyHarvestDetails = dailyHarvestPatch.dailyHarvestDetails.filter(detail => detail.name === null);
|
|
23
27
|
const block = await tx.getRepository(entities_1.Block).findOne({
|
|
24
28
|
where: { domain, name: dailyHarvestPatch.block, deletedAt: (0, typeorm_1.IsNull)() }
|
|
25
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":";;;AAAA,qCAA0E;AAK1E,kDAAqE;AACrE,gDAAmH;AACnH,0CAAwE;AAE3D,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,OAAY;QACxE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,gBAAgB,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAA;QACvD,MAAM,sBAAsB,GAAG,EAAE,CAAC,aAAa,CAAC,6BAAkB,CAAC,CAAA;QACnE,MAAM,qBAAqB,GAAG,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAA;QAEjE,IAAI,iBAAiB,GAAiB,MAAM,gBAAgB,CAAC,OAAO,CAAC;YACnE,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,SAAS,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,uCAAuC,CAAC;SACrF,CAAC,CAAA;QAEF,wBAAwB;QACxB,IAAI,wBAAwB,GAAyB,iBAAiB,CAAC,mBAAmB,CAAA,CAAC,UAAU;QACrG,IAAI,2BAA2B,GAAyB,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,10 +42,10 @@ exports.dailyProductionReports = {
|
|
|
42
42
|
CREATE TEMP TABLE temp_records on commit drop AS (
|
|
43
43
|
select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches,
|
|
44
44
|
round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,
|
|
45
|
-
sum(case when transaction_type = 'HARVEST'
|
|
46
|
-
sum(case when transaction_type = 'LOADING'
|
|
47
|
-
round(sum(case when transaction_type = 'LOADING'
|
|
48
|
-
round(sum(case when transaction_type = 'DISPATCHMENT'
|
|
45
|
+
sum(case when transaction_type = 'HARVEST' then field_bunches else 0 end) as today_bunch_harvest,
|
|
46
|
+
sum(case when transaction_type = 'LOADING' then -field_bunches else 0 end) as today_bunch_collected,
|
|
47
|
+
round(sum(case when transaction_type = 'LOADING' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,
|
|
48
|
+
round(sum(case when transaction_type = 'DISPATCHMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,
|
|
49
49
|
transaction_date
|
|
50
50
|
from record_transactions t2
|
|
51
51
|
inner join temp_blocks blk on blk.id = t2.block_id
|
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.360",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
"devDependencies": {
|
|
96
96
|
"@things-factory/builder": "^4.3.281"
|
|
97
97
|
},
|
|
98
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "f1684569edf03f80ec368c81d78906e275c0478c"
|
|
99
99
|
}
|
|
@@ -10,8 +10,9 @@ import { generateTransactionHistory, NoGenerator } from '../../../utils'
|
|
|
10
10
|
export const generateDailyHarvest = {
|
|
11
11
|
async generateDailyHarvest(_: any, { dailyHarvest }, context: any) {
|
|
12
12
|
const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
|
|
13
|
+
let dailyHarvestDetails: DailyHarvestDetail[] = []
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
if (dailyHarvest?.dailyHarvestDetails) dailyHarvestDetails = dailyHarvest.dailyHarvestDetails
|
|
15
16
|
|
|
16
17
|
const block: Block = await tx.getRepository(Block).findOne({
|
|
17
18
|
where: { domain, name: dailyHarvest.block, deletedAt: IsNull() }
|
|
@@ -44,15 +45,16 @@ export const generateDailyHarvest = {
|
|
|
44
45
|
await tx.getRepository(DailyHarvest).save(newDailyHarvest)
|
|
45
46
|
|
|
46
47
|
// 2. Create daily harvest detail
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
if (dailyHarvest?.dailyHarvestDetails)
|
|
49
|
+
await addDailyHarvestDetail(
|
|
50
|
+
domain,
|
|
51
|
+
newDailyHarvest,
|
|
52
|
+
dailyHarvestDetails.map((record: DailyHarvestDetail) => {
|
|
53
|
+
return { ...record }
|
|
54
|
+
}),
|
|
55
|
+
user,
|
|
56
|
+
tx
|
|
57
|
+
)
|
|
56
58
|
|
|
57
59
|
// 3. Create bunches inventory in field
|
|
58
60
|
await addPlantationInventory(domain, newDailyHarvest, block, user, tx)
|
|
@@ -21,14 +21,15 @@ export const updateDailyHarvest = {
|
|
|
21
21
|
|
|
22
22
|
// for existing data row
|
|
23
23
|
let foundDailyHarvestDetails: DailyHarvestDetail[] = foundDailyHarvest.dailyHarvestDetails // from DB
|
|
24
|
-
let existingDailyHarvestDetails: DailyHarvestDetail[] =
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
let existingDailyHarvestDetails: DailyHarvestDetail[] = []
|
|
25
|
+
let newDailyHarvestDetails: DailyHarvestDetail[] = []
|
|
26
|
+
|
|
27
|
+
if (foundDailyHarvestDetails && foundDailyHarvestDetails?.length)
|
|
28
|
+
existingDailyHarvestDetails = dailyHarvestPatch.dailyHarvestDetails.filter(detail => detail.name !== null) // from client side
|
|
27
29
|
|
|
28
30
|
// new row has been added
|
|
29
|
-
|
|
30
|
-
detail => detail.name === null
|
|
31
|
-
)
|
|
31
|
+
if (dailyHarvestPatch?.dailyHarvestDetails)
|
|
32
|
+
newDailyHarvestDetails = dailyHarvestPatch.dailyHarvestDetails.filter(detail => detail.name === null)
|
|
32
33
|
|
|
33
34
|
const block: Block = await tx.getRepository(Block).findOne({
|
|
34
35
|
where: { domain, name: dailyHarvestPatch.block, deletedAt: IsNull() }
|
|
@@ -52,10 +52,10 @@ export const dailyProductionReports = {
|
|
|
52
52
|
CREATE TEMP TABLE temp_records on commit drop AS (
|
|
53
53
|
select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches,
|
|
54
54
|
round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,
|
|
55
|
-
sum(case when transaction_type = 'HARVEST'
|
|
56
|
-
sum(case when transaction_type = 'LOADING'
|
|
57
|
-
round(sum(case when transaction_type = 'LOADING'
|
|
58
|
-
round(sum(case when transaction_type = 'DISPATCHMENT'
|
|
55
|
+
sum(case when transaction_type = 'HARVEST' then field_bunches else 0 end) as today_bunch_harvest,
|
|
56
|
+
sum(case when transaction_type = 'LOADING' then -field_bunches else 0 end) as today_bunch_collected,
|
|
57
|
+
round(sum(case when transaction_type = 'LOADING' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,
|
|
58
|
+
round(sum(case when transaction_type = 'DISPATCHMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,
|
|
59
59
|
transaction_date
|
|
60
60
|
from record_transactions t2
|
|
61
61
|
inner join temp_blocks blk on blk.id = t2.block_id
|