@things-factory/operato-pms 9.0.0-beta.9 → 9.0.0

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 (116) hide show
  1. package/_index.html +0 -1
  2. package/dist-server/controllers/render-dispatchment.js +2 -2
  3. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  4. package/dist-server/graphql/resolvers/block/block-query.js +1 -2
  5. package/dist-server/graphql/resolvers/block/block-query.js.map +1 -1
  6. package/dist-server/graphql/resolvers/block/index.js +4 -1
  7. package/dist-server/graphql/resolvers/block/index.js.map +1 -1
  8. package/dist-server/graphql/resolvers/block/update-multiple-block.js +17 -6
  9. package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -1
  10. package/dist-server/graphql/resolvers/block-detail/index.js +4 -1
  11. package/dist-server/graphql/resolvers/block-detail/index.js.map +1 -1
  12. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js +18 -7
  13. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -1
  14. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js +6 -1
  15. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js.map +1 -1
  16. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js +1 -2
  17. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js.map +1 -1
  18. package/dist-server/graphql/resolvers/daily-block-detail/index.js +7 -1
  19. package/dist-server/graphql/resolvers/daily-block-detail/index.js.map +1 -1
  20. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js +5 -1
  21. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js.map +1 -1
  22. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js +13 -4
  23. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -1
  24. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +1 -2
  25. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  26. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +19 -11
  27. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  28. package/dist-server/graphql/resolvers/daily-dispatch/index.js +5 -1
  29. package/dist-server/graphql/resolvers/daily-dispatch/index.js.map +1 -1
  30. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +11 -3
  31. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  32. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js +1 -2
  33. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map +1 -1
  34. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +1 -2
  35. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  36. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +5 -1
  37. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
  38. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +14 -6
  39. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  40. package/dist-server/graphql/resolvers/daily-harvest/index.js +5 -1
  41. package/dist-server/graphql/resolvers/daily-harvest/index.js.map +1 -1
  42. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +12 -4
  43. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  44. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js +1 -2
  45. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map +1 -1
  46. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +1 -2
  47. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  48. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +16 -7
  49. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  50. package/dist-server/graphql/resolvers/daily-loading/index.js +5 -1
  51. package/dist-server/graphql/resolvers/daily-loading/index.js.map +1 -1
  52. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +21 -11
  53. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  54. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js +1 -2
  55. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js.map +1 -1
  56. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js +4 -1
  57. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js.map +1 -1
  58. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js +5 -1
  59. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js.map +1 -1
  60. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +16 -2
  61. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -1
  62. package/dist-server/graphql/resolvers/organization/index.js +4 -1
  63. package/dist-server/graphql/resolvers/organization/index.js.map +1 -1
  64. package/dist-server/graphql/resolvers/organization/organization-query.js +1 -2
  65. package/dist-server/graphql/resolvers/organization/organization-query.js.map +1 -1
  66. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +14 -4
  67. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -1
  68. package/dist-server/graphql/resolvers/organization-staff/index.js +4 -1
  69. package/dist-server/graphql/resolvers/organization-staff/index.js.map +1 -1
  70. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +5 -4
  71. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  72. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +19 -10
  73. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -1
  74. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js +5 -1
  75. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js.map +1 -1
  76. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +6 -1
  77. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -1
  78. package/dist-server/graphql/resolvers/plantation-setting/index.js +7 -1
  79. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -1
  80. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +3 -1
  81. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -1
  82. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +13 -4
  83. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -1
  84. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +5 -1
  85. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -1
  86. package/dist-server/graphql/resolvers/ramp/index.js +4 -1
  87. package/dist-server/graphql/resolvers/ramp/index.js.map +1 -1
  88. package/dist-server/graphql/resolvers/ramp/ramp-query.js +1 -2
  89. package/dist-server/graphql/resolvers/ramp/ramp-query.js.map +1 -1
  90. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +19 -10
  91. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -1
  92. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +3 -1
  93. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
  94. package/dist-server/graphql/resolvers/report/index.js +10 -1
  95. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  96. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +3 -1
  97. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
  98. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +3 -1
  99. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
  100. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +3 -1
  101. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
  102. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +4 -1
  103. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  104. package/dist-server/graphql/resolvers/truck/index.js +4 -1
  105. package/dist-server/graphql/resolvers/truck/index.js.map +1 -1
  106. package/dist-server/graphql/resolvers/truck/truck-query.js +1 -2
  107. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -1
  108. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +17 -9
  109. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -1
  110. package/dist-server/tsconfig.tsbuildinfo +1 -1
  111. package/dist-server/utils/no-generator.d.ts +4 -4
  112. package/dist-server/utils/transaction-util.js +18 -6
  113. package/dist-server/utils/transaction-util.js.map +1 -1
  114. package/package.json +56 -56
  115. package/views/auth-page.html +0 -1
  116. package/views/public/home.html +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"plantation-inventory-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-inventory/plantation-inventory-query.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,gDAA0G;AAE7F,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3E,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAW,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3F,IAAI;aACL;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SAC7D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC7E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACrF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY;aACpC,iBAAiB,CAAC,4BAA4B,EAAE,QAAQ,CAAC;aACzD,iBAAiB,CAAC,2BAA2B,EAAE,OAAO,CAAC;aACvD,iBAAiB,CAAC,0BAA0B,EAAE,MAAM,CAAC;aACrD,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC;aAC3D,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC;aAC3D,eAAe,EAAE,CAAA;QAEpB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAA+B,EAAE,EAAE;YACpD,uCACK,IAAI,KACP,QAAQ,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC5C,MAAM,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IACzC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Block as BlockEntity, PlantationInventory as PlantationInventoryEntity } from '../../../entities'\n\nexport const Query = {\n async plantationInventory(_: any, { blockId, type }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(PlantationInventoryEntity).findOne({\n where: {\n domain: { id: domain.id },\n block: { id: (await tx.getRepository(BlockEntity).findOne({ where: { id: blockId } })).id },\n type\n },\n relations: ['domain', 'block', 'ramp', 'creator', 'updater']\n })\n },\n\n async plantationInventories(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(PlantationInventoryEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n let [items, total] = await queryBuilder\n .leftJoinAndSelect('PlantationInventory.domain', 'Domain')\n .leftJoinAndSelect('PlantationInventory.block', 'Block')\n .leftJoinAndSelect('PlantationInventory.ramp', 'Ramp')\n .leftJoinAndSelect('PlantationInventory.creator', 'Creator')\n .leftJoinAndSelect('PlantationInventory.updater', 'Updater')\n .getManyAndCount()\n\n items = items.map((item: PlantationInventoryEntity) => {\n return {\n ...item,\n rampName: item?.ramp ? item.ramp.name : null,\n rampId: item?.ramp ? item.ramp.id : null\n }\n })\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"plantation-inventory-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-inventory/plantation-inventory-query.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,gDAA0G;AAE7F,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3E,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAW,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3F,IAAI;aACL;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SAC7D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC7E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACrF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY;aACpC,iBAAiB,CAAC,4BAA4B,EAAE,QAAQ,CAAC;aACzD,iBAAiB,CAAC,2BAA2B,EAAE,OAAO,CAAC;aACvD,iBAAiB,CAAC,0BAA0B,EAAE,MAAM,CAAC;aACrD,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC;aAC3D,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC;aAC3D,eAAe,EAAE,CAAA;QAEpB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAA+B,EAAE,EAAE;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAC5C,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aACzC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Block as BlockEntity, PlantationInventory as PlantationInventoryEntity } from '../../../entities'\n\nexport const Query = {\n async plantationInventory(_: any, { blockId, type }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(PlantationInventoryEntity).findOne({\n where: {\n domain: { id: domain.id },\n block: { id: (await tx.getRepository(BlockEntity).findOne({ where: { id: blockId } })).id },\n type\n },\n relations: ['domain', 'block', 'ramp', 'creator', 'updater']\n })\n },\n\n async plantationInventories(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(PlantationInventoryEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n let [items, total] = await queryBuilder\n .leftJoinAndSelect('PlantationInventory.domain', 'Domain')\n .leftJoinAndSelect('PlantationInventory.block', 'Block')\n .leftJoinAndSelect('PlantationInventory.ramp', 'Ramp')\n .leftJoinAndSelect('PlantationInventory.creator', 'Creator')\n .leftJoinAndSelect('PlantationInventory.updater', 'Updater')\n .getManyAndCount()\n\n items = items.map((item: PlantationInventoryEntity) => {\n return {\n ...item,\n rampName: item?.ramp ? item.ramp.name : null,\n rampId: item?.ramp ? item.ramp.id : null\n }\n })\n\n return { items, total }\n }\n}\n"]}
@@ -6,7 +6,12 @@ const entities_1 = require("../../../entities");
6
6
  exports.createPlantationSetting = {
7
7
  async createPlantationSetting(_, { plantationSetting }, context) {
8
8
  const { domain, user } = context.state;
9
- return await (0, shell_1.getRepository)(entities_1.PlantationSetting).save(Object.assign(Object.assign({}, plantationSetting), { domain, creator: user, updater: user }));
9
+ return await (0, shell_1.getRepository)(entities_1.PlantationSetting).save({
10
+ ...plantationSetting,
11
+ domain,
12
+ creator: user,
13
+ updater: user
14
+ });
10
15
  }
11
16
  };
12
17
  //# sourceMappingURL=create-plantation-setting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/create-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,OAAwB;QACnF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAC,IAAI,iCAC7C,iBAAiB,KACpB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const createPlantationSetting = {\n async createPlantationSetting(_: any, { plantationSetting }, context: ResolverContext) {\n const { domain, user } = context.state\n\n return await getRepository(PlantationSetting).save({\n ...plantationSetting,\n domain,\n creator: user,\n updater: user\n })\n }\n}\n"]}
1
+ {"version":3,"file":"create-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/create-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,OAAwB;QACnF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAC,IAAI,CAAC;YACjD,GAAG,iBAAiB;YACpB,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const createPlantationSetting = {\n async createPlantationSetting(_: any, { plantationSetting }, context: ResolverContext) {\n const { domain, user } = context.state\n\n return await getRepository(PlantationSetting).save({\n ...plantationSetting,\n domain,\n creator: user,\n updater: user\n })\n }\n}\n"]}
@@ -10,6 +10,12 @@ const delete_plantation_settings_1 = require("./delete-plantation-settings");
10
10
  exports.PlantationSettingResolver = {
11
11
  PlantationSetting: plantation_setting_query_1.PlantationSetting,
12
12
  Query: plantation_setting_query_1.Query,
13
- Mutation: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, update_plantation_setting_1.updatePlantationSetting), update_multiple_plantation_setting_1.updateMultiplePlantationSetting), create_plantation_setting_1.createPlantationSetting), delete_plantation_setting_1.deletePlantationSetting), delete_plantation_settings_1.deletePlantationSettings)
13
+ Mutation: {
14
+ ...update_plantation_setting_1.updatePlantationSetting,
15
+ ...update_multiple_plantation_setting_1.updateMultiplePlantationSetting,
16
+ ...create_plantation_setting_1.createPlantationSetting,
17
+ ...delete_plantation_setting_1.deletePlantationSetting,
18
+ ...delete_plantation_settings_1.deletePlantationSettings
19
+ }
14
20
  };
