@things-factory/operato-pms 3.7.5 → 3.8.13
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 +20 -7
- 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 +140 -13
- 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/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 +393 -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 +393 -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/controllers/render-dispatchment.js +1 -1
- package/dist-server/controllers/render-dispatchment.js.map +1 -1
- package/dist-server/entities/daily-dispatch.js +19 -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 +3 -2
- 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 +17 -105
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +82 -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-production-reports.js +46 -33
- 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 +4 -1
- package/dist-server/graphql/resolvers/report/index.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +89 -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/index.js +20 -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/package.json +29 -29
- package/server/constants/index.ts +1 -0
- package/server/constants/organization.ts +5 -0
- package/server/controllers/render-dispatchment.ts +1 -1
- package/server/entities/daily-dispatch.ts +21 -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 +6 -2
- 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 +27 -213
- package/server/graphql/resolvers/dashboard/dashboard-query.ts +96 -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-production-reports.ts +55 -44
- package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
- package/server/graphql/resolvers/report/index.ts +7 -1
- package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +112 -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/index.ts +20 -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/things-factory.config.js +27 -1
- package/translations/en.json +78 -16
- package/translations/ko.json +77 -48
- package/translations/ms.json +74 -45
- package/translations/zh.json +77 -48
|
@@ -1,16 +1,10 @@
|
|
|
1
|
+
import { EntityManager, getRepository, Repository } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Domain } from '@things-factory/shell'
|
|
3
|
-
|
|
5
|
+
|
|
4
6
|
import { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'
|
|
5
|
-
import {
|
|
6
|
-
Block,
|
|
7
|
-
DailyLoading,
|
|
8
|
-
DailyLoadingDetail,
|
|
9
|
-
DailyLoadingRamp,
|
|
10
|
-
OrganizationStaff,
|
|
11
|
-
PlantationInventory,
|
|
12
|
-
Ramp
|
|
13
|
-
} from '../../../entities'
|
|
7
|
+
import { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'
|
|
14
8
|
import { generateTransactionHistory, NoGenerator } from '../../../utils'
|
|
15
9
|
|
|
16
10
|
export const generateDailyLoading = {
|
|
@@ -18,26 +12,19 @@ export const generateDailyLoading = {
|
|
|
18
12
|
const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
|
|
19
13
|
|
|
20
14
|
let dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails
|
|
21
|
-
let dailyLoadingRamps: DailyLoadingRamp[] = dailyLoading.dailyLoadingRamps
|
|
22
15
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
})
|
|
16
|
+
const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
17
|
+
return prev + cur.totalBunchWeight
|
|
18
|
+
}, 0)
|
|
26
19
|
|
|
27
|
-
// get sum of bunch loaded from all trip
|
|
28
20
|
const totalBunch: number = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
29
21
|
return prev + cur.totalBunchLoaded
|
|
30
22
|
}, 0)
|
|
31
23
|
|
|
32
|
-
const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {
|
|
33
|
-
return prev + cur.totalBunchWeight
|
|
34
|
-
}, 0)
|
|
35
|
-
|
|
36
24
|
// 1. Create daily loading
|
|
37
25
|
let newDailyLoading: DailyLoading = new DailyLoading()
|
|
38
26
|
newDailyLoading.name = NoGenerator.dailyLoading()
|
|
39
27
|
newDailyLoading.domain = domain
|
|
40
|
-
newDailyLoading.block = block
|
|
41
28
|
newDailyLoading.loadingDate = dailyLoading.loadingDate
|
|
42
29
|
newDailyLoading.totalBunch = totalBunch
|
|
43
30
|
newDailyLoading.totalWeight = totalWeight
|
|
@@ -57,20 +44,6 @@ export const generateDailyLoading = {
|
|
|
57
44
|
tx
|
|
58
45
|
)
|
|
59
46
|
|
|
60
|
-
// 2. Create daily loading ramp
|
|
61
|
-
dailyLoadingRamps = await addDailyLoadingRamps(
|
|
62
|
-
domain,
|
|
63
|
-
newDailyLoading,
|
|
64
|
-
dailyLoadingRamps.map((record: DailyLoadingRamp) => {
|
|
65
|
-
return { ...record }
|
|
66
|
-
}),
|
|
67
|
-
user,
|
|
68
|
-
tx
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
// 3. Deduct bunches inventory in field and add ramp tonnage
|
|
72
|
-
await updatePlantationInventory(domain, newDailyLoading, dailyLoadingRamps, block, user, tx)
|
|
73
|
-
|
|
74
47
|
return newDailyLoading
|
|
75
48
|
}
|
|
76
49
|
}
|
|
@@ -82,8 +55,10 @@ export async function addDailyLoadingDetail(
|
|
|
82
55
|
user: User,
|
|
83
56
|
tx?: EntityManager
|
|
84
57
|
): Promise<DailyLoadingDetail[]> {
|
|
85
|
-
const
|
|
86
|
-
|
|
58
|
+
const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)
|
|
59
|
+
const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)
|
|
60
|
+
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
61
|
+
|
|
87
62
|
const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =
|
|
88
63
|
tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)
|
|
89
64
|
|
|
@@ -93,97 +68,40 @@ export async function addDailyLoadingDetail(
|
|
|
93
68
|
...record,
|
|
94
69
|
domain,
|
|
95
70
|
name: NoGenerator.dailyLoadingDetail(),
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
creator: user,
|
|
99
|
-
updater: user
|
|
100
|
-
}
|
|
101
|
-
})
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
return await dailyLoadingDetailRepo.save(dailyLoadingDetails)
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export async function addDailyLoadingRamps(
|
|
108
|
-
domain: Domain,
|
|
109
|
-
newDailyLoading: DailyLoading,
|
|
110
|
-
dailyLoadingRamps: DailyLoadingRamp[],
|
|
111
|
-
user: User,
|
|
112
|
-
tx?: EntityManager
|
|
113
|
-
): Promise<DailyLoadingRamp[]> {
|
|
114
|
-
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
115
|
-
const dailyLoadingRampRepo: Repository<DailyLoadingRamp> =
|
|
116
|
-
tx?.getRepository(DailyLoadingRamp) || getRepository(DailyLoadingRamp)
|
|
117
|
-
|
|
118
|
-
dailyLoadingRamps = await Promise.all(
|
|
119
|
-
dailyLoadingRamps.map(async (record: DailyLoadingRamp) => {
|
|
120
|
-
return {
|
|
121
|
-
...record,
|
|
122
|
-
domain,
|
|
123
|
-
name: NoGenerator.dailyLoadingRamp(),
|
|
71
|
+
truck: await truckRepo.findOne({ id: record.truck.id }),
|
|
72
|
+
block: await blockRepo.findOne({ id: record.block.id }),
|
|
124
73
|
ramp: await rampRepo.findOne({ id: record.ramp.id }),
|
|
125
74
|
dailyLoading: newDailyLoading,
|
|
126
|
-
creator: user
|
|
127
|
-
updater: user
|
|
75
|
+
creator: user
|
|
128
76
|
}
|
|
129
77
|
})
|
|
130
78
|
)
|
|
131
79
|
|
|
132
|
-
|
|
80
|
+
dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails)
|
|
81
|
+
await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx)
|
|
82
|
+
|
|
83
|
+
return dailyLoadingDetails
|
|
133
84
|
}
|
|
134
85
|
|
|
135
86
|
export async function updatePlantationInventory(
|
|
136
87
|
domain: Domain,
|
|
137
88
|
newDailyLoading: DailyLoading,
|
|
138
|
-
|
|
139
|
-
block: Block,
|
|
89
|
+
dailyLoadingDetails: DailyLoadingDetail[],
|
|
140
90
|
user: User,
|
|
141
91
|
tx?: EntityManager
|
|
142
92
|
): Promise<void> {
|
|
143
93
|
const plantationInvRepo: Repository<PlantationInventory> =
|
|
144
94
|
tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)
|
|
145
95
|
|
|
146
|
-
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
147
|
-
|
|
148
|
-
let existingBunchesInventory: PlantationInventory = await plantationInvRepo.findOne({
|
|
149
|
-
where: { domain, block, type: INVENTORY_TYPE.FIELD_BUNCHES },
|
|
150
|
-
relations: ['domain', 'block']
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
const currentFieldBunches: number = existingBunchesInventory.totalBunches
|
|
154
|
-
const loadedFieldBunches: number = newDailyLoading.totalBunch
|
|
155
|
-
|
|
156
|
-
// deduct field bunches
|
|
157
|
-
if (loadedFieldBunches > currentFieldBunches) throw new Error('Insufficient Bunches in Field to be Loaded')
|
|
158
|
-
existingBunchesInventory.totalBunches = currentFieldBunches - loadedFieldBunches
|
|
159
|
-
existingBunchesInventory.updater = user
|
|
160
|
-
existingBunchesInventory = await plantationInvRepo.save(existingBunchesInventory)
|
|
161
|
-
|
|
162
|
-
await generateTransactionHistory(
|
|
163
|
-
existingBunchesInventory,
|
|
164
|
-
newDailyLoading.id,
|
|
165
|
-
newDailyLoading.name,
|
|
166
|
-
TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
|
|
167
|
-
newDailyLoading.loadingDate,
|
|
168
|
-
-loadedFieldBunches,
|
|
169
|
-
0,
|
|
170
|
-
user,
|
|
171
|
-
tx
|
|
172
|
-
)
|
|
173
|
-
|
|
174
96
|
await Promise.all(
|
|
175
|
-
|
|
176
|
-
let ramp: Ramp = await rampRepo.findOne({
|
|
177
|
-
where: { domain, id: record.ramp.id }
|
|
178
|
-
})
|
|
179
|
-
|
|
97
|
+
dailyLoadingDetails.map(async (dailyLoadingDetail: any) => {
|
|
180
98
|
let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({
|
|
181
|
-
where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp },
|
|
99
|
+
where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },
|
|
182
100
|
relations: ['domain', 'block', 'ramp']
|
|
183
101
|
})
|
|
184
102
|
|
|
185
103
|
if (existingRampTonnage) {
|
|
186
|
-
existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage +
|
|
104
|
+
existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight
|
|
187
105
|
existingRampTonnage.updater = user
|
|
188
106
|
await plantationInvRepo.save(existingRampTonnage)
|
|
189
107
|
|
|
@@ -194,7 +112,7 @@ export async function updatePlantationInventory(
|
|
|
194
112
|
TRANSACTION_TYPE.LOADING,
|
|
195
113
|
newDailyLoading.loadingDate,
|
|
196
114
|
0,
|
|
197
|
-
|
|
115
|
+
dailyLoadingDetail.totalBunchWeight,
|
|
198
116
|
user,
|
|
199
117
|
tx
|
|
200
118
|
)
|
|
@@ -202,11 +120,11 @@ export async function updatePlantationInventory(
|
|
|
202
120
|
let plantationInventory: PlantationInventory = new PlantationInventory()
|
|
203
121
|
plantationInventory.domain = domain
|
|
204
122
|
plantationInventory.name = NoGenerator.rampTonnageName()
|
|
205
|
-
plantationInventory.block = block
|
|
123
|
+
plantationInventory.block = dailyLoadingDetail.block
|
|
206
124
|
plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE
|
|
207
|
-
plantationInventory.totalTonnage =
|
|
125
|
+
plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight
|
|
208
126
|
plantationInventory.status = INVENTORY_STATUS.STORED
|
|
209
|
-
plantationInventory.ramp = ramp
|
|
127
|
+
plantationInventory.ramp = dailyLoadingDetail.ramp
|
|
210
128
|
plantationInventory.creator = user
|
|
211
129
|
plantationInventory = await plantationInvRepo.save(plantationInventory)
|
|
212
130
|
|
|
@@ -217,7 +135,7 @@ export async function updatePlantationInventory(
|
|
|
217
135
|
TRANSACTION_TYPE.LOADING,
|
|
218
136
|
newDailyLoading.loadingDate,
|
|
219
137
|
0,
|
|
220
|
-
|
|
138
|
+
dailyLoadingDetail.totalBunchWeight,
|
|
221
139
|
user,
|
|
222
140
|
tx
|
|
223
141
|
)
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
+
import { EntityManager, getRepository, Repository } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Domain } from '@things-factory/shell'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
Block,
|
|
7
|
-
DailyLoading,
|
|
8
|
-
DailyLoadingDetail,
|
|
9
|
-
DailyLoadingRamp,
|
|
10
|
-
Ramp,
|
|
11
|
-
OrganizationStaff,
|
|
12
|
-
PlantationInventory
|
|
13
|
-
} from '../../../entities'
|
|
14
|
-
import { NoGenerator, generateTransactionHistory } from '../../../utils'
|
|
5
|
+
|
|
6
|
+
import { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'
|
|
7
|
+
import { NoGenerator } from '../../../utils'
|
|
15
8
|
|
|
16
9
|
export const updateDailyLoading = {
|
|
17
10
|
async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: any) {
|
|
@@ -21,23 +14,13 @@ export const updateDailyLoading = {
|
|
|
21
14
|
let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({
|
|
22
15
|
where: { name },
|
|
23
16
|
relations: [
|
|
24
|
-
'block',
|
|
25
17
|
'dailyLoadingDetails',
|
|
26
|
-
'dailyLoadingDetails.
|
|
27
|
-
'
|
|
28
|
-
'
|
|
18
|
+
'dailyLoadingDetails.truck',
|
|
19
|
+
'dailyLoadingDetails.ramp',
|
|
20
|
+
'dailyLoadingDetails.block'
|
|
29
21
|
]
|
|
30
22
|
})
|
|
31
23
|
|
|
32
|
-
const block: Block = await tx.getRepository(Block).findOne({
|
|
33
|
-
where: { name: dailyLoadingPatch.block }
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
const {
|
|
37
|
-
totalBunch: prevLoadedBunch,
|
|
38
|
-
totalWeight: prevLoadedTonnage
|
|
39
|
-
}: { totalBunch: number; totalWeight: number } = dailyLoading
|
|
40
|
-
|
|
41
24
|
// get sum of bunch loaded from all trip
|
|
42
25
|
var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {
|
|
43
26
|
return prev + cur.totalBunchLoaded
|
|
@@ -47,7 +30,6 @@ export const updateDailyLoading = {
|
|
|
47
30
|
return prev + cur.totalBunchWeight
|
|
48
31
|
}, 0)
|
|
49
32
|
|
|
50
|
-
dailyLoading.block = block
|
|
51
33
|
dailyLoading.totalBunch = totalBunch
|
|
52
34
|
dailyLoading.totalWeight = totalWeight
|
|
53
35
|
dailyLoading.loadingDate = dailyLoadingPatch.loadingDate
|
|
@@ -56,8 +38,6 @@ export const updateDailyLoading = {
|
|
|
56
38
|
|
|
57
39
|
// 2. Create daily loading detail
|
|
58
40
|
await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)
|
|
59
|
-
await updateDailyLoadingRamp(domain, dailyLoading, dailyLoadingPatch.dailyLoadingRamps, user, tx)
|
|
60
|
-
await updatePlantationInventory(domain, dailyLoading, prevLoadedBunch, prevLoadedTonnage, block, user, tx)
|
|
61
41
|
|
|
62
42
|
return dailyLoading
|
|
63
43
|
}
|
|
@@ -70,8 +50,9 @@ export async function updateDailyLoadingDetail(
|
|
|
70
50
|
user: User,
|
|
71
51
|
tx?: EntityManager
|
|
72
52
|
): Promise<void> {
|
|
73
|
-
const
|
|
74
|
-
|
|
53
|
+
const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)
|
|
54
|
+
const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)
|
|
55
|
+
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
75
56
|
const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =
|
|
76
57
|
tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)
|
|
77
58
|
|
|
@@ -90,22 +71,22 @@ export async function updateDailyLoadingDetail(
|
|
|
90
71
|
dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {
|
|
91
72
|
const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name === record.name)
|
|
92
73
|
|
|
93
|
-
const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({
|
|
94
|
-
where: { id: foundDailyLoadingDetailPatch.organizationStaff.id }
|
|
95
|
-
})
|
|
96
|
-
|
|
97
74
|
return {
|
|
98
75
|
...record,
|
|
99
76
|
dailyLoading,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
77
|
+
truck: await truckRepo.findOne({ id: record.truck.id }),
|
|
78
|
+
block: await blockRepo.findOne({ id: record.block.id }),
|
|
79
|
+
ramp: await rampRepo.findOne({ id: record.ramp.id }),
|
|
80
|
+
totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,
|
|
81
|
+
totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,
|
|
82
|
+
remark: foundDailyLoadingDetailPatch?.remark || null,
|
|
104
83
|
updater: user
|
|
105
84
|
}
|
|
106
85
|
})
|
|
107
86
|
)
|
|
108
|
-
await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)
|
|
87
|
+
updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)
|
|
88
|
+
|
|
89
|
+
// await updatePlantationInventory(domain, dailyLoading, updatedDailyLoadingDetails, user, tx)
|
|
109
90
|
}
|
|
110
91
|
|
|
111
92
|
if (newDailyLoadingDetail?.length > 0) {
|
|
@@ -114,14 +95,13 @@ export async function updateDailyLoadingDetail(
|
|
|
114
95
|
let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()
|
|
115
96
|
newDailyLoadingDetail.domain = domain
|
|
116
97
|
newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()
|
|
117
|
-
newDailyLoadingDetail.
|
|
118
|
-
|
|
119
|
-
})
|
|
120
|
-
newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail
|
|
121
|
-
newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail
|
|
122
|
-
newDailyLoadingDetail.remark = dailyLoadingDetail
|
|
98
|
+
newDailyLoadingDetail.truck = await truckRepo.findOne({ id: dailyLoadingDetail.truck.id })
|
|
99
|
+
newDailyLoadingDetail.block = await blockRepo.findOne({ id: dailyLoadingDetail.block.id })
|
|
100
|
+
newDailyLoadingDetail.ramp = await rampRepo.findOne({ id: dailyLoadingDetail.ramp.id })
|
|
101
|
+
newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0
|
|
102
|
+
newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0
|
|
103
|
+
newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null
|
|
123
104
|
newDailyLoadingDetail.creator = user
|
|
124
|
-
newDailyLoadingDetail.updater = user
|
|
125
105
|
newDailyLoadingDetail.dailyLoading = dailyLoading
|
|
126
106
|
|
|
127
107
|
await dailyLoadingDetailRepo.save(newDailyLoadingDetail)
|
|
@@ -130,70 +110,10 @@ export async function updateDailyLoadingDetail(
|
|
|
130
110
|
}
|
|
131
111
|
}
|
|
132
112
|
|
|
133
|
-
export async function updateDailyLoadingRamp(
|
|
134
|
-
domain: Domain,
|
|
135
|
-
dailyLoading: DailyLoading,
|
|
136
|
-
dailyLoadingRampPatches: DailyLoadingRamp[],
|
|
137
|
-
user: User,
|
|
138
|
-
tx?: EntityManager
|
|
139
|
-
): Promise<void> {
|
|
140
|
-
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
141
|
-
const dailyLoadingRampRepo: Repository<DailyLoadingRamp> =
|
|
142
|
-
tx?.getRepository(DailyLoadingRamp) || getRepository(DailyLoadingRamp)
|
|
143
|
-
|
|
144
|
-
let updatedDailyLoadingRamps: any[] = []
|
|
145
|
-
const dailyLoadingRamps: DailyLoadingRamp[] = dailyLoading.dailyLoadingRamps
|
|
146
|
-
const existingDailyLoadingRamps: DailyLoadingRamp[] = dailyLoadingRampPatches.filter(detail => detail.name !== null)
|
|
147
|
-
|
|
148
|
-
// new row added in client side
|
|
149
|
-
const newDailyLoadingRamps: DailyLoadingRamp[] = dailyLoadingRampPatches.filter(detail => detail.name === null)
|
|
150
|
-
|
|
151
|
-
if (existingDailyLoadingRamps?.length > 0) {
|
|
152
|
-
// TODO: delete function for removing data
|
|
153
|
-
updatedDailyLoadingRamps = await Promise.all(
|
|
154
|
-
dailyLoadingRamps.map(async (dailyLoadingRamp: DailyLoadingRamp) => {
|
|
155
|
-
const foundDailyLoadingRampPatch = dailyLoadingRampPatches.find(detail => detail.name === dailyLoadingRamp.name)
|
|
156
|
-
|
|
157
|
-
const foundRamp: Ramp = await rampRepo.findOne({
|
|
158
|
-
where: { id: foundDailyLoadingRampPatch.ramp.id }
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
return {
|
|
162
|
-
...dailyLoadingRamp,
|
|
163
|
-
dailyLoading,
|
|
164
|
-
ramp: foundRamp,
|
|
165
|
-
totalBunchWeight: foundDailyLoadingRampPatch.totalBunchWeight,
|
|
166
|
-
updater: user
|
|
167
|
-
}
|
|
168
|
-
})
|
|
169
|
-
)
|
|
170
|
-
await dailyLoadingRampRepo.save(updatedDailyLoadingRamps)
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
if (newDailyLoadingRamps?.length > 0) {
|
|
174
|
-
await Promise.all(
|
|
175
|
-
newDailyLoadingRamps.map(async (dailyLoadingRamp: DailyLoadingRamp) => {
|
|
176
|
-
let newDailyLoadingRamp: DailyLoadingRamp = new DailyLoadingRamp()
|
|
177
|
-
newDailyLoadingRamp.domain = domain
|
|
178
|
-
newDailyLoadingRamp.name = NoGenerator.dailyLoadingDetail()
|
|
179
|
-
newDailyLoadingRamp.ramp = await rampRepo.findOne({ id: dailyLoadingRamp.ramp.id })
|
|
180
|
-
newDailyLoadingRamp.totalBunchWeight = dailyLoadingRamp.totalBunchWeight
|
|
181
|
-
newDailyLoadingRamp.creator = user
|
|
182
|
-
newDailyLoadingRamp.updater = user
|
|
183
|
-
newDailyLoadingRamp.dailyLoading = dailyLoading
|
|
184
|
-
|
|
185
|
-
await dailyLoadingRampRepo.save(newDailyLoadingRamp)
|
|
186
|
-
})
|
|
187
|
-
)
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
113
|
export async function updatePlantationInventory(
|
|
192
114
|
domain: Domain,
|
|
193
115
|
dailyLoading: DailyLoading,
|
|
194
|
-
|
|
195
|
-
prevLoadedTonnage: number,
|
|
196
|
-
block: Block,
|
|
116
|
+
updatedDailyLoadingDetails: DailyLoadingDetail[],
|
|
197
117
|
user: User,
|
|
198
118
|
tx?: EntityManager
|
|
199
119
|
): Promise<void> {
|
|
@@ -201,110 +121,4 @@ export async function updatePlantationInventory(
|
|
|
201
121
|
tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)
|
|
202
122
|
|
|
203
123
|
const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
|
|
204
|
-
|
|
205
|
-
let existingBunchesInventory: PlantationInventory = await plantationInvRepo.findOne({
|
|
206
|
-
where: { domain, block, type: INVENTORY_TYPE.FIELD_BUNCHES },
|
|
207
|
-
relations: ['domain', 'block']
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
const originBunchesInventory: number = existingBunchesInventory.totalBunches + prevLoadedBunch
|
|
211
|
-
const loadedFieldBunches: number = dailyLoading.totalBunch
|
|
212
|
-
|
|
213
|
-
if (!existingBunchesInventory) throw new Error('Unable to find plantation bunches inventory')
|
|
214
|
-
existingBunchesInventory.totalBunches = originBunchesInventory - loadedFieldBunches
|
|
215
|
-
existingBunchesInventory.updater = user
|
|
216
|
-
existingBunchesInventory = await plantationInvRepo.save(existingBunchesInventory)
|
|
217
|
-
|
|
218
|
-
await generateTransactionHistory(
|
|
219
|
-
existingBunchesInventory,
|
|
220
|
-
dailyLoading.id,
|
|
221
|
-
dailyLoading.name,
|
|
222
|
-
TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
|
|
223
|
-
dailyLoading.loadingDate,
|
|
224
|
-
prevLoadedBunch,
|
|
225
|
-
0,
|
|
226
|
-
user,
|
|
227
|
-
tx
|
|
228
|
-
)
|
|
229
|
-
|
|
230
|
-
await generateTransactionHistory(
|
|
231
|
-
existingBunchesInventory,
|
|
232
|
-
dailyLoading.id,
|
|
233
|
-
dailyLoading.name,
|
|
234
|
-
TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
|
|
235
|
-
dailyLoading.loadingDate,
|
|
236
|
-
-loadedFieldBunches,
|
|
237
|
-
0,
|
|
238
|
-
user,
|
|
239
|
-
tx
|
|
240
|
-
)
|
|
241
|
-
|
|
242
|
-
await Promise.all(
|
|
243
|
-
dailyLoading.dailyLoadingRamps.map(async (record: any) => {
|
|
244
|
-
const ramp: Ramp = await rampRepo.findOne({
|
|
245
|
-
where: { domain, id: record.ramp.id }
|
|
246
|
-
})
|
|
247
|
-
|
|
248
|
-
let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({
|
|
249
|
-
where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp },
|
|
250
|
-
relations: ['domain', 'block', 'ramp']
|
|
251
|
-
})
|
|
252
|
-
|
|
253
|
-
const originRampTonnage: number = existingRampTonnage.totalTonnage - prevLoadedTonnage
|
|
254
|
-
const loadedRampTonnage: number = dailyLoading.totalWeight
|
|
255
|
-
|
|
256
|
-
if (existingRampTonnage) {
|
|
257
|
-
existingRampTonnage.totalTonnage = originRampTonnage - loadedRampTonnage
|
|
258
|
-
existingRampTonnage.updater = user
|
|
259
|
-
await plantationInvRepo.save(existingRampTonnage)
|
|
260
|
-
|
|
261
|
-
await generateTransactionHistory(
|
|
262
|
-
existingRampTonnage,
|
|
263
|
-
dailyLoading.id,
|
|
264
|
-
dailyLoading.name,
|
|
265
|
-
TRANSACTION_TYPE.TONNAGE_ADJUSTMENT,
|
|
266
|
-
dailyLoading.loadingDate,
|
|
267
|
-
0,
|
|
268
|
-
-prevLoadedTonnage,
|
|
269
|
-
user,
|
|
270
|
-
tx
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
await generateTransactionHistory(
|
|
274
|
-
existingRampTonnage,
|
|
275
|
-
dailyLoading.id,
|
|
276
|
-
dailyLoading.name,
|
|
277
|
-
TRANSACTION_TYPE.TONNAGE_ADJUSTMENT,
|
|
278
|
-
dailyLoading.loadingDate,
|
|
279
|
-
0,
|
|
280
|
-
loadedRampTonnage,
|
|
281
|
-
user,
|
|
282
|
-
tx
|
|
283
|
-
)
|
|
284
|
-
} else {
|
|
285
|
-
let plantationInventory: PlantationInventory = new PlantationInventory()
|
|
286
|
-
plantationInventory.domain = domain
|
|
287
|
-
plantationInventory.name = NoGenerator.rampTonnageName()
|
|
288
|
-
plantationInventory.block = block
|
|
289
|
-
plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE
|
|
290
|
-
plantationInventory.totalTonnage = record.totalBunchWeight
|
|
291
|
-
plantationInventory.status = INVENTORY_STATUS.STORED
|
|
292
|
-
plantationInventory.ramp = ramp
|
|
293
|
-
plantationInventory.creator = user
|
|
294
|
-
plantationInventory = await plantationInvRepo.save(plantationInventory)
|
|
295
|
-
|
|
296
|
-
await generateTransactionHistory(
|
|
297
|
-
plantationInventory,
|
|
298
|
-
dailyLoading.id,
|
|
299
|
-
dailyLoading.name,
|
|
300
|
-
TRANSACTION_TYPE.LOADING,
|
|
301
|
-
dailyLoading.loadingDate,
|
|
302
|
-
0,
|
|
303
|
-
record.totalBunchWeight,
|
|
304
|
-
user,
|
|
305
|
-
tx
|
|
306
|
-
)
|
|
307
|
-
}
|
|
308
|
-
})
|
|
309
|
-
)
|
|
310
124
|
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
// import { buildQuery, ListParam } from '@things-factory/shell'
|
|
4
|
+
|
|
5
|
+
export const 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(_: any, { blockId, yearAndMonth }, context: any) {
|
|
12
|
+
if (blockId == 'ALL_BLOCKS') {
|
|
13
|
+
// should remove block filter
|
|
14
|
+
// 'ALL_BLOCKS' was hardcoded from dashboard
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const year: string = yearAndMonth.substring(0, 4)
|
|
18
|
+
const month: string = yearAndMonth.substring(4)
|
|
19
|
+
|
|
20
|
+
let data = []
|
|
21
|
+
|
|
22
|
+
for (let i = 1, l = new Date(Number(year), Number(month), 0).getDate(); i <= l; i++) {
|
|
23
|
+
let theDate = new Date(`${year}-${month}-${i}`)
|
|
24
|
+
theDate.setHours(8, 0, 0, 0)
|
|
25
|
+
|
|
26
|
+
data.push({
|
|
27
|
+
blockId,
|
|
28
|
+
tonnage: Math.floor(Math.random() * 1000) + 200, // generate random value within 200-1000
|
|
29
|
+
year,
|
|
30
|
+
month,
|
|
31
|
+
date: theDate.toLocaleString('default', { day: '2-digit', month: 'short' })
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return data.sort((a, b) => (a.date > b.date ? 1 : -1))
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
async monthlyYields(_: any, { blockId, yearAndMonth }, context: any) {
|
|
39
|
+
if (blockId == 'ALL_BLOCKS') {
|
|
40
|
+
// should remove block filter
|
|
41
|
+
// 'ALL_BLOCKS' was hardcoded from dashboard
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const year: string = yearAndMonth.substring(0, 4)
|
|
45
|
+
const month: string = yearAndMonth.substring(4)
|
|
46
|
+
|
|
47
|
+
let data = []
|
|
48
|
+
|
|
49
|
+
for (let i = 1, l = new Date(Number(year), Number(month), 0).getDate(); i <= l; i++) {
|
|
50
|
+
let theDate = new Date(`${year}-${month}-${i}`)
|
|
51
|
+
theDate.setHours(8, 0, 0, 0)
|
|
52
|
+
|
|
53
|
+
data.push({
|
|
54
|
+
blockId,
|
|
55
|
+
yield: Math.floor(Math.random() * 1000) + 200, // generate random value within 200-1000
|
|
56
|
+
year,
|
|
57
|
+
month,
|
|
58
|
+
date: theDate.toLocaleString('default', { day: '2-digit', month: 'short' })
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return data.sort((a, b) => (a.date > b.date ? 1 : -1))
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
async weeklyBunchesCount(_: any, { targetDate }, context: any) {
|
|
66
|
+
if (!targetDate || targetDate == '') targetDate = new Date()
|
|
67
|
+
|
|
68
|
+
let bunchesCount = []
|
|
69
|
+
|
|
70
|
+
for (let i = 0; i < 7; i++) {
|
|
71
|
+
bunchesCount.push({
|
|
72
|
+
date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),
|
|
73
|
+
harvestedCount: Math.floor(Math.random() * 1000) + 500,
|
|
74
|
+
collectedCount: Math.floor(Math.random() * 500) + 50
|
|
75
|
+
})
|
|
76
|
+
targetDate.setDate(targetDate.getDate() - 1)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return bunchesCount.reverse()
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
async tonnageAndBunchesInventories(_: any, { something }, context: any) {
|
|
83
|
+
return {
|
|
84
|
+
bunches: Math.floor(Math.random() * 10000) + 500,
|
|
85
|
+
tonnage: Math.floor(Math.random() * 10000) + 500
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
async productionsOverview(_: any, { something }, context: any) {
|
|
90
|
+
return {
|
|
91
|
+
averageBunchWeight: Math.floor(Math.random() * 150) + 70,
|
|
92
|
+
bunchesCount: Math.floor(Math.random() * 10000) + 500,
|
|
93
|
+
tonnageWeighed: Math.floor(Math.random() * 10000) + 500
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
export * from './block'
|
|
2
1
|
export * from './block-detail'
|
|
2
|
+
export * from './block'
|
|
3
3
|
export * from './daily-block-detail'
|
|
4
|
-
export * from './daily-dispatch'
|
|
5
4
|
export * from './daily-dispatch-detail'
|
|
6
|
-
export * from './daily-
|
|
5
|
+
export * from './daily-dispatch'
|
|
7
6
|
export * from './daily-harvest-detail'
|
|
8
|
-
export * from './daily-
|
|
7
|
+
export * from './daily-harvest'
|
|
9
8
|
export * from './daily-loading-detail'
|
|
10
9
|
export * from './daily-loading-ramp'
|
|
11
|
-
export * from './
|
|
10
|
+
export * from './daily-loading'
|
|
11
|
+
export * from './dashboard'
|
|
12
12
|
export * from './organization-staff'
|
|
13
|
+
export * from './organization'
|
|
13
14
|
export * from './plantation-inventory'
|
|
15
|
+
export * from './plantation-setting'
|
|
14
16
|
export * from './ramp'
|
|
15
|
-
export * from './report'
|
|
16
17
|
export * from './record-transaction'
|
|
18
|
+
export * from './report'
|
|
19
|
+
|
|
20
|
+
export * from './truck'
|