@things-factory/operato-pms 3.8.13 → 3.8.14

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 (60) hide show
  1. package/client/pages/dispatchment/daily-dispatch-detail.js +1 -1
  2. package/client/pages/dispatchment/dispatchment-create-record.js +15 -40
  3. package/client/pages/harvesting/daily-harvesting-detail.js +2 -2
  4. package/client/pages/harvesting/edit-harvesting-record.js +2 -2
  5. package/client/pages/harvesting/harvesting-create-record.js +2 -2
  6. package/client/pages/inventory/inventory-ramp-tonnage.js +23 -31
  7. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +167 -124
  8. package/client/pages/report/report-ffb-tonnage-between-individual-block.js +12 -7
  9. package/dist-server/constants/transaction.js +2 -1
  10. package/dist-server/constants/transaction.js.map +1 -1
  11. package/dist-server/entities/daily-dispatch.js +1 -2
  12. package/dist-server/entities/daily-dispatch.js.map +1 -1
  13. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +1 -1
  14. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  15. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +2 -2
  16. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  17. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +19 -6
  18. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  19. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +165 -43
  20. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -1
  21. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +111 -0
  22. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -0
  23. package/dist-server/graphql/resolvers/report/daily-production-reports.js +6 -6
  24. package/dist-server/graphql/resolvers/report/index.js +2 -1
  25. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  26. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +10 -8
  27. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
  28. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +1 -1
  29. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +1 -1
  30. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js +14 -0
  31. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js.map +1 -0
  32. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js +15 -0
  33. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js.map +1 -0
  34. package/dist-server/graphql/types/report/index.js +13 -0
  35. package/dist-server/graphql/types/report/index.js.map +1 -1
  36. package/dist-server/utils/core-values.js +2 -2
  37. package/dist-server/utils/transaction-util.js +2 -1
  38. package/dist-server/utils/transaction-util.js.map +1 -1
  39. package/package.json +2 -2
  40. package/server/constants/transaction.ts +2 -1
  41. package/server/entities/daily-dispatch.ts +1 -4
  42. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +2 -2
  43. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +2 -2
  44. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +39 -11
  45. package/server/graphql/resolvers/dashboard/dashboard-query.ts +208 -52
  46. package/server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts +138 -0
  47. package/server/graphql/resolvers/report/daily-production-reports.ts +6 -6
  48. package/server/graphql/resolvers/report/index.ts +3 -1
  49. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +11 -9
  50. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +1 -1
  51. package/server/graphql/resolvers/report/monthly-production-reports.ts +1 -1
  52. package/server/graphql/types/report/daily-ffb-dispatch-production-report-list.ts +8 -0
  53. package/server/graphql/types/report/daily-ffb-dispatch-production-report.ts +9 -0
  54. package/server/graphql/types/report/index.ts +13 -0
  55. package/server/utils/core-values.ts +2 -2
  56. package/server/utils/transaction-util.ts +2 -1
  57. package/translations/en.json +7 -6
  58. package/translations/ko.json +7 -6
  59. package/translations/ms.json +10 -9
  60. package/translations/zh.json +7 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-ffb-dispatch-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts"],"names":[],"mappings":";;;AAAA,qCAAmE;AAGnE,gDAA6D;AAEhD,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,iCAAiC,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QAC7E,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;YAE3E,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1F,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,eAAI,CAAC,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;gBACjD,SAAS,EAAE,CAAC,OAAO,CAAC;aACrB,CAAC,CAAA;YAEF,IAAI,aAAa,GAAG,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,IAAI,CAAC;gBACzD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;aAClD,CAAC,CAAA;YAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC,KAAK,CAAC;;;;;;OAMhD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YAGf,8EAA8E;YAC9E,iCAAiC;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAE1D,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;SAuBC,EACD,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;oIAU4H,MAAM,CAAC,EAAE;;;;;sCAKvG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;SAElK,CACF,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;mDAG2C,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;kDAE9H,cAAc,yBAAyB,YAAY;;;SAG5F,CACF,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;;SAGC,CACF,CAAA;YAED,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAC/B;;SAEC,CACF,CAAA;YAGD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,yBACK,GAAG,EACP;gBACH,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aAC1B,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
@@ -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' 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,
45
+ sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,
46
+ sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,
47
+ round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,
48
+ round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' 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
@@ -110,10 +110,10 @@ exports.dailyProductionReports = {
110
110
  ) dt
