@things-factory/operato-pms 3.8.0 → 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 +2 -2
- 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,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'
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { EntityManager, IsNull } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { buildQuery, Domain, ListParam } from '@things-factory/shell'
|
|
4
|
+
|
|
3
5
|
import { OrganizationStaff as OrganizationStaffEntity } from '../../../entities'
|
|
4
6
|
|
|
5
7
|
export const Query = {
|
|
@@ -15,7 +17,7 @@ export const Query = {
|
|
|
15
17
|
async organizationStaffs(_: any, params: ListParam, context: any) {
|
|
16
18
|
const { tx }: { tx: EntityManager } = context.state
|
|
17
19
|
|
|
18
|
-
const queryBuilder = tx.getRepository(OrganizationStaffEntity).createQueryBuilder()
|
|
20
|
+
const queryBuilder = await tx.getRepository(OrganizationStaffEntity).createQueryBuilder()
|
|
19
21
|
buildQuery(queryBuilder, params, context)
|
|
20
22
|
|
|
21
23
|
queryBuilder
|
|
@@ -27,7 +29,14 @@ export const Query = {
|
|
|
27
29
|
if (params.filters?.length > 0) queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL')
|
|
28
30
|
else queryBuilder.where('OrganizationStaff.deletedAt IS NULL')
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
let [items, total] = await queryBuilder.getManyAndCount()
|
|
33
|
+
|
|
34
|
+
items = items.map(item => {
|
|
35
|
+
return {
|
|
36
|
+
...item,
|
|
37
|
+
organizationName: item.organization?.name
|
|
38
|
+
}
|
|
39
|
+
})
|
|
31
40
|
|
|
32
41
|
return { items, total }
|
|
33
42
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
import { PlantationSetting } from '../../../entities'
|
|
3
|
+
|
|
4
|
+
export const createPlantationSetting = {
|
|
5
|
+
async createPlantationSetting(_: any, { plantationSetting }, context: any) {
|
|
6
|
+
const { domain, user } = context.state
|
|
7
|
+
|
|
8
|
+
return await getRepository(PlantationSetting).save({
|
|
9
|
+
...plantationSetting,
|
|
10
|
+
domain,
|
|
11
|
+
creator: user,
|
|
12
|
+
updater: user
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
import { PlantationSetting } from '../../../entities'
|
|
3
|
+
|
|
4
|
+
export const deletePlantationSetting = {
|
|
5
|
+
async deletePlantationSetting(_: any, { name }, context: any) {
|
|
6
|
+
const { domain, user } = context.state
|
|
7
|
+
|
|
8
|
+
await getRepository(PlantationSetting).delete({ domain, name })
|
|
9
|
+
|
|
10
|
+
return true
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getRepository, In } from 'typeorm'
|
|
2
|
+
import { PlantationSetting } from '../../../entities'
|
|
3
|
+
|
|
4
|
+
export const deletePlantationSettings = {
|
|
5
|
+
async deletePlantationSettings(_: any, { names }, context: any) {
|
|
6
|
+
const { domain, user } = context.state
|
|
7
|
+
|
|
8
|
+
await getRepository(PlantationSetting).delete({
|
|
9
|
+
domain,
|
|
10
|
+
name: In(names)
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
return true
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Query, PlantationSetting } from './plantation-setting-query'
|
|
2
|
+
|
|
3
|
+
import { updatePlantationSetting } from './update-plantation-setting'
|
|
4
|
+
import { updateMultiplePlantationSetting } from './update-multiple-plantation-setting'
|
|
5
|
+
import { createPlantationSetting } from './create-plantation-setting'
|
|
6
|
+
import { deletePlantationSetting } from './delete-plantation-setting'
|
|
7
|
+
import { deletePlantationSettings } from './delete-plantation-settings'
|
|
8
|
+
|
|
9
|
+
export const PlantationSettingResolver = {
|
|
10
|
+
PlantationSetting,
|
|
11
|
+
Query,
|
|
12
|
+
Mutation: {
|
|
13
|
+
...updatePlantationSetting,
|
|
14
|
+
...updateMultiplePlantationSetting,
|
|
15
|
+
...createPlantationSetting,
|
|
16
|
+
...deletePlantationSetting,
|
|
17
|
+
...deletePlantationSettings
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
import { Domain, ListParam, convertListParams } from '@things-factory/shell'
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { PlantationSetting as PlantationSettingEntity } from '../../../entities'
|
|
5
|
+
|
|
6
|
+
export const Query = {
|
|
7
|
+
async plantationSetting(_: any, { name }, context: any) {
|
|
8
|
+
const { domain, user } = context.state
|
|
9
|
+
const repository = getRepository(PlantationSettingEntity)
|
|
10
|
+
|
|
11
|
+
return await repository.findOne({
|
|
12
|
+
where: { domain, name }
|
|
13
|
+
})
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
async plantationSettings(_: any, params: ListParam, context: any) {
|
|
17
|
+
const convertedParams = convertListParams(params)
|
|
18
|
+
const [items, total] = await getRepository(PlantationSettingEntity).findAndCount({
|
|
19
|
+
...convertedParams
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
return { items, total }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const PlantationSetting = {
|
|
27
|
+
async domain(plantationSetting) {
|
|
28
|
+
return await getRepository(Domain).findOne(plantationSetting.domainId)
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
async creator(plantationSetting) {
|
|
32
|
+
return await getRepository(User).findOne(plantationSetting.creatorId)
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
async updater(plantationSetting) {
|
|
36
|
+
return await getRepository(User).findOne(plantationSetting.updaterId)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
import { PlantationSetting } from '../../../entities'
|
|
3
|
+
|
|
4
|
+
export const updateMultiplePlantationSetting = {
|
|
5
|
+
async updateMultiplePlantationSetting(_: any, { patches }, context: any) {
|
|
6
|
+
const { domain, user } = context.state
|
|
7
|
+
|
|
8
|
+
let results = []
|
|
9
|
+
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
|
10
|
+
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
|
11
|
+
const plantationSettingRepo = getRepository(PlantationSetting)
|
|
12
|
+
|
|
13
|
+
if (_createRecords.length > 0) {
|
|
14
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
|
15
|
+
const newRecord = _createRecords[i]
|
|
16
|
+
|
|
17
|
+
const result = await plantationSettingRepo.save({
|
|
18
|
+
...newRecord,
|
|
19
|
+
domain: domain,
|
|
20
|
+
creator: user,
|
|
21
|
+
updater: user,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
results.push({ ...result, cuFlag: '+' })
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (_updateRecords.length > 0) {
|
|
29
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
|
30
|
+
const newRecord = _updateRecords[i]
|
|
31
|
+
const plantationSetting = await plantationSettingRepo.findOne({ domain, id: newRecord.id})
|
|
32
|
+
|
|
33
|
+
const result = await plantationSettingRepo.save({
|
|
34
|
+
...plantationSetting,
|
|
35
|
+
...newRecord,
|
|
36
|
+
updater: user
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return results
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
import { PlantationSetting } from '../../../entities'
|
|
3
|
+
|
|
4
|
+
export const updatePlantationSetting = {
|
|
5
|
+
async updatePlantationSetting(_: any, { name, patch }, context: any) {
|
|
6
|
+
const { domain, user } = context.state
|
|
7
|
+
|
|
8
|
+
const repository = getRepository(PlantationSetting)
|
|
9
|
+
const plantationSetting = await repository.findOne({
|
|
10
|
+
where: { domain, name }
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
return await repository.save({
|
|
14
|
+
...plantationSetting,
|
|
15
|
+
...patch,
|
|
16
|
+
updater: user
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
}
|