@things-factory/operato-pms 4.3.671 → 4.3.673
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/dist-server/constants/block.js +8 -0
- package/dist-server/constants/block.js.map +1 -0
- package/dist-server/constants/index.js +25 -0
- package/dist-server/constants/index.js.map +1 -0
- package/dist-server/constants/inventory.js +12 -0
- package/dist-server/constants/inventory.js.map +1 -0
- package/dist-server/constants/master.js +12 -0
- package/dist-server/constants/master.js.map +1 -0
- package/dist-server/constants/organization.js +9 -0
- package/dist-server/constants/organization.js.map +1 -0
- package/dist-server/constants/ramp.js +12 -0
- package/dist-server/constants/ramp.js.map +1 -0
- package/dist-server/constants/record.js +8 -0
- package/dist-server/constants/record.js.map +1 -0
- package/dist-server/constants/template.js +7 -0
- package/dist-server/constants/template.js.map +1 -0
- package/dist-server/constants/transaction.js +13 -0
- package/dist-server/constants/transaction.js.map +1 -0
- package/dist-server/controllers/index.js +18 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/render-dispatchment.js +53 -0
- package/dist-server/controllers/render-dispatchment.js.map +1 -0
- package/dist-server/entities/block-detail.js +91 -0
- package/dist-server/entities/block-detail.js.map +1 -0
- package/dist-server/entities/block.js +79 -0
- package/dist-server/entities/block.js.map +1 -0
- package/dist-server/entities/daily-block-detail.js +79 -0
- package/dist-server/entities/daily-block-detail.js.map +1 -0
- package/dist-server/entities/daily-dispatch-detail.js +93 -0
- package/dist-server/entities/daily-dispatch-detail.js.map +1 -0
- package/dist-server/entities/daily-dispatch.js +119 -0
- package/dist-server/entities/daily-dispatch.js.map +1 -0
- package/dist-server/entities/daily-harvest-detail.js +81 -0
- package/dist-server/entities/daily-harvest-detail.js.map +1 -0
- package/dist-server/entities/daily-harvest.js +117 -0
- package/dist-server/entities/daily-harvest.js.map +1 -0
- package/dist-server/entities/daily-loading-detail.js +95 -0
- package/dist-server/entities/daily-loading-detail.js.map +1 -0
- package/dist-server/entities/daily-loading-ramp.js +75 -0
- package/dist-server/entities/daily-loading-ramp.js.map +1 -0
- package/dist-server/entities/daily-loading.js +91 -0
- package/dist-server/entities/daily-loading.js.map +1 -0
- package/dist-server/entities/index.js +60 -0
- package/dist-server/entities/index.js.map +1 -0
- package/dist-server/entities/organization-staff.js +85 -0
- package/dist-server/entities/organization-staff.js.map +1 -0
- package/dist-server/entities/organization.js +70 -0
- package/dist-server/entities/organization.js.map +1 -0
- package/dist-server/entities/plantation-inventory.js +81 -0
- package/dist-server/entities/plantation-inventory.js.map +1 -0
- package/dist-server/entities/plantation-setting.js +76 -0
- package/dist-server/entities/plantation-setting.js.map +1 -0
- package/dist-server/entities/ramp-block-history.js +93 -0
- package/dist-server/entities/ramp-block-history.js.map +1 -0
- package/dist-server/entities/ramp.js +75 -0
- package/dist-server/entities/ramp.js.map +1 -0
- package/dist-server/entities/record-transaction.js +108 -0
- package/dist-server/entities/record-transaction.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/index.js +34 -0
- package/dist-server/graphql/index.js.map +1 -0
- package/dist-server/graphql/resolvers/block/block-query.js +33 -0
- package/dist-server/graphql/resolvers/block/block-query.js.map +1 -0
- package/dist-server/graphql/resolvers/block/delete-blocks.js +32 -0
- package/dist-server/graphql/resolvers/block/delete-blocks.js.map +1 -0
- package/dist-server/graphql/resolvers/block/index.js +11 -0
- package/dist-server/graphql/resolvers/block/index.js.map +1 -0
- package/dist-server/graphql/resolvers/block/update-multiple-block.js +52 -0
- package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -0
- package/dist-server/graphql/resolvers/block-detail/block-detail-query.js +45 -0
- package/dist-server/graphql/resolvers/block-detail/block-detail-query.js.map +1 -0
- package/dist-server/graphql/resolvers/block-detail/delete-block-details.js +18 -0
- package/dist-server/graphql/resolvers/block-detail/delete-block-details.js.map +1 -0
- package/dist-server/graphql/resolvers/block-detail/index.js +12 -0
- package/dist-server/graphql/resolvers/block-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js +39 -0
- package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js +11 -0
- package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js +33 -0
- package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-detail.js +12 -0
- package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-details.js +16 -0
- package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-details.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/index.js +14 -0
- package/dist-server/graphql/resolvers/daily-block-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js +14 -0
- package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js +30 -0
- package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +74 -0
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js +74 -0
- package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +144 -0
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/index.js +12 -0
- package/dist-server/graphql/resolvers/daily-dispatch/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +72 -0
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js +34 -0
- package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-dispatch-detail/index.js +9 -0
- package/dist-server/graphql/resolvers/daily-dispatch-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +64 -0
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +38 -0
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +104 -0
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest/index.js +12 -0
- package/dist-server/graphql/resolvers/daily-harvest/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +98 -0
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js +32 -0
- package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-harvest-detail/index.js +9 -0
- package/dist-server/graphql/resolvers/daily-harvest-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +62 -0
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js +36 -0
- package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +94 -0
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading/index.js +12 -0
- package/dist-server/graphql/resolvers/daily-loading/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +86 -0
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js +32 -0
- package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-detail/index.js +9 -0
- package/dist-server/graphql/resolvers/daily-loading-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/daily-loading-ramp-query.js +29 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/daily-loading-ramp-query.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/delete-daily-loading-ramp.js +12 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/delete-daily-loading-ramp.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/index.js +11 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/index.js.map +1 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js +15 -0
- package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +204 -0
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
- package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +36 -0
- package/dist-server/graphql/resolvers/index.js.map +1 -0
- package/dist-server/graphql/resolvers/organization/delete-organizations.js +32 -0
- package/dist-server/graphql/resolvers/organization/delete-organizations.js.map +1 -0
- package/dist-server/graphql/resolvers/organization/index.js +11 -0
- package/dist-server/graphql/resolvers/organization/index.js.map +1 -0
- package/dist-server/graphql/resolvers/organization/organization-query.js +32 -0
- package/dist-server/graphql/resolvers/organization/organization-query.js.map +1 -0
- package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +33 -0
- package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -0
- package/dist-server/graphql/resolvers/organization-staff/delete-organization-staffs.js +18 -0
- package/dist-server/graphql/resolvers/organization-staff/delete-organization-staffs.js.map +1 -0
- package/dist-server/graphql/resolvers/organization-staff/index.js +11 -0
- package/dist-server/graphql/resolvers/organization-staff/index.js.map +1 -0
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +37 -0
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -0
- package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +44 -0
- package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-inventory/index.js +9 -0
- package/dist-server/graphql/resolvers/plantation-inventory/index.js.map +1 -0
- package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js +31 -0
- package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js.map +1 -0
- 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/ramp/delete-ramps.js +23 -0
- package/dist-server/graphql/resolvers/ramp/delete-ramps.js.map +1 -0
- package/dist-server/graphql/resolvers/ramp/index.js +11 -0
- package/dist-server/graphql/resolvers/ramp/index.js.map +1 -0
- package/dist-server/graphql/resolvers/ramp/ramp-query.js +32 -0
- package/dist-server/graphql/resolvers/ramp/ramp-query.js.map +1 -0
- package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +45 -0
- package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -0
- package/dist-server/graphql/resolvers/record-transaction/index.js +9 -0
- package/dist-server/graphql/resolvers/record-transaction/index.js.map +1 -0
- package/dist-server/graphql/resolvers/record-transaction/record-transaction-query.js +30 -0
- package/dist-server/graphql/resolvers/record-transaction/record-transaction-query.js.map +1 -0
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +155 -0
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/daily-production-reports.js +244 -0
- package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +71 -0
- package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/index.js +16 -0
- package/dist-server/graphql/resolvers/report/index.js.map +1 -0
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +96 -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 +95 -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 +100 -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 +109 -0
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -0
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js +96 -0
- package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -0
- 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/block/block-list.js +14 -0
- package/dist-server/graphql/types/block/block-list.js.map +1 -0
- package/dist-server/graphql/types/block/block-patch.js +19 -0
- package/dist-server/graphql/types/block/block-patch.js.map +1 -0
- package/dist-server/graphql/types/block/block.js +24 -0
- package/dist-server/graphql/types/block/block.js.map +1 -0
- package/dist-server/graphql/types/block/index.js +37 -0
- package/dist-server/graphql/types/block/index.js.map +1 -0
- package/dist-server/graphql/types/block/new-block.js +14 -0
- package/dist-server/graphql/types/block/new-block.js.map +1 -0
- package/dist-server/graphql/types/block-detail/block-detail-list.js +14 -0
- package/dist-server/graphql/types/block-detail/block-detail-list.js.map +1 -0
- package/dist-server/graphql/types/block-detail/block-detail-patch.js +22 -0
- package/dist-server/graphql/types/block-detail/block-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/block-detail/block-detail.js +27 -0
- package/dist-server/graphql/types/block-detail/block-detail.js.map +1 -0
- package/dist-server/graphql/types/block-detail/index.js +37 -0
- package/dist-server/graphql/types/block-detail/index.js.map +1 -0
- package/dist-server/graphql/types/block-detail/new-block-detail.js +19 -0
- package/dist-server/graphql/types/block-detail/new-block-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail-list.js +14 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail-list.js.map +1 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail-patch.js +16 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail.js +24 -0
- package/dist-server/graphql/types/daily-block-detail/daily-block-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-block-detail/index.js +40 -0
- package/dist-server/graphql/types/daily-block-detail/index.js.map +1 -0
- package/dist-server/graphql/types/daily-block-detail/new-daily-block-detail.js +14 -0
- package/dist-server/graphql/types/daily-block-detail/new-daily-block-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-list.js +14 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-list.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +28 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +33 -0
- package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/index.js +43 -0
- package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +26 -0
- package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-list.js +14 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-list.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-patch.js +22 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail.js +27 -0
- package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch-detail/index.js +33 -0
- package/dist-server/graphql/types/daily-dispatch-detail/index.js.map +1 -0
- package/dist-server/graphql/types/daily-dispatch-detail/new-daily-dispatch-detail.js +18 -0
- package/dist-server/graphql/types/daily-dispatch-detail/new-daily-dispatch-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest-list.js +14 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest-list.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +23 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest.js +33 -0
- package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest/index.js +38 -0
- package/dist-server/graphql/types/daily-harvest/index.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +21 -0
- package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-list.js +14 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-list.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +17 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +26 -0
- package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/index.js +33 -0
- package/dist-server/graphql/types/daily-harvest-detail/index.js.map +1 -0
- package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +16 -0
- package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-loading/daily-loading-list.js +14 -0
- package/dist-server/graphql/types/daily-loading/daily-loading-list.js.map +1 -0
- package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +14 -0
- package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-loading/daily-loading.js +27 -0
- package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -0
- package/dist-server/graphql/types/daily-loading/index.js +38 -0
- package/dist-server/graphql/types/daily-loading/index.js.map +1 -0
- package/dist-server/graphql/types/daily-loading/new-daily-loading.js +14 -0
- package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-list.js +14 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-list.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +22 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +29 -0
- package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-detail/index.js +33 -0
- package/dist-server/graphql/types/daily-loading-detail/index.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +19 -0
- package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-list.js +14 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-list.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-patch.js +19 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-patch.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp.js +23 -0
- package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-ramp/index.js +37 -0
- package/dist-server/graphql/types/daily-loading-ramp/index.js.map +1 -0
- package/dist-server/graphql/types/daily-loading-ramp/new-daily-loading-ramp.js +17 -0
- package/dist-server/graphql/types/daily-loading-ramp/new-daily-loading-ramp.js.map +1 -0
- 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 +36 -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 +36 -0
- package/dist-server/graphql/types/index.js.map +1 -0
- package/dist-server/graphql/types/organization/index.js +37 -0
- package/dist-server/graphql/types/organization/index.js.map +1 -0
- package/dist-server/graphql/types/organization/new-organization.js +15 -0
- package/dist-server/graphql/types/organization/new-organization.js.map +1 -0
- package/dist-server/graphql/types/organization/organization-list.js +14 -0
- package/dist-server/graphql/types/organization/organization-list.js.map +1 -0
- package/dist-server/graphql/types/organization/organization-patch.js +17 -0
- package/dist-server/graphql/types/organization/organization-patch.js.map +1 -0
- package/dist-server/graphql/types/organization/organization.js +22 -0
- package/dist-server/graphql/types/organization/organization.js.map +1 -0
- package/dist-server/graphql/types/organization-staff/index.js +38 -0
- package/dist-server/graphql/types/organization-staff/index.js.map +1 -0
- package/dist-server/graphql/types/organization-staff/new-organization-staff.js +14 -0
- package/dist-server/graphql/types/organization-staff/new-organization-staff.js.map +1 -0
- package/dist-server/graphql/types/organization-staff/organization-staff-list.js +14 -0
- package/dist-server/graphql/types/organization-staff/organization-staff-list.js.map +1 -0
- package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +21 -0
- package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -0
- package/dist-server/graphql/types/organization-staff/organization-staff.js +27 -0
- package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -0
- package/dist-server/graphql/types/plantation-inventory/index.js +33 -0
- package/dist-server/graphql/types/plantation-inventory/index.js.map +1 -0
- package/dist-server/graphql/types/plantation-inventory/new-plantation-inventory.js +14 -0
- package/dist-server/graphql/types/plantation-inventory/new-plantation-inventory.js.map +1 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory-list.js +14 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory-list.js.map +1 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory-patch.js +16 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory-patch.js.map +1 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory.js +28 -0
- package/dist-server/graphql/types/plantation-inventory/plantation-inventory.js.map +1 -0
- package/dist-server/graphql/types/plantation-setting/index.js +40 -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/ramp/index.js +37 -0
- package/dist-server/graphql/types/ramp/index.js.map +1 -0
- package/dist-server/graphql/types/ramp/new-ramp.js +14 -0
- package/dist-server/graphql/types/ramp/new-ramp.js.map +1 -0
- package/dist-server/graphql/types/ramp/ramp-list.js +14 -0
- package/dist-server/graphql/types/ramp/ramp-list.js.map +1 -0
- package/dist-server/graphql/types/ramp/ramp-patch.js +18 -0
- package/dist-server/graphql/types/ramp/ramp-patch.js.map +1 -0
- package/dist-server/graphql/types/ramp/ramp.js +23 -0
- package/dist-server/graphql/types/ramp/ramp.js.map +1 -0
- package/dist-server/graphql/types/record-transaction/index.js +33 -0
- package/dist-server/graphql/types/record-transaction/index.js.map +1 -0
- package/dist-server/graphql/types/record-transaction/new-record-transaction.js +14 -0
- package/dist-server/graphql/types/record-transaction/new-record-transaction.js.map +1 -0
- package/dist-server/graphql/types/record-transaction/record-transaction-list.js +14 -0
- package/dist-server/graphql/types/record-transaction/record-transaction-list.js.map +1 -0
- package/dist-server/graphql/types/record-transaction/record-transaction-patch.js +16 -0
- package/dist-server/graphql/types/record-transaction/record-transaction-patch.js.map +1 -0
- package/dist-server/graphql/types/record-transaction/record-transaction.js +30 -0
- package/dist-server/graphql/types/record-transaction/record-transaction.js.map +1 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js +14 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js +15 -0
- package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js.map +1 -0
- package/dist-server/graphql/types/report/daily-production-report-list.js +14 -0
- package/dist-server/graphql/types/report/daily-production-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/daily-production-report.js +29 -0
- package/dist-server/graphql/types/report/daily-production-report.js.map +1 -0
- package/dist-server/graphql/types/report/daily-staff-harvest-report-list.js +14 -0
- package/dist-server/graphql/types/report/daily-staff-harvest-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/daily-staff-harvest-report.js +16 -0
- package/dist-server/graphql/types/report/daily-staff-harvest-report.js.map +1 -0
- package/dist-server/graphql/types/report/index.js +81 -0
- package/dist-server/graphql/types/report/index.js.map +1 -0
- 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/report/monthly-production-report-list.js +14 -0
- package/dist-server/graphql/types/report/monthly-production-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/monthly-production-report.js +31 -0
- package/dist-server/graphql/types/report/monthly-production-report.js.map +1 -0
- package/dist-server/graphql/types/report/yearly-production-report-list.js +14 -0
- package/dist-server/graphql/types/report/yearly-production-report-list.js.map +1 -0
- package/dist-server/graphql/types/report/yearly-production-report.js +24 -0
- package/dist-server/graphql/types/report/yearly-production-report.js.map +1 -0
- package/dist-server/graphql/types/truck/index.js +37 -0
- package/dist-server/graphql/types/truck/index.js.map +1 -0
- package/dist-server/graphql/types/truck/new-truck.js +14 -0
- package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
- package/dist-server/graphql/types/truck/truck-list.js +14 -0
- package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
- package/dist-server/graphql/types/truck/truck-patch.js +17 -0
- package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
- package/dist-server/graphql/types/truck/truck.js +22 -0
- package/dist-server/graphql/types/truck/truck.js.map +1 -0
- package/dist-server/index.js +22 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/index.js +8 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routes.js +10 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/utils/core-values.js +91 -0
- package/dist-server/utils/core-values.js.map +1 -0
- package/dist-server/utils/datetime-util.js +36 -0
- package/dist-server/utils/datetime-util.js.map +1 -0
- package/dist-server/utils/index.js +21 -0
- package/dist-server/utils/index.js.map +1 -0
- package/dist-server/utils/no-generator.js +50 -0
- package/dist-server/utils/no-generator.js.map +1 -0
- package/dist-server/utils/transaction-util.js +119 -0
- package/dist-server/utils/transaction-util.js.map +1 -0
- package/package.json +30 -30
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dailyFfbDispatchProductionReports = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const entities_1 = require("../../../entities");
|
|
6
|
+
exports.dailyFfbDispatchProductionReports = {
|
|
7
|
+
async dailyFfbDispatchProductionReports(_, params, context) {
|
|
8
|
+
try {
|
|
9
|
+
const { domain, tx } = context.state;
|
|
10
|
+
let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0]);
|
|
11
|
+
let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1]);
|
|
12
|
+
let fromDate = new Date(year, month - 1, 1);
|
|
13
|
+
let toDate = new Date(year, month, 1);
|
|
14
|
+
toDate.setDate(toDate.getDate() - 1);
|
|
15
|
+
let fromDateString = [
|
|
16
|
+
fromDate.getFullYear().toString(),
|
|
17
|
+
String(fromDate.getMonth() + 1).padStart(2, '0'),
|
|
18
|
+
'01'
|
|
19
|
+
].join('-');
|
|
20
|
+
let toDateString = [
|
|
21
|
+
toDate.getFullYear().toString(),
|
|
22
|
+
String(toDate.getMonth() + 1).padStart(2, '0'),
|
|
23
|
+
String(toDate.getDate()).padStart(2, '0')
|
|
24
|
+
].join('-');
|
|
25
|
+
let ramps = await (0, typeorm_1.getRepository)(entities_1.Ramp).find({
|
|
26
|
+
where: { domain: domain.id, deletedAt: (0, typeorm_1.IsNull)() },
|
|
27
|
+
relations: ['block']
|
|
28
|
+
});
|
|
29
|
+
let organizations = await (0, typeorm_1.getRepository)(entities_1.Organization).find({
|
|
30
|
+
where: { domain: domain.id, deletedAt: (0, typeorm_1.IsNull)() }
|
|
31
|
+
});
|
|
32
|
+
let blocks = await tx.getRepository(entities_1.Block).query(`
|
|
33
|
+
SELECT b.id, b.name FROM ramps r
|
|
34
|
+
INNER JOIN blocks b ON b.id = r.block_id
|
|
35
|
+
WHERE b.deleted_at IS NULL
|
|
36
|
+
AND r.domain_id = $1
|
|
37
|
+
GROUP BY b.id, b.name
|
|
38
|
+
`, [domain.id]);
|
|
39
|
+
// -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp
|
|
40
|
+
// [fromDateString, toDateString]
|
|
41
|
+
await tx.query(`create extension if not exists tablefunc`);
|
|
42
|
+
await tx.query(`
|
|
43
|
+
CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (
|
|
44
|
+
SELECT
|
|
45
|
+
"name",
|
|
46
|
+
"dispatch_at",
|
|
47
|
+
SUM(weight::numeric) AS weight
|
|
48
|
+
FROM (
|
|
49
|
+
SELECT * FROM (
|
|
50
|
+
SELECT
|
|
51
|
+
rbh.id,
|
|
52
|
+
COALESCE(b.name, 'unknown') AS name,
|
|
53
|
+
1 AS "rank",
|
|
54
|
+
rbh.transaction_date::date AS dispatch_at,
|
|
55
|
+
CASE
|
|
56
|
+
WHEN rbh.transaction_type = 'DISPATCH' AND rbh.weight < 0 THEN ABS(rbh.weight)
|
|
57
|
+
WHEN rbh.transaction_type IN ('REVERSE_DISPATCH', 'TONNAGE_VARIANCE') THEN ABS(rbh.weight)
|
|
58
|
+
ELSE 0
|
|
59
|
+
END AS weight
|
|
60
|
+
FROM ramp_block_histories rbh
|
|
61
|
+
INNER JOIN blocks b ON b.id = rbh.block_id
|
|
62
|
+
WHERE rbh.transaction_type IN ('DISPATCH', 'REVERSE_DISPATCH', 'TONNAGE_VARIANCE')
|
|
63
|
+
AND rbh.transaction_date::date BETWEEN $1 AND $2
|
|
64
|
+
AND b.deleted_at IS NULL
|
|
65
|
+
UNION
|
|
66
|
+
SELECT
|
|
67
|
+
dd.id,
|
|
68
|
+
COALESCE(c.name, 'unknown') AS name,
|
|
69
|
+
CASE WHEN c.name IS NULL THEN 3 ELSE 2 END AS "rank",
|
|
70
|
+
dd.dispatch_at::date AS dispatch_at,
|
|
71
|
+
COALESCE(
|
|
72
|
+
(SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0))
|
|
73
|
+
FROM daily_dispatch_details ddd
|
|
74
|
+
WHERE ddd.daily_dispatch_id = dd.id), 0
|
|
75
|
+
) AS weight
|
|
76
|
+
FROM daily_dispatches dd
|
|
77
|
+
LEFT JOIN organizations c ON c.id = dd.dispatch_to_id
|
|
78
|
+
WHERE dd.dispatch_at::date BETWEEN $1 AND $2
|
|
79
|
+
AND dd.deleted_at IS NULL
|
|
80
|
+
) foo
|
|
81
|
+
ORDER BY "rank", "name", "dispatch_at"
|
|
82
|
+
) foo
|
|
83
|
+
GROUP BY "name", "dispatch_at"
|
|
84
|
+
ORDER BY name, "dispatch_at"
|
|
85
|
+
);
|
|
86
|
+
`, [fromDateString, toDateString]);
|
|
87
|
+
await tx.query(`
|
|
88
|
+
create temp table cross_column ON COMMIT DROP as (
|
|
89
|
+
SELECT b.name FROM blocks b
|
|
90
|
+
WHERE 1=1
|
|
91
|
+
AND b.domain_id = $1
|
|
92
|
+
AND b.deleted_at is null
|
|
93
|
+
GROUP BY b.id, b.name
|
|
94
|
+
UNION
|
|
95
|
+
SELECT c.name FROM organizations c
|
|
96
|
+
where c.deleted_at is null
|
|
97
|
+
)
|
|
98
|
+
`, [domain.id]);
|
|
99
|
+
let definedCrossColumn = await tx.query(`
|
|
100
|
+
select string_agg(concat('"', name, '"'),',') as columns from cross_column
|
|
101
|
+
`);
|
|
102
|
+
await tx.query(`
|
|
103
|
+
CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (
|
|
104
|
+
SELECT * FROM crosstab(
|
|
105
|
+
$$
|
|
106
|
+
SELECT rbd."dispatch_at", rbd."name",
|
|
107
|
+
CONCAT('today: ', round(rbd.weight,2)::varchar, ' | todate: ', round(coalesce(sum(rbd.weight) over (PARTITION BY "name" ORDER BY name, dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar) AS weight
|
|
108
|
+
FROM raw_block_dispatch rbd
|
|
109
|
+
ORDER BY rbd."dispatch_at", rbd."name"
|
|
110
|
+
$$,
|
|
111
|
+
$$
|
|
112
|
+
SELECT name from cross_column
|
|
113
|
+
$$
|
|
114
|
+
) AS (dispatch_at date, ${definedCrossColumn[0].columns
|
|
115
|
+
.split(',')
|
|
116
|
+
.map(itm => {
|
|
117
|
+
return itm + ' varchar';
|
|
118
|
+
})
|
|
119
|
+
.join(',')} )
|
|
120
|
+
);
|
|
121
|
+
`);
|
|
122
|
+
await tx.query(`
|
|
123
|
+
CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (
|
|
124
|
+
SELECT TO_CHAR(md.dateDay:: DATE, 'dd/mm/yyyy') as "date"
|
|
125
|
+
, row_to_json((SELECT d FROM (SELECT ${definedCrossColumn[0].columns
|
|
126
|
+
.split(',')
|
|
127
|
+
.map(itm => {
|
|
128
|
+
return 'pbd.' + itm;
|
|
129
|
+
})
|
|
130
|
+
.join(',')}) d))::varchar as "blockData"
|
|
131
|
+
, (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.dispatch_at = pbd.dispatch_at) AS "today"
|
|
132
|
+
FROM (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md
|
|
133
|
+
LEFT JOIN pivot_block_dispatch pbd on pbd.dispatch_at::date = md.dateDay
|
|
134
|
+
);
|
|
135
|
+
`);
|
|
136
|
+
const result = await tx.query(`
|
|
137
|
+
select "date", "blockData", "today"
|
|
138
|
+
from temp_monthly_production_data dt
|
|
139
|
+
`);
|
|
140
|
+
const total = await tx.query(`
|
|
141
|
+
select count(*) from temp_monthly_production_data
|
|
142
|
+
`);
|
|
143
|
+
return {
|
|
144
|
+
items: result.map(itm => {
|
|
145
|
+
return Object.assign({}, itm);
|
|
146
|
+
}),
|
|
147
|
+
total: total[0].count
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=daily-ffb-dispatch-production-reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daily-ffb-dispatch-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts"],"names":[],"mappings":";;;AAAA,qCAAmE;AAGnE,gDAA6D;AAEhD,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,iCAAiC,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QAC7E,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;YAE3E,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1F,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,eAAI,CAAC,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;gBACjD,SAAS,EAAE,CAAC,OAAO,CAAC;aACrB,CAAC,CAAA;YAEF,IAAI,aAAa,GAAG,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,IAAI,CAAC;gBACzD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;aAClD,CAAC,CAAA;YAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC,KAAK,CAC9C;;;;;;OAMD,EACC,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAA;YAED,8EAA8E;YAC9E,iCAAiC;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAE1D,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4CC,EACD,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;OAWD,EACC,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAA;YAED,IAAI,kBAAkB,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;;OAEvC,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;sCAY8B,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO;iBACpD,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,GAAG,GAAG,UAAU,CAAA;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;;SAEf,CACF,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;mDAG2C,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO;iBACjE,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,MAAM,GAAG,GAAG,CAAA;YACrB,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;;kDAE0B,cAAc,yBAAyB,YAAY;;;SAG5F,CACF,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;;SAGC,CACF,CAAA;YAED,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAC/B;;SAEC,CACF,CAAA;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,yBACK,GAAG,EACP;gBACH,CAAC,CAAC;gBACF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aACtB,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dailyProductionReports = void 0;
|
|
4
|
+
const entities_1 = require("../../../entities");
|
|
5
|
+
exports.dailyProductionReports = {
|
|
6
|
+
async dailyProductionReports(_, params, context) {
|
|
7
|
+
try {
|
|
8
|
+
const { tx } = context.state;
|
|
9
|
+
let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0]);
|
|
10
|
+
let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1]);
|
|
11
|
+
let fromDate = new Date(year, month - 1, 1);
|
|
12
|
+
let toDate = new Date(year, month, 1);
|
|
13
|
+
toDate.setDate(toDate.getDate() - 1);
|
|
14
|
+
let fromDateString = [
|
|
15
|
+
fromDate.getFullYear().toString(),
|
|
16
|
+
String(fromDate.getMonth() + 1).padStart(2, '0'),
|
|
17
|
+
'01'
|
|
18
|
+
].join('-');
|
|
19
|
+
let toDateString = [
|
|
20
|
+
toDate.getFullYear().toString(),
|
|
21
|
+
String(toDate.getMonth() + 1).padStart(2, '0'),
|
|
22
|
+
String(toDate.getDate()).padStart(2, '0')
|
|
23
|
+
].join('-');
|
|
24
|
+
const block = await tx
|
|
25
|
+
.getRepository(entities_1.Block)
|
|
26
|
+
.findOneOrFail({ where: { id: params.filters.filter(x => x.name == 'block')[0].value } });
|
|
27
|
+
await tx.query(`
|
|
28
|
+
CREATE TEMP TABLE temp_blocks on commit drop AS (
|
|
29
|
+
WITH RECURSIVE b AS (
|
|
30
|
+
SELECT $1::uuid as block_id, * FROM blocks b
|
|
31
|
+
WHERE id = $1::uuid
|
|
32
|
+
AND b.deleted_at IS null
|
|
33
|
+
UNION ALL
|
|
34
|
+
SELECT $1::uuid as block_id, cb.* FROM blocks cb
|
|
35
|
+
INNER JOIN b ON b.id = cb.parent_block_id
|
|
36
|
+
WHERE cb.deleted_at IS null
|
|
37
|
+
)
|
|
38
|
+
SELECT * FROM b
|
|
39
|
+
);
|
|
40
|
+
`, [block.id]);
|
|
41
|
+
await tx.query(`
|
|
42
|
+
CREATE TEMP TABLE temp_records on commit drop AS (
|
|
43
|
+
SELECT *
|
|
44
|
+
FROM (
|
|
45
|
+
select
|
|
46
|
+
blk.block_id,
|
|
47
|
+
COALESCE(
|
|
48
|
+
SUM(
|
|
49
|
+
CASE
|
|
50
|
+
WHEN transaction_type = 'HARVEST' THEN field_bunches
|
|
51
|
+
WHEN transaction_type IN ('LOADING', 'LOADING_ADJUSTMENT') THEN -field_bunches
|
|
52
|
+
ELSE 0
|
|
53
|
+
END
|
|
54
|
+
), 0
|
|
55
|
+
) AS today_field_bunches,
|
|
56
|
+
round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,
|
|
57
|
+
sum(case when transaction_type = 'HARVEST' or transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,
|
|
58
|
+
sum(case when transaction_type = 'LOADING' or transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,
|
|
59
|
+
round(sum(case when transaction_type = 'LOADING' and transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,
|
|
60
|
+
--round(sum(case when transaction_type = 'DISPATCHMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,
|
|
61
|
+
transaction_date
|
|
62
|
+
from record_transactions t2
|
|
63
|
+
inner join temp_blocks blk on blk.id = t2.block_id
|
|
64
|
+
where transaction_date <= $1
|
|
65
|
+
and t2.deleted_at is null
|
|
66
|
+
group by blk.block_id, transaction_date
|
|
67
|
+
) src
|
|
68
|
+
)
|
|
69
|
+
`, [toDateString]);
|
|
70
|
+
await tx.query(`
|
|
71
|
+
CREATE TEMP TABLE temp_daily_production_data ON COMMIT DROP AS (
|
|
72
|
+
SELECT
|
|
73
|
+
*,
|
|
74
|
+
COALESCE(SUM(today_bunch_harvest) OVER (ORDER BY date_day ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 0) AS to_date_bunch_harvest,
|
|
75
|
+
COALESCE(SUM(today_bunch_collected) OVER (ORDER BY date_day ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 0) AS to_date_bunch_collected,
|
|
76
|
+
COALESCE(SUM(today_ramp_weight_collected) OVER (ORDER BY date_day ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 0) AS to_date_ramp_weight_collected,
|
|
77
|
+
COALESCE(SUM(today_weight_dispatch) OVER (ORDER BY date_day ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 0) AS to_date_weight_dispatch,
|
|
78
|
+
prev_bunch_bal_in_field + today_bunch_harvest AS today_bunch_in_field,
|
|
79
|
+
prev_bunch_bal_in_field + today_bunch_harvest + today_bunch_collected AS today_bunch_bal_in_field,
|
|
80
|
+
prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch AS today_weight_bal_in_ramp
|
|
81
|
+
FROM (
|
|
82
|
+
SELECT
|
|
83
|
+
EXTRACT(DAY FROM md.dateDay) AS date_day,
|
|
84
|
+
COALESCE(
|
|
85
|
+
(SELECT SUM(today_field_bunches)
|
|
86
|
+
FROM temp_records t2
|
|
87
|
+
WHERE transaction_date::timestamp < md.dateDay
|
|
88
|
+
AND transaction_date BETWEEN $1 AND $2
|
|
89
|
+
), 0
|
|
90
|
+
) AS prev_bunch_bal_in_field,
|
|
91
|
+
COALESCE(
|
|
92
|
+
(SELECT SUM(today_ramp_weight)
|
|
93
|
+
FROM temp_records t2
|
|
94
|
+
WHERE transaction_date::timestamp < md.dateDay
|
|
95
|
+
AND transaction_date BETWEEN $1 AND $2
|
|
96
|
+
), 0
|
|
97
|
+
) AS prev_weight_bal_in_ramp,
|
|
98
|
+
COALESCE(today_bunch_harvest, 0) AS today_bunch_harvest,
|
|
99
|
+
COALESCE(today_bunch_collected, 0) AS today_bunch_collected,
|
|
100
|
+
COALESCE(today_ramp_weight_collected, 0) AS today_ramp_weight_collected,
|
|
101
|
+
COALESCE(
|
|
102
|
+
(SELECT SUM(
|
|
103
|
+
CASE
|
|
104
|
+
WHEN rbh.transaction_type = 'DISPATCH' AND rbh.weight < 0 THEN ABS(rbh.weight)
|
|
105
|
+
WHEN rbh.transaction_type IN ('REVERSE_DISPATCH', 'TONNAGE_VARIANCE') THEN ABS(rbh.weight)
|
|
106
|
+
ELSE 0
|
|
107
|
+
END
|
|
108
|
+
)
|
|
109
|
+
FROM ramp_block_histories rbh
|
|
110
|
+
INNER JOIN temp_blocks blk ON blk.id = rbh.block_id
|
|
111
|
+
WHERE rbh.transaction_date::timestamp = md.dateDay
|
|
112
|
+
AND rbh.transaction_type IN ('DISPATCH', 'REVERSE_DISPATCH', 'TONNAGE_VARIANCE')
|
|
113
|
+
), 0
|
|
114
|
+
) AS today_weight_dispatch,
|
|
115
|
+
COALESCE(tot.today_out_turn, 0) AS today_out_turn,
|
|
116
|
+
COALESCE(SUM(tot.today_out_turn) OVER (ORDER BY dateDay ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 0) AS to_date_out_turn,
|
|
117
|
+
(SELECT name FROM blocks b2 WHERE id = $3) AS block,
|
|
118
|
+
COALESCE(thr.today_harvesting_round, 0) AS today_harvesting_round,
|
|
119
|
+
COALESCE(thr.today_hectare_cover, 0) AS today_hectare_cover
|
|
120
|
+
FROM
|
|
121
|
+
(SELECT generate_series((DATE '${fromDateString}')::timestamp, (DATE '${toDateString}')::timestamp, INTERVAL '1 day')::date AS dateDay) AS md
|
|
122
|
+
LEFT JOIN (
|
|
123
|
+
SELECT *
|
|
124
|
+
FROM temp_records trx
|
|
125
|
+
WHERE transaction_date BETWEEN $1 AND $2
|
|
126
|
+
ORDER BY transaction_date
|
|
127
|
+
) AS dt ON dt.transaction_date::date = md.dateDay
|
|
128
|
+
LEFT JOIN (
|
|
129
|
+
SELECT
|
|
130
|
+
SUM(harvesting_round) AS today_harvesting_round,
|
|
131
|
+
SUM(coverage) AS today_hectare_cover,
|
|
132
|
+
harvest_date
|
|
133
|
+
FROM daily_harvests dh
|
|
134
|
+
INNER JOIN temp_blocks blk ON blk.id = dh.block_id
|
|
135
|
+
WHERE harvest_date BETWEEN $1 AND $2
|
|
136
|
+
AND dh.deleted_at IS NULL
|
|
137
|
+
GROUP BY blk.block_id, harvest_date
|
|
138
|
+
) AS thr ON thr.harvest_date::date = md.dateDay
|
|
139
|
+
LEFT JOIN (
|
|
140
|
+
SELECT
|
|
141
|
+
COUNT(*) AS today_out_turn,
|
|
142
|
+
dh.harvest_date
|
|
143
|
+
FROM daily_harvest_details dhd
|
|
144
|
+
INNER JOIN daily_harvests dh ON dh.id = dhd.daily_harvest_id
|
|
145
|
+
INNER JOIN temp_blocks blk ON blk.id = dh.block_id
|
|
146
|
+
WHERE dh.harvest_date BETWEEN $1 AND $2
|
|
147
|
+
AND dhd.deleted_at IS NULL
|
|
148
|
+
GROUP BY blk.block_id, dh.harvest_date
|
|
149
|
+
) AS tot ON tot.harvest_date::date = md.dateDay
|
|
150
|
+
) dt
|
|
151
|
+
);`, [fromDateString, toDateString, block.id]);
|
|
152
|
+
const result = await tx.query(`
|
|
153
|
+
select * from temp_daily_production_data dt
|
|
154
|
+
`);
|
|
155
|
+
const total = await tx.query(`
|
|
156
|
+
select count(*) from temp_daily_production_data
|
|
157
|
+
`);
|
|
158
|
+
let items = result.map(itm => {
|
|
159
|
+
return {
|
|
160
|
+
block: itm.block,
|
|
161
|
+
dateDay: itm.date_day,
|
|
162
|
+
diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),
|
|
163
|
+
prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),
|
|
164
|
+
prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),
|
|
165
|
+
toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),
|
|
166
|
+
toDateOutTurn: itm.to_date_out_turn,
|
|
167
|
+
toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),
|
|
168
|
+
todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),
|
|
169
|
+
todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),
|
|
170
|
+
todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),
|
|
171
|
+
todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),
|
|
172
|
+
todayHarvestingRound: itm.today_harvesting_round,
|
|
173
|
+
todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),
|
|
174
|
+
todayOutTurn: itm.today_out_turn,
|
|
175
|
+
todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),
|
|
176
|
+
todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
// updateAllData()
|
|
180
|
+
return { items, total: total[0].count };
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
// async function updateAllData() {
|
|
188
|
+
// await getManager().transaction(async txMgr => {
|
|
189
|
+
// let data = await txMgr.query(`
|
|
190
|
+
// SELECT * FROM (
|
|
191
|
+
// SELECT uuid_generate_v4() AS id, DATE(dd.dispatch_at)::varchar AS transaction_date, 'DISPATCH' AS transaction_type, dd.dispatch_at AS created_at, dd.dispatch_at AS updated_at,
|
|
192
|
+
// ddd.collected_ramp_weight AS dispatch_weight, '980f20a0-747c-4d04-a870-97a09f6ba807' AS domain_id, ddd.ramp_id, '0933baea-e099-494b-9791-3dfe805731f0' AS creator_id, '0933baea-e099-494b-9791-3dfe805731f0' AS updater_id,
|
|
193
|
+
// dd.id as daily_dispatch_id
|
|
194
|
+
// FROM daily_dispatch_details ddd
|
|
195
|
+
// INNER JOIN daily_dispatches dd ON dd.id = ddd.daily_dispatch_id
|
|
196
|
+
// WHERE dd.dispatch_at >='2023-07-01 00:00:00.000'
|
|
197
|
+
// AND dd.deleted_at IS null
|
|
198
|
+
// ) src ORDER BY src.ramp_id, src.transaction_date
|
|
199
|
+
// `)
|
|
200
|
+
// // await data.forEach(async dt => {
|
|
201
|
+
// for (let dtIdx = 0; dtIdx < data.length; dtIdx++) {
|
|
202
|
+
// const dt = data[dtIdx];
|
|
203
|
+
// let rampBlockHistory = await txMgr.query(`
|
|
204
|
+
// SELECT * FROM (
|
|
205
|
+
// SELECT *, ROW_NUMBER () OVER (PARTITION BY ramp_id, block_id ORDER BY transaction_date desc, transaction_type) AS rn FROM ramp_block_histories
|
|
206
|
+
// WHERE ramp_id =$1 AND transaction_date <= $2
|
|
207
|
+
// ) foo WHERE rn = 1
|
|
208
|
+
// `, [dt.ramp_id, dt.transaction_date])
|
|
209
|
+
// let totalRampWeight: number = rampBlockHistory.reduce((total, currentValue) => {
|
|
210
|
+
// total += currentValue.previous_weight + currentValue.weight
|
|
211
|
+
// return total
|
|
212
|
+
// }, 0)
|
|
213
|
+
// for (let index = 0; index < rampBlockHistory.length; index++) {
|
|
214
|
+
// const dt2 = rampBlockHistory[index];
|
|
215
|
+
// let currentRampBlockWeight = dt2.previous_weight + dt2.weight
|
|
216
|
+
// let percentage = parseFloat((currentRampBlockWeight / totalRampWeight).toFixed(4))
|
|
217
|
+
// let weight = (-dt.dispatch_weight * percentage).toFixed(4)
|
|
218
|
+
// // insert into ramp_block_histories (id,transaction_type, creator_id, updater_id, transaction_date, created_at, updated_at, weight, domain_id, block_id, ramp_id)
|
|
219
|
+
// let processedData = await txMgr.query(`
|
|
220
|
+
// insert into ramp_block_histories (id, transaction_type, creator_id, updater_id, transaction_date, created_at, updated_at, domain_id, ramp_id, weight, previous_weight, current_weight, block_id, daily_dispatch_id)
|
|
221
|
+
// SELECT uuid_generate_v4() AS id, 'DISPATCH' AS transaction_type,
|
|
222
|
+
// '0933baea-e099-494b-9791-3dfe805731f0' AS creator_id, '0933baea-e099-494b-9791-3dfe805731f0' AS updater_id,
|
|
223
|
+
// $1 AS transaction_date, $2 AS created_at, $3 AS updated_at,
|
|
224
|
+
// $4 AS domain_id, $5 AS ramp_id,
|
|
225
|
+
// $6 AS weight,
|
|
226
|
+
// $7 AS previous_weight,
|
|
227
|
+
// $8 AS current_weight,
|
|
228
|
+
// $9 AS block_id,
|
|
229
|
+
// $10 AS daily_dispatch_id
|
|
230
|
+
// `, [dt.transaction_date, dt2.created_at, dt2.updated_at, dt.domain_id, dt.ramp_id, parseFloat(weight), parseFloat(currentRampBlockWeight), parseFloat(currentRampBlockWeight) + parseFloat(weight), dt2.block_id, dt.daily_dispatch_id])
|
|
231
|
+
// // await txMgr.query(`
|
|
232
|
+
// // SELECT * FROM (
|
|
233
|
+
// // SELECT *, ROW_NUMBER () OVER (PARTITION BY ramp_id, block_id ORDER BY transaction_date desc) AS rn FROM ramp_block_histories
|
|
234
|
+
// // WHERE ramp_id =$1 AND transaction_date <= $2
|
|
235
|
+
// // ) foo WHERE rn = 1
|
|
236
|
+
// // `, [dt.ramp_id, dt.transaction_date]
|
|
237
|
+
// // )
|
|
238
|
+
// let x = dt2
|
|
239
|
+
// }
|
|
240
|
+
// let x = rampBlockHistory
|
|
241
|
+
// };
|
|
242
|
+
// })
|
|
243
|
+
// }
|
|
244
|
+
//# sourceMappingURL=daily-production-reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daily-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/daily-production-reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dailyStaffHarvestReports = void 0;
|
|
4
|
+
const entities_1 = require("../../../entities");
|
|
5
|
+
exports.dailyStaffHarvestReports = {
|
|
6
|
+
async dailyStaffHarvestReports(_, params, context) {
|
|
7
|
+
try {
|
|
8
|
+
const { tx } = context.state;
|
|
9
|
+
let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0]);
|
|
10
|
+
let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1]);
|
|
11
|
+
let fromDate = new Date(year, month - 1, 1);
|
|
12
|
+
let toDate = new Date(year, month, 1);
|
|
13
|
+
toDate.setDate(toDate.getDate() - 1);
|
|
14
|
+
let fromDateString = [
|
|
15
|
+
fromDate.getFullYear().toString(),
|
|
16
|
+
String(fromDate.getMonth() + 1).padStart(2, '0'),
|
|
17
|
+
'01'
|
|
18
|
+
].join('-');
|
|
19
|
+
let toDateString = [
|
|
20
|
+
toDate.getFullYear().toString(),
|
|
21
|
+
String(toDate.getMonth() + 1).padStart(2, '0'),
|
|
22
|
+
String(toDate.getDate()).padStart(2, '0')
|
|
23
|
+
].join('-');
|
|
24
|
+
const block = await tx
|
|
25
|
+
.getRepository(entities_1.Block)
|
|
26
|
+
.findOneOrFail({ where: { id: params.filters.filter(x => x.name == 'block')[0].value } });
|
|
27
|
+
await tx.query(`
|
|
28
|
+
CREATE TEMP TABLE temp_blocks on commit drop AS (
|
|
29
|
+
WITH RECURSIVE b AS (
|
|
30
|
+
SELECT $1::uuid as block_id, * FROM blocks b
|
|
31
|
+
WHERE id = $1::uuid
|
|
32
|
+
AND b.deleted_at IS null
|
|
33
|
+
UNION ALL
|
|
34
|
+
SELECT $1::uuid as block_id, cb.* FROM blocks cb
|
|
35
|
+
INNER JOIN b ON b.id = cb.parent_block_id
|
|
36
|
+
WHERE cb.deleted_at IS null
|
|
37
|
+
)
|
|
38
|
+
SELECT * FROM b
|
|
39
|
+
);
|
|
40
|
+
`, [block.id]);
|
|
41
|
+
await tx.query(`
|
|
42
|
+
create temp table temp_daily_staff_harvest_data on commit drop as (
|
|
43
|
+
select "harvestDate"::varchar as "harvestDate", "blockName"::varchar, "staffName"::varchar, sum("totalBunchHarvested")::varchar as "totalBunchHarvested" from (
|
|
44
|
+
select dh.harvest_date::date as "harvestDate", b2."name" as "blockName", os."name" as "staffName",
|
|
45
|
+
dhd.total_bunch_harvested as "totalBunchHarvested"
|
|
46
|
+
from daily_harvest_details dhd
|
|
47
|
+
inner join daily_harvests dh on dh.id = dhd.daily_harvest_id
|
|
48
|
+
inner join temp_blocks blk on blk.id = dh.block_id
|
|
49
|
+
inner join organization_staffs os on os.id = dhd.organization_staff_id
|
|
50
|
+
inner join blocks b2 on b2.id = blk.block_id
|
|
51
|
+
where dh.harvest_date::date between $1 and $2
|
|
52
|
+
and dhd.deleted_at is null
|
|
53
|
+
) as dt
|
|
54
|
+
group by "harvestDate", "blockName", "staffName"
|
|
55
|
+
order by "staffName", "harvestDate"
|
|
56
|
+
)
|
|
57
|
+
`, [fromDateString, toDateString]);
|
|
58
|
+
const result = await tx.query(`
|
|
59
|
+
select * from temp_daily_staff_harvest_data dt
|
|
60
|
+
`);
|
|
61
|
+
const total = await tx.query(`
|
|
62
|
+
select count(*) from temp_daily_staff_harvest_data
|
|
63
|
+
`);
|
|
64
|
+
return { items: result, total: total[0].count };
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=daily-staff-harvest-reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daily-staff-harvest-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/daily-staff-harvest-reports.ts"],"names":[],"mappings":";;;AAIA,gDAAyC;AAE5B,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACpE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;YAEnD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1F,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,MAAM,KAAK,GAAG,MAAM,EAAE;iBACnB,aAAa,CAAC,gBAAK,CAAC;iBACpB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAE3F,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;OAaD,EACC,CAAC,KAAK,CAAC,EAAE,CAAC,CACX,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;WAgBG,EACH,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAElC,CAAC,CAAA;YAEF,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAEjC,CAAC,CAAA;YAEF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportResolver = void 0;
|
|
4
|
+
const daily_production_reports_1 = require("./daily-production-reports");
|
|
5
|
+
const monthly_production_reports_1 = require("./monthly-production-reports");
|
|
6
|
+
const monthly_dispatch_summary_reports_1 = require("./monthly-dispatch-summary-reports");
|
|
7
|
+
const yearly_production_reports_1 = require("./yearly-production-reports");
|
|
8
|
+
const daily_staff_harvest_reports_1 = require("./daily-staff-harvest-reports");
|
|
9
|
+
const monthly_block_dispatch_reports_1 = require("./monthly-block-dispatch-reports");
|
|
10
|
+
const monthly_ffb_sale_reports_1 = require("./monthly-ffb-sale-reports");
|
|
11
|
+
const daily_ffb_dispatch_production_reports_1 = require("./daily-ffb-dispatch-production-reports");
|
|
12
|
+
exports.ReportResolver = {
|
|
13
|
+
Query: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, daily_production_reports_1.dailyProductionReports), monthly_production_reports_1.monthlyProductionReports), monthly_dispatch_summary_reports_1.monthlyDispatchSummaryReports), yearly_production_reports_1.yearlyProductionReports), daily_staff_harvest_reports_1.dailyStaffHarvestReports), monthly_block_dispatch_reports_1.monthlyBlockDispatchReports), monthly_ffb_sale_reports_1.monthlyFfbSaleReports), daily_ffb_dispatch_production_reports_1.dailyFfbDispatchProductionReports),
|
|
14
|
+
Mutation: {}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/index.ts"],"names":[],"mappings":";;;AAAA,yEAAmE;AACnE,6EAAuE;AACvE,yFAAkF;AAClF,2EAAqE;AACrE,+EAAwE;AACxE,qFAA8E;AAC9E,yEAAkE;AAClE,mGAA2F;AAE9E,QAAA,cAAc,GAAG;IAC5B,KAAK,sHACA,iDAAsB,GACtB,qDAAwB,GACxB,gEAA6B,GAC7B,mDAAuB,GACvB,sDAAwB,GACxB,4DAA2B,GAC3B,gDAAqB,GACrB,yEAAiC,CACrC;IACD,QAAQ,EAAE,EAAE;CACb,CAAA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.monthlyBlockDispatchReports = void 0;
|
|
4
|
+
const entities_1 = require("../../../entities");
|
|
5
|
+
exports.monthlyBlockDispatchReports = {
|
|
6
|
+
async monthlyBlockDispatchReports(_, params, context) {
|
|
7
|
+
try {
|
|
8
|
+
const { domain, tx } = context.state;
|
|
9
|
+
let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0]);
|
|
10
|
+
let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1]);
|
|
11
|
+
let fromDate = new Date(year, month - 1, 1);
|
|
12
|
+
let toDate = new Date(year, month, 1);
|
|
13
|
+
toDate.setDate(toDate.getDate() - 1);
|
|
14
|
+
let fromDateString = [
|
|
15
|
+
fromDate.getFullYear().toString(),
|
|
16
|
+
String(fromDate.getMonth() + 1).padStart(2, '0'),
|
|
17
|
+
'01'
|
|
18
|
+
].join('-');
|
|
19
|
+
let toDateString = [
|
|
20
|
+
toDate.getFullYear().toString(),
|
|
21
|
+
String(toDate.getMonth() + 1).padStart(2, '0'),
|
|
22
|
+
String(toDate.getDate()).padStart(2, '0')
|
|
23
|
+
].join('-');
|
|
24
|
+
let blocks = await tx.getRepository(entities_1.Block).query(`
|
|
25
|
+
SELECT b.id, b.name FROM ramps r
|
|
26
|
+
INNER JOIN blocks b ON b.id = r.block_id
|
|
27
|
+
WHERE b.deleted_at IS NULL
|
|
28
|
+
AND r.domain_id = $1
|
|
29
|
+
GROUP BY b.id, b.name
|
|
30
|
+
`, [domain.id]);
|
|
31
|
+
// -- WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp
|
|
32
|
+
// [fromDateString, toDateString]
|
|
33
|
+
await tx.query(`create extension if not exists tablefunc`);
|
|
34
|
+
await tx.query(`
|
|
35
|
+
CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (
|
|
36
|
+
SELECT dd.id, b.name AS block_name,
|
|
37
|
+
COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0) AS weight
|
|
38
|
+
FROM daily_dispatches dd
|
|
39
|
+
INNER JOIN daily_dispatch_details ddd ON ddd.daily_dispatch_id = dd.id
|
|
40
|
+
INNER JOIN ramps r ON r.id = ddd.ramp_id
|
|
41
|
+
INNER JOIN blocks b ON b.id = r.block_id
|
|
42
|
+
WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp
|
|
43
|
+
AND dd.deleted_at is null
|
|
44
|
+
AND ddd.deleted_at is null
|
|
45
|
+
)
|
|
46
|
+
`, [fromDateString, toDateString]);
|
|
47
|
+
await tx.query(`
|
|
48
|
+
CREATE TEMP TABLE pivot_block_dispatch ON COMMIT DROP AS (
|
|
49
|
+
SELECT * FROM crosstab(
|
|
50
|
+
$$SELECT rbd.id, rbd.block_name, round(rbd.weight, 2 )::varchar FROM raw_block_dispatch rbd$$,
|
|
51
|
+
$$SELECT b.name FROM ramps r INNER JOIN blocks b ON b.id = r.block_id WHERE r.deleted_at IS NULL AND r.domain_id = '${domain.id}' GROUP BY b.id, b.name$$
|
|
52
|
+
) AS ("id" uuid, ${blocks.map(block => `"${block.name}" varchar`).join(',')})
|
|
53
|
+
);
|
|
54
|
+
`);
|
|
55
|
+
await tx.query(`
|
|
56
|
+
CREATE TEMP TABLE temp_monthly_production_data ON COMMIT DROP AS (
|
|
57
|
+
SELECT
|
|
58
|
+
ROW_NUMBER() OVER(
|
|
59
|
+
PARTITION BY dd.dispatch_at::date
|
|
60
|
+
ORDER BY dd.dispatch_at
|
|
61
|
+
) as rn
|
|
62
|
+
, dd.id, COALESCE(c.name, 'UNKNOWN') AS "dispatchTo"
|
|
63
|
+
, dd.transport_no as "lorryNo"
|
|
64
|
+
, dd.driver_identification as "driverIdentification"
|
|
65
|
+
, TO_CHAR(dd.dispatch_at:: DATE, 'dd/mm/yyyy') as "date"
|
|
66
|
+
, row_to_json((SELECT d FROM (SELECT ${blocks
|
|
67
|
+
.map(block => `pbd."${block.name}"`)
|
|
68
|
+
.join(',')}) d))::varchar as "blockData"
|
|
69
|
+
, (SELECT sum(weight) FROM raw_block_dispatch rbd WHERE rbd.id = dd.id) AS "today"
|
|
70
|
+
FROM daily_dispatches dd
|
|
71
|
+
INNER JOIN pivot_block_dispatch pbd ON pbd.id = dd.id
|
|
72
|
+
LEFT JOIN organizations c ON c.id = dd.dispatch_to_id
|
|
73
|
+
);
|
|
74
|
+
`);
|
|
75
|
+
const result = await tx.query(`
|
|
76
|
+
select "id", "dispatchTo", "lorryNo", "driverIdentification",
|
|
77
|
+
CASE WHEN "rn" = 1 THEN "date" ELSE '' END AS "date", "blockData", "today",
|
|
78
|
+
coalesce(sum(today) over (order by date asc rows between unbounded preceding and current row), 0) as "todate"
|
|
79
|
+
from temp_monthly_production_data dt
|
|
80
|
+
`);
|
|
81
|
+
const total = await tx.query(`
|
|
82
|
+
select count(*) from temp_monthly_production_data
|
|
83
|
+
`);
|
|
84
|
+
return {
|
|
85
|
+
items: result.map(itm => {
|
|
86
|
+
return Object.assign({}, itm);
|
|
87
|
+
}),
|
|
88
|
+
total: total[0].count
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=monthly-block-dispatch-reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monthly-block-dispatch-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-block-dispatch-reports.ts"],"names":[],"mappings":"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"}
|