111
111
  )`, [fromDateString, toDateString, block.id]);
112
112
  const result = await tx.query(`
113
- select * from temp_daily_production_data dt
113
+ select * from temp_daily_production_data dt
114
114
  `);
115
115
  const total = await tx.query(`
116
- select count(*) from temp_daily_production_data
116
+ select count(*) from temp_daily_production_data
117
117
  `);
118
118
  let items = result.map(itm => {
119
119
  return {
@@ -8,8 +8,9 @@ const yearly_production_reports_1 = require("./yearly-production-reports");
8
8
  const daily_staff_harvest_reports_1 = require("./daily-staff-harvest-reports");
9
9
  const monthly_block_dispatch_reports_1 = require("./monthly-block-dispatch-reports");
10
10
  const monthly_ffb_sale_reports_1 = require("./monthly-ffb-sale-reports");
11
+ const daily_ffb_dispatch_production_reports_1 = require("./daily-ffb-dispatch-production-reports");
11
12
  exports.ReportResolver = {
12
- Query: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, daily_production_reports_1.dailyProductionReports), monthly_production_reports_1.monthlyProductionReports), monthly_dispatch_summary_reports_1.monthlyDispatchSummaryReports), yearly_production_reports_1.yearlyProductionReports), daily_staff_harvest_reports_1.dailyStaffHarvestReports), monthly_block_dispatch_reports_1.monthlyBlockDispatchReports), monthly_ffb_sale_reports_1.monthlyFfbSaleReports),
13
+ Query: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, daily_production_reports_1.dailyProductionReports), monthly_production_reports_1.monthlyProductionReports), monthly_dispatch_summary_reports_1.monthlyDispatchSummaryReports), yearly_production_reports_1.yearlyProductionReports), daily_staff_harvest_reports_1.dailyStaffHarvestReports), monthly_block_dispatch_reports_1.monthlyBlockDispatchReports), monthly_ffb_sale_reports_1.monthlyFfbSaleReports), daily_ffb_dispatch_production_reports_1.dailyFfbDispatchProductionReports),
13
14
  Mutation: {}
14
15
  };
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/index.ts"],"names":[],"mappings":";;;AAAA,yEAAmE;AACnE,6EAAuE;AACvE,yFAAkF;AAClF,2EAAqE;AACrE,+EAAwE;AACxE,qFAA8E;AAC9E,yEAAkE;AAErD,QAAA,cAAc,GAAG;IAC5B,KAAK,wGACA,iDAAsB,GACtB,qDAAwB,GACxB,gEAA6B,GAC7B,mDAAuB,GACvB,sDAAwB,GACxB,4DAA2B,GAC3B,gDAAqB,CACzB;IACD,QAAQ,EAAE,EAAE;CACb,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/index.ts"],"names":[],"mappings":";;;AAAA,yEAAmE;AACnE,6EAAuE;AACvE,yFAAkF;AAClF,2EAAqE;AACrE,+EAAwE;AACxE,qFAA8E;AAC9E,yEAAkE;AAClE,mGAA2F;AAE9E,QAAA,cAAc,GAAG;IAC5B,KAAK,sHACA,iDAAsB,GACtB,qDAAwB,GACxB,gEAA6B,GAC7B,mDAAuB,GACvB,sDAAwB,GACxB,4DAA2B,GAC3B,gDAAqB,GACrB,yEAAiC,CACrC;IACD,QAAQ,EAAE,EAAE;CACb,CAAA"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.monthlyBlockDispatchReports = void 0;
4
- const typeorm_1 = require("typeorm");
5
4
  const entities_1 = require("../../../entities");
6
5
  exports.monthlyBlockDispatchReports = {
7
6
  async monthlyBlockDispatchReports(_, params, context) {
@@ -22,10 +21,13 @@ exports.monthlyBlockDispatchReports = {
22
21
  String(toDate.getMonth() + 1).padStart(2, '0'),
23
22
  String(toDate.getDate()).padStart(2, '0')
24
23
  ].join('-');
25
- let ramps = await (0, typeorm_1.getRepository)(entities_1.Ramp).find({
26
- where: { domain: domain.id, deletedAt: (0, typeorm_1.IsNull)() },
27
- relations: ['block']
28
- });
24
+ let blocks = await tx.getRepository(entities_1.Block).query(`
25
+ SELECT b.id, b.name FROM ramps r
26
+ INNER JOIN blocks b ON b.id = r.block_id
27
+ WHERE b.deleted_at IS NULL
28
+ AND r.domain_id = $1
29
+ GROUP BY b.id, b.name
30
+ `, [domain.id]);
29
31
  // -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp
30
32
  // [fromDateString, toDateString]
31
33
  await tx.query(`create extension if not exists tablefunc`);
@@ -44,8 +46,8 @@ exports.monthlyBlockDispatchReports = {
44
46
  CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (
45
47
  SELECT * FROM crosstab(
46
48
  $$SELECT rbd.id, rbd.block_name, round(rbd.weight, 2 )::varchar FROM raw_block_dispatch rbd$$,
47
- $$SELECT b.name FROM ramps r INNER JOIN blocks b ON b.id = r.block_id WHERE r.deleted_at IS NULL$$
48
- ) AS ("id" uuid, ${ramps.map(ramp => `"${ramp.block.name}" varchar`).join(',')})
49
+ $$SELECT b.name FROM ramps r INNER JOIN blocks b ON b.id = r.block_id WHERE r.deleted_at IS NULL AND r.domain_id = '${domain.id}' GROUP BY b.id, b.name$$
50
+ ) AS ("id" uuid, ${blocks.map(block => `"${block.name}" varchar`).join(',')})
49
51
  );
50
52
  `);