15
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/index.ts"],"names":[],"mappings":";;;AAAA,yEAAqE;AAErE,2EAAqE;AACrE,6FAAsF;AACtF,2EAAqE;AACrE,2EAAqE;AACrE,6EAAuE;AAE1D,QAAA,yBAAyB,GAAG;IACvC,iBAAiB,EAAjB,4CAAiB;IACjB,KAAK,EAAL,gCAAK;IACL,QAAQ,4EACH,mDAAuB,GACvB,oEAA+B,GAC/B,mDAAuB,GACvB,mDAAuB,GACvB,qDAAwB,CAC5B;CACF,CAAA","sourcesContent":["import { Query, PlantationSetting } from './plantation-setting-query'\n\nimport { updatePlantationSetting } from './update-plantation-setting'\nimport { updateMultiplePlantationSetting } from './update-multiple-plantation-setting'\nimport { createPlantationSetting } from './create-plantation-setting'\nimport { deletePlantationSetting } from './delete-plantation-setting'\nimport { deletePlantationSettings } from './delete-plantation-settings'\n\nexport const PlantationSettingResolver = {\n PlantationSetting,\n Query,\n Mutation: {\n ...updatePlantationSetting,\n ...updateMultiplePlantationSetting,\n ...createPlantationSetting,\n ...deletePlantationSetting,\n ...deletePlantationSettings\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/index.ts"],"names":[],"mappings":";;;AAAA,yEAAqE;AAErE,2EAAqE;AACrE,6FAAsF;AACtF,2EAAqE;AACrE,2EAAqE;AACrE,6EAAuE;AAE1D,QAAA,yBAAyB,GAAG;IACvC,iBAAiB,EAAjB,4CAAiB;IACjB,KAAK,EAAL,gCAAK;IACL,QAAQ,EAAE;QACR,GAAG,mDAAuB;QAC1B,GAAG,oEAA+B;QAClC,GAAG,mDAAuB;QAC1B,GAAG,mDAAuB;QAC1B,GAAG,qDAAwB;KAC5B;CACF,CAAA","sourcesContent":["import { Query, PlantationSetting } from './plantation-setting-query'\n\nimport { updatePlantationSetting } from './update-plantation-setting'\nimport { updateMultiplePlantationSetting } from './update-multiple-plantation-setting'\nimport { createPlantationSetting } from './create-plantation-setting'\nimport { deletePlantationSetting } from './delete-plantation-setting'\nimport { deletePlantationSettings } from './delete-plantation-settings'\n\nexport const PlantationSettingResolver = {\n PlantationSetting,\n Query,\n Mutation: {\n ...updatePlantationSetting,\n ...updateMultiplePlantationSetting,\n ...createPlantationSetting,\n ...deletePlantationSetting,\n ...deletePlantationSettings\n }\n}\n"]}
@@ -14,7 +14,9 @@ exports.Query = {
14
14
  },
15
15
  async plantationSettings(_, params, context) {
16
16
  const convertedParams = (0, shell_1.convertListParams)(params);
17
- const [items, total] = await (0, shell_1.getRepository)(entities_1.PlantationSetting).findAndCount(Object.assign({}, convertedParams));
17
+ const [items, total] = await (0, shell_1.getRepository)(entities_1.PlantationSetting).findAndCount({
18
+ ...convertedParams
19
+ });
18
20
  return { items, total };
19
21
  }
20
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plantation-setting-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/plantation-setting-query.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAChD,iDAA2F;AAE3F,gDAAgF;AAEnE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAChE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,4BAAuB,CAAC,CAAA;QAEzD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC1E,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,4BAAuB,CAAC,CAAC,YAAY,mBAC3E,eAAe,EAClB,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAEY,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,MAAM,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAA;IACjF,CAAC;CACF,CAAA","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { PlantationSetting as PlantationSettingEntity } from '../../../entities'\n\nexport const Query = {\n async plantationSetting(_: any, { name }, context: ResolverContext) {\n const { domain, user } = context.state\n const repository = getRepository(PlantationSettingEntity)\n\n return await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n },\n\n async plantationSettings(_: any, params: ListParam, context: ResolverContext) {\n const convertedParams = convertListParams(params)\n const [items, total] = await getRepository(PlantationSettingEntity).findAndCount({\n ...convertedParams\n })\n\n return { items, total }\n }\n}\n\nexport const PlantationSetting = {\n async domain(plantationSetting) {\n return await getRepository(Domain).findOneBy({ id: plantationSetting.domainId })\n },\n\n async creator(plantationSetting) {\n return await getRepository(User).findOneBy({ id: plantationSetting.creatorId })\n },\n\n async updater(plantationSetting) {\n return await getRepository(User).findOneBy({ id: plantationSetting.updaterId })\n }\n}\n"]}
1
+ {"version":3,"file":"plantation-setting-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/plantation-setting-query.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAChD,iDAA2F;AAE3F,gDAAgF;AAEnE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAChE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,4BAAuB,CAAC,CAAA;QAEzD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC1E,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,4BAAuB,CAAC,CAAC,YAAY,CAAC;YAC/E,GAAG,eAAe;SACnB,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAEY,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,MAAM,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAA;IACjF,CAAC;CACF,CAAA","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { PlantationSetting as PlantationSettingEntity } from '../../../entities'\n\nexport const Query = {\n async plantationSetting(_: any, { name }, context: ResolverContext) {\n const { domain, user } = context.state\n const repository = getRepository(PlantationSettingEntity)\n\n return await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n },\n\n async plantationSettings(_: any, params: ListParam, context: ResolverContext) {\n const convertedParams = convertListParams(params)\n const [items, total] = await getRepository(PlantationSettingEntity).findAndCount({\n ...convertedParams\n })\n\n return { items, total }\n }\n}\n\nexport const PlantationSetting = {\n async domain(plantationSetting) {\n return await getRepository(Domain).findOneBy({ id: plantationSetting.domainId })\n },\n\n async creator(plantationSetting) {\n return await getRepository(User).findOneBy({ id: plantationSetting.creatorId })\n },\n\n async updater(plantationSetting) {\n return await getRepository(User).findOneBy({ id: plantationSetting.updaterId })\n }\n}\n"]}
@@ -13,16 +13,25 @@ exports.updateMultiplePlantationSetting = {
13
13
  if (_createRecords.length > 0) {
14
14
  for (let i = 0; i < _createRecords.length; i++) {
15
15
  const newRecord = _createRecords[i];
16
- const result = await plantationSettingRepo.save(Object.assign(Object.assign({}, newRecord), { domain: domain, creator: user, updater: user }));
17
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
16
+ const result = await plantationSettingRepo.save({
17
+ ...newRecord,
18
+ domain: domain,
19
+ creator: user,
20
+ updater: user
21
+ });
22
+ results.push({ ...result, cuFlag: '+' });
18
23
  }
19
24
  }
20
25
  if (_updateRecords.length > 0) {
21
26
  for (let i = 0; i < _updateRecords.length; i++) {
22
27
  const newRecord = _updateRecords[i];
23
28
  const plantationSetting = await plantationSettingRepo.findOneBy({ domain: { id: domain.id }, id: newRecord.id });
24
- const result = await plantationSettingRepo.save(Object.assign(Object.assign(Object.assign({}, plantationSetting), newRecord), { updater: user }));
25
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
29
+ const result = await plantationSettingRepo.save({
30
+ ...plantationSetting,
31
+ ...newRecord,
32
+ updater: user
33
+ });
34
+ results.push({ ...result, cuFlag: 'M' });
26
35
  }
27
36
  }
28
37
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"update-multiple-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,+BAA+B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;QACjF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,qBAAqB,GAAG,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAA;QAE9D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,iCAC1C,SAAS,KACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEhH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,+CAC1C,iBAAiB,GACjB,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const updateMultiplePlantationSetting = {\n async updateMultiplePlantationSetting(_: any, { patches }, context: ResolverContext) {\n const { domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const plantationSettingRepo = getRepository(PlantationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await plantationSettingRepo.save({\n ...newRecord,\n domain: domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const plantationSetting = await plantationSettingRepo.findOneBy({ domain: { id: domain.id }, id: newRecord.id })\n\n const result = await plantationSettingRepo.save({\n ...plantationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n}\n"]}
1
+ {"version":3,"file":"update-multiple-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,+BAA+B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;QACjF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,qBAAqB,GAAG,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAA;QAE9D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC;oBAC9C,GAAG,SAAS;oBACZ,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEhH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC;oBAC9C,GAAG,iBAAiB;oBACpB,GAAG,SAAS;oBACZ,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const updateMultiplePlantationSetting = {\n async updateMultiplePlantationSetting(_: any, { patches }, context: ResolverContext) {\n const { domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const plantationSettingRepo = getRepository(PlantationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await plantationSettingRepo.save({\n ...newRecord,\n domain: domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const plantationSetting = await plantationSettingRepo.findOneBy({ domain: { id: domain.id }, id: newRecord.id })\n\n const result = await plantationSettingRepo.save({\n ...plantationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n}\n"]}
@@ -10,7 +10,11 @@ exports.updatePlantationSetting = {
10
10
  const plantationSetting = await repository.findOne({
11
11
  where: { domain: { id: domain.id }, name }
12
12
  });
13
- return await repository.save(Object.assign(Object.assign(Object.assign({}, plantationSetting), patch), { updater: user }));
13
+ return await repository.save({
14
+ ...plantationSetting,
15
+ ...patch,
16
+ updater: user
17
+ });
14
18
  }
15
19
  };
16
20
  //# sourceMappingURL=update-plantation-setting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/update-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAwB;QAC7E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAA;QACnD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,iBAAiB,GACjB,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const updatePlantationSetting = {\n async updatePlantationSetting(_: any, { name, patch }, context: ResolverContext) {\n const { domain, user } = context.state\n\n const repository = getRepository(PlantationSetting)\n const plantationSetting = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...plantationSetting,\n ...patch,\n updater: user\n })\n }\n}\n"]}
1
+ {"version":3,"file":"update-plantation-setting.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-setting/update-plantation-setting.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,gDAAqD;AAExC,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAwB;QAC7E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,4BAAiB,CAAC,CAAA;QACnD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,iBAAiB;YACpB,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PlantationSetting } from '../../../entities'\n\nexport const updatePlantationSetting = {\n async updatePlantationSetting(_: any, { name, patch }, context: ResolverContext) {\n const { domain, user } = context.state\n\n const repository = getRepository(PlantationSetting)\n const plantationSetting = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...plantationSetting,\n ...patch,\n updater: user\n })\n }\n}\n"]}
@@ -6,6 +6,9 @@ const update_multiple_ramp_1 = require("./update-multiple-ramp");
6
6
  const delete_ramps_1 = require("./delete-ramps");
7
7
  exports.RampResolver = {
8
8
  Query: ramp_query_1.Query,
9
- Mutation: Object.assign(Object.assign({}, update_multiple_ramp_1.updateMultipleRampResolver), delete_ramps_1.deleteRamps)
9
+ Mutation: {
10
+ ...update_multiple_ramp_1.updateMultipleRampResolver,
11
+ ...delete_ramps_1.deleteRamps
12
+ }
10
13
  };
11
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/index.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAEpC,iEAAmE;AACnE,iDAA4C;AAE/B,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAL,kBAAK;IACL,QAAQ,kCACH,iDAA0B,GAC1B,0BAAW,CACf;CACF,CAAA","sourcesContent":["import { Query } from './ramp-query'\n\nimport { updateMultipleRampResolver } from './update-multiple-ramp'\nimport { deleteRamps } from './delete-ramps'\n\nexport const RampResolver = {\n Query,\n Mutation: {\n ...updateMultipleRampResolver,\n ...deleteRamps\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/index.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAEpC,iEAAmE;AACnE,iDAA4C;AAE/B,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAL,kBAAK;IACL,QAAQ,EAAE;QACR,GAAG,iDAA0B;QAC7B,GAAG,0BAAW;KACf;CACF,CAAA","sourcesContent":["import { Query } from './ramp-query'\n\nimport { updateMultipleRampResolver } from './update-multiple-ramp'\nimport { deleteRamps } from './delete-ramps'\n\nexport const RampResolver = {\n Query,\n Mutation: {\n ...updateMultipleRampResolver,\n ...deleteRamps\n }\n}\n"]}
@@ -12,7 +12,6 @@ exports.Query = {
12
12
  });
13
13
  },
14
14
  async ramps(_, params, context) {
15
- var _a;
16
15
  const { tx } = context.state;
17
16
  const queryBuilder = tx.getRepository(entities_1.Ramp).createQueryBuilder();
18
17
  (0, shell_1.buildQuery)(queryBuilder, params, context);
@@ -21,7 +20,7 @@ exports.Query = {
21
20
  .leftJoinAndSelect('Ramp.block', 'Block')
22
21
  .leftJoinAndSelect('Ramp.creator', 'Creator')
23
22
  .leftJoinAndSelect('Ramp.updater', 'Updater');
24
- if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
23
+ if (params.filters?.length > 0)
25
24
  queryBuilder.andWhere('Ramp.deletedAt IS NULL');
26
25
  else
27
26
  queryBuilder.where('Ramp.deletedAt IS NULL');
@@ -1 +1 @@
1
- {"version":3,"file":"ramp-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/ramp-query.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,gDAAsD;AAEzC,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,IAAI,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACnD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,eAAU,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QAC7D,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,eAAU,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACtE,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC1C,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC;aACxC,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC;aAC5C,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAE/C,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;;YAC1E,YAAY,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAEjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Ramp as RampEntity } from '../../../entities'\n\nexport const Query = {\n async ramp(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(RampEntity).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['domain', 'block', 'creator', 'updater']\n })\n },\n\n async ramps(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(RampEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('Ramp.domain', 'Domain')\n .leftJoinAndSelect('Ramp.block', 'Block')\n .leftJoinAndSelect('Ramp.creator', 'Creator')\n .leftJoinAndSelect('Ramp.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('Ramp.deletedAt IS NULL')\n else queryBuilder.where('Ramp.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"ramp-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/ramp-query.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,gDAAsD;AAEzC,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,IAAI,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACnD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,eAAU,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC7D,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,eAAU,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACtE,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC1C,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC;aACxC,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC;aAC5C,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAE/C,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;;YAC1E,YAAY,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAEjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Ramp as RampEntity } from '../../../entities'\n\nexport const Query = {\n async ramp(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(RampEntity).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['domain', 'block', 'creator', 'updater']\n })\n },\n\n async ramps(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(RampEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('Ramp.domain', 'Domain')\n .leftJoinAndSelect('Ramp.block', 'Block')\n .leftJoinAndSelect('Ramp.creator', 'Creator')\n .leftJoinAndSelect('Ramp.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('Ramp.deletedAt IS NULL')\n else queryBuilder.where('Ramp.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
@@ -8,7 +8,6 @@ exports.updateMultipleRampResolver = {
8
8
  updateMultipleRamp
9
9
  };
10
10
  async function updateMultipleRamp(_, { patches }, context) {
11
- var _a, _b, _c;
12
11
  const { tx, domain, user } = context.state;
13
12
  const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
14
13
  const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
@@ -19,25 +18,35 @@ async function updateMultipleRamp(_, { patches }, context) {
19
18
  for (let i = 0; i < _createRecords.length; i++) {
20
19
  const newRecord = _createRecords[i];
21
20
  const block = await blockRepo.findOneOrFail({
22
- where: { id: (_a = newRecord === null || newRecord === void 0 ? void 0 : newRecord.block) === null || _a === void 0 ? void 0 : _a.id }
21
+ where: { id: newRecord?.block?.id }
23
22
  });
24
- const result = await rampRepo.save(Object.assign(Object.assign({}, newRecord), { block,
25
- domain, status: constants_1.RAMP_STATUS.EMPTY, creator: user, updater: user }));
26
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
23
+ const result = await rampRepo.save({
24
+ ...newRecord,
25
+ block,
26
+ domain,
27
+ status: constants_1.RAMP_STATUS.EMPTY,
28
+ creator: user,
29
+ updater: user
30
+ });
31
+ results.push({ ...result, cuFlag: '+' });
27
32
  }
28
33
  }
29
34
  if (_updateRecords.length > 0) {
30
35
  for (let i = 0; i < _updateRecords.length; i++) {
31
36
  let newRecord = _updateRecords[i];
32
37
  const ramp = await rampRepo.findOneBy({ id: newRecord.id });
33
- if ((_b = newRecord === null || newRecord === void 0 ? void 0 : newRecord.block) === null || _b === void 0 ? void 0 : _b.id) {
38
+ if (newRecord?.block?.id) {
34
39
  const block = await blockRepo.findOneOrFail({
35
- where: { id: (_c = newRecord === null || newRecord === void 0 ? void 0 : newRecord.block) === null || _c === void 0 ? void 0 : _c.id }
40
+ where: { id: newRecord?.block?.id }
36
41
  });
37
- newRecord = Object.assign(Object.assign({}, newRecord), { block });
42
+ newRecord = { ...newRecord, block };
38
43
  }
39
- const result = await rampRepo.save(Object.assign(Object.assign(Object.assign({}, ramp), newRecord), { updater: user }));
40
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
44
+ const result = await rampRepo.save({
45
+ ...ramp,
46
+ ...newRecord,
47
+ updater: user
48
+ });
49
+ results.push({ ...result, cuFlag: 'M' });
41
50
  }
42
51
  }
43
52
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"update-multiple-ramp.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/update-multiple-ramp.ts"],"names":[],"mappings":";;;AAOA,gDAqDC;AA5DD,kDAAgD;AAChD,gDAA+C;AAElC,QAAA,0BAA0B,GAAG;IACxC,kBAAkB;CACnB,CAAA;AAEM,KAAK,UAAU,kBAAkB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;;IACpF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,eAAI,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAA;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,EAAE,EAAE;aACpC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,iCAC7B,SAAS,KACZ,KAAK;gBACL,MAAM,EACN,MAAM,EAAE,uBAAW,CAAC,KAAK,EACzB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAE3D,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,EAAE,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;oBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,EAAE,EAAE;iBACpC,CAAC,CAAA;gBACF,SAAS,mCAAQ,SAAS,KAAE,KAAK,GAAE,CAAA;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,+CAC7B,IAAI,GACJ,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { RAMP_STATUS } from '../../../constants'\nimport { Block, Ramp } from '../../../entities'\n\nexport const updateMultipleRampResolver = {\n updateMultipleRamp\n}\n\nexport async function updateMultipleRamp(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const rampRepo = tx.getRepository(Ramp)\n const blockRepo = tx.getRepository(Block)\n\n let results = []\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const block = await blockRepo.findOneOrFail({\n where: { id: newRecord?.block?.id }\n })\n\n const result = await rampRepo.save({\n ...newRecord,\n block,\n domain,\n status: RAMP_STATUS.EMPTY,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n let newRecord = _updateRecords[i]\n const ramp = await rampRepo.findOneBy({ id: newRecord.id })\n\n if (newRecord?.block?.id) {\n const block = await blockRepo.findOneOrFail({\n where: { id: newRecord?.block?.id }\n })\n newRecord = { ...newRecord, block }\n }\n\n const result = await rampRepo.save({\n ...ramp,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
1
+ {"version":3,"file":"update-multiple-ramp.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/ramp/update-multiple-ramp.ts"],"names":[],"mappings":";;;AAOA,gDAqDC;AA5DD,kDAAgD;AAChD,gDAA+C;AAElC,QAAA,0BAA0B,GAAG;IACxC,kBAAkB;CACnB,CAAA;AAEM,KAAK,UAAU,kBAAkB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;IACpF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,eAAI,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAA;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;aACpC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;gBACjC,GAAG,SAAS;gBACZ,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,uBAAW,CAAC,KAAK;gBACzB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAE3D,IAAI,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;oBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;iBACpC,CAAC,CAAA;gBACF,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAA;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;gBACjC,GAAG,IAAI;gBACP,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { RAMP_STATUS } from '../../../constants'\nimport { Block, Ramp } from '../../../entities'\n\nexport const updateMultipleRampResolver = {\n updateMultipleRamp\n}\n\nexport async function updateMultipleRamp(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const rampRepo = tx.getRepository(Ramp)\n const blockRepo = tx.getRepository(Block)\n\n let results = []\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const block = await blockRepo.findOneOrFail({\n where: { id: newRecord?.block?.id }\n })\n\n const result = await rampRepo.save({\n ...newRecord,\n block,\n domain,\n status: RAMP_STATUS.EMPTY,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n let newRecord = _updateRecords[i]\n const ramp = await rampRepo.findOneBy({ id: newRecord.id })\n\n if (newRecord?.block?.id) {\n const block = await blockRepo.findOneOrFail({\n where: { id: newRecord?.block?.id }\n })\n newRecord = { ...newRecord, block }\n }\n\n const result = await rampRepo.save({\n ...ramp,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -106,7 +106,9 @@ exports.dailyFfbDispatchProductionReports = {
106
106
  `);
107
107
  return {
108
108
  items: result.map(itm => {
109
- return Object.assign({}, itm);
109
+ return {
110
+ ...itm
111
+ };
110
112
  }),
111
113
  total: total[0].count
112
114
  };
@@ -1 +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,qCAAgC;AAEhC,iDAAgE;AAEhE,gDAA6D;AAEhD,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,iCAAiC,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QACzF,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,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,qBAAa,EAAC,eAAI,CAAC,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;gBACzD,SAAS,EAAE,CAAC,OAAO,CAAC;aACrB,CAAC,CAAA;YAEF,IAAI,aAAa,GAAG,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,IAAI,CAAC;gBACzD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;aAC1D,CAAC,CAAA;YAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC,KAAK,CAC9C;;;;;;OAMD,EACC,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAA;YAED,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;;;;;;;;;;oIAWU,MAAM,CAAC,EACT;;;;;sCAKsB;gBACxB,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,WAAW,CAAC;gBACjD,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,WAAW,CAAC;aACvE,CAAC,IAAI,CAAC,GAAG,CAAC;;SAEd,CACF,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;mDAG2C;gBACrC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC;gBAC7C,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,YAAY,CAAC,IAAI,GAAG,CAAC;aACnE,CAAC,IAAI,CAAC,GAAG,CAAC;;kDAE2B,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;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,yBACK,GAAG,EACP;gBACH,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aACtB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { getRepository, ListParam } from '@things-factory/shell'\n\nimport { Block, Organization, Ramp } from '../../../entities'\n\nexport const dailyFfbDispatchProductionReports = {\n async dailyFfbDispatchProductionReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n let ramps = await getRepository(Ramp).find({\n where: { domain: { id: domain.id }, deletedAt: IsNull() },\n relations: ['block']\n })\n\n let organizations = await getRepository(Organization).find({\n where: { domain: { id: domain.id }, deletedAt: IsNull() }\n })\n\n let blocks = await tx.getRepository(Block).query(\n `\n SELECT b.id, b.name FROM ramps r\n INNER JOIN blocks b ON b.id = r.block_id \n WHERE b.deleted_at IS NULL\n AND r.domain_id = $1\n GROUP BY b.id, b.name \n `,\n [domain.id]\n )\n\n // -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n // [fromDateString, toDateString]\n await tx.query(`create extension if not exists tablefunc`)\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT \"name\", \"dispatch_at\", sum(weight) AS weight\tFROM(\n SELECT * FROM (\n SELECT dd.id,COALESCE(b.name, 'unknown') AS name, 1 AS \"rank\", dd.dispatch_at::date AS dispatch_at,\n COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0) AS weight\n FROM daily_dispatches dd \n INNER JOIN daily_dispatch_details ddd ON ddd.daily_dispatch_id = dd.id\n INNER JOIN ramps r ON r.id = ddd.ramp_id \n INNER JOIN blocks b ON b.id = r.block_id\n WHERE dd.dispatch_at::date between $1 and $2\n UNION\n SELECT dd.id, COALESCE(c.name, 'unknown') AS name, CASE WHEN c.name IS NULL THEN 3 ELSE 2 END AS \"rank\", dd.dispatch_at::date AS dispatch_at,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS weight\t\n FROM daily_dispatches dd \n LEFT JOIN organizations c ON c.id = dd.dispatch_to_id\n WHERE dd.dispatch_at::date between $1 and $2\n ) foo \n ORDER BY \"rank\", \"name\", \"dispatch_at\"\n ) foo\n GROUP BY \"name\", \"dispatch_at\"\n ORDER BY name, \"dispatch_at\"\n ) \n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (\n SELECT * FROM crosstab(\n $$\n SELECT rbd.\"dispatch_at\", rbd.\"name\",\n CONCAT('today: ', round(rbd.weight,2)::varchar, ' | todate: ', round(coalesce(sum(rbd.weight) over (PARTITION BY \"name\" ORDER BY name, dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar) AS weight\n FROM raw_block_dispatch rbd\n ORDER BY rbd.\"dispatch_at\", rbd.\"name\"\n $$,\n $$\n 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 = '${\n domain.id\n }' \n GROUP BY b.id, b.name\n UNION\n SELECT c.name FROM organizations c\n $$\n ) AS (dispatch_at date, ${[\n ...blocks.map(block => `\"${block.name}\" varchar`),\n ...organizations.map(organization => `\"${organization.name}\" varchar`)\n ].join(',')},\"unknown\" varchar)\n );\n `\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (\n SELECT TO_CHAR(md.dateDay:: DATE, 'dd/mm/yyyy') as \"date\"\n , row_to_json((SELECT d FROM (SELECT ${[\n ...blocks.map(block => `pbd.\"${block.name}\"`),\n ...organizations.map(organization => `pbd.\"${organization.name}\"`)\n ].join(',')}, pbd.\"unknown\") d))::varchar as \"blockData\"\n , (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.dispatch_at = pbd.dispatch_at) AS \"today\"\n FROM (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n LEFT JOIN pivot_block_dispatch pbd on pbd.dispatch_at::date = md.dateDay\n );\n `\n )\n\n const result: any = await tx.query(\n `\n select \"date\", \"blockData\", \"today\"\n from temp_monthly_production_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_production_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"daily-ffb-dispatch-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts"],"names":[],"mappings":"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","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { getRepository, ListParam } from '@things-factory/shell'\n\nimport { Block, Organization, Ramp } from '../../../entities'\n\nexport const dailyFfbDispatchProductionReports = {\n async dailyFfbDispatchProductionReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n let ramps = await getRepository(Ramp).find({\n where: { domain: { id: domain.id }, deletedAt: IsNull() },\n relations: ['block']\n })\n\n let organizations = await getRepository(Organization).find({\n where: { domain: { id: domain.id }, deletedAt: IsNull() }\n })\n\n let blocks = await tx.getRepository(Block).query(\n `\n SELECT b.id, b.name FROM ramps r\n INNER JOIN blocks b ON b.id = r.block_id \n WHERE b.deleted_at IS NULL\n AND r.domain_id = $1\n GROUP BY b.id, b.name \n `,\n [domain.id]\n )\n\n // -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n // [fromDateString, toDateString]\n await tx.query(`create extension if not exists tablefunc`)\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT \"name\", \"dispatch_at\", sum(weight) AS weight\tFROM(\n SELECT * FROM (\n SELECT dd.id,COALESCE(b.name, 'unknown') AS name, 1 AS \"rank\", dd.dispatch_at::date AS dispatch_at,\n COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0) AS weight\n FROM daily_dispatches dd \n INNER JOIN daily_dispatch_details ddd ON ddd.daily_dispatch_id = dd.id\n INNER JOIN ramps r ON r.id = ddd.ramp_id \n INNER JOIN blocks b ON b.id = r.block_id\n WHERE dd.dispatch_at::date between $1 and $2\n UNION\n SELECT dd.id, COALESCE(c.name, 'unknown') AS name, CASE WHEN c.name IS NULL THEN 3 ELSE 2 END AS \"rank\", dd.dispatch_at::date AS dispatch_at,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS weight\t\n FROM daily_dispatches dd \n LEFT JOIN organizations c ON c.id = dd.dispatch_to_id\n WHERE dd.dispatch_at::date between $1 and $2\n ) foo \n ORDER BY \"rank\", \"name\", \"dispatch_at\"\n ) foo\n GROUP BY \"name\", \"dispatch_at\"\n ORDER BY name, \"dispatch_at\"\n ) \n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (\n SELECT * FROM crosstab(\n $$\n SELECT rbd.\"dispatch_at\", rbd.\"name\",\n CONCAT('today: ', round(rbd.weight,2)::varchar, ' | todate: ', round(coalesce(sum(rbd.weight) over (PARTITION BY \"name\" ORDER BY name, dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar) AS weight\n FROM raw_block_dispatch rbd\n ORDER BY rbd.\"dispatch_at\", rbd.\"name\"\n $$,\n $$\n 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 = '${\n domain.id\n }' \n GROUP BY b.id, b.name\n UNION\n SELECT c.name FROM organizations c\n $$\n ) AS (dispatch_at date, ${[\n ...blocks.map(block => `\"${block.name}\" varchar`),\n ...organizations.map(organization => `\"${organization.name}\" varchar`)\n ].join(',')},\"unknown\" varchar)\n );\n `\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (\n SELECT TO_CHAR(md.dateDay:: DATE, 'dd/mm/yyyy') as \"date\"\n , row_to_json((SELECT d FROM (SELECT ${[\n ...blocks.map(block => `pbd.\"${block.name}\"`),\n ...organizations.map(organization => `pbd.\"${organization.name}\"`)\n ].join(',')}, pbd.\"unknown\") d))::varchar as \"blockData\"\n , (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.dispatch_at = pbd.dispatch_at) AS \"today\"\n FROM (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n LEFT JOIN pivot_block_dispatch pbd on pbd.dispatch_at::date = md.dateDay\n );\n `\n )\n\n const result: any = await tx.query(\n `\n select \"date\", \"blockData\", \"today\"\n from temp_monthly_production_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_production_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -10,7 +10,16 @@ const monthly_block_dispatch_reports_1 = require("./monthly-block-dispatch-repor
10
10
  const monthly_ffb_sale_reports_1 = require("./monthly-ffb-sale-reports");
11
11
  const daily_ffb_dispatch_production_reports_1 = require("./daily-ffb-dispatch-production-reports");
12
12
  exports.ReportResolver = {
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
+ Query: {
14
+ ...daily_production_reports_1.dailyProductionReports,
15
+ ...monthly_production_reports_1.monthlyProductionReports,
16
+ ...monthly_dispatch_summary_reports_1.monthlyDispatchSummaryReports,
17
+ ...yearly_production_reports_1.yearlyProductionReports,
18
+ ...daily_staff_harvest_reports_1.dailyStaffHarvestReports,
19
+ ...monthly_block_dispatch_reports_1.monthlyBlockDispatchReports,
20
+ ...monthly_ffb_sale_reports_1.monthlyFfbSaleReports,
21
+ ...daily_ffb_dispatch_production_reports_1.dailyFfbDispatchProductionReports
22
+ },
14
23
  Mutation: {}
15
24
  };
16
25
  //# 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;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","sourcesContent":["import { dailyProductionReports } from './daily-production-reports'\nimport { monthlyProductionReports } from './monthly-production-reports'\nimport { monthlyDispatchSummaryReports } from './monthly-dispatch-summary-reports'\nimport { yearlyProductionReports } from './yearly-production-reports'\nimport { dailyStaffHarvestReports } from './daily-staff-harvest-reports'\nimport { monthlyBlockDispatchReports } from './monthly-block-dispatch-reports'\nimport { monthlyFfbSaleReports } from './monthly-ffb-sale-reports'\nimport { dailyFfbDispatchProductionReports } from './daily-ffb-dispatch-production-reports'\n\nexport const ReportResolver = {\n Query: {\n ...dailyProductionReports,\n ...monthlyProductionReports,\n ...monthlyDispatchSummaryReports,\n ...yearlyProductionReports,\n ...dailyStaffHarvestReports,\n ...monthlyBlockDispatchReports,\n ...monthlyFfbSaleReports,\n ...dailyFfbDispatchProductionReports\n },\n Mutation: {}\n}\n"]}
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,EAAE;QACL,GAAG,iDAAsB;QACzB,GAAG,qDAAwB;QAC3B,GAAG,gEAA6B;QAChC,GAAG,mDAAuB;QAC1B,GAAG,sDAAwB;QAC3B,GAAG,4DAA2B;QAC9B,GAAG,gDAAqB;QACxB,GAAG,yEAAiC;KACrC;IACD,QAAQ,EAAE,EAAE;CACb,CAAA","sourcesContent":["import { dailyProductionReports } from './daily-production-reports'\nimport { monthlyProductionReports } from './monthly-production-reports'\nimport { monthlyDispatchSummaryReports } from './monthly-dispatch-summary-reports'\nimport { yearlyProductionReports } from './yearly-production-reports'\nimport { dailyStaffHarvestReports } from './daily-staff-harvest-reports'\nimport { monthlyBlockDispatchReports } from './monthly-block-dispatch-reports'\nimport { monthlyFfbSaleReports } from './monthly-ffb-sale-reports'\nimport { dailyFfbDispatchProductionReports } from './daily-ffb-dispatch-production-reports'\n\nexport const ReportResolver = {\n Query: {\n ...dailyProductionReports,\n ...monthlyProductionReports,\n ...monthlyDispatchSummaryReports,\n ...yearlyProductionReports,\n ...dailyStaffHarvestReports,\n ...monthlyBlockDispatchReports,\n ...monthlyFfbSaleReports,\n ...dailyFfbDispatchProductionReports\n },\n Mutation: {}\n}\n"]}
@@ -81,7 +81,9 @@ exports.monthlyBlockDispatchReports = {
81
81
  `);
82
82
  return {
83
83
  items: result.map(itm => {
84
- return Object.assign({}, itm);
84
+ return {
85
+ ...itm
86
+ };
85
87
  }),
86
88
  total: total[0].count
87
89
  };
@@ -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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","sourcesContent":["import { ListParam } from '@things-factory/shell'\n\nimport { Block } from '../../../entities'\n\nexport const monthlyBlockDispatchReports = {\n async monthlyBlockDispatchReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n let blocks = await tx.getRepository(Block).query(\n `\n SELECT b.id, b.name FROM ramps r\n INNER JOIN blocks b ON b.id = r.block_id \n WHERE b.deleted_at IS NULL\n AND r.domain_id = $1\n GROUP BY b.id, b.name\n `,\n [domain.id]\n )\n\n // -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n // [fromDateString, toDateString]\n await tx.query(`create extension if not exists tablefunc`)\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT dd.id, b.name AS block_name,\n COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0) AS weight\n FROM daily_dispatches dd \n INNER JOIN daily_dispatch_details ddd ON ddd.daily_dispatch_id = dd.id\n INNER JOIN ramps r ON r.id = ddd.ramp_id \n INNER JOIN blocks b ON b.id = r.block_id\n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n )\n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (\n SELECT * FROM crosstab(\n $$SELECT rbd.id, rbd.block_name, round(rbd.weight, 2 )::varchar FROM raw_block_dispatch rbd$$,\n $$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 = '${\n domain.id\n }' GROUP BY b.id, b.name$$\n ) AS (\"id\" uuid, ${blocks.map(block => `\"${block.name}\" varchar`).join(',')})\n );\n `\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY dd.dispatch_at::date\n ORDER BY dd.dispatch_at\n ) as rn\n , dd.id, COALESCE(c.name, 'UNKNOWN') AS \"dispatchTo\"\n , dd.transport_no as \"lorryNo\"\n , dd.driver_identification as \"driverIdentification\"\n , TO_CHAR(dd.dispatch_at:: DATE, 'dd/mm/yyyy') as \"date\"\n , row_to_json((SELECT d FROM (SELECT ${blocks\n .map(block => `pbd.\"${block.name}\"`)\n .join(',')}) d))::varchar as \"blockData\"\n , (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.id = dd.id) AS \"today\"\n FROM daily_dispatches dd \n INNER JOIN pivot_block_dispatch pbd ON pbd.id = dd.id\n LEFT JOIN organizations c ON c.id = dd.dispatch_to_id \n );\n `\n )\n\n const result: any = await tx.query(\n `\n select \"id\", \"dispatchTo\", \"lorryNo\", \"driverIdentification\", \n CASE WHEN \"rn\" = 1 THEN \"date\" ELSE '' END AS \"date\", \"blockData\", \"today\",\n coalesce(sum(today) over (order by date asc rows between unbounded preceding and current row), 0) as \"todate\"\n from temp_monthly_production_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_production_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
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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","sourcesContent":["import { ListParam } from '@things-factory/shell'\n\nimport { Block } from '../../../entities'\n\nexport const monthlyBlockDispatchReports = {\n async monthlyBlockDispatchReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n let blocks = await tx.getRepository(Block).query(\n `\n SELECT b.id, b.name FROM ramps r\n INNER JOIN blocks b ON b.id = r.block_id \n WHERE b.deleted_at IS NULL\n AND r.domain_id = $1\n GROUP BY b.id, b.name\n `,\n [domain.id]\n )\n\n // -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n // [fromDateString, toDateString]\n await tx.query(`create extension if not exists tablefunc`)\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT dd.id, b.name AS block_name,\n COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0) AS weight\n FROM daily_dispatches dd \n INNER JOIN daily_dispatch_details ddd ON ddd.daily_dispatch_id = dd.id\n INNER JOIN ramps r ON r.id = ddd.ramp_id \n INNER JOIN blocks b ON b.id = r.block_id\n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n )\n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (\n SELECT * FROM crosstab(\n $$SELECT rbd.id, rbd.block_name, round(rbd.weight, 2 )::varchar FROM raw_block_dispatch rbd$$,\n $$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 = '${\n domain.id\n }' GROUP BY b.id, b.name$$\n ) AS (\"id\" uuid, ${blocks.map(block => `\"${block.name}\" varchar`).join(',')})\n );\n `\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY dd.dispatch_at::date\n ORDER BY dd.dispatch_at\n ) as rn\n , dd.id, COALESCE(c.name, 'UNKNOWN') AS \"dispatchTo\"\n , dd.transport_no as \"lorryNo\"\n , dd.driver_identification as \"driverIdentification\"\n , TO_CHAR(dd.dispatch_at:: DATE, 'dd/mm/yyyy') as \"date\"\n , row_to_json((SELECT d FROM (SELECT ${blocks\n .map(block => `pbd.\"${block.name}\"`)\n .join(',')}) d))::varchar as \"blockData\"\n , (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.id = dd.id) AS \"today\"\n FROM daily_dispatches dd \n INNER JOIN pivot_block_dispatch pbd ON pbd.id = dd.id\n LEFT JOIN organizations c ON c.id = dd.dispatch_to_id \n );\n `\n )\n\n const result: any = await tx.query(\n `\n select \"id\", \"dispatchTo\", \"lorryNo\", \"driverIdentification\", \n CASE WHEN \"rn\" = 1 THEN \"date\" ELSE '' END AS \"date\", \"blockData\", \"today\",\n coalesce(sum(today) over (order by date asc rows between unbounded preceding and current row), 0) as \"todate\"\n from temp_monthly_production_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_production_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -81,7 +81,9 @@ exports.monthlyDispatchSummaryReports = {
81
81
  `);
82
82
  return {
83
83
  items: result.map(itm => {
84
- return Object.assign({}, itm);
84
+ return {
85
+ ...itm
86
+ };
85
87
  }),
86
88
  total: total[0].count
87
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-dispatch-summary-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts"],"names":[],"mappings":"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","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { ListParam } from '@things-factory/shell'\n\nimport { Organization } from '../../../entities'\n\nexport const monthlyDispatchSummaryReports = {\n async monthlyDispatchSummaryReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n const org = await tx.getRepository(Organization).findOneOrFail({\n where: {\n domain: { id: domain.id },\n deletedAt: IsNull(),\n id: params.filters.filter(x => x.name == 'organization')[0].value\n }\n })\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_dispatch ON COMMIT DROP AS (\n SELECT dd.*,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS tonnage\n FROM daily_dispatches dd \n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n AND dd.dispatch_to_id = $3\n );\n `,\n [fromDateString, toDateString, org.id]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_dispatch_to_mill_data ON COMMIT DROP AS (\n SELECT \"id\", dispatch_at AS \"dispatchAt\", transport_no AS \"lorryNo\", \n driver_identification AS \"driverIdentification\", chit_no AS \"chitNo\",\tround(COALESCE(percentage,0)::numeric, 2)::varchar AS \"percentage\",\n COALESCE(diapatch_to_name, 'UNKNOWN') AS \"dispatchTo\", \"tonnage\",\n 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\",\n 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\",\n 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\",\n CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS \"todate\"\n FROM (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_to_id, rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at ASC\n ) as forward_rn\n , ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_to_id, rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at DESC\n ) as reverse_rn\n , rbd.id\n , rbd.dispatch_at\n , rbd.transport_no\n , rbd.driver_identification\n , rbd.external_driver\n , rbd.chit_no\n , rbd.percentage\n , rbd.dispatch_to_id\n , c.name AS diapatch_to_name\n , rbd.tonnage \n FROM raw_dispatch rbd\n LEFT JOIN organizations c ON c.id = rbd.dispatch_to_id\n ORDER BY rbd.dispatch_to_id, rbd.dispatch_at\n ) src\n );\n `\n )\n\n const result: any = await tx.query(\n `\n select * from temp_monthly_dispatch_to_mill_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_dispatch_to_mill_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"monthly-dispatch-summary-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts"],"names":[],"mappings":"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","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { ListParam } from '@things-factory/shell'\n\nimport { Organization } from '../../../entities'\n\nexport const monthlyDispatchSummaryReports = {\n async monthlyDispatchSummaryReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n const org = await tx.getRepository(Organization).findOneOrFail({\n where: {\n domain: { id: domain.id },\n deletedAt: IsNull(),\n id: params.filters.filter(x => x.name == 'organization')[0].value\n }\n })\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_dispatch ON COMMIT DROP AS (\n SELECT dd.*,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS tonnage\n FROM daily_dispatches dd \n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n AND dd.dispatch_to_id = $3\n );\n `,\n [fromDateString, toDateString, org.id]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_dispatch_to_mill_data ON COMMIT DROP AS (\n SELECT \"id\", dispatch_at AS \"dispatchAt\", transport_no AS \"lorryNo\", \n driver_identification AS \"driverIdentification\", chit_no AS \"chitNo\",\tround(COALESCE(percentage,0)::numeric, 2)::varchar AS \"percentage\",\n COALESCE(diapatch_to_name, 'UNKNOWN') AS \"dispatchTo\", \"tonnage\",\n 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\",\n 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\",\n 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\",\n CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS \"todate\"\n FROM (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_to_id, rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at ASC\n ) as forward_rn\n , ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_to_id, rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at DESC\n ) as reverse_rn\n , rbd.id\n , rbd.dispatch_at\n , rbd.transport_no\n , rbd.driver_identification\n , rbd.external_driver\n , rbd.chit_no\n , rbd.percentage\n , rbd.dispatch_to_id\n , c.name AS diapatch_to_name\n , rbd.tonnage \n FROM raw_dispatch rbd\n LEFT JOIN organizations c ON c.id = rbd.dispatch_to_id\n ORDER BY rbd.dispatch_to_id, rbd.dispatch_at\n ) src\n );\n `\n )\n\n const result: any = await tx.query(\n `\n select * from temp_monthly_dispatch_to_mill_data dt\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_dispatch_to_mill_data\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -79,7 +79,9 @@ exports.monthlyFfbSaleReports = {
79
79
  `);
80
80
  return {
81
81
  items: result.map(itm => {
82
- return Object.assign({}, itm);
82
+ return {
83
+ ...itm
84
+ };
83
85
  }),
84
86
  total: total[0].count
85
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-ffb-sale-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-ffb-sale-reports.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAG;IACnC,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,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;YAC1F,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,CAAA;YAErE,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,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;YAOI,YAAY;gBACV,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,MAAM;oBAC5B,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,4BAA4B,YAAY,CAAC,KAAK,GAAG;gBACrD,CAAC,CAAC,EACN;;SAED,EACD,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmCC,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;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,yBACK,GAAG,EACP;gBACH,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aACtB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { ListParam } from '@things-factory/shell'\n\nexport const monthlyFfbSaleReports = {\n async monthlyFfbSaleReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n let organization = params.filters.find(x => x.name == 'organization')\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT dd.*,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS tonnage\n FROM daily_dispatches dd \n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n ${\n organization\n ? organization.value == 'null'\n ? `AND dd.dispatch_to_id IS NULL`\n : `AND dd.dispatch_to_id = '${organization.value}'`\n : ''\n }\n );\n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_dispatch_to_mill_data ON COMMIT DROP AS (\n SELECT \"id\", dispatch_at, transport_no AS \"lorryNo\", \n driver_identification AS \"driverIdentification\", chit_no AS \"chitNo\",\tround(COALESCE(percentage,0)::numeric, 2)::varchar AS \"percentage\", \n COALESCE(diapatch_to_name, 'UNKNOWN') AS \"dispatchTo\", round(COALESCE(tonnage,0), 2)::varchar AS \"tonnage\",\n CASE WHEN forward_rn = 1 THEN TO_CHAR(dispatch_at:: DATE, 'dd/mm/yyyy') ELSE '' END AS \"dispatchAt\", \n 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\",\n 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\",\n 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\",\n CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS \"todate\"\n FROM (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at ASC\n ) as forward_rn\n , ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at DESC\n ) as reverse_rn\n , rbd.id\n , rbd.dispatch_at\n , rbd.transport_no\n , rbd.driver_identification\n , rbd.external_driver\n , rbd.chit_no\n , rbd.percentage\n , rbd.dispatch_to_id\n , c.name AS diapatch_to_name\n , rbd.tonnage \n FROM raw_block_dispatch rbd\n LEFT JOIN organizations c ON c.id = rbd.dispatch_to_id\n ORDER BY rbd.dispatch_to_id, rbd.dispatch_at\n ) src\n );\n `\n )\n\n const result: any = await tx.query(\n `\n SELECT * FROM temp_monthly_dispatch_to_mill_data\n ORDER BY \"dispatch_at\";\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_dispatch_to_mill_data;\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"monthly-ffb-sale-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-ffb-sale-reports.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAG;IACnC,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,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;YAC1F,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,CAAA;YAErE,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,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;YAOI,YAAY;gBACV,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,MAAM;oBAC5B,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,4BAA4B,YAAY,CAAC,KAAK,GAAG;gBACrD,CAAC,CAAC,EACN;;SAED,EACD,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmCC,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;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,OAAO;wBACL,GAAG,GAAG;qBACP,CAAA;gBACH,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aACtB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { ListParam } from '@things-factory/shell'\n\nexport const monthlyFfbSaleReports = {\n async monthlyFfbSaleReports(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0])\n let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1])\n let organization = params.filters.find(x => x.name == 'organization')\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [\n fromDate.getFullYear().toString(),\n String(fromDate.getMonth() + 1).padStart(2, '0'),\n '01'\n ].join('-')\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (\n SELECT dd.*,\n COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS tonnage\n FROM daily_dispatches dd \n WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp\n ${\n organization\n ? organization.value == 'null'\n ? `AND dd.dispatch_to_id IS NULL`\n : `AND dd.dispatch_to_id = '${organization.value}'`\n : ''\n }\n );\n `,\n [fromDateString, toDateString]\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_monthly_dispatch_to_mill_data ON COMMIT DROP AS (\n SELECT \"id\", dispatch_at, transport_no AS \"lorryNo\", \n driver_identification AS \"driverIdentification\", chit_no AS \"chitNo\",\tround(COALESCE(percentage,0)::numeric, 2)::varchar AS \"percentage\", \n COALESCE(diapatch_to_name, 'UNKNOWN') AS \"dispatchTo\", round(COALESCE(tonnage,0), 2)::varchar AS \"tonnage\",\n CASE WHEN forward_rn = 1 THEN TO_CHAR(dispatch_at:: DATE, 'dd/mm/yyyy') ELSE '' END AS \"dispatchAt\", \n 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\",\n 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\",\n 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\",\n CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS \"todate\"\n FROM (\n SELECT \n ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at ASC\n ) as forward_rn\n , ROW_NUMBER() OVER(\n PARTITION BY rbd.dispatch_at::date\n ORDER BY rbd.dispatch_at DESC\n ) as reverse_rn\n , rbd.id\n , rbd.dispatch_at\n , rbd.transport_no\n , rbd.driver_identification\n , rbd.external_driver\n , rbd.chit_no\n , rbd.percentage\n , rbd.dispatch_to_id\n , c.name AS diapatch_to_name\n , rbd.tonnage \n FROM raw_block_dispatch rbd\n LEFT JOIN organizations c ON c.id = rbd.dispatch_to_id\n ORDER BY rbd.dispatch_to_id, rbd.dispatch_at\n ) src\n );\n `\n )\n\n const result: any = await tx.query(\n `\n SELECT * FROM temp_monthly_dispatch_to_mill_data\n ORDER BY \"dispatch_at\";\n `\n )\n\n const total: any = await tx.query(\n `\n select count(*) from temp_monthly_dispatch_to_mill_data;\n `\n )\n\n return {\n items: result.map(itm => {\n return {\n ...itm\n }\n }),\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -92,7 +92,10 @@ exports.monthlyProductionReports = {
92
92
  `);
93
93
  return {
94
94
  items: result.map(itm => {
95
- return Object.assign(Object.assign({}, itm), { avgOutTurn: (parseFloat(itm.totalOutTurn) / parseFloat(itm.daysWorked) || 0).toFixed(4) });
95
+ return {
96
+ ...itm,
97
+ avgOutTurn: (parseFloat(itm.totalOutTurn) / parseFloat(itm.daysWorked) || 0).toFixed(4)
98
+ };
96
99
  }),
97
100
  total: total[0].count
98
101
  };