@things-factory/operato-pms 4.0.26 → 4.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/bootstrap.js +11 -0
- package/client/component/block-selector-popup.js +125 -24
- package/client/component/driver-selector-popup.js +223 -0
- package/client/component/mill-selector-popup.js +200 -0
- package/client/component/tracked-plantation-setting.js +113 -0
- package/client/component/truck-selector-popup.js +202 -0
- package/client/menu.js +34 -2
- package/client/pages/constants/index.js +1 -0
- package/client/pages/constants/organization.js +5 -0
- package/client/pages/dispatchment/daily-dispatch-detail.js +57 -18
- package/client/pages/dispatchment/dispatchment-create-record.js +157 -54
- package/client/pages/dispatchment/dispatchment-list.js +26 -34
- package/client/pages/harvesting/daily-harvesting-detail.js +55 -18
- package/client/pages/harvesting/edit-harvesting-record.js +89 -23
- package/client/pages/harvesting/harvesting-create-record.js +102 -16
- package/client/pages/harvesting/harvesting-list.js +58 -12
- package/client/pages/inventory/inventory-field-bunches.js +6 -4
- package/client/pages/inventory/inventory-ramp-tonnage.js +23 -31
- package/client/pages/loading/daily-loading-detail.js +47 -93
- package/client/pages/loading/edit-loading-record.js +75 -294
- package/client/pages/loading/loading-create-record.js +52 -329
- package/client/pages/loading/loading-list.js +20 -83
- package/client/pages/master/block.js +1 -0
- package/client/pages/master/company.js +26 -13
- package/client/pages/master/home.js +67 -65
- package/client/pages/master/ramp.js +1 -0
- package/client/pages/master/staff.js +54 -3
- package/client/pages/master/truck.js +416 -0
- package/client/pages/report/home.js +72 -65
- package/client/pages/report/report-daily-ffb-dispatch-and-production.js +436 -0
- package/client/pages/report/report-daily-production.js +38 -6
- package/client/pages/report/report-daily-staff-harvest.js +50 -5
- package/client/pages/report/report-ffb-tonnage-between-individual-block.js +398 -0
- package/client/pages/report/report-monthly-ffb-sale.js +413 -0
- package/client/pages/report/report-monthly-production.js +33 -4
- package/client/pages/report/report-yearly-production.js +24 -8
- package/client/pages/setting/home.js +107 -0
- package/client/pages/setting/plantation-setting.js +109 -0
- package/client/route.js +25 -0
- package/dist-server/constants/index.js +1 -0
- package/dist-server/constants/index.js.map +1 -1
- package/dist-server/constants/organization.js +9 -0
- package/dist-server/constants/organization.js.map +1 -0
- package/dist-server/constants/transaction.js +2 -1
- package/dist-server/constants/transaction.js.map +1 -1
- package/dist-server/controllers/render-dispatchment.js +1 -1
- package/dist-server/controllers/render-dispatchment.js.map +1 -1
- package/dist-server/entities/daily-dispatch.js +18 -4
- package/dist-server/entities/daily-dispatch.js.map +1 -1
- package/dist-server/entities/daily-harvest-detail.js +9 -11
- package/dist-server/entities/daily-harvest-detail.js.map +1 -1
- package/dist-server/entities/daily-harvest.js +16 -6
- package/dist-server/entities/daily-harvest.js.map +1 -1
- package/dist-server/entities/daily-loading-detail.js +14 -6
- package/dist-server/entities/daily-loading-detail.js.map +1 -1
- package/dist-server/entities/daily-loading.js +3 -11
- package/dist-server/entities/daily-loading.js.map +1 -1
- package/dist-server/entities/index.js +7 -1
- package/dist-server/entities/index.js.map +1 -1
- package/dist-server/entities/organization-staff.js +5 -1
- package/dist-server/entities/organization-staff.js.map +1 -1
- package/dist-server/entities/plantation-inventory.js +4 -10
- package/dist-server/entities/plantation-inventory.js.map +1 -1
- package/dist-server/entities/plantation-setting.js +76 -0
- package/dist-server/entities/plantation-setting.js.map +1 -0
- package/dist-server/entities/truck.js +77 -0
- package/dist-server/entities/truck.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +13 -2
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +25 -11
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +4 -3
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +3 -1
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +21 -2
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +8 -2
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +4 -6
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +20 -54
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +31 -106
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +204 -0
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
- package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +9 -6
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +7 -3
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
- package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
- package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +16 -0
- package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
- package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +33 -0
- package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
- package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
- package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +111 -0
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/daily-production-reports.js +50 -37
- package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +21 -10
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/index.js +5 -1
- package/dist-server/graphql/resolvers/report/index.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +91 -0
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +89 -0
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +87 -0
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js +46 -31
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js +38 -28
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
- package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
- package/dist-server/graphql/resolvers/truck/index.js +12 -0
- package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
- package/dist-server/graphql/resolvers/truck/truck-query.js +46 -0
- package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
- package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
- package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +4 -1
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -1
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +4 -1
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -1
- package/dist-server/graphql/types/daily-dispatch/index.js +6 -1
- package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -1
- package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +4 -1
- package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +5 -2
- package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest/daily-harvest.js +3 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +4 -1
- package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -1
- package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -1
- package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +0 -2
- package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -1
- package/dist-server/graphql/types/daily-loading/daily-loading.js +0 -2
- package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -1
- package/dist-server/graphql/types/daily-loading/new-daily-loading.js +0 -2
- package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -1
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +6 -3
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +3 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -1
- package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +6 -3
- package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -1
- package/dist-server/graphql/types/dashboard/bunches-count.js +15 -0
- package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
- package/dist-server/graphql/types/dashboard/index.js +32 -0
- package/dist-server/graphql/types/dashboard/index.js.map +1 -0
- package/dist-server/graphql/types/dashboard/productions-overview.js +15 -0
- package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
- package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +14 -0
- package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
- package/dist-server/graphql/types/dashboard/tonnage-production.js +17 -0
- package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
- package/dist-server/graphql/types/dashboard/yield-production.js +17 -0
- package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
- package/dist-server/graphql/types/index.js +9 -6
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +2 -0
- package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -1
- package/dist-server/graphql/types/organization-staff/organization-staff.js +3 -0
- package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -1
- package/dist-server/graphql/types/plantation-setting/index.js +36 -0
- package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
- package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +16 -0
- package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +14 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +18 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting.js +22 -0
- package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js +14 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js +15 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js.map +1 -0
- package/dist-server/graphql/types/report/index.js +33 -0
- package/dist-server/graphql/types/report/index.js.map +1 -1
- package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +14 -0
- package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +19 -0
- package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +14 -0
- package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +25 -0
- package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +14 -0
- package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +24 -0
- package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
- package/dist-server/graphql/types/truck/index.js +33 -0
- package/dist-server/graphql/types/truck/index.js.map +1 -0
- package/dist-server/graphql/types/truck/new-truck.js +14 -0
- package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
- package/dist-server/graphql/types/truck/truck-list.js +14 -0
- package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
- package/dist-server/graphql/types/truck/truck-patch.js +17 -0
- package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
- package/dist-server/graphql/types/truck/truck.js +22 -0
- package/dist-server/graphql/types/truck/truck.js.map +1 -0
- package/dist-server/utils/core-values.js +2 -2
- package/dist-server/utils/transaction-util.js +2 -1
- package/dist-server/utils/transaction-util.js.map +1 -1
- package/package.json +56 -56
- package/server/constants/index.ts +1 -0
- package/server/constants/organization.ts +5 -0
- package/server/constants/transaction.ts +2 -1
- package/server/controllers/render-dispatchment.ts +1 -1
- package/server/entities/daily-dispatch.ts +18 -5
- package/server/entities/daily-harvest-detail.ts +10 -11
- package/server/entities/daily-harvest.ts +16 -7
- package/server/entities/daily-loading-detail.ts +14 -6
- package/server/entities/daily-loading.ts +7 -11
- package/server/entities/index.ts +6 -0
- package/server/entities/organization-staff.ts +6 -1
- package/server/entities/plantation-inventory.ts +6 -10
- package/server/entities/plantation-setting.ts +60 -0
- package/server/entities/truck.ts +58 -0
- package/server/graphql/resolvers/daily-dispatch/daily-dispatch-query.ts +15 -2
- package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +40 -14
- package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +8 -4
- package/server/graphql/resolvers/daily-harvest/daily-harvest-query.ts +7 -2
- package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +50 -4
- package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +12 -2
- package/server/graphql/resolvers/daily-loading/daily-loading-query.ts +6 -6
- package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +27 -109
- package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +56 -214
- package/server/graphql/resolvers/dashboard/dashboard-query.ts +252 -0
- package/server/graphql/resolvers/dashboard/index.ts +5 -0
- package/server/graphql/resolvers/index.ts +10 -6
- package/server/graphql/resolvers/organization-staff/organization-staff-query.ts +13 -4
- package/server/graphql/resolvers/plantation-setting/create-plantation-setting.ts +16 -0
- package/server/graphql/resolvers/plantation-setting/delete-plantation-setting.ts +13 -0
- package/server/graphql/resolvers/plantation-setting/delete-plantation-settings.ts +16 -0
- package/server/graphql/resolvers/plantation-setting/index.ts +19 -0
- package/server/graphql/resolvers/plantation-setting/plantation-setting-query.ts +38 -0
- package/server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts +46 -0
- package/server/graphql/resolvers/plantation-setting/update-plantation-setting.ts +19 -0
- package/server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts +138 -0
- package/server/graphql/resolvers/report/daily-production-reports.ts +59 -48
- package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
- package/server/graphql/resolvers/report/index.ts +9 -1
- package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +114 -0
- package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +110 -0
- package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +107 -0
- package/server/graphql/resolvers/report/monthly-production-reports.ts +54 -40
- package/server/graphql/resolvers/report/yearly-production-reports.ts +43 -38
- package/server/graphql/resolvers/truck/delete-trucks.ts +21 -0
- package/server/graphql/resolvers/truck/index.ts +12 -0
- package/server/graphql/resolvers/truck/truck-query.ts +52 -0
- package/server/graphql/resolvers/truck/update-multiple-truck.ts +55 -0
- package/server/graphql/types/daily-dispatch/daily-dispatch-patch.ts +4 -1
- package/server/graphql/types/daily-dispatch/daily-dispatch.ts +4 -1
- package/server/graphql/types/daily-dispatch/index.ts +6 -1
- package/server/graphql/types/daily-dispatch/new-daily-dispatch.ts +4 -1
- package/server/graphql/types/daily-harvest/daily-harvest-patch.ts +5 -2
- package/server/graphql/types/daily-harvest/daily-harvest.ts +3 -0
- package/server/graphql/types/daily-harvest/new-daily-harvest.ts +4 -1
- package/server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.ts +1 -0
- package/server/graphql/types/daily-harvest-detail/daily-harvest-detail.ts +1 -0
- package/server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.ts +1 -0
- package/server/graphql/types/daily-loading/daily-loading-patch.ts +0 -2
- package/server/graphql/types/daily-loading/daily-loading.ts +0 -2
- package/server/graphql/types/daily-loading/new-daily-loading.ts +0 -2
- package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +6 -3
- package/server/graphql/types/daily-loading-detail/daily-loading-detail.ts +3 -0
- package/server/graphql/types/daily-loading-detail/new-daily-loading-detail.ts +6 -3
- package/server/graphql/types/dashboard/bunches-count.ts +9 -0
- package/server/graphql/types/dashboard/index.ts +17 -0
- package/server/graphql/types/dashboard/productions-overview.ts +9 -0
- package/server/graphql/types/dashboard/tonnage-bunches-inventories.ts +8 -0
- package/server/graphql/types/dashboard/tonnage-production.ts +11 -0
- package/server/graphql/types/dashboard/yield-production.ts +11 -0
- package/server/graphql/types/index.ts +10 -6
- package/server/graphql/types/organization-staff/organization-staff-patch.ts +2 -0
- package/server/graphql/types/organization-staff/organization-staff.ts +3 -0
- package/server/graphql/types/plantation-setting/index.ts +21 -0
- package/server/graphql/types/plantation-setting/new-plantation-setting.ts +10 -0
- package/server/graphql/types/plantation-setting/plantation-setting-list.ts +8 -0
- package/server/graphql/types/plantation-setting/plantation-setting-patch.ts +12 -0
- package/server/graphql/types/plantation-setting/plantation-setting.ts +16 -0
- package/server/graphql/types/report/daily-ffb-dispatch-production-report-list.ts +8 -0
- package/server/graphql/types/report/daily-ffb-dispatch-production-report.ts +9 -0
- package/server/graphql/types/report/index.ts +33 -0
- package/server/graphql/types/report/monthly-block-dispatch-report-list.ts +7 -0
- package/server/graphql/types/report/monthly-block-dispatch-report.ts +13 -0
- package/server/graphql/types/report/monthly-dispatch-summary-report-list.ts +7 -0
- package/server/graphql/types/report/monthly-dispatch-summary-report.ts +19 -0
- package/server/graphql/types/report/monthly-ffb-sale-report-list.ts +7 -0
- package/server/graphql/types/report/monthly-ffb-sale-report.ts +18 -0
- package/server/graphql/types/truck/index.ts +18 -0
- package/server/graphql/types/truck/new-truck.ts +8 -0
- package/server/graphql/types/truck/truck-list.ts +8 -0
- package/server/graphql/types/truck/truck-patch.ts +11 -0
- package/server/graphql/types/truck/truck.ts +16 -0
- package/server/utils/core-values.ts +2 -2
- package/server/utils/transaction-util.ts +2 -1
- package/things-factory.config.js +27 -1
- package/translations/en.json +79 -16
- package/translations/ko.json +78 -48
- package/translations/ms.json +78 -48
- package/translations/zh.json +78 -48
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updatePlantationInventory = exports.
|
|
3
|
+
exports.updatePlantationInventory = exports.addDailyLoadingDetail = exports.generateDailyLoading = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
5
|
const constants_1 = require("../../../constants");
|
|
6
6
|
const entities_1 = require("../../../entities");
|
|
@@ -9,22 +9,16 @@ exports.generateDailyLoading = {
|
|
|
9
9
|
async generateDailyLoading(_, { dailyLoading }, context) {
|
|
10
10
|
const { domain, user, tx } = context.state;
|
|
11
11
|
let dailyLoadingDetails = dailyLoading.dailyLoadingDetails;
|
|
12
|
-
let dailyLoadingRamps = dailyLoading.dailyLoadingRamps;
|
|
13
|
-
const block = await tx.getRepository(entities_1.Block).findOne({
|
|
14
|
-
where: { name: dailyLoading.block }
|
|
15
|
-
});
|
|
16
|
-
// get sum of bunch loaded from all trip
|
|
17
|
-
const totalBunch = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
18
|
-
return prev + cur.totalBunchLoaded;
|
|
19
|
-
}, 0);
|
|
20
12
|
const totalWeight = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
21
13
|
return prev + cur.totalBunchWeight;
|
|
22
14
|
}, 0);
|
|
15
|
+
const totalBunch = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
16
|
+
return prev + cur.totalBunchLoaded;
|
|
17
|
+
}, 0);
|
|
23
18
|
// 1. Create daily loading
|
|
24
19
|
let newDailyLoading = new entities_1.DailyLoading();
|
|
25
20
|
newDailyLoading.name = utils_1.NoGenerator.dailyLoading();
|
|
26
21
|
newDailyLoading.domain = domain;
|
|
27
|
-
newDailyLoading.block = block;
|
|
28
22
|
newDailyLoading.loadingDate = dailyLoading.loadingDate;
|
|
29
23
|
newDailyLoading.totalBunch = totalBunch;
|
|
30
24
|
newDailyLoading.totalWeight = totalWeight;
|
|
@@ -35,75 +29,47 @@ exports.generateDailyLoading = {
|
|
|
35
29
|
dailyLoadingDetails = await addDailyLoadingDetail(domain, newDailyLoading, dailyLoadingDetails.map((record) => {
|
|
36
30
|
return Object.assign({}, record);
|
|
37
31
|
}), user, tx);
|
|
38
|
-
// 2. Create daily loading ramp
|
|
39
|
-
dailyLoadingRamps = await addDailyLoadingRamps(domain, newDailyLoading, dailyLoadingRamps.map((record) => {
|
|
40
|
-
return Object.assign({}, record);
|
|
41
|
-
}), user, tx);
|
|
42
|
-
// 3. Deduct bunches inventory in field and add ramp tonnage
|
|
43
|
-
await updatePlantationInventory(domain, newDailyLoading, dailyLoadingRamps, block, user, tx);
|
|
44
32
|
return newDailyLoading;
|
|
45
33
|
}
|
|
46
34
|
};
|
|
47
35
|
async function addDailyLoadingDetail(domain, newDailyLoading, dailyLoadingDetails, user, tx) {
|
|
48
|
-
const
|
|
36
|
+
const truckRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Truck)) || (0, typeorm_1.getRepository)(entities_1.Truck);
|
|
37
|
+
const blockRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Block)) || (0, typeorm_1.getRepository)(entities_1.Block);
|
|
38
|
+
const rampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Ramp)) || (0, typeorm_1.getRepository)(entities_1.Ramp);
|
|
49
39
|
const dailyLoadingDetailRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.DailyLoadingDetail)) || (0, typeorm_1.getRepository)(entities_1.DailyLoadingDetail);
|
|
50
40
|
dailyLoadingDetails = await Promise.all(dailyLoadingDetails.map(async (record) => {
|
|
51
|
-
return Object.assign(Object.assign({}, record), { domain, name: utils_1.NoGenerator.dailyLoadingDetail(),
|
|
41
|
+
return Object.assign(Object.assign({}, record), { domain, name: utils_1.NoGenerator.dailyLoadingDetail(), truck: await truckRepo.findOne({ id: record.truck.id }), block: await blockRepo.findOne({ id: record.block.id }), ramp: await rampRepo.findOne({ id: record.ramp.id }), dailyLoading: newDailyLoading, creator: user });
|
|
52
42
|
}));
|
|
53
|
-
|
|
43
|
+
dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails);
|
|
44
|
+
await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx);
|
|
45
|
+
return dailyLoadingDetails;
|
|
54
46
|
}
|
|
55
47
|
exports.addDailyLoadingDetail = addDailyLoadingDetail;
|
|
56
|
-
async function
|
|
57
|
-
const rampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Ramp)) || (0, typeorm_1.getRepository)(entities_1.Ramp);
|
|
58
|
-
const dailyLoadingRampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.DailyLoadingRamp)) || (0, typeorm_1.getRepository)(entities_1.DailyLoadingRamp);
|
|
59
|
-
dailyLoadingRamps = await Promise.all(dailyLoadingRamps.map(async (record) => {
|
|
60
|
-
return Object.assign(Object.assign({}, record), { domain, name: utils_1.NoGenerator.dailyLoadingRamp(), ramp: await rampRepo.findOne({ id: record.ramp.id }), dailyLoading: newDailyLoading, creator: user, updater: user });
|
|
61
|
-
}));
|
|
62
|
-
return await dailyLoadingRampRepo.save(dailyLoadingRamps);
|
|
63
|
-
}
|
|
64
|
-
exports.addDailyLoadingRamps = addDailyLoadingRamps;
|
|
65
|
-
async function updatePlantationInventory(domain, newDailyLoading, dailyLoadingRamps, block, user, tx) {
|
|
48
|
+
async function updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx) {
|
|
66
49
|
const plantationInvRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.PlantationInventory)) || (0, typeorm_1.getRepository)(entities_1.PlantationInventory);
|
|
67
|
-
|
|
68
|
-
let existingBunchesInventory = await plantationInvRepo.findOne({
|
|
69
|
-
where: { domain, block, type: constants_1.INVENTORY_TYPE.FIELD_BUNCHES },
|
|
70
|
-
relations: ['domain', 'block']
|
|
71
|
-
});
|
|
72
|
-
const currentFieldBunches = existingBunchesInventory.totalBunches;
|
|
73
|
-
const loadedFieldBunches = newDailyLoading.totalBunch;
|
|
74
|
-
// deduct field bunches
|
|
75
|
-
if (loadedFieldBunches > currentFieldBunches)
|
|
76
|
-
throw new Error('Insufficient Bunches in Field to be Loaded');
|
|
77
|
-
existingBunchesInventory.totalBunches = currentFieldBunches - loadedFieldBunches;
|
|
78
|
-
existingBunchesInventory.updater = user;
|
|
79
|
-
existingBunchesInventory = await plantationInvRepo.save(existingBunchesInventory);
|
|
80
|
-
await (0, utils_1.generateTransactionHistory)(existingBunchesInventory, newDailyLoading.id, newDailyLoading.name, constants_1.TRANSACTION_TYPE.BUNCHES_ADJUSTMENT, newDailyLoading.loadingDate, -loadedFieldBunches, 0, user, tx);
|
|
81
|
-
await Promise.all(dailyLoadingRamps.map(async (record) => {
|
|
82
|
-
let ramp = await rampRepo.findOne({
|
|
83
|
-
where: { domain, id: record.ramp.id }
|
|
84
|
-
});
|
|
50
|
+
await Promise.all(dailyLoadingDetails.map(async (dailyLoadingDetail) => {
|
|
85
51
|
let existingRampTonnage = await plantationInvRepo.findOne({
|
|
86
|
-
where: { domain, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp },
|
|
52
|
+
where: { domain, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },
|
|
87
53
|
relations: ['domain', 'block', 'ramp']
|
|
88
54
|
});
|
|
89
55
|
if (existingRampTonnage) {
|
|
90
|
-
existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage +
|
|
56
|
+
existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight;
|
|
91
57
|
existingRampTonnage.updater = user;
|
|
92
58
|
await plantationInvRepo.save(existingRampTonnage);
|
|
93
|
-
await (0, utils_1.generateTransactionHistory)(existingRampTonnage, newDailyLoading.id, newDailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING, newDailyLoading.loadingDate, 0,
|
|
59
|
+
await (0, utils_1.generateTransactionHistory)(existingRampTonnage, newDailyLoading.id, newDailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING, newDailyLoading.loadingDate, 0, dailyLoadingDetail.totalBunchWeight, user, tx);
|
|
94
60
|
}
|
|
95
61
|
else {
|
|
96
62
|
let plantationInventory = new entities_1.PlantationInventory();
|
|
97
63
|
plantationInventory.domain = domain;
|
|
98
64
|
plantationInventory.name = utils_1.NoGenerator.rampTonnageName();
|
|
99
|
-
plantationInventory.block = block;
|
|
65
|
+
plantationInventory.block = dailyLoadingDetail.block;
|
|
100
66
|
plantationInventory.type = constants_1.INVENTORY_TYPE.RAMP_TONNAGE;
|
|
101
|
-
plantationInventory.totalTonnage =
|
|
67
|
+
plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight;
|
|
102
68
|
plantationInventory.status = constants_1.INVENTORY_STATUS.STORED;
|
|
103
|
-
plantationInventory.ramp = ramp;
|
|
69
|
+
plantationInventory.ramp = dailyLoadingDetail.ramp;
|
|
104
70
|
plantationInventory.creator = user;
|
|
105
71
|
plantationInventory = await plantationInvRepo.save(plantationInventory);
|
|
106
|
-
await (0, utils_1.generateTransactionHistory)(plantationInventory, newDailyLoading.id, newDailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING, newDailyLoading.loadingDate, 0,
|
|
72
|
+
await (0, utils_1.generateTransactionHistory)(plantationInventory, newDailyLoading.id, newDailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING, newDailyLoading.loadingDate, 0, dailyLoadingDetail.totalBunchWeight, user, tx);
|
|
107
73
|
}
|
|
108
74
|
}));
|
|
109
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updatePlantationInventory = exports.
|
|
3
|
+
exports.updatePlantationInventory = exports.updateDailyLoadingDetail = exports.updateDailyLoading = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
5
|
const constants_1 = require("../../../constants");
|
|
6
6
|
const entities_1 = require("../../../entities");
|
|
@@ -12,17 +12,12 @@ exports.updateDailyLoading = {
|
|
|
12
12
|
let dailyLoading = await dailyLoadingRepo.findOne({
|
|
13
13
|
where: { name },
|
|
14
14
|
relations: [
|
|
15
|
-
'block',
|
|
16
15
|
'dailyLoadingDetails',
|
|
17
|
-
'dailyLoadingDetails.
|
|
18
|
-
'
|
|
19
|
-
'
|
|
16
|
+
'dailyLoadingDetails.truck',
|
|
17
|
+
'dailyLoadingDetails.ramp',
|
|
18
|
+
'dailyLoadingDetails.block'
|
|
20
19
|
]
|
|
21
20
|
});
|
|
22
|
-
const block = await tx.getRepository(entities_1.Block).findOne({
|
|
23
|
-
where: { name: dailyLoadingPatch.block }
|
|
24
|
-
});
|
|
25
|
-
const { totalBunch: prevLoadedBunch, totalWeight: prevLoadedTonnage } = dailyLoading;
|
|
26
21
|
// get sum of bunch loaded from all trip
|
|
27
22
|
var totalBunch = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {
|
|
28
23
|
return prev + cur.totalBunchLoaded;
|
|
@@ -30,7 +25,6 @@ exports.updateDailyLoading = {
|
|
|
30
25
|
var totalWeight = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {
|
|
31
26
|
return prev + cur.totalBunchWeight;
|
|
32
27
|
}, 0);
|
|
33
|
-
dailyLoading.block = block;
|
|
34
28
|
dailyLoading.totalBunch = totalBunch;
|
|
35
29
|
dailyLoading.totalWeight = totalWeight;
|
|
36
30
|
dailyLoading.loadingDate = dailyLoadingPatch.loadingDate;
|
|
@@ -38,13 +32,13 @@ exports.updateDailyLoading = {
|
|
|
38
32
|
dailyLoading = await dailyLoadingRepo.save(dailyLoading);
|
|
39
33
|
// 2. Create daily loading detail
|
|
40
34
|
await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx);
|
|
41
|
-
await updateDailyLoadingRamp(domain, dailyLoading, dailyLoadingPatch.dailyLoadingRamps, user, tx);
|
|
42
|
-
await updatePlantationInventory(domain, dailyLoading, prevLoadedBunch, prevLoadedTonnage, block, user, tx);
|
|
43
35
|
return dailyLoading;
|
|
44
36
|
}
|
|
45
37
|
};
|
|
46
38
|
async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetailPatches, user, tx) {
|
|
47
|
-
const
|
|
39
|
+
const truckRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Truck)) || (0, typeorm_1.getRepository)(entities_1.Truck);
|
|
40
|
+
const blockRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Block)) || (0, typeorm_1.getRepository)(entities_1.Block);
|
|
41
|
+
const rampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Ramp)) || (0, typeorm_1.getRepository)(entities_1.Ramp);
|
|
48
42
|
const dailyLoadingDetailRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.DailyLoadingDetail)) || (0, typeorm_1.getRepository)(entities_1.DailyLoadingDetail);
|
|
49
43
|
let updatedDailyLoadingDetails = [];
|
|
50
44
|
const dailyLoadingDetails = dailyLoading.dailyLoadingDetails;
|
|
@@ -53,115 +47,46 @@ async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetail
|
|
|
53
47
|
// new row added in client side
|
|
54
48
|
const newDailyLoadingDetail = dailyLoadingDetailPatches.filter(detail => detail.name === null);
|
|
55
49
|
if ((existingDailyLoadingDetails === null || existingDailyLoadingDetails === void 0 ? void 0 : existingDailyLoadingDetails.length) > 0) {
|
|
56
|
-
updatedDailyLoadingDetails = await Promise.all(dailyLoadingDetails.map(async (
|
|
57
|
-
const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name ===
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
return Object.assign(Object.assign({},
|
|
50
|
+
updatedDailyLoadingDetails = await Promise.all(dailyLoadingDetails.map(async (existingRecord) => {
|
|
51
|
+
const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name === existingRecord.name);
|
|
52
|
+
if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {
|
|
53
|
+
await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx);
|
|
54
|
+
}
|
|
55
|
+
return Object.assign(Object.assign({}, existingRecord), { dailyLoading, truck: await truckRepo.findOne({ id: existingRecord.truck.id }), block: await blockRepo.findOne({ id: existingRecord.block.id }), ramp: await rampRepo.findOne({ id: existingRecord.ramp.id }), totalBunchLoaded: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.totalBunchLoaded) || 0, totalBunchWeight: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.totalBunchWeight) || 0, remark: (foundDailyLoadingDetailPatch === null || foundDailyLoadingDetailPatch === void 0 ? void 0 : foundDailyLoadingDetailPatch.remark) || null, updater: user });
|
|
62
56
|
}));
|
|
63
|
-
await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails);
|
|
57
|
+
updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails);
|
|
64
58
|
}
|
|
65
59
|
if ((newDailyLoadingDetail === null || newDailyLoadingDetail === void 0 ? void 0 : newDailyLoadingDetail.length) > 0) {
|
|
66
60
|
await Promise.all(newDailyLoadingDetail.map(async (dailyLoadingDetail) => {
|
|
67
61
|
let newDailyLoadingDetail = new entities_1.DailyLoadingDetail();
|
|
68
62
|
newDailyLoadingDetail.domain = domain;
|
|
69
63
|
newDailyLoadingDetail.name = utils_1.NoGenerator.dailyLoadingDetail();
|
|
70
|
-
newDailyLoadingDetail.
|
|
71
|
-
|
|
72
|
-
});
|
|
73
|
-
newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail.totalBunchLoaded;
|
|
74
|
-
newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail.totalBunchWeight;
|
|
75
|
-
newDailyLoadingDetail.remark = dailyLoadingDetail.remark;
|
|
64
|
+
newDailyLoadingDetail.truck = await truckRepo.findOne({ id: dailyLoadingDetail.truck.id });
|
|
65
|
+
newDailyLoadingDetail.block = await blockRepo.findOne({ id: dailyLoadingDetail.block.id });
|
|
66
|
+
newDailyLoadingDetail.ramp = await rampRepo.findOne({ id: dailyLoadingDetail.ramp.id });
|
|
67
|
+
newDailyLoadingDetail.totalBunchLoaded = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.totalBunchLoaded) || 0;
|
|
68
|
+
newDailyLoadingDetail.totalBunchWeight = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.totalBunchWeight) || 0;
|
|
69
|
+
newDailyLoadingDetail.remark = (dailyLoadingDetail === null || dailyLoadingDetail === void 0 ? void 0 : dailyLoadingDetail.remark) || null;
|
|
76
70
|
newDailyLoadingDetail.creator = user;
|
|
77
|
-
newDailyLoadingDetail.updater = user;
|
|
78
71
|
newDailyLoadingDetail.dailyLoading = dailyLoading;
|
|
79
72
|
await dailyLoadingDetailRepo.save(newDailyLoadingDetail);
|
|
80
73
|
}));
|
|
81
74
|
}
|
|
82
75
|
}
|
|
83
76
|
exports.updateDailyLoadingDetail = updateDailyLoadingDetail;
|
|
84
|
-
async function
|
|
85
|
-
const rampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.Ramp)) || (0, typeorm_1.getRepository)(entities_1.Ramp);
|
|
86
|
-
const dailyLoadingRampRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.DailyLoadingRamp)) || (0, typeorm_1.getRepository)(entities_1.DailyLoadingRamp);
|
|
87
|
-
let updatedDailyLoadingRamps = [];
|
|
88
|
-
const dailyLoadingRamps = dailyLoading.dailyLoadingRamps;
|
|
89
|
-
const existingDailyLoadingRamps = dailyLoadingRampPatches.filter(detail => detail.name !== null);
|
|
90
|
-
// new row added in client side
|
|
91
|
-
const newDailyLoadingRamps = dailyLoadingRampPatches.filter(detail => detail.name === null);
|
|
92
|
-
if ((existingDailyLoadingRamps === null || existingDailyLoadingRamps === void 0 ? void 0 : existingDailyLoadingRamps.length) > 0) {
|
|
93
|
-
// TODO: delete function for removing data
|
|
94
|
-
updatedDailyLoadingRamps = await Promise.all(dailyLoadingRamps.map(async (dailyLoadingRamp) => {
|
|
95
|
-
const foundDailyLoadingRampPatch = dailyLoadingRampPatches.find(detail => detail.name === dailyLoadingRamp.name);
|
|
96
|
-
const foundRamp = await rampRepo.findOne({
|
|
97
|
-
where: { id: foundDailyLoadingRampPatch.ramp.id }
|
|
98
|
-
});
|
|
99
|
-
return Object.assign(Object.assign({}, dailyLoadingRamp), { dailyLoading, ramp: foundRamp, totalBunchWeight: foundDailyLoadingRampPatch.totalBunchWeight, updater: user });
|
|
100
|
-
}));
|
|
101
|
-
await dailyLoadingRampRepo.save(updatedDailyLoadingRamps);
|
|
102
|
-
}
|
|
103
|
-
if ((newDailyLoadingRamps === null || newDailyLoadingRamps === void 0 ? void 0 : newDailyLoadingRamps.length) > 0) {
|
|
104
|
-
await Promise.all(newDailyLoadingRamps.map(async (dailyLoadingRamp) => {
|
|
105
|
-
let newDailyLoadingRamp = new entities_1.DailyLoadingRamp();
|
|
106
|
-
newDailyLoadingRamp.domain = domain;
|
|
107
|
-
newDailyLoadingRamp.name = utils_1.NoGenerator.dailyLoadingDetail();
|
|
108
|
-
newDailyLoadingRamp.ramp = await rampRepo.findOne({ id: dailyLoadingRamp.ramp.id });
|
|
109
|
-
newDailyLoadingRamp.totalBunchWeight = dailyLoadingRamp.totalBunchWeight;
|
|
110
|
-
newDailyLoadingRamp.creator = user;
|
|
111
|
-
newDailyLoadingRamp.updater = user;
|
|
112
|
-
newDailyLoadingRamp.dailyLoading = dailyLoading;
|
|
113
|
-
await dailyLoadingRampRepo.save(newDailyLoadingRamp);
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.updateDailyLoadingRamp = updateDailyLoadingRamp;
|
|
118
|
-
async function updatePlantationInventory(domain, dailyLoading, prevLoadedBunch, prevLoadedTonnage, block, user, tx) {
|
|
77
|
+
async function updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx) {
|
|
119
78
|
const plantationInvRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.PlantationInventory)) || (0, typeorm_1.getRepository)(entities_1.PlantationInventory);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
relations: ['domain', 'block']
|
|
79
|
+
let existingRampTonnage = await plantationInvRepo.findOne({
|
|
80
|
+
where: { domain, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp: existingRecord.ramp },
|
|
81
|
+
relations: ['domain', 'block', 'ramp']
|
|
124
82
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
await (0, utils_1.generateTransactionHistory)(existingBunchesInventory, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.BUNCHES_ADJUSTMENT, dailyLoading.loadingDate, prevLoadedBunch, 0, user, tx);
|
|
133
|
-
await (0, utils_1.generateTransactionHistory)(existingBunchesInventory, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.BUNCHES_ADJUSTMENT, dailyLoading.loadingDate, -loadedFieldBunches, 0, user, tx);
|
|
134
|
-
await Promise.all(dailyLoading.dailyLoadingRamps.map(async (record) => {
|
|
135
|
-
const ramp = await rampRepo.findOne({
|
|
136
|
-
where: { domain, id: record.ramp.id }
|
|
137
|
-
});
|
|
138
|
-
let existingRampTonnage = await plantationInvRepo.findOne({
|
|
139
|
-
where: { domain, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp },
|
|
140
|
-
relations: ['domain', 'block', 'ramp']
|
|
141
|
-
});
|
|
142
|
-
const originRampTonnage = existingRampTonnage.totalTonnage - prevLoadedTonnage;
|
|
143
|
-
const loadedRampTonnage = dailyLoading.totalWeight;
|
|
144
|
-
if (existingRampTonnage) {
|
|
145
|
-
existingRampTonnage.totalTonnage = originRampTonnage - loadedRampTonnage;
|
|
146
|
-
existingRampTonnage.updater = user;
|
|
147
|
-
await plantationInvRepo.save(existingRampTonnage);
|
|
148
|
-
await (0, utils_1.generateTransactionHistory)(existingRampTonnage, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.TONNAGE_ADJUSTMENT, dailyLoading.loadingDate, 0, -prevLoadedTonnage, user, tx);
|
|
149
|
-
await (0, utils_1.generateTransactionHistory)(existingRampTonnage, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.TONNAGE_ADJUSTMENT, dailyLoading.loadingDate, 0, loadedRampTonnage, user, tx);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
let plantationInventory = new entities_1.PlantationInventory();
|
|
153
|
-
plantationInventory.domain = domain;
|
|
154
|
-
plantationInventory.name = utils_1.NoGenerator.rampTonnageName();
|
|
155
|
-
plantationInventory.block = block;
|
|
156
|
-
plantationInventory.type = constants_1.INVENTORY_TYPE.RAMP_TONNAGE;
|
|
157
|
-
plantationInventory.totalTonnage = record.totalBunchWeight;
|
|
158
|
-
plantationInventory.status = constants_1.INVENTORY_STATUS.STORED;
|
|
159
|
-
plantationInventory.ramp = ramp;
|
|
160
|
-
plantationInventory.creator = user;
|
|
161
|
-
plantationInventory = await plantationInvRepo.save(plantationInventory);
|
|
162
|
-
await (0, utils_1.generateTransactionHistory)(plantationInventory, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING, dailyLoading.loadingDate, 0, record.totalBunchWeight, user, tx);
|
|
163
|
-
}
|
|
164
|
-
}));
|
|
83
|
+
if (existingRampTonnage) {
|
|
84
|
+
const tonnageChanges = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight;
|
|
85
|
+
existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges;
|
|
86
|
+
existingRampTonnage.updater = user;
|
|
87
|
+
await plantationInvRepo.save(existingRampTonnage);
|
|
88
|
+
await (0, utils_1.generateTransactionHistory)(existingRampTonnage, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING_ADJUSTMENT, dailyLoading.loadingDate, 0, tonnageChanges, user, tx);
|
|
89
|
+
}
|
|
165
90
|
}
|
|
166
91
|
exports.updatePlantationInventory = updatePlantationInventory;
|
|
167
92
|
//# sourceMappingURL=update-daily-loading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDailyProductionData = exports.Query = void 0;
|
|
4
|
+
// import { buildQuery, ListParam } from '@things-factory/shell'
|
|
5
|
+
exports.Query = {
|
|
6
|
+
/**
|
|
7
|
+
* @param blockId: id of the block
|
|
8
|
+
* @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01
|
|
9
|
+
* @returns tonnage data with its sorted date
|
|
10
|
+
*/
|
|
11
|
+
async monthlyTonnageProductions(_, { blockId, yearAndMonth }, context) {
|
|
12
|
+
try {
|
|
13
|
+
const { tx } = context.state;
|
|
14
|
+
const year = parseInt(yearAndMonth.substring(0, 4));
|
|
15
|
+
const month = parseInt(yearAndMonth.substring(4));
|
|
16
|
+
let data = await getDailyProductionData(blockId, year, month, tx);
|
|
17
|
+
let result = [];
|
|
18
|
+
result = data.map(itm => {
|
|
19
|
+
return Object.assign(Object.assign({}, itm), { blockId, tonnage: itm.todayWeightCollected, year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
|
|
20
|
+
});
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
catch (ex) {
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
async monthlyYields(_, { blockId, yearAndMonth }, context) {
|
|
27
|
+
try {
|
|
28
|
+
const { tx } = context.state;
|
|
29
|
+
const year = parseInt(yearAndMonth.substring(0, 4));
|
|
30
|
+
const month = parseInt(yearAndMonth.substring(4));
|
|
31
|
+
let data = await getDailyProductionData(blockId, year, month, tx);
|
|
32
|
+
let result = [];
|
|
33
|
+
result = data.map(itm => {
|
|
34
|
+
return Object.assign(Object.assign({}, itm), { blockId, yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4), year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
|
|
35
|
+
});
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
catch (ex) {
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
async weeklyBunchesCount(_, { targetDate }, context) {
|
|
42
|
+
if (!targetDate || targetDate == '')
|
|
43
|
+
targetDate = new Date();
|
|
44
|
+
let bunchesCount = [];
|
|
45
|
+
for (let i = 0; i < 7; i++) {
|
|
46
|
+
bunchesCount.push({
|
|
47
|
+
date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),
|
|
48
|
+
harvestedCount: 0,
|
|
49
|
+
collectedCount: 0
|
|
50
|
+
// harvestedCount: Math.floor(Math.random() * 1000) + 500,
|
|
51
|
+
// collectedCount: Math.floor(Math.random() * 500) + 50
|
|
52
|
+
});
|
|
53
|
+
targetDate.setDate(targetDate.getDate() - 1);
|
|
54
|
+
}
|
|
55
|
+
return bunchesCount.reverse();
|
|
56
|
+
},
|
|
57
|
+
async tonnageAndBunchesInventories(_, { something }, context) {
|
|
58
|
+
return {
|
|
59
|
+
bunches: 0,
|
|
60
|
+
tonnage: 0
|
|
61
|
+
// bunches: Math.floor(Math.random() * 10000) + 500,
|
|
62
|
+
// tonnage: Math.floor(Math.random() * 10000) + 500
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
async productionsOverview(_, { something }, context) {
|
|
66
|
+
return {
|
|
67
|
+
averageBunchWeight: 0,
|
|
68
|
+
bunchesCount: 0,
|
|
69
|
+
tonnageWeighed: 0,
|
|
70
|
+
// averageBunchWeight: Math.floor(Math.random() * 150) + 70,
|
|
71
|
+
// bunchesCount: Math.floor(Math.random() * 10000) + 500,
|
|
72
|
+
// tonnageWeighed: Math.floor(Math.random() * 10000) + 500
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
async function getDailyProductionData(blockId, year, month, tx) {
|
|
77
|
+
await tx.query(`
|
|
78
|
+
CREATE TEMP TABLE temp_blocks on commit drop AS (
|
|
79
|
+
WITH RECURSIVE b AS (
|
|
80
|
+
SELECT b.id AS block_id, * FROM blocks b
|
|
81
|
+
WHERE b.deleted_at IS null
|
|
82
|
+
UNION ALL
|
|
83
|
+
SELECT b.id AS block_id, cb.* FROM blocks cb
|
|
84
|
+
INNER JOIN b ON b.id = cb.parent_block_id
|
|
85
|
+
WHERE cb.deleted_at IS null
|
|
86
|
+
)
|
|
87
|
+
SELECT block_id, id, name FROM b
|
|
88
|
+
${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}
|
|
89
|
+
GROUP BY block_id, id, name
|
|
90
|
+
ORDER BY block_id, id, name
|
|
91
|
+
);
|
|
92
|
+
`);
|
|
93
|
+
let fromDate = new Date(year, month - 1, 1);
|
|
94
|
+
let toDate = new Date(year, month, 1);
|
|
95
|
+
toDate.setDate(toDate.getDate() - 1);
|
|
96
|
+
let fromDateString = [
|
|
97
|
+
fromDate.getFullYear().toString(),
|
|
98
|
+
String(fromDate.getMonth() + 1).padStart(2, '0'),
|
|
99
|
+
'01'
|
|
100
|
+
].join('-');
|
|
101
|
+
let toDateString = [
|
|
102
|
+
toDate.getFullYear().toString(),
|
|
103
|
+
String(toDate.getMonth() + 1).padStart(2, '0'),
|
|
104
|
+
String(toDate.getDate()).padStart(2, '0')
|
|
105
|
+
].join('-');
|
|
106
|
+
await tx.query(`
|
|
107
|
+
CREATE TEMP TABLE temp_records on commit drop AS (
|
|
108
|
+
select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches,
|
|
109
|
+
round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,
|
|
110
|
+
sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,
|
|
111
|
+
sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,
|
|
112
|
+
round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,
|
|
113
|
+
round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,
|
|
114
|
+
transaction_date
|
|
115
|
+
from record_transactions t2
|
|
116
|
+
inner join temp_blocks blk on blk.id = t2.block_id
|
|
117
|
+
where transaction_date <= $1
|
|
118
|
+
group by blk.block_id, transaction_date
|
|
119
|
+
)
|
|
120
|
+
`, [toDateString]);
|
|
121
|
+
await tx.query(`
|
|
122
|
+
create temp table temp_daily_production_data on commit drop as (
|
|
123
|
+
select *,
|
|
124
|
+
prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,
|
|
125
|
+
prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,
|
|
126
|
+
prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (
|
|
127
|
+
select md.dateDay as date_day,
|
|
128
|
+
coalesce(
|
|
129
|
+
(
|
|
130
|
+
select sum(today_field_bunches) from temp_records t2
|
|
131
|
+
where transaction_date::timestamp < md.dateDay
|
|
132
|
+
)
|
|
133
|
+
, 0) as prev_bunch_bal_in_field,
|
|
134
|
+
coalesce(
|
|
135
|
+
(
|
|
136
|
+
select sum(today_ramp_weight) from temp_records t2
|
|
137
|
+
where transaction_date::timestamp < md.dateDay
|
|
138
|
+
)
|
|
139
|
+
, 0) as prev_weight_bal_in_ramp,
|
|
140
|
+
coalesce(today_bunch_harvest, 0) as today_bunch_harvest,
|
|
141
|
+
coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,
|
|
142
|
+
coalesce(today_bunch_collected, 0) as today_bunch_collected,
|
|
143
|
+
coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,
|
|
144
|
+
coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected,
|
|
145
|
+
coalesce(sum(today_ramp_weight_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_ramp_weight_collected,
|
|
146
|
+
coalesce(today_weight_dispatch, 0) as today_weight_dispatch,
|
|
147
|
+
coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,
|
|
148
|
+
coalesce(tot.today_out_turn, 0) as today_out_turn,
|
|
149
|
+
coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,
|
|
150
|
+
${blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`} as block,
|
|
151
|
+
coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,
|
|
152
|
+
coalesce(thr.today_hectare_cover, 0) as today_hectare_cover
|
|
153
|
+
from
|
|
154
|
+
(select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md
|
|
155
|
+
left join (
|
|
156
|
+
select * from temp_records trx
|
|
157
|
+
where transaction_date between $1 and $2
|
|
158
|
+
order by transaction_date
|
|
159
|
+
) as dt on dt.transaction_date::date = md.dateDay
|
|
160
|
+
LEFT JOIN (
|
|
161
|
+
select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date
|
|
162
|
+
from daily_harvests dh
|
|
163
|
+
inner join temp_blocks blk on blk.id = dh.block_id
|
|
164
|
+
where harvest_date between $1 and $2
|
|
165
|
+
group by blk.block_id, harvest_date
|
|
166
|
+
) as thr ON thr.harvest_date::date = md.dateDay
|
|
167
|
+
LEFT JOIN (
|
|
168
|
+
select count(*) AS today_out_turn, dh.harvest_date
|
|
169
|
+
from daily_harvest_details dhd
|
|
170
|
+
inner join daily_harvests dh on dh.id = dhd.daily_harvest_id
|
|
171
|
+
inner join temp_blocks blk on blk.id = dh.block_id
|
|
172
|
+
where dh.harvest_date between $1 and $2
|
|
173
|
+
GROUP BY blk.block_id, dh.harvest_date
|
|
174
|
+
) as tot ON tot.harvest_date::date = md.dateDay
|
|
175
|
+
) dt
|
|
176
|
+
)`, [fromDateString, toDateString]);
|
|
177
|
+
const result = await tx.query(`
|
|
178
|
+
select * from temp_daily_production_data dt
|
|
179
|
+
`);
|
|
180
|
+
return result.map(itm => {
|
|
181
|
+
return {
|
|
182
|
+
block: itm.block,
|
|
183
|
+
dateDay: itm.date_day,
|
|
184
|
+
diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),
|
|
185
|
+
prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),
|
|
186
|
+
prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),
|
|
187
|
+
toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),
|
|
188
|
+
toDateOutTurn: itm.to_date_out_turn,
|
|
189
|
+
toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),
|
|
190
|
+
todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),
|
|
191
|
+
todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),
|
|
192
|
+
todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),
|
|
193
|
+
todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),
|
|
194
|
+
todayHarvestingRound: itm.today_harvesting_round,
|
|
195
|
+
todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),
|
|
196
|
+
todayOutTurn: itm.today_out_turn,
|
|
197
|
+
todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),
|
|
198
|
+
todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),
|
|
199
|
+
todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4),
|
|
200
|
+
};
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
exports.getDailyProductionData = getDailyProductionData;
|
|
204
|
+
//# sourceMappingURL=dashboard-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/dashboard-query.ts"],"names":[],"mappings":"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"}
|