51
53
  await tx.query(`
@@ -59,7 +61,7 @@ exports.monthlyBlockDispatchReports = {
59
61
  , dd.transport_no as "lorryNo"
60
62
  , dd.driver_identification as "driverIdentification"
61
63
  , TO_CHAR(dd.dispatch_at:: DATE, 'dd/mm/yyyy') as "date"
62
- , row_to_json((SELECT d FROM (SELECT ${ramps.map(ramp => `pbd."${ramp.block.name}"`).join(',')}) d))::varchar as "blockData"
64
+ , row_to_json((SELECT d FROM (SELECT ${blocks.map(block => `pbd."${block.name}"`).join(',')}) d))::varchar as "blockData"
63
65
  , (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.id = dd.id) AS "today"
64
66
  FROM daily_dispatches dd
65
67
  INNER JOIN pivot_block_dispatch pbd ON pbd.id = dd.id
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-block-dispatch-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-block-dispatch-reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monthly-block-dispatch-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-block-dispatch-reports.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ exports.monthlyFfbSaleReports = {
35
35
  SELECT "id", dispatch_at, transport_no AS "lorryNo",
36
36
  driver_identification AS "driverIdentification", chit_no AS "chitNo", round(COALESCE(percentage,0)::numeric, 2)::varchar AS "percentage",
37
37
  COALESCE(diapatch_to_name, 'UNKNOWN') AS "dispatchTo", round(COALESCE(tonnage,0), 2)::varchar AS "tonnage",
38
- CASE WHEN forward_rn = 1 THEN dispatch_at::date::varchar ELSE '' END AS "dispatchAt",
38
+ CASE WHEN forward_rn = 1 THEN TO_CHAR(dispatch_at:: DATE, 'dd/mm/yyyy') ELSE '' END AS "dispatchAt",
39
39
  CASE WHEN reverse_rn = 1 THEN round((coalesce(sum(percentage) over (PARTITION BY dispatch_to_id, dispatch_at::date ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0)/forward_rn)::numeric,2)::varchar ELSE '' END AS "todayAvg",
40
40
  CASE WHEN reverse_rn = 1 THEN round((coalesce(sum(percentage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0)/forward_rn)::numeric,2)::varchar ELSE '' END AS "todateAvg",
41
41
  CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id, dispatch_at::date ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS "today",
@@ -70,8 +70,8 @@ exports.monthlyProductionReports = {
70
70
  left join(
71
71
  select blk.block_id, sum(total_weight) as total_weight_loaded, sum(total_bunch) as total_bunch_loaded
72
72
  from daily_loadings dl
73
- inner join temp_blocks blk on blk.id = dl.block_id
74
73
  inner join daily_loading_details dld on dld.daily_loading_id = dl.id
74
+ inner join temp_blocks blk on blk.id = dld.block_id
75
75
  where dl.loading_date::timestamp between $1::timestamp and $2::timestamp
76
76
  group by blk.block_id
77
77
  ) as loading on loading.block_id = b.id
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DailyFfbDispatchProductionReportList = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.DailyFfbDispatchProductionReportList = (0, graphql_tag_1.default) `
9
+ type DailyFfbDispatchProductionReportList {
10
+ items: [DailyFfbDispatchProductionReport]
11
+ total: Int
12
+ }
13
+ `;
14
+ //# sourceMappingURL=daily-ffb-dispatch-production-report-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-ffb-dispatch-production-report-list.js","sourceRoot":"","sources":["../../../../server/graphql/types/report/daily-ffb-dispatch-production-report-list.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,oCAAoC,GAAG,IAAA,qBAAG,EAAA;;;;;CAKtD,CAAA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DailyFfbDispatchProductionReport = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.DailyFfbDispatchProductionReport = (0, graphql_tag_1.default) `
9
+ type DailyFfbDispatchProductionReport {
10
+ date: String
11
+ blockData: String
12
+ today: String
13
+ }
14
+ `;
15
+ //# sourceMappingURL=daily-ffb-dispatch-production-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-ffb-dispatch-production-report.js","sourceRoot":"","sources":["../../../../server/graphql/types/report/daily-ffb-dispatch-production-report.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gCAAgC,GAAG,IAAA,qBAAG,EAAA;;;;;;CAMlD,CAAA"}
@@ -27,15 +27,19 @@ __exportStar(require("./monthly-production-report-list"), exports);
27
27
  __exportStar(require("./monthly-production-report"), exports);
28
28
  __exportStar(require("./yearly-production-report-list"), exports);
29
29
  __exportStar(require("./yearly-production-report"), exports);
30
+ __exportStar(require("./daily-ffb-dispatch-production-report"), exports);
31
+ __exportStar(require("./daily-ffb-dispatch-production-report-list"), exports);
30
32
  exports.ReportResolver = (0, graphql_tag_1.default) `
31
33
  extend type Query {
32
34
  dailyProductionReports(filters: [Filter], pagination: Pagination, sortings: [Sorting]): DailyProductionReportList
33
35
  @transaction
36
+
34
37
  monthlyProductionReports(
35
38
  filters: [Filter]
36
39
  pagination: Pagination
37
40
  sortings: [Sorting]
38
41
  ): MonthlyProductionReportList @transaction
42
+
39
43
  yearlyProductionReports(filters: [Filter], pagination: Pagination, sortings: [Sorting]): YearlyProductionReportList
40
44
  @transaction
41
45
  dailyStaffHarvestReports(
@@ -43,21 +47,30 @@ exports.ReportResolver = (0, graphql_tag_1.default) `
43
47
  pagination: Pagination
44
48
  sortings: [Sorting]
45
49
  ): DailyStaffHarvestReportList @transaction
50
+
46
51
  monthlyDispatchSummaryReports(
47
52
  filters: [Filter],
48
53
  pagination: Pagination,
49
54
  sortings: [Sorting]
50
55
  ): MonthlyDispatchSummaryReportList @transaction
56
+
51
57
  monthlyBlockDispatchReports(
52
58
  filters: [Filter],
53
59
  pagination: Pagination,
54
60
  sortings: [Sorting]
55
61
  ): MonthlyBlockDispatchReportList @transaction
62
+
56
63
  monthlyFfbSaleReports(
57
64
  filters: [Filter],
58
65
  pagination: Pagination,
59
66
  sortings: [Sorting]
60
67
  ): MonthlyDispatchSummaryReportList @transaction
68
+
69
+ dailyFfbDispatchProductionReports(
70
+ filters: [Filter],
71
+ pagination: Pagination,
72
+ sortings: [Sorting]
73
+ ): DailyFfbDispatchProductionReportList @transaction
61
74
  }
62
75
 
63
76
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/report/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,iEAA8C;AAC9C,4DAAyC;AACzC,oEAAiD;AACjD,+DAA4C;AAC5C,uEAAoD;AACpD,kEAA+C;AAC/C,yEAAsD;AACtD,oEAAiD;AACjD,mEAAgD;AAChD,8DAA2C;AAC3C,kEAA+C;AAC/C,6DAA0C;AAE7B,QAAA,cAAc,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiChC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/report/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,iEAA8C;AAC9C,4DAAyC;AACzC,oEAAiD;AACjD,+DAA4C;AAC5C,uEAAoD;AACpD,kEAA+C;AAC/C,yEAAsD;AACtD,oEAAiD;AACjD,mEAAgD;AAChD,8DAA2C;AAC3C,kEAA+C;AAC/C,6DAA0C;AAC1C,yEAAsD;AACtD,8EAA2D;AAE9C,QAAA,cAAc,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ChC,CAAA"}
@@ -37,8 +37,8 @@ async function getDailyBlockCalculatedValues(block, date, trxMgr) {
37
37
  select block_id, transaction_date,
38
38
  (select opening_field_bunches from transactions dt where dt.block_id = trx.block_id and dt.seq = min(trx.seq)) as prev_bunch_bal_in_field,
39
39
  0 as prev_weight_bal_in_ramp,
40
- sum(case when transaction_type = 'HARVEST' then field_bunches else 0 end) as today_bunch_harvest,
41
- sum(case when transaction_type = 'LOADING' then -field_bunches else 0 end) as today_bunch_collected,
40
+ sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,
41
+ sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,
42
42
  0 as today_weight_dispatch,
43
43
  0 as today_weight_bal_in_ramp,
44
44
  (
@@ -31,7 +31,8 @@ async function generateTransactionHistory(plantationInventory, refActionID, refR
31
31
  await transactionRepo.save(recTransactionHistory);
32
32
  if (transactionType === constants_1.TRANSACTION_TYPE.LOADING ||
33
33
  transactionType === constants_1.TRANSACTION_TYPE.DISPATCHMENT ||
34
- transactionType === constants_1.TRANSACTION_TYPE.TONNAGE_ADJUSTMENT) {
34
+ transactionType === constants_1.TRANSACTION_TYPE.LOADING_ADJUSTMENT ||
35
+ transactionType === constants_1.TRANSACTION_TYPE.DISPATCHMENT_ADJUSTMENT) {
35
36
  await switchRampStatus(domain, ramp, user, trxMgr);
36
37
  }
37
38
  return recTransactionHistory;
@@ -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": "3.8.13",
3
+ "version": "3.8.14",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -96,5 +96,5 @@
96
96
  "devDependencies": {
97
97
  "@things-factory/builder": "^3.7.5"
98
98
  },
99
- "gitHead": "9ef0c5b4dab02fcd97623eb2d72431d2776bd3c6"
99
+ "gitHead": "cc23839fe5ef7e12dd2d61f4f21daface150bec9"
100
100
  }
@@ -2,7 +2,8 @@ export const TRANSACTION_TYPE = {
2
2
  HARVEST: 'HARVEST',
3
3
  LOADING: 'LOADING',
4
4
  DISPATCHMENT: 'DISPATCHMENT',
5
- TONNAGE_ADJUSTMENT: 'TONNAGE_ADJUSTMENT',
5
+ LOADING_ADJUSTMENT: 'LOADING_ADJUSTMENT',
6
+ DISPATCHMENT_ADJUSTMENT: 'DISPATCHMENT_ADJUSTMENT',
6
7
  BUNCHES_ADJUSTMENT: 'BUNCHES_ADJUSTMENT',
7
8
  TERMINATED: 'TERMINATED'
8
9
  }
@@ -3,10 +3,8 @@ import {
3
3
  CreateDateColumn,
4
4
  Entity,
5
5
  Index,
6
- JoinColumn,
7
6
  ManyToOne,
8
7
  OneToMany,
9
- OneToOne,
10
8
  PrimaryGeneratedColumn,
11
9
  UpdateDateColumn
12
10
  } from 'typeorm'
@@ -39,8 +37,7 @@ export class DailyDispatch {
39
37
  @Column({ nullable: true })
40
38
  externalDriver: string
41
39
 
42
- @OneToOne(type => Truck, { nullable: true })
43
- @JoinColumn()
40
+ @ManyToOne(type => Truck, { nullable: true })
44
41
  transport: Truck
45
42
 
46
43
  @Column()
@@ -18,9 +18,9 @@ export const updateDailyDispatch = {
18
18
  let foundDailyDispatchDetails: DailyDispatchDetail[] = dailyDispatch.dailyDispatchDetails
19
19
 
20
20
  foundDailyDispatchDetails = foundDailyDispatchDetails.map(record => {
21
- const matchedDispatchDetail: any = dailyDispatchDetails.filter(
21
+ const matchedDispatchDetail: any = dailyDispatchDetails.find(
22
22
  dispatchDetail => dispatchDetail.name === record.name
23
- )[0]
23
+ )
24
24
 
25
25
  return {
26
26
  ...record,
@@ -137,7 +137,7 @@ export async function addPlantationInventory(
137
137
  existingFieldBunch,
138
138
  newDailyHarvest.id,
139
139
  newDailyHarvest.name,
140
- TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
140
+ TRANSACTION_TYPE.LOADING,
141
141
  newDailyHarvest.harvestDate,
142
142
  -newDailyHarvest.collectedBunch,
143
143
  0,
@@ -181,7 +181,7 @@ export async function addPlantationInventory(
181
181
  plantationInventory,
182
182
  newDailyHarvest.id,
183
183
  newDailyHarvest.name,
184
- TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
184
+ TRANSACTION_TYPE.LOADING,
185
185
  newDailyHarvest.harvestDate,
186
186
  -newDailyHarvest.collectedBunch,
187
187
  0,
@@ -3,8 +3,9 @@ import { EntityManager, getRepository, Repository } from 'typeorm'
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { Domain } from '@things-factory/shell'
5
5
 
6
+ import { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'
6
7
  import { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'
7
- import { NoGenerator } from '../../../utils'
8
+ import { generateTransactionHistory, NoGenerator } from '../../../utils'
8
9
 
9
10
  export const updateDailyLoading = {
10
11
  async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: any) {
@@ -68,15 +69,21 @@ export async function updateDailyLoadingDetail(
68
69
 
69
70
  if (existingDailyLoadingDetails?.length > 0) {
70
71
  updatedDailyLoadingDetails = await Promise.all(
71
- dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {
72
- const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name === record.name)
72
+ dailyLoadingDetails.map(async (existingRecord: DailyLoadingDetail) => {
73
+ const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(
74
+ detail => detail.name === existingRecord.name
75
+ )
76
+
77
+ if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {
78
+ await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx)
79
+ }
73
80
 
74
81
  return {
75
- ...record,
82
+ ...existingRecord,
76
83
  dailyLoading,
77
- truck: await truckRepo.findOne({ id: record.truck.id }),
78
- block: await blockRepo.findOne({ id: record.block.id }),
79
- ramp: await rampRepo.findOne({ id: record.ramp.id }),
84
+ truck: await truckRepo.findOne({ id: existingRecord.truck.id }),
85
+ block: await blockRepo.findOne({ id: existingRecord.block.id }),
86
+ ramp: await rampRepo.findOne({ id: existingRecord.ramp.id }),
80
87
  totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,
81
88
  totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,
82
89
  remark: foundDailyLoadingDetailPatch?.remark || null,
@@ -85,8 +92,6 @@ export async function updateDailyLoadingDetail(
85
92
  })
86
93
  )
87
94
  updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)
88
-
89
- // await updatePlantationInventory(domain, dailyLoading, updatedDailyLoadingDetails, user, tx)
90
95
  }
91
96
 
92
97
  if (newDailyLoadingDetail?.length > 0) {
@@ -113,12 +118,35 @@ export async function updateDailyLoadingDetail(
113
118
  export async function updatePlantationInventory(
114
119
  domain: Domain,
115
120
  dailyLoading: DailyLoading,
116
- updatedDailyLoadingDetails: DailyLoadingDetail[],
121
+ foundDailyLoadingDetailPatch: any,
122
+ existingRecord: DailyLoadingDetail,
117
123
  user: User,
118
124
  tx?: EntityManager
119
125
  ): Promise<void> {
120
126
  const plantationInvRepo: Repository<PlantationInventory> =
121
127
  tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)
122
128
 
123
- const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
129
+ let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({
130
+ where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: existingRecord.ramp },
131
+ relations: ['domain', 'block', 'ramp']
132
+ })
133
+
134
+ if (existingRampTonnage) {
135
+ const tonnageChanges: number = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight
136
+ existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges
137
+ existingRampTonnage.updater = user
138
+ await plantationInvRepo.save(existingRampTonnage)
139
+
140
+ await generateTransactionHistory(
141
+ existingRampTonnage,
142
+ dailyLoading.id,
143
+ dailyLoading.name,
144
+ TRANSACTION_TYPE.LOADING_ADJUSTMENT,
145
+ dailyLoading.loadingDate,
146
+ 0,
147
+ tonnageChanges,
148
+ user,
149
+ tx
150
+ )
151
+ }
124
152
  }