@things-factory/operato-wms 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/graphql/index.js +33 -0
- package/dist-server/graphql/index.js.map +1 -0
- package/dist-server/graphql/resolvers/board-setting/board-settings.js +78 -0
- package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -0
- package/dist-server/graphql/resolvers/board-setting/index.js +6 -0
- package/dist-server/graphql/resolvers/board-setting/index.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +87 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +138 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +124 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +159 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +90 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +34 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/elccl/index.js +11 -0
- package/dist-server/graphql/resolvers/custom/elccl/index.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/kimeda/index.js +6 -0
- package/dist-server/graphql/resolvers/custom/kimeda/index.js.map +1 -0
- package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +40 -0
- package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +36 -0
- package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +24 -0
- package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +24 -0
- package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/index.js +12 -0
- package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +65 -0
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +22 -0
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +36 -0
- package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +1 -0
- package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +56 -0
- package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +58 -0
- package/dist-server/graphql/resolvers/index.js.map +1 -0
- package/dist-server/graphql/resolvers/inventory-comparison/index.js +6 -0
- package/dist-server/graphql/resolvers/inventory-comparison/index.js.map +1 -0
- package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js +78 -0
- package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +1 -0
- package/dist-server/graphql/resolvers/opa-menu/index.js +6 -0
- package/dist-server/graphql/resolvers/opa-menu/index.js.map +1 -0
- package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +73 -0
- package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +1 -0
- package/dist-server/graphql/resolvers/other/add-release-good-products.js +309 -0
- package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -0
- package/dist-server/graphql/resolvers/other/index.js +8 -0
- package/dist-server/graphql/resolvers/other/index.js.map +1 -0
- package/dist-server/graphql/resolvers/other/page-settings.js +135 -0
- package/dist-server/graphql/resolvers/other/page-settings.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/complete-load.js +162 -0
- package/dist-server/graphql/resolvers/outbound/complete-load.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +148 -0
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js +114 -0
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/get-delivery-orders.js +46 -0
- package/dist-server/graphql/resolvers/outbound/get-delivery-orders.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/get-loading-task.js +100 -0
- package/dist-server/graphql/resolvers/outbound/get-loading-task.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/index.js +17 -0
- package/dist-server/graphql/resolvers/outbound/index.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/load-by-qty.js +121 -0
- package/dist-server/graphql/resolvers/outbound/load-by-qty.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +158 -0
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/my-loading-assignment-status.js +32 -0
- package/dist-server/graphql/resolvers/outbound/my-loading-assignment-status.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/sort-item.js +66 -0
- package/dist-server/graphql/resolvers/outbound/sort-item.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/undo-load.js +72 -0
- package/dist-server/graphql/resolvers/outbound/undo-load.js.map +1 -0
- package/dist-server/graphql/resolvers/outbound/warehouse-return.js +101 -0
- package/dist-server/graphql/resolvers/outbound/warehouse-return.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/analysis-picking-packing-report.js +128 -0
- package/dist-server/graphql/resolvers/reports/analysis-picking-packing-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/billing-module-report.js +355 -0
- package/dist-server/graphql/resolvers/reports/billing-module-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/costing-report.js +166 -0
- package/dist-server/graphql/resolvers/reports/costing-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/cycle-count-report.js +311 -0
- package/dist-server/graphql/resolvers/reports/cycle-count-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +218 -0
- package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +140 -0
- package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/index.js +21 -0
- package/dist-server/graphql/resolvers/reports/index.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/manifest-report.js +98 -0
- package/dist-server/graphql/resolvers/reports/manifest-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/non-loaded-inventory-report.js +143 -0
- package/dist-server/graphql/resolvers/reports/non-loaded-inventory-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +290 -0
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +143 -0
- package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/pg-udf-query.js +70 -0
- package/dist-server/graphql/resolvers/reports/pg-udf-query.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/product-label-report.js +57 -0
- package/dist-server/graphql/resolvers/reports/product-label-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/release-inventory-report.js +180 -0
- package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/shortage-report.js +165 -0
- package/dist-server/graphql/resolvers/reports/shortage-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/tote-loading-qc-report.js +129 -0
- package/dist-server/graphql/resolvers/reports/tote-loading-qc-report.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/vas-report.js +386 -0
- package/dist-server/graphql/resolvers/reports/vas-report.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
- package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +24 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +6 -0
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +1 -0
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +97 -0
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/activate-zone-worksheet.js +91 -0
- package/dist-server/graphql/resolvers/zone-worksheet/activate-zone-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/assign-sorter.js +36 -0
- package/dist-server/graphql/resolvers/zone-worksheet/assign-sorter.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/generate-zone-worksheet.js +106 -0
- package/dist-server/graphql/resolvers/zone-worksheet/generate-zone-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/get-zone-picking-task.js +108 -0
- package/dist-server/graphql/resolvers/zone-worksheet/get-zone-picking-task.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/index.js +12 -0
- package/dist-server/graphql/resolvers/zone-worksheet/index.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +346 -0
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js +146 -0
- package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js.map +1 -0
- package/dist-server/graphql/types/board-setting/board-setting.js +16 -0
- package/dist-server/graphql/types/board-setting/board-setting.js.map +1 -0
- package/dist-server/graphql/types/board-setting/index.js +9 -0
- package/dist-server/graphql/types/board-setting/index.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js +14 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js +30 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js +14 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js +25 -0
- package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +22 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js +14 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js +23 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js +22 -0
- package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/index.js +30 -0
- package/dist-server/graphql/types/custom/elccl/index.js.map +1 -0
- package/dist-server/graphql/types/custom/kimeda/index.js +7 -0
- package/dist-server/graphql/types/custom/kimeda/index.js.map +1 -0
- package/dist-server/graphql/types/dashboard/index.js +17 -0
- package/dist-server/graphql/types/dashboard/index.js.map +1 -0
- package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +16 -0
- package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +1 -0
- package/dist-server/graphql/types/dashboard/inventory-expiry-status.js +14 -0
- package/dist-server/graphql/types/dashboard/inventory-expiry-status.js.map +1 -0
- package/dist-server/graphql/types/dashboard/order-status-counter.js +14 -0
- package/dist-server/graphql/types/dashboard/order-status-counter.js.map +1 -0
- package/dist-server/graphql/types/index.js +70 -0
- package/dist-server/graphql/types/index.js.map +1 -0
- package/dist-server/graphql/types/inventory-comparison/index.js +13 -0
- package/dist-server/graphql/types/inventory-comparison/index.js.map +1 -0
- package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js +14 -0
- package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js.map +1 -0
- package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js +18 -0
- package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js.map +1 -0
- package/dist-server/graphql/types/opa-menu/index.js +9 -0
- package/dist-server/graphql/types/opa-menu/index.js.map +1 -0
- package/dist-server/graphql/types/opa-menu/opa-menu.js +45 -0
- package/dist-server/graphql/types/opa-menu/opa-menu.js.map +1 -0
- package/dist-server/graphql/types/other/index.js +21 -0
- package/dist-server/graphql/types/other/index.js.map +1 -0
- package/dist-server/graphql/types/other/page-setting.js +37 -0
- package/dist-server/graphql/types/other/page-setting.js.map +1 -0
- package/dist-server/graphql/types/outbound/delivery-order-info-list.js +14 -0
- package/dist-server/graphql/types/outbound/delivery-order-info-list.js.map +1 -0
- package/dist-server/graphql/types/outbound/index.js +24 -0
- package/dist-server/graphql/types/outbound/index.js.map +1 -0
- package/dist-server/graphql/types/outbound/loading-assignment.js +15 -0
- package/dist-server/graphql/types/outbound/loading-assignment.js.map +1 -0
- package/dist-server/graphql/types/outbound/loading-worksheet-type.js +25 -0
- package/dist-server/graphql/types/outbound/loading-worksheet-type.js.map +1 -0
- package/dist-server/graphql/types/reports/analysis-picking-packing-report-list.js +14 -0
- package/dist-server/graphql/types/reports/analysis-picking-packing-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/analysis-picking-packing-report.js +18 -0
- package/dist-server/graphql/types/reports/analysis-picking-packing-report.js.map +1 -0
- package/dist-server/graphql/types/reports/billing-module-report-list.js +14 -0
- package/dist-server/graphql/types/reports/billing-module-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/billing-module-report.js +15 -0
- package/dist-server/graphql/types/reports/billing-module-report.js.map +1 -0
- package/dist-server/graphql/types/reports/costing-report-list.js +14 -0
- package/dist-server/graphql/types/reports/costing-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/costing-report.js +19 -0
- package/dist-server/graphql/types/reports/costing-report.js.map +1 -0
- package/dist-server/graphql/types/reports/cycle-count-report-list.js +14 -0
- package/dist-server/graphql/types/reports/cycle-count-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/cycle-count-report.js +35 -0
- package/dist-server/graphql/types/reports/cycle-count-report.js.map +1 -0
- package/dist-server/graphql/types/reports/inbound-order-details-report-list.js +14 -0
- package/dist-server/graphql/types/reports/inbound-order-details-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/inbound-order-details-report.js +60 -0
- package/dist-server/graphql/types/reports/inbound-order-details-report.js.map +1 -0
- package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js +14 -0
- package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/inbound-serial-number-report.js +23 -0
- package/dist-server/graphql/types/reports/inbound-serial-number-report.js.map +1 -0
- package/dist-server/graphql/types/reports/index.js +89 -0
- package/dist-server/graphql/types/reports/index.js.map +1 -0
- package/dist-server/graphql/types/reports/loading-qc-report-list.js +14 -0
- package/dist-server/graphql/types/reports/loading-qc-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/loading-qc-report.js +24 -0
- package/dist-server/graphql/types/reports/loading-qc-report.js.map +1 -0
- package/dist-server/graphql/types/reports/manifest-report-list.js +14 -0
- package/dist-server/graphql/types/reports/manifest-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/manifest-report-type.js +23 -0
- package/dist-server/graphql/types/reports/manifest-report-type.js.map +1 -0
- package/dist-server/graphql/types/reports/non-loaded-inventory-report-list.js +14 -0
- package/dist-server/graphql/types/reports/non-loaded-inventory-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/non-loaded-inventory-report.js +23 -0
- package/dist-server/graphql/types/reports/non-loaded-inventory-report.js.map +1 -0
- package/dist-server/graphql/types/reports/outbound-order-details-report-list.js +14 -0
- package/dist-server/graphql/types/reports/outbound-order-details-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/outbound-order-details-report.js +79 -0
- package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -0
- package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js +14 -0
- package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/outbound-serial-number-report.js +25 -0
- package/dist-server/graphql/types/reports/outbound-serial-number-report.js.map +1 -0
- package/dist-server/graphql/types/reports/pg-udf-query-list.js +13 -0
- package/dist-server/graphql/types/reports/pg-udf-query-list.js.map +1 -0
- package/dist-server/graphql/types/reports/product-label-report-list.js +14 -0
- package/dist-server/graphql/types/reports/product-label-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/product-label-report.js +16 -0
- package/dist-server/graphql/types/reports/product-label-report.js.map +1 -0
- package/dist-server/graphql/types/reports/release-inventory-report-list.js +14 -0
- package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/release-inventory-report.js +29 -0
- package/dist-server/graphql/types/reports/release-inventory-report.js.map +1 -0
- package/dist-server/graphql/types/reports/shortage-report-list.js +14 -0
- package/dist-server/graphql/types/reports/shortage-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/shortage-report-type.js +26 -0
- package/dist-server/graphql/types/reports/shortage-report-type.js.map +1 -0
- package/dist-server/graphql/types/reports/vas-report-list.js +20 -0
- package/dist-server/graphql/types/reports/vas-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/vas-report.js +29 -0
- package/dist-server/graphql/types/reports/vas-report.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/index.js +10 -0
- package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +13 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js +13 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
- package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +9 -0
- package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +1 -0
- package/dist-server/graphql/types/zone-worksheet/index.js +22 -0
- package/dist-server/graphql/types/zone-worksheet/index.js.map +1 -0
- package/dist-server/graphql/types/zone-worksheet/zone-picking-worksheet.js +18 -0
- package/dist-server/graphql/types/zone-worksheet/zone-picking-worksheet.js.map +1 -0
- package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview-list.js +13 -0
- package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview-list.js.map +1 -0
- package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview.js +16 -0
- package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview.js.map +1 -0
- package/dist-server/index.js +20 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/migrations/1568858861188-SeedSetting.js +51 -0
- package/dist-server/migrations/1568858861188-SeedSetting.js.map +1 -0
- package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +35 -0
- package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +1 -0
- package/dist-server/migrations/1623381200659-SeedStoringRule.js +33 -0
- package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +1 -0
- package/dist-server/migrations/1687413760311-UpdateProductDetailStockQty.js +36 -0
- package/dist-server/migrations/1687413760311-UpdateProductDetailStockQty.js.map +1 -0
- package/dist-server/migrations/1687415141200-InsertNewProductDetailStock.js +32 -0
- package/dist-server/migrations/1687415141200-InsertNewProductDetailStock.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/opa-app-setting-constants.js +15 -0
- package/dist-server/opa-app-setting-constants.js.map +1 -0
- package/dist-server/routes.js +3 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/utils/index.js +18 -0
- package/dist-server/utils/index.js.map +1 -0
- package/dist-server/utils/report-query-util.js +42 -0
- package/dist-server/utils/report-query-util.js.map +1 -0
- package/package.json +38 -38
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.releaseInventoryReport = void 0;
|
|
4
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.releaseInventoryReport = {
|
|
7
|
+
async releaseInventoryReport(_, params, context) {
|
|
8
|
+
try {
|
|
9
|
+
const { tx } = context.state;
|
|
10
|
+
// let bizplaceFilter = { name: '', operator: '', value: '' }
|
|
11
|
+
// let userFilter = params.filters.find(data => data.name === 'user')
|
|
12
|
+
let order = params.filters.find(data => data.name === 'order');
|
|
13
|
+
let orderDate = params.filters.find(data => data.name === 'orderDate');
|
|
14
|
+
let product = params.filters.find(data => data.name === 'product');
|
|
15
|
+
let bizplace = params.filters.find(data => data.name === 'bizplace');
|
|
16
|
+
let palletId = params.filters.find(data => data.name === 'palletId');
|
|
17
|
+
let cartonId = params.filters.find(data => data.name === 'cartonId');
|
|
18
|
+
// if (userFilter) {
|
|
19
|
+
// const user: User = await tx.getRepository(User).findOne({
|
|
20
|
+
// where: { id: userFilter.value },
|
|
21
|
+
// relations: ['bizplaces']
|
|
22
|
+
// })
|
|
23
|
+
// const bizplace: Bizplace = user.bizplaces[0]
|
|
24
|
+
if (!bizplace)
|
|
25
|
+
throw 'Invalid input';
|
|
26
|
+
// bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }
|
|
27
|
+
// } else {
|
|
28
|
+
// bizplaceFilter = params.filters.find(data => data.name === 'bizplace')
|
|
29
|
+
// }
|
|
30
|
+
// if (!bizplaceFilter) throw 'Invalid input'
|
|
31
|
+
let roFilter = '', ccFilter = '', queryFilter = '';
|
|
32
|
+
if (order) {
|
|
33
|
+
let orderValue = order.value
|
|
34
|
+
.toLowerCase()
|
|
35
|
+
.split(',')
|
|
36
|
+
.map(prod => {
|
|
37
|
+
return "'%" + prod.trim().replace(/'/g, "''") + "%'";
|
|
38
|
+
})
|
|
39
|
+
.join(',');
|
|
40
|
+
roFilter += `AND (
|
|
41
|
+
Lower(od.name) LIKE ANY(ARRAY[${orderValue}])
|
|
42
|
+
OR Lower(od.ref_no) LIKE ANY(ARRAY[${orderValue}])
|
|
43
|
+
OR Lower(od.ref_no_2) LIKE ANY(ARRAY[${orderValue}])
|
|
44
|
+
OR Lower(od.ref_no_3) LIKE ANY(ARRAY[${orderValue}])
|
|
45
|
+
)`;
|
|
46
|
+
ccFilter += `AND (
|
|
47
|
+
Lower(od.name) LIKE ANY(ARRAY[${orderValue}])
|
|
48
|
+
)`;
|
|
49
|
+
}
|
|
50
|
+
if (orderDate) {
|
|
51
|
+
queryFilter += ` AND od.created_at between '${orderDate.value}'::timestamp and '${orderDate.value}'::timestamp + INTERVAL '1 day'`;
|
|
52
|
+
}
|
|
53
|
+
if (palletId) {
|
|
54
|
+
queryFilter += ` AND lower(i.pallet_id) like '%${palletId.value.toLowerCase()}%'`;
|
|
55
|
+
}
|
|
56
|
+
if (cartonId) {
|
|
57
|
+
queryFilter += ` AND lower(i.carton_id) like '%${cartonId.value.toLowerCase()}%'`;
|
|
58
|
+
}
|
|
59
|
+
if (bizplace) {
|
|
60
|
+
queryFilter += ` AND od.bizplace_id = '${bizplace.value}'`;
|
|
61
|
+
}
|
|
62
|
+
const bizplaceObj = await tx.getRepository(biz_base_1.Bizplace).findOne({
|
|
63
|
+
id: bizplace.value
|
|
64
|
+
});
|
|
65
|
+
await (0, utils_1.rawProductsQuery)(tx, params, bizplaceObj);
|
|
66
|
+
// let productQuery = ''
|
|
67
|
+
// if (product) {
|
|
68
|
+
// let productValue = product.value
|
|
69
|
+
// .toLowerCase()
|
|
70
|
+
// .split(',')
|
|
71
|
+
// .map(prod => {
|
|
72
|
+
// return "'%" + prod.trim().replace(/'/g, "''") + "%'"
|
|
73
|
+
// })
|
|
74
|
+
// .join(',')
|
|
75
|
+
// queryFilter = `AND (
|
|
76
|
+
// Lower(p.name) LIKE ANY(ARRAY[${productValue}])
|
|
77
|
+
// OR Lower(p.sku) LIKE ANY(ARRAY[${productValue}])
|
|
78
|
+
// OR Lower(p.description) LIKE ANY(ARRAY[${productValue}])
|
|
79
|
+
// OR Lower(p.brand_sku) LIKE ANY(ARRAY[${productValue}])
|
|
80
|
+
// OR Lower(p.brand) LIKE ANY(ARRAY[${productValue}])
|
|
81
|
+
// )`
|
|
82
|
+
// }
|
|
83
|
+
await tx.query(`
|
|
84
|
+
create temp table data_src on commit drop as (
|
|
85
|
+
select * from (
|
|
86
|
+
select p.sku as product_sku, p.name as product_name, p.description as product_description, p.brand as product_brand,
|
|
87
|
+
b.id as bizplace_id, b.name as bizplace_name, b.description as bizplace_description, i.packing_type,
|
|
88
|
+
oi.release_qty as assigned_qty, oi.release_uom_value as uom_value, i.uom,
|
|
89
|
+
od.name as order_no, od.type::varchar as "type", od.status, od.created_at as order_at, od.release_date,
|
|
90
|
+
i.pallet_id, i.carton_id, i.batch_id, i.batch_id_ref, i.expiration_date, i.manufacture_date, l.name as location_name
|
|
91
|
+
from (
|
|
92
|
+
select inventory_id, release_good_id, sum(release_qty) as release_qty, sum(release_uom_value) as release_uom_value from order_inventories oi
|
|
93
|
+
inner join release_goods od on od.id = oi.release_good_id
|
|
94
|
+
where release_good_id is not null
|
|
95
|
+
and od.status in ('PENDING', 'PENDING_RECEIVE', 'PENDING_CANCEL', 'PENDING_WORKSHEET', 'READY_TO_PICK', 'PICKING')
|
|
96
|
+
and od.domain_id = $1
|
|
97
|
+
and oi.status not in ('REPLACED', 'MISSING')
|
|
98
|
+
group by inventory_id, release_good_id
|
|
99
|
+
) oi
|
|
100
|
+
inner join release_goods od on od.id = oi.release_good_id
|
|
101
|
+
inner join bizplaces b on b.id = od.bizplace_id
|
|
102
|
+
inner join inventories i on i.id = oi.inventory_id
|
|
103
|
+
inner join locations l on l.id = i.location_id
|
|
104
|
+
inner join temp_products p on p.id = i.product_id
|
|
105
|
+
where 1 = 1
|
|
106
|
+
${roFilter}
|
|
107
|
+
${queryFilter}
|
|
108
|
+
union all
|
|
109
|
+
select p.sku as product_sku, p.name as product_name, p.description as product_description, p.brand as product_brand,
|
|
110
|
+
b.id as bizplace_id, b.name as bizplace_name, b.description as bizplace_description, i.packing_type,
|
|
111
|
+
oi.release_qty as assigned_qty, oi.release_uom_value as uom_value, i.uom,
|
|
112
|
+
od.name as order_no, 'cc' as "type", od.status, od.created_at as order_at, od.execution_date,
|
|
113
|
+
i.pallet_id, i.carton_id, i.batch_id, i.batch_id_ref, i.expiration_date, i.manufacture_date, l.name as location_name
|
|
114
|
+
from order_inventories oi
|
|
115
|
+
inner join bizplaces b on b.id = oi.bizplace_id
|
|
116
|
+
inner join inventory_checks od on od.id = oi.inventory_check_id
|
|
117
|
+
inner join inventories i on i.id = oi.inventory_id
|
|
118
|
+
inner join locations l on l.id = i.location_id
|
|
119
|
+
inner join temp_products p on p.id = i.product_id
|
|
120
|
+
where od.status <> 'DONE'
|
|
121
|
+
and od.domain_id = $1
|
|
122
|
+
${ccFilter}
|
|
123
|
+
${queryFilter}
|
|
124
|
+
) src
|
|
125
|
+
order by product_sku, packing_type, order_no
|
|
126
|
+
);
|
|
127
|
+
`, [context.state.domain.id]);
|
|
128
|
+
const total = await tx.query(`
|
|
129
|
+
select count(*) from data_src
|
|
130
|
+
`);
|
|
131
|
+
const result = await tx.query(`
|
|
132
|
+
select * from data_src
|
|
133
|
+
offset $1 limit $2
|
|
134
|
+
`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
|
|
135
|
+
let items = result.map(itm => {
|
|
136
|
+
let data = {
|
|
137
|
+
bizplace: {
|
|
138
|
+
id: itm.bizplace_id,
|
|
139
|
+
name: itm.bizplace_name,
|
|
140
|
+
description: itm.bizplace_description
|
|
141
|
+
},
|
|
142
|
+
product: {
|
|
143
|
+
id: itm.product_id,
|
|
144
|
+
sku: itm.product_sku,
|
|
145
|
+
name: itm.product_name,
|
|
146
|
+
description: itm.product_description,
|
|
147
|
+
brand: itm.product_brand
|
|
148
|
+
},
|
|
149
|
+
location: {
|
|
150
|
+
name: itm.location_name
|
|
151
|
+
},
|
|
152
|
+
packingType: itm.packing_type,
|
|
153
|
+
assignedQty: itm.assigned_qty,
|
|
154
|
+
assignedUomValue: itm.uom_value,
|
|
155
|
+
assignedUom: itm.uom,
|
|
156
|
+
orderNo: itm.order_no,
|
|
157
|
+
type: itm.type,
|
|
158
|
+
status: itm.status,
|
|
159
|
+
orderAt: itm.order_at,
|
|
160
|
+
releaseDate: itm.release_date,
|
|
161
|
+
palletId: itm.pallet_id,
|
|
162
|
+
cartonId: itm.carton_id,
|
|
163
|
+
batchId: itm.batch_id,
|
|
164
|
+
batchIdRef: itm.batch_id_ref,
|
|
165
|
+
expirationDate: itm.expiration_date,
|
|
166
|
+
manufactureDate: itm.manufacture_date
|
|
167
|
+
};
|
|
168
|
+
return data;
|
|
169
|
+
});
|
|
170
|
+
return {
|
|
171
|
+
items,
|
|
172
|
+
total: total[0].count
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=release-inventory-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-inventory-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/release-inventory-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shortageReport = void 0;
|
|
4
|
+
exports.shortageReport = {
|
|
5
|
+
async shortageReport(_, params, context) {
|
|
6
|
+
try {
|
|
7
|
+
const { tx } = context.state;
|
|
8
|
+
let bizplaceFilter = { name: '', operator: '', value: '' };
|
|
9
|
+
let order = params.filters.find(items => items.name === 'order');
|
|
10
|
+
let fromDate = params.filters.find(items => items.name === 'fromDate');
|
|
11
|
+
let toDate = params.filters.find(items => items.name === 'toDate');
|
|
12
|
+
let orderNo = params.filters.find(items => items.name === 'orderNo');
|
|
13
|
+
let product = params.filters.find(items => items.name === 'product');
|
|
14
|
+
let bizplace = params.filters.find(items => items.name === 'bizplace');
|
|
15
|
+
if (!bizplace)
|
|
16
|
+
throw 'Invalid input';
|
|
17
|
+
let roFilter = '', queryFilter = '';
|
|
18
|
+
if (product) {
|
|
19
|
+
let productInfoValue = product.value
|
|
20
|
+
.toLowerCase()
|
|
21
|
+
.split(',')
|
|
22
|
+
.map(prod => {
|
|
23
|
+
return "'%" + prod.trim().replace(/'/g, "''") + "%'";
|
|
24
|
+
})
|
|
25
|
+
.join(',');
|
|
26
|
+
roFilter += `AND (
|
|
27
|
+
Lower(drg.name) LIKE ANY(ARRAY[${productInfoValue}])
|
|
28
|
+
OR Lower(p.sku) LIKE ANY(ARRAY[${productInfoValue}])
|
|
29
|
+
OR Lower(p.sku) LIKE ANY(ARRAY[${productInfoValue}])
|
|
30
|
+
OR Lower(p.sku) LIKE ANY(ARRAY[${productInfoValue}])
|
|
31
|
+
OR Lower(p."name") LIKE ANY(ARRAY[${productInfoValue}])
|
|
32
|
+
OR Lower(p."name") LIKE ANY(ARRAY[${productInfoValue}])
|
|
33
|
+
OR Lower(p."name") LIKE ANY(ARRAY[${productInfoValue}])
|
|
34
|
+
|
|
35
|
+
)`;
|
|
36
|
+
}
|
|
37
|
+
if (orderNo) {
|
|
38
|
+
let orderValue = orderNo.value
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.split(',')
|
|
41
|
+
.map(prod => {
|
|
42
|
+
return "'%" + prod.trim().replace(/'/g, "''") + "%'";
|
|
43
|
+
})
|
|
44
|
+
.join(',');
|
|
45
|
+
roFilter += `AND (
|
|
46
|
+
Lower(drg.name) LIKE ANY(ARRAY[${orderValue}])
|
|
47
|
+
OR Lower(drg.ref_no) LIKE ANY(ARRAY[${orderValue}])
|
|
48
|
+
OR Lower(drg.ref_no_2) LIKE ANY(ARRAY[${orderValue}])
|
|
49
|
+
OR Lower(drg.ref_no_3) LIKE ANY(ARRAY[${orderValue}])
|
|
50
|
+
)`;
|
|
51
|
+
}
|
|
52
|
+
if (bizplace) {
|
|
53
|
+
queryFilter += ` AND drg.bizplace_id = '${bizplace.value}'`;
|
|
54
|
+
}
|
|
55
|
+
if (!bizplaceFilter || !fromDate || !toDate)
|
|
56
|
+
throw 'Invalid input';
|
|
57
|
+
await tx.query(`
|
|
58
|
+
CREATE TEMP TABLE shortage_report ON COMMIT DROP AS (
|
|
59
|
+
SELECT
|
|
60
|
+
b."name" AS "company",
|
|
61
|
+
drg.name AS "order_no",
|
|
62
|
+
drg.ref_no,
|
|
63
|
+
p.sku AS "product_sku",
|
|
64
|
+
p."name" AS "product_name",
|
|
65
|
+
p."description" AS "product_description",
|
|
66
|
+
op.release_qty AS "order_quantity",
|
|
67
|
+
COALESCE(src.av_qty, 0) AS available_qty,
|
|
68
|
+
COALESCE(src.av_qty, 0) - op.release_qty AS "Nett_Stock",
|
|
69
|
+
CONCAT(
|
|
70
|
+
drg.delivery_address_1, ' ',
|
|
71
|
+
drg.delivery_address_2, ' ',
|
|
72
|
+
drg.delivery_address_3, ' ',
|
|
73
|
+
drg.delivery_address_4, ' ',
|
|
74
|
+
drg.delivery_address_5
|
|
75
|
+
) AS "delivery_address",
|
|
76
|
+
drg.state,
|
|
77
|
+
drg.city,
|
|
78
|
+
drg.country,
|
|
79
|
+
drg.created_at
|
|
80
|
+
FROM
|
|
81
|
+
draft_release_goods drg
|
|
82
|
+
INNER JOIN
|
|
83
|
+
bizplaces b ON b.id = drg.bizplace_id
|
|
84
|
+
INNER JOIN
|
|
85
|
+
order_products op ON op.draft_release_good_id = drg.id
|
|
86
|
+
INNER JOIN
|
|
87
|
+
products p ON p.id = op.product_id
|
|
88
|
+
INNER JOIN
|
|
89
|
+
product_details pd ON pd.id = op.product_detail_id
|
|
90
|
+
LEFT JOIN (
|
|
91
|
+
SELECT
|
|
92
|
+
i.domain_id AS "domain_id",
|
|
93
|
+
i.bizplace_id AS "bizplace_id",
|
|
94
|
+
i.product_id AS "product_id",
|
|
95
|
+
i.product_detail_id AS "product_detail_id",
|
|
96
|
+
COALESCE(SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0))) AS "av_qty"
|
|
97
|
+
FROM
|
|
98
|
+
inventories i
|
|
99
|
+
INNER JOIN
|
|
100
|
+
locations l2 ON i.location_id = l2.id AND i.domain_id = l2.domain_id AND l2.type NOT IN ('QUARANTINE', 'RESERVE', 'DAMAGE')
|
|
101
|
+
INNER JOIN
|
|
102
|
+
products p ON p.id = i.product_id
|
|
103
|
+
INNER JOIN
|
|
104
|
+
product_details pd ON pd.id = i.product_detail_id
|
|
105
|
+
WHERE
|
|
106
|
+
i.status = 'STORED'
|
|
107
|
+
AND i.obsolete IS FALSE
|
|
108
|
+
AND i.domain_id = $1
|
|
109
|
+
AND i.bizplace_id = '${bizplace.value}'
|
|
110
|
+
GROUP BY
|
|
111
|
+
i.domain_id,
|
|
112
|
+
i.bizplace_id,
|
|
113
|
+
i.product_id,
|
|
114
|
+
i.product_detail_id
|
|
115
|
+
) src ON op.product_id = src.product_id AND op.product_detail_id = src.product_detail_id
|
|
116
|
+
WHERE
|
|
117
|
+
drg.domain_id = $1
|
|
118
|
+
AND (drg.status = 'DRAFT' OR drg.status = 'PARTIAL RELEASED')
|
|
119
|
+
AND op.status = 'DRAFT'
|
|
120
|
+
AND COALESCE(src.av_qty - op.release_qty, 0) <= 0
|
|
121
|
+
AND op.release_qty != COALESCE(src.av_qty, 0)
|
|
122
|
+
AND drg.created_at >= $2
|
|
123
|
+
AND drg.created_at <= $3
|
|
124
|
+
${roFilter}
|
|
125
|
+
${queryFilter}
|
|
126
|
+
ORDER BY
|
|
127
|
+
drg.created_at DESC
|
|
128
|
+
)
|
|
129
|
+
`, [context.state.domain.id, fromDate.value, toDate.value]);
|
|
130
|
+
const total = await tx.query(`
|
|
131
|
+
select count(*) from shortage_report
|
|
132
|
+
`);
|
|
133
|
+
const result = await tx.query(`
|
|
134
|
+
select * from shortage_report
|
|
135
|
+
offset $1 limit $2
|
|
136
|
+
`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
|
|
137
|
+
let items = result.map(itm => {
|
|
138
|
+
return {
|
|
139
|
+
bizplaceName: itm.company,
|
|
140
|
+
orderNo: itm.order_no,
|
|
141
|
+
refNo: itm.ref_no,
|
|
142
|
+
productSku: itm.product_sku,
|
|
143
|
+
productName: itm.product_name,
|
|
144
|
+
productDescription: itm.product_description,
|
|
145
|
+
orderQty: itm.order_quantity,
|
|
146
|
+
avQty: itm.available_qty,
|
|
147
|
+
nettStock: itm.Nett_Stock,
|
|
148
|
+
deliveryAddress: itm.delivery_address,
|
|
149
|
+
state: itm.state,
|
|
150
|
+
city: itm.city,
|
|
151
|
+
country: itm.country,
|
|
152
|
+
createdAt: itm.created_at
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
return {
|
|
156
|
+
items,
|
|
157
|
+
total: total[0].count
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=shortage-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortage-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/shortage-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadingQcReport = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
exports.loadingQcReport = {
|
|
7
|
+
async loadingQcReport(_, params, context) {
|
|
8
|
+
try {
|
|
9
|
+
const { domain } = context.state;
|
|
10
|
+
let bizplaceFilter = params.filters.find(filter => filter.name === 'bizplace');
|
|
11
|
+
let fromDateFilter = params.filters.find(filter => filter.name === 'fromDate');
|
|
12
|
+
let toDateFilter = params.filters.find(filter => filter.name === 'toDate');
|
|
13
|
+
let routeIdFilter = params.filters.find(filter => filter.name === 'routeId');
|
|
14
|
+
let stopIdFilter = params.filters.find(filter => filter.name === 'stopId');
|
|
15
|
+
let toteIdFilter = params.filters.find(filter => filter.name === 'toteId');
|
|
16
|
+
let orderInfoFilter;
|
|
17
|
+
const orderInfoParamIdx = params.filters.findIndex(param => param.name === 'orderInfo');
|
|
18
|
+
if (orderInfoParamIdx >= 0) {
|
|
19
|
+
orderInfoFilter = params.filters[orderInfoParamIdx].value.toLowerCase().split(',').join('|');
|
|
20
|
+
params.filters.splice(orderInfoParamIdx, 1);
|
|
21
|
+
}
|
|
22
|
+
let toteBoxFilter;
|
|
23
|
+
const toteBoxParamIdx = params.filters.findIndex(param => param.name === 'toteBox');
|
|
24
|
+
if (toteBoxParamIdx >= 0) {
|
|
25
|
+
toteBoxFilter = params.filters[toteBoxParamIdx].value;
|
|
26
|
+
params.filters.splice(toteBoxParamIdx, 1);
|
|
27
|
+
}
|
|
28
|
+
const qb = (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).createQueryBuilder('rg');
|
|
29
|
+
qb.select('bizplace.name', 'bizplaceName')
|
|
30
|
+
.addSelect('rg.name', 'releaseGoodNo')
|
|
31
|
+
.addSelect('rg.attention_to', 'attentionTo')
|
|
32
|
+
.addSelect('rg.route_id', 'routeId')
|
|
33
|
+
.addSelect('rg.stop_id', 'stopId')
|
|
34
|
+
.addSelect('rg.release_date', 'releaseDate')
|
|
35
|
+
.addSelect(`CASE WHEN EXISTS( SELECT 1 FROM order_tote_items oti WHERE oi.id = oti.order_inventory_id)
|
|
36
|
+
THEN
|
|
37
|
+
CASE WHEN EXISTS (SELECT 1 FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = pd.product_id)
|
|
38
|
+
THEN
|
|
39
|
+
CASE WHEN FLOOR(oti.qty / (SELECT pd2.packing_size FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = pd.product_id)) = 0
|
|
40
|
+
THEN NULL
|
|
41
|
+
ELSE FLOOR("oti"."qty" / (SELECT pd2.packing_size FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = "pd"."product_id"))
|
|
42
|
+
END
|
|
43
|
+
ELSE NULL
|
|
44
|
+
END
|
|
45
|
+
ELSE
|
|
46
|
+
CASE WHEN EXISTS (SELECT 1 FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = pd.product_id)
|
|
47
|
+
THEN
|
|
48
|
+
CASE WHEN FLOOR(oi.release_qty / (SELECT pd2.packing_size FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = pd.product_id)) = 0
|
|
49
|
+
THEN NULL
|
|
50
|
+
ELSE FLOOR(oi.release_qty / (SELECT pd2.packing_size FROM product_details pd2 WHERE pd2.packing_type = 'Carton' AND pd2.product_id = pd.product_id))
|
|
51
|
+
END
|
|
52
|
+
ELSE NULL
|
|
53
|
+
END
|
|
54
|
+
END`, 'totalCarton')
|
|
55
|
+
.addSelect('case when oti.qty is null then oi.release_qty else oti.qty end', 'orderQuantity')
|
|
56
|
+
.addSelect('ot.name', 'tote')
|
|
57
|
+
.addSelect('case when ot.tote_id is null then false else true end', 'toteBox')
|
|
58
|
+
.addSelect('ots.name', 'sealId')
|
|
59
|
+
.innerJoin('worksheets', 'w', 'w.release_good_id = rg.id')
|
|
60
|
+
.innerJoin('order_inventories', 'oi', 'oi.release_good_id = rg.id')
|
|
61
|
+
.innerJoin('bizplaces', 'bizplace', 'bizplace.id = rg.bizplace_id')
|
|
62
|
+
.leftJoin('order_tote_items', 'oti', 'oti.order_inventory_id = oi.id')
|
|
63
|
+
.leftJoin('order_totes', 'ot', 'ot.id = oti.order_tote_id')
|
|
64
|
+
.leftJoin('order_tote_seals', 'ots', 'ots.order_tote_id = ot.id')
|
|
65
|
+
.innerJoin('product_details', 'pd', 'oi.product_detail_id = pd.id')
|
|
66
|
+
.where('rg.status = :status', { status: 'LOADING' })
|
|
67
|
+
.andWhere('bizplace.id = :bizplaceId', { bizplaceId: bizplaceFilter.value })
|
|
68
|
+
.andWhere('rg.release_date <= :toDate', { toDate: toDateFilter.value })
|
|
69
|
+
.andWhere('rg.release_date >= :fromDate', { fromDate: fromDateFilter.value })
|
|
70
|
+
.andWhere('w.type = :type', { type: 'LOADING' })
|
|
71
|
+
.andWhere('rg.domain_id = :domainId', { domainId: domain.id })
|
|
72
|
+
.groupBy('bizplace.name')
|
|
73
|
+
.addGroupBy('rg.name ')
|
|
74
|
+
.addGroupBy('rg.route_id')
|
|
75
|
+
.addGroupBy('rg.stop_id')
|
|
76
|
+
.addGroupBy('rg.release_date')
|
|
77
|
+
.addGroupBy('case when oti.qty is null then oi.release_qty else oti.qty end')
|
|
78
|
+
.addGroupBy('ot.name')
|
|
79
|
+
.addGroupBy('case when ot.tote_id is null then false else true end')
|
|
80
|
+
.addGroupBy('ots.name')
|
|
81
|
+
.addGroupBy('rg.attention_to')
|
|
82
|
+
.addGroupBy('oi.inventory_id')
|
|
83
|
+
.addGroupBy('w.created_at')
|
|
84
|
+
.addGroupBy('pd.product_id')
|
|
85
|
+
.addGroupBy('oi.release_qty')
|
|
86
|
+
.addGroupBy('oi.id')
|
|
87
|
+
.addGroupBy('oti.qty');
|
|
88
|
+
orderInfoFilter
|
|
89
|
+
? qb.andWhere('(rg.name ~* :orderInfoFilter or rg.ref_no ~* :orderInfoFilter or rg.ref_no_2 ~* :orderInfoFilter or rg.ref_no_3 ~* :orderInfoFilter)', { orderInfoFilter })
|
|
90
|
+
: '';
|
|
91
|
+
toteBoxFilter ? qb.andWhere('ot.tote_id is not null') : '';
|
|
92
|
+
routeIdFilter ? qb.andWhere(`rg.route_id ilike :routeId`, { routeId: routeIdFilter.value }) : '';
|
|
93
|
+
stopIdFilter ? qb.andWhere(`rg.stop_id ilike :stopId`, { stopId: stopIdFilter.value }) : '';
|
|
94
|
+
toteIdFilter ? qb.andWhere(`ot.name ilike :toteId`, { toteId: toteIdFilter.value }) : '';
|
|
95
|
+
qb.orderBy('w.created_at', 'DESC');
|
|
96
|
+
qb.addOrderBy('ots.name', 'ASC');
|
|
97
|
+
console.time('loadingQcReport');
|
|
98
|
+
let items = await qb.getRawMany();
|
|
99
|
+
console.timeEnd('loadingQcReport');
|
|
100
|
+
items = items.reduce((prev, curr, idx) => {
|
|
101
|
+
if (curr.tote) {
|
|
102
|
+
let reducedItemIndex = prev.findIndex(itm => itm.releaseGoodNo == curr.releaseGoodNo && itm.tote == curr.tote);
|
|
103
|
+
if (reducedItemIndex == -1) {
|
|
104
|
+
prev.push(curr);
|
|
105
|
+
prev[prev.length - 1].totalSeal = 1;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
prev[reducedItemIndex].orderQuantity += curr.orderQuantity;
|
|
109
|
+
prev[reducedItemIndex].totalCarton += curr.totalCarton;
|
|
110
|
+
if (!prev[reducedItemIndex].sealId.includes(curr.sealId)) {
|
|
111
|
+
prev[reducedItemIndex].sealId = prev[reducedItemIndex].sealId.concat(', ', curr.sealId);
|
|
112
|
+
prev[reducedItemIndex].totalSeal++;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return prev;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
prev.push(curr);
|
|
119
|
+
return prev;
|
|
120
|
+
}
|
|
121
|
+
}, []);
|
|
122
|
+
return items;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=tote-loading-qc-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tote-loading-qc-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/tote-loading-qc-report.ts"],"names":[],"mappings":"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"}
|