@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,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.completeLoad = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
6
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
8
|
+
const integration_lmd_1 = require("@things-factory/integration-lmd");
|
|
9
|
+
const integration_powrup_1 = require("@things-factory/integration-powrup");
|
|
10
|
+
const setting_base_1 = require("@things-factory/setting-base");
|
|
11
|
+
exports.completeLoad = {
|
|
12
|
+
async completeLoad(_, { orderId, worksheetId }, context) {
|
|
13
|
+
const { domain, tx, user } = context.state;
|
|
14
|
+
return completeLoading(domain, tx, user, false, orderId, worksheetId);
|
|
15
|
+
},
|
|
16
|
+
async completeLoadPartially(_, { orderId, worksheetId }, context) {
|
|
17
|
+
const { domain, tx, user } = context.state;
|
|
18
|
+
return completeLoading(domain, tx, user, true, orderId, worksheetId);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
async function completeLoading(domain, tx, user, partial, orderId, worksheetId) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
// Fetch release order
|
|
24
|
+
const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
|
|
25
|
+
where: {
|
|
26
|
+
id: orderId,
|
|
27
|
+
domain: domain,
|
|
28
|
+
status: (0, typeorm_1.In)([sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING])
|
|
29
|
+
},
|
|
30
|
+
relations: [
|
|
31
|
+
'domain',
|
|
32
|
+
'bizplace',
|
|
33
|
+
'bizplace.domain',
|
|
34
|
+
'creator',
|
|
35
|
+
'updater',
|
|
36
|
+
'orderInventories',
|
|
37
|
+
'lastMileDelivery',
|
|
38
|
+
'orderProducts',
|
|
39
|
+
'orderProducts.product',
|
|
40
|
+
'orderProducts.productDetail',
|
|
41
|
+
'deliveryOrders',
|
|
42
|
+
'deliveryOrders.orderInventories',
|
|
43
|
+
'deliveryOrders.orderInventories.productDetail',
|
|
44
|
+
'deliveryOrders.orderInventories.product'
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
if (!releaseGood) {
|
|
48
|
+
throw new Error('Release good not found or not in a valid status');
|
|
49
|
+
}
|
|
50
|
+
const orderInventories = releaseGood.orderInventories;
|
|
51
|
+
const worksheet = await tx.getRepository(worksheet_base_1.Worksheet).findOne({
|
|
52
|
+
where: {
|
|
53
|
+
id: worksheetId,
|
|
54
|
+
domain: domain,
|
|
55
|
+
status: (0, typeorm_1.In)([worksheet_base_1.WORKSHEET_STATUS.EXECUTING, worksheet_base_1.WORKSHEET_STATUS.PARTIAL_EXECUTING]),
|
|
56
|
+
type: worksheet_base_1.WORKSHEET_TYPE.LOADING
|
|
57
|
+
},
|
|
58
|
+
relations: ['worksheetDetails']
|
|
59
|
+
});
|
|
60
|
+
if (!worksheet) {
|
|
61
|
+
throw new Error('Loading worksheet not found or not in a valid status');
|
|
62
|
+
}
|
|
63
|
+
const currentTime = new Date();
|
|
64
|
+
//complete load
|
|
65
|
+
if (!partial) {
|
|
66
|
+
//validate all order inventories are loaded
|
|
67
|
+
if (orderInventories.some(oi => oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.LOADED &&
|
|
68
|
+
oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.RETURNING &&
|
|
69
|
+
oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED &&
|
|
70
|
+
oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.MISSING)) {
|
|
71
|
+
throw new Error('Item is not completely loaded');
|
|
72
|
+
}
|
|
73
|
+
//update ro transport option depending on do types
|
|
74
|
+
let deliveryOrders = await tx.getRepository(sales_base_1.DeliveryOrder).find({
|
|
75
|
+
where: { releaseGood: releaseGood, domain: domain },
|
|
76
|
+
relations: ['releaseGood']
|
|
77
|
+
});
|
|
78
|
+
if (deliveryOrders.length > 0) {
|
|
79
|
+
let ownTransport = 0;
|
|
80
|
+
let warehouseTransport = 0;
|
|
81
|
+
let ownTransportFlag;
|
|
82
|
+
for (let i = 0; i < deliveryOrders.length; i++) {
|
|
83
|
+
let deliveryOrder = deliveryOrders[i];
|
|
84
|
+
deliveryOrder.ownCollection ? ownTransport++ : warehouseTransport++;
|
|
85
|
+
}
|
|
86
|
+
ownTransportFlag = ownTransport > warehouseTransport;
|
|
87
|
+
releaseGood.ownTransport = ownTransportFlag;
|
|
88
|
+
}
|
|
89
|
+
await updateOrderInventories(tx, orderInventories, sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, user, currentTime);
|
|
90
|
+
await updateWorksheet(tx, worksheet, worksheet_base_1.WORKSHEET_STATUS.DONE, user, currentTime);
|
|
91
|
+
await updateReleaseGood(tx, releaseGood, sales_base_1.ORDER_STATUS.DONE, user, currentTime);
|
|
92
|
+
if (((_a = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _a === void 0 ? void 0 : _a.isTms) &&
|
|
93
|
+
deliveryOrders.length > 1 &&
|
|
94
|
+
((_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.status) === 'active') {
|
|
95
|
+
const tmsService = (0, integration_lmd_1.getTmsService)(releaseGood.lastMileDelivery.platform);
|
|
96
|
+
tmsService.createAndUpdateShipment(releaseGood, deliveryOrders);
|
|
97
|
+
}
|
|
98
|
+
const orderSource = releaseGood.source;
|
|
99
|
+
switch (orderSource) {
|
|
100
|
+
case auth_base_1.ApplicationType.POWRUP:
|
|
101
|
+
const powrup = await tx.getRepository(integration_powrup_1.Powrup).findOne({ active: true, platform: 'POWRUP' });
|
|
102
|
+
const rtsTriggerLevel = await tx
|
|
103
|
+
.getRepository(setting_base_1.Setting)
|
|
104
|
+
.findOne({
|
|
105
|
+
where: { domain, category: 'id-rule', name: 'rts-trigger-level' }
|
|
106
|
+
})
|
|
107
|
+
.then((setting) => {
|
|
108
|
+
return parseInt((setting === null || setting === void 0 ? void 0 : setting.value) || 0);
|
|
109
|
+
});
|
|
110
|
+
if (powrup && rtsTriggerLevel === 3) {
|
|
111
|
+
(0, typeorm_1.getManager)().transaction(async (txMgr) => {
|
|
112
|
+
const powrupController = new sales_base_1.PowrupController();
|
|
113
|
+
const hasPackage = (await txMgr.getRepository(sales_base_1.OrderPackage).count({ where: { releaseGood: { id: releaseGood.id } } })) > 0;
|
|
114
|
+
if (!hasPackage && !releaseGood.marketPackCallSuccess) {
|
|
115
|
+
const orderProducts = await txMgr.getRepository(sales_base_1.OrderProduct).find({
|
|
116
|
+
where: { releaseGood: { id: releaseGood.id } },
|
|
117
|
+
relations: ['product', 'productDetail']
|
|
118
|
+
});
|
|
119
|
+
await powrupController.packOrder(powrup, Object.assign(Object.assign({}, releaseGood), { orderProducts }), domain, user, txMgr);
|
|
120
|
+
}
|
|
121
|
+
await powrupController.initiateShipment(powrup, releaseGood, domain, user, txMgr);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
await updateOrderInventories(tx, orderInventories, sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, user, currentTime);
|
|
131
|
+
await updateWorksheet(tx, worksheet, worksheet_base_1.WORKSHEET_STATUS.PARTIAL_EXECUTING, user, currentTime);
|
|
132
|
+
await updateReleaseGood(tx, releaseGood, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING, user, currentTime);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async function updateOrderInventories(tx, orderInventories, status, user, currentTime) {
|
|
136
|
+
for (const oi of orderInventories) {
|
|
137
|
+
if (oi.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADED) {
|
|
138
|
+
await tx.getRepository(sales_base_1.OrderInventory).update(oi.id, {
|
|
139
|
+
status,
|
|
140
|
+
updater: user,
|
|
141
|
+
updatedAt: currentTime
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async function updateWorksheet(tx, worksheet, status, user, currentTime) {
|
|
147
|
+
await tx.getRepository(worksheet_base_1.Worksheet).update(worksheet.id, {
|
|
148
|
+
status,
|
|
149
|
+
updater: user,
|
|
150
|
+
updatedAt: new Date(),
|
|
151
|
+
endedAt: status === worksheet_base_1.WORKSHEET_STATUS.DONE ? new Date() : null
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async function updateReleaseGood(tx, releaseGood, status, user, currentTime) {
|
|
155
|
+
await tx.getRepository(sales_base_1.ReleaseGood).update(releaseGood.id, {
|
|
156
|
+
status,
|
|
157
|
+
ownTransport: releaseGood.ownTransport,
|
|
158
|
+
updater: user,
|
|
159
|
+
updatedAt: new Date()
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=complete-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/complete-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findLoadableReleaseGoodByBin = void 0;
|
|
4
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
/**
|
|
7
|
+
* Custom error class for outbound order related errors
|
|
8
|
+
* Covers both ReleaseGood and OrderInventory related errors
|
|
9
|
+
*/
|
|
10
|
+
class OutboundOrderError extends Error {
|
|
11
|
+
constructor(message, code) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.name = 'OutboundOrderError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Builds a query to find a release good by order number
|
|
19
|
+
*/
|
|
20
|
+
const buildfindReleaseGoodByNameQuery = (tx, domainId, orderNo) => {
|
|
21
|
+
return tx
|
|
22
|
+
.getRepository(sales_base_1.ReleaseGood)
|
|
23
|
+
.createQueryBuilder('releaseGood')
|
|
24
|
+
.leftJoinAndSelect('releaseGood.bizplace', 'bizplace')
|
|
25
|
+
.where('releaseGood.domain_id = :domainId', { domainId })
|
|
26
|
+
.andWhere('releaseGood.name = :orderNo', { orderNo })
|
|
27
|
+
.andWhere('releaseGood.status IN (:...status)', {
|
|
28
|
+
status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING, sales_base_1.ORDER_STATUS.DONE]
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Builds a query to find order inventories by bin location
|
|
33
|
+
*/
|
|
34
|
+
const buildOrderInventoryQuery = (tx, domainId, locationId) => {
|
|
35
|
+
return tx
|
|
36
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
37
|
+
.createQueryBuilder('orderInventory')
|
|
38
|
+
.leftJoinAndSelect('orderInventory.inventory', 'inventory')
|
|
39
|
+
.leftJoinAndSelect('inventory.product', 'product')
|
|
40
|
+
.leftJoinAndSelect('inventory.productDetail', 'productDetail')
|
|
41
|
+
.leftJoinAndSelect('orderInventory.binLocation', 'binLocation')
|
|
42
|
+
.where('orderInventory.domain_id = :domainId', { domainId })
|
|
43
|
+
.andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
|
|
44
|
+
orderInventoryStatus: [
|
|
45
|
+
sales_base_1.ORDER_INVENTORY_STATUS.SORTING,
|
|
46
|
+
sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
|
|
47
|
+
sales_base_1.ORDER_INVENTORY_STATUS.LOADED
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
.andWhere('orderInventory.bin_location_id = :locationId', { locationId })
|
|
51
|
+
.orderBy('orderInventory.createdAt', 'ASC');
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Transforms order inventory data into the required worksheet format
|
|
55
|
+
*/
|
|
56
|
+
const transformToWorksheetFormat = (orderInventories) => {
|
|
57
|
+
if (!orderInventories.length)
|
|
58
|
+
return null;
|
|
59
|
+
// Extract unique bin location names
|
|
60
|
+
const uniqueBinLocations = [...new Set(orderInventories.map(oi => { var _a; return (_a = oi.binLocation) === null || _a === void 0 ? void 0 : _a.name; }).filter(Boolean))];
|
|
61
|
+
return {
|
|
62
|
+
worksheetInfo: {
|
|
63
|
+
worksheet: {
|
|
64
|
+
id: null,
|
|
65
|
+
name: null,
|
|
66
|
+
type: null,
|
|
67
|
+
status: null
|
|
68
|
+
},
|
|
69
|
+
bizplaceName: null,
|
|
70
|
+
startedAt: null,
|
|
71
|
+
releaseGood: null,
|
|
72
|
+
binLocationName: uniqueBinLocations.join(', ') // Join multiple bin locations with comma
|
|
73
|
+
},
|
|
74
|
+
worksheetDetailInfos: orderInventories.map(oi => {
|
|
75
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
76
|
+
return ({
|
|
77
|
+
id: null,
|
|
78
|
+
name: null,
|
|
79
|
+
batchId: oi.batchId,
|
|
80
|
+
releaseQty: oi.releaseQty,
|
|
81
|
+
pickedQty: oi.pickedQty,
|
|
82
|
+
sortedQty: oi.sortedQty,
|
|
83
|
+
status: oi.status,
|
|
84
|
+
packingType: oi.packingType,
|
|
85
|
+
packingSize: oi.packingSize,
|
|
86
|
+
expirationDate: (_a = oi.inventory) === null || _a === void 0 ? void 0 : _a.expirationDate,
|
|
87
|
+
binLocation: {
|
|
88
|
+
name: (_b = oi.binLocation) === null || _b === void 0 ? void 0 : _b.name
|
|
89
|
+
},
|
|
90
|
+
productName: (_d = (_c = oi.inventory) === null || _c === void 0 ? void 0 : _c.product) === null || _d === void 0 ? void 0 : _d.name,
|
|
91
|
+
productSku: (_f = (_e = oi.inventory) === null || _e === void 0 ? void 0 : _e.product) === null || _f === void 0 ? void 0 : _f.sku,
|
|
92
|
+
relatedOrderInv: {
|
|
93
|
+
id: oi.id,
|
|
94
|
+
batchId: oi.batchId,
|
|
95
|
+
packingType: oi.packingType,
|
|
96
|
+
product: ((_g = oi.inventory) === null || _g === void 0 ? void 0 : _g.product)
|
|
97
|
+
? {
|
|
98
|
+
id: oi.inventory.product.id,
|
|
99
|
+
sku: oi.inventory.product.sku,
|
|
100
|
+
name: oi.inventory.product.name
|
|
101
|
+
}
|
|
102
|
+
: null,
|
|
103
|
+
productDetail: ((_h = oi.inventory) === null || _h === void 0 ? void 0 : _h.productDetail)
|
|
104
|
+
? {
|
|
105
|
+
id: oi.inventory.productDetail.id
|
|
106
|
+
}
|
|
107
|
+
: null
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
})
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Finds loadable release goods by bin location
|
|
115
|
+
* @param _ - GraphQL resolver parent object
|
|
116
|
+
* @param orderNo - The order number or bin location name to search for
|
|
117
|
+
* @param context - GraphQL context containing domain and transaction manager
|
|
118
|
+
* @returns Promise<Object> - Transformed worksheet data structure
|
|
119
|
+
* @throws OutboundOrderError if order is DONE or if no items found in bin
|
|
120
|
+
*/
|
|
121
|
+
exports.findLoadableReleaseGoodByBin = {
|
|
122
|
+
async findLoadableReleaseGoodByBin(_, { orderNo }, context) {
|
|
123
|
+
const { domain, tx } = context.state;
|
|
124
|
+
let orderInventoryByBin = [];
|
|
125
|
+
let foundReleaseGood = await buildfindReleaseGoodByNameQuery(tx, domain.id, orderNo).getOne();
|
|
126
|
+
if (foundReleaseGood && foundReleaseGood.status == sales_base_1.ORDER_STATUS.DONE) {
|
|
127
|
+
throw new OutboundOrderError('This order is DONE', 'ORDER_DONE');
|
|
128
|
+
}
|
|
129
|
+
else if (foundReleaseGood) {
|
|
130
|
+
throw new OutboundOrderError('You are scanning using order number. Your setting for QC by BIN is enabled. Please contact your administrator.', 'QC_BY_BIN_ENABLED');
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
|
|
134
|
+
where: { domain, name: orderNo }
|
|
135
|
+
});
|
|
136
|
+
if (binLocation) {
|
|
137
|
+
orderInventoryByBin = await buildOrderInventoryQuery(tx, domain.id, binLocation.id).getMany();
|
|
138
|
+
}
|
|
139
|
+
if (orderInventoryByBin.length > 0) {
|
|
140
|
+
return transformToWorksheetFormat(orderInventoryByBin);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
throw new OutboundOrderError('There is no item in this bin', 'NO_ITEMS_IN_BIN');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=find-loadable-release-good-by-bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findLoadableReleaseGood = void 0;
|
|
4
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
exports.findLoadableReleaseGood = {
|
|
7
|
+
async findLoadableReleaseGood(_, { orderNo, tabName }, context) {
|
|
8
|
+
const { domain, tx } = context.state;
|
|
9
|
+
let releaseGoods = [];
|
|
10
|
+
//put query in util same as find-loadable-release-good-by-bin.ts
|
|
11
|
+
//jiahhao
|
|
12
|
+
let foundReleaseGood = await tx
|
|
13
|
+
.getRepository(sales_base_1.ReleaseGood)
|
|
14
|
+
.createQueryBuilder('releaseGood')
|
|
15
|
+
.where('releaseGood.domain_id = :domainId', { domainId: domain.id })
|
|
16
|
+
.andWhere('releaseGood.name = :orderNo', { orderNo })
|
|
17
|
+
.andWhere('releaseGood.status IN (:...status)', {
|
|
18
|
+
status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING, sales_base_1.ORDER_STATUS.DONE]
|
|
19
|
+
})
|
|
20
|
+
.getOne();
|
|
21
|
+
if (foundReleaseGood && foundReleaseGood.status == sales_base_1.ORDER_STATUS.DONE) {
|
|
22
|
+
throw new Error('This order is DONE');
|
|
23
|
+
}
|
|
24
|
+
else if (foundReleaseGood) {
|
|
25
|
+
// Get counts for single release good
|
|
26
|
+
const counts = await tx
|
|
27
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
28
|
+
.createQueryBuilder('orderInventory')
|
|
29
|
+
.select('COUNT(*)', 'total')
|
|
30
|
+
.addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
|
|
31
|
+
.where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: foundReleaseGood.id })
|
|
32
|
+
.andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
33
|
+
.setParameter('completedStatuses', tabName === 'QC'
|
|
34
|
+
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING, sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
35
|
+
: tabName === 'LOADING'
|
|
36
|
+
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
37
|
+
: [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
|
|
38
|
+
.getRawOne();
|
|
39
|
+
foundReleaseGood['itemCounts'] = {
|
|
40
|
+
total: parseInt(counts.total) || 0,
|
|
41
|
+
pending: parseInt(counts.completed) || 0
|
|
42
|
+
};
|
|
43
|
+
releaseGoods.push(foundReleaseGood);
|
|
44
|
+
return releaseGoods;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
|
|
48
|
+
where: { domain, name: orderNo }
|
|
49
|
+
});
|
|
50
|
+
if (binLocation) {
|
|
51
|
+
// First get all matching release goods
|
|
52
|
+
const orderInventoryByBin = await tx
|
|
53
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
54
|
+
.createQueryBuilder('orderInventory')
|
|
55
|
+
.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
|
|
56
|
+
.innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
|
|
57
|
+
.innerJoinAndSelect('bizplace.domain', 'domain')
|
|
58
|
+
.leftJoinAndSelect('releaseGood.sortedBy', 'sortedBy')
|
|
59
|
+
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
60
|
+
.andWhere('orderInventory.status = :orderInventoryStatus', {
|
|
61
|
+
orderInventoryStatus: tabName === 'QC'
|
|
62
|
+
? sales_base_1.ORDER_INVENTORY_STATUS.SORTING
|
|
63
|
+
: tabName === 'LOADING'
|
|
64
|
+
? sales_base_1.ORDER_INVENTORY_STATUS.LOADING
|
|
65
|
+
: sales_base_1.ORDER_INVENTORY_STATUS.LOADED
|
|
66
|
+
})
|
|
67
|
+
.andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
|
|
68
|
+
.andWhere('releaseGood.status IN (:...status)', {
|
|
69
|
+
status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING]
|
|
70
|
+
})
|
|
71
|
+
.orderBy('releaseGood.createdAt', 'ASC')
|
|
72
|
+
.getMany();
|
|
73
|
+
// Get unique release goods
|
|
74
|
+
releaseGoods = orderInventoryByBin.reduce((acc, oi) => {
|
|
75
|
+
if (!acc.some(rg => rg.id === oi.releaseGood.id)) {
|
|
76
|
+
acc.push(oi.releaseGood);
|
|
77
|
+
}
|
|
78
|
+
return acc;
|
|
79
|
+
}, []);
|
|
80
|
+
// Get counts for each release good
|
|
81
|
+
for (const releaseGood of releaseGoods) {
|
|
82
|
+
const counts = await tx
|
|
83
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
84
|
+
.createQueryBuilder('orderInventory')
|
|
85
|
+
.select('COUNT(*)', 'total')
|
|
86
|
+
.addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
|
|
87
|
+
.where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })
|
|
88
|
+
.andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
89
|
+
.setParameter('completedStatuses', tabName === 'LOADING'
|
|
90
|
+
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING]
|
|
91
|
+
: tabName === 'LOADED'
|
|
92
|
+
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
93
|
+
: [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
|
|
94
|
+
.getRawOne();
|
|
95
|
+
releaseGood['itemCounts'] = {
|
|
96
|
+
total: parseInt(counts.total) || 0,
|
|
97
|
+
pending: parseInt(counts.completed) || 0
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (releaseGoods.length > 0)
|
|
102
|
+
return releaseGoods;
|
|
103
|
+
else {
|
|
104
|
+
const errorMessage = tabName === 'QC'
|
|
105
|
+
? 'No items pending QC verification'
|
|
106
|
+
: tabName === 'LOADING'
|
|
107
|
+
? 'No items pending loading'
|
|
108
|
+
: 'No items pending dispatch';
|
|
109
|
+
throw new Error(errorMessage);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=find-loadable-release-good.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":";;;AAEA,mEAAyD;AAEzD,2DAA8G;AAEjG,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAY;QACtE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;QAE3E,IAAI,YAAY,GAAG,EAAE,CAAA;QAErB,gEAAgE;QAChE,SAAS;QACT,IAAI,gBAAgB,GAAgB,MAAM,EAAE;aACzC,aAAa,CAAC,wBAAW,CAAC;aAC1B,kBAAkB,CAAC,aAAa,CAAC;aACjC,KAAK,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aACnE,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC;aACpD,QAAQ,CAAC,oCAAoC,EAAE;YAC9C,MAAM,EAAE,CAAC,yBAAY,CAAC,OAAO,EAAE,yBAAY,CAAC,UAAU,EAAE,yBAAY,CAAC,kBAAkB,EAAE,yBAAY,CAAC,IAAI,CAAC;SAC5G,CAAC;aACD,MAAM,EAAE,CAAA;QAEX,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,IAAI,yBAAY,CAAC,IAAI,EAAE;YACpE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACtC;aAAM,IAAI,gBAAgB,EAAE;YAC3B,qCAAqC;YACrC,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,aAAa,CAAC,2BAAc,CAAC;iBAC7B,kBAAkB,CAAC,gBAAgB,CAAC;iBACpC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;iBAC3B,SAAS,CAAC,mFAAmF,EAAE,WAAW,CAAC;iBAC3G,KAAK,CAAC,iDAAiD,EAAE,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;iBAChG,QAAQ,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzE,YAAY,CACX,mBAAmB,EACnB,OAAO,KAAK,IAAI;gBACd,CAAC,CAAC,CAAC,mCAAsB,CAAC,OAAO,EAAE,mCAAsB,CAAC,MAAM,CAAC;gBACjE,CAAC,CAAC,OAAO,KAAK,SAAS;oBACvB,CAAC,CAAC,CAAC,mCAAsB,CAAC,MAAM,CAAC;oBACjC,CAAC,CAAC,CAAC,mCAAsB,CAAC,MAAM,CAAC,CACpC;iBACA,SAAS,EAAE,CAAA;YAEd,gBAAgB,CAAC,YAAY,CAAC,GAAG;gBAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;aACzC,CAAA;YAED,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACnC,OAAO,YAAY,CAAA;SACpB;aAAM;YACL,MAAM,WAAW,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,yBAAQ,CAAC,CAAC,OAAO,CAAC;gBACrE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;aACjC,CAAC,CAAA;YAEF,IAAI,WAAW,EAAE;gBACf,uCAAuC;gBACvC,MAAM,mBAAmB,GAAqB,MAAM,EAAE;qBACnD,aAAa,CAAC,2BAAc,CAAC;qBAC7B,kBAAkB,CAAC,gBAAgB,CAAC;qBACpC,kBAAkB,CAAC,4BAA4B,EAAE,aAAa,CAAC;qBAC/D,kBAAkB,CAAC,sBAAsB,EAAE,UAAU,CAAC;qBACtD,kBAAkB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;qBAC/C,iBAAiB,CAAC,sBAAsB,EAAE,UAAU,CAAC;qBACrD,KAAK,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBACtE,QAAQ,CAAC,+CAA+C,EAAE;oBACzD,oBAAoB,EAClB,OAAO,KAAK,IAAI;wBACd,CAAC,CAAC,mCAAsB,CAAC,OAAO;wBAChC,CAAC,CAAC,OAAO,KAAK,SAAS;4BACvB,CAAC,CAAC,mCAAsB,CAAC,OAAO;4BAChC,CAAC,CAAC,mCAAsB,CAAC,MAAM;iBACpC,CAAC;qBACD,QAAQ,CAAC,8CAA8C,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;qBACxF,QAAQ,CAAC,oCAAoC,EAAE;oBAC9C,MAAM,EAAE,CAAC,yBAAY,CAAC,OAAO,EAAE,yBAAY,CAAC,UAAU,EAAE,yBAAY,CAAC,kBAAkB,CAAC;iBACzF,CAAC;qBACD,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC;qBACvC,OAAO,EAAE,CAAA;gBAEZ,2BAA2B;gBAC3B,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;oBACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;wBAChD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;qBACzB;oBACD,OAAO,GAAG,CAAA;gBACZ,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEN,mCAAmC;gBACnC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACtC,MAAM,MAAM,GAAG,MAAM,EAAE;yBACpB,aAAa,CAAC,2BAAc,CAAC;yBAC7B,kBAAkB,CAAC,gBAAgB,CAAC;yBACpC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;yBAC3B,SAAS,CAAC,mFAAmF,EAAE,WAAW,CAAC;yBAC3G,KAAK,CAAC,iDAAiD,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;yBAC3F,QAAQ,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;yBACzE,YAAY,CACX,mBAAmB,EACnB,OAAO,KAAK,SAAS;wBACnB,CAAC,CAAC,CAAC,mCAAsB,CAAC,OAAO,CAAC;wBAClC,CAAC,CAAC,OAAO,KAAK,QAAQ;4BACtB,CAAC,CAAC,CAAC,mCAAsB,CAAC,MAAM,CAAC;4BACjC,CAAC,CAAC,CAAC,mCAAsB,CAAC,MAAM,CAAC,CACpC;yBACA,SAAS,EAAE,CAAA;oBAEd,WAAW,CAAC,YAAY,CAAC,GAAG;wBAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;qBACzC,CAAA;iBACF;aACF;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,YAAY,CAAA;iBAC3C;gBACH,MAAM,YAAY,GAChB,OAAO,KAAK,IAAI;oBACd,CAAC,CAAC,kCAAkC;oBACpC,CAAC,CAAC,OAAO,KAAK,SAAS;wBACvB,CAAC,CAAC,0BAA0B;wBAC5B,CAAC,CAAC,2BAA2B,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;aAC9B;SACF;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDeliveryOrders = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
const setting_base_1 = require("@things-factory/setting-base");
|
|
7
|
+
const SETTINGS = {
|
|
8
|
+
QC_SKU: 'qc-sku'
|
|
9
|
+
};
|
|
10
|
+
exports.getDeliveryOrders = {
|
|
11
|
+
async getDeliveryOrders(_, { releaseGoodNo }, context) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const { domain, tx } = context.state;
|
|
14
|
+
const releaseGood = await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).findOne({
|
|
15
|
+
where: { domain, name: releaseGoodNo },
|
|
16
|
+
relations: ['orderInventories']
|
|
17
|
+
});
|
|
18
|
+
if (!releaseGood) {
|
|
19
|
+
throw new Error(`ReleaseGood with name ${releaseGoodNo} not found`);
|
|
20
|
+
}
|
|
21
|
+
const complete_status = [sales_base_1.ORDER_INVENTORY_STATUS.LOADED, sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, sales_base_1.ORDER_INVENTORY_STATUS.RETURNING, sales_base_1.ORDER_INVENTORY_STATUS.MISSING];
|
|
22
|
+
const completable = (_a = releaseGood.orderInventories) === null || _a === void 0 ? void 0 : _a.every(oi => complete_status.includes(oi.status));
|
|
23
|
+
const settingRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(setting_base_1.Setting)) || (0, typeorm_1.getRepository)(setting_base_1.Setting);
|
|
24
|
+
const qcSetting = await settingRepo.findOne({
|
|
25
|
+
where: { domain, name: SETTINGS.QC_SKU }
|
|
26
|
+
});
|
|
27
|
+
const useQcSku = ((_b = qcSetting === null || qcSetting === void 0 ? void 0 : qcSetting.value) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase().trim()) === 'true';
|
|
28
|
+
let deliveryOrders = await (0, typeorm_1.getRepository)(sales_base_1.DeliveryOrder).find({
|
|
29
|
+
where: { releaseGood },
|
|
30
|
+
relations: ['orderInventories', 'orderInventories.inventory', 'orderInventories.product']
|
|
31
|
+
});
|
|
32
|
+
if (useQcSku) {
|
|
33
|
+
deliveryOrders = deliveryOrders
|
|
34
|
+
.map((do_) => {
|
|
35
|
+
const liveOIs = do_.orderInventories.filter((oi) => oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED);
|
|
36
|
+
return Object.assign(Object.assign({}, do_), { orderInventories: liveOIs });
|
|
37
|
+
})
|
|
38
|
+
.filter((do_) => do_.orderInventories.length > 0);
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
completable: completable,
|
|
42
|
+
deliveryOrders: deliveryOrders
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=get-delivery-orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-delivery-orders.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/get-delivery-orders.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAGlE,2DAA+F;AAC/F,+DAAsD;AAEtD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE,QAAQ;CACjB,CAAA;AAEY,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,aAAa,EAAE,EAAE,OAAY;;QAC7D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;QAE3E,MAAM,WAAW,GAAgB,MAAM,IAAA,uBAAa,EAAC,wBAAW,CAAC,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,SAAS,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,YAAY,CAAC,CAAA;SACpE;QAED,MAAM,eAAe,GAAG,CAAC,mCAAsB,CAAC,MAAM,EAAE,mCAAsB,CAAC,UAAU,EAAE,mCAAsB,CAAC,SAAS,EAAE,mCAAsB,CAAC,OAAO,CAAC,CAAA;QAC5J,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,gBAAgB,0CAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QAElG,MAAM,WAAW,GAAwB,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,sBAAO,CAAC,KAAI,IAAA,uBAAa,EAAC,sBAAO,CAAC,CAAA;QAC7F,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,QAAQ,GACZ,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,EAAE,MAAK,MAAM,CAAA;QAE9D,IAAI,cAAc,GAAoB,MAAM,IAAA,uBAAa,EAAC,0BAAa,CAAC,CAAC,IAAI,CAAC;YAC5E,KAAK,EAAE,EAAE,WAAW,EAAE;YACtB,SAAS,EAAE,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,0BAA0B,CAAC;SAC1F,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE;YACZ,cAAc,GAAG,cAAc;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,mCAAsB,CAAC,UAAU,CACxD,CAAA;gBACD,uCAAY,GAAG,KAAE,gBAAgB,EAAE,OAAO,IAAE;YAC9C,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;SAClD;QAED,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLoadingTask = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
7
|
+
const loading_worksheet_v2_1 = require("./loading-worksheet-v2");
|
|
8
|
+
exports.getLoadingTask = {
|
|
9
|
+
async getLoadingTask(_, {}, context) {
|
|
10
|
+
const { tx, domain, user } = context.state;
|
|
11
|
+
if (process.env.NODE_ENV == 'development') {
|
|
12
|
+
console.time('getLoadingTask');
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
// 1. Find assigned worksheet
|
|
16
|
+
let worksheet = await tx
|
|
17
|
+
.getRepository(worksheet_base_1.Worksheet)
|
|
18
|
+
.createQueryBuilder('ws')
|
|
19
|
+
.innerJoinAndSelect('ws.bizplace', 'biz')
|
|
20
|
+
.innerJoinAndSelect('ws.releaseGood', 'rg')
|
|
21
|
+
.innerJoin('ws.worksheetDetails', 'wsd')
|
|
22
|
+
.where({
|
|
23
|
+
domain,
|
|
24
|
+
type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
|
|
25
|
+
sorter: user,
|
|
26
|
+
status: (0, typeorm_1.In)([worksheet_base_1.WORKSHEET_STATUS.EXECUTING, worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED])
|
|
27
|
+
})
|
|
28
|
+
.andWhere('rg.status IN (:...status)', {
|
|
29
|
+
status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING]
|
|
30
|
+
})
|
|
31
|
+
.andWhere('wsd.status NOT IN (:...status)', { status: [worksheet_base_1.WORKSHEET_STATUS.DONE, worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED] })
|
|
32
|
+
.getOne();
|
|
33
|
+
// 2. If no assigned worksheet, find and assign next available one
|
|
34
|
+
if (!worksheet) {
|
|
35
|
+
let updatedWorksheets = await (0, typeorm_1.getConnection)().transaction(async (tx2) => {
|
|
36
|
+
let x = await tx2.query(`
|
|
37
|
+
UPDATE worksheets ws SET
|
|
38
|
+
sorter_id = $2,
|
|
39
|
+
updated_at = NOW(),
|
|
40
|
+
updater_id = $2
|
|
41
|
+
FROM (
|
|
42
|
+
SELECT ws.id
|
|
43
|
+
FROM worksheets ws
|
|
44
|
+
INNER JOIN release_goods rg ON rg.id = ws.release_good_id
|
|
45
|
+
INNER JOIN worksheet_details wsd ON wsd.worksheet_id = ws.id
|
|
46
|
+
WHERE ws.domain_id = $1
|
|
47
|
+
AND ws.type = 'LOADING'
|
|
48
|
+
AND ws.status IN ('EXECUTING', 'DEACTIVATED')
|
|
49
|
+
AND ws.sorter_id IS NULL
|
|
50
|
+
AND rg.status IN ('LOADING', 'PROCESSING', 'PARTIAL_PROCESSING')
|
|
51
|
+
AND wsd.status NOT IN ('DONE', 'DEACTIVATED')
|
|
52
|
+
AND (rg.sorted_by_id = $2 OR rg.sorted_by_id IS NULL)
|
|
53
|
+
ORDER BY rg.created_at
|
|
54
|
+
LIMIT 1
|
|
55
|
+
) src
|
|
56
|
+
WHERE src.id = ws.id
|
|
57
|
+
RETURNING ws.id
|
|
58
|
+
`, [domain.id, user.id]);
|
|
59
|
+
return x[0];
|
|
60
|
+
});
|
|
61
|
+
if (updatedWorksheets.length == 0)
|
|
62
|
+
throw new Error('no suitable worksheet found');
|
|
63
|
+
//fetch updated ws
|
|
64
|
+
worksheet = await tx
|
|
65
|
+
.getRepository(worksheet_base_1.Worksheet)
|
|
66
|
+
.createQueryBuilder('ws')
|
|
67
|
+
.innerJoinAndSelect('ws.releaseGood', 'rg')
|
|
68
|
+
.where('ws.id = :id', { id: updatedWorksheets[0].id })
|
|
69
|
+
.andWhere('ws.sorter_id = :sorter', { sorter: user.id })
|
|
70
|
+
.getOne();
|
|
71
|
+
}
|
|
72
|
+
//validate worksheet is assigned to user
|
|
73
|
+
if (!worksheet)
|
|
74
|
+
throw new Error('Please try again by clicking the "Get Task" button');
|
|
75
|
+
if (worksheet.status == worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED) {
|
|
76
|
+
await tx.getRepository(worksheet_base_1.Worksheet).update(worksheet.id, {
|
|
77
|
+
status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING,
|
|
78
|
+
startedAt: new Date()
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//update ro sorter if its null
|
|
82
|
+
if ((worksheet === null || worksheet === void 0 ? void 0 : worksheet.releaseGood.sortedBy) == null) {
|
|
83
|
+
await tx.getRepository(sales_base_1.ReleaseGood).update(worksheet.releaseGood.id, {
|
|
84
|
+
sortedBy: user
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return loading_worksheet_v2_1.loadingWorksheetv2.loadingWorksheetv2(_, { orderNo: worksheet.releaseGood.name, filter: 'all' }, context);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error(error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
if (process.env.NODE_ENV == 'development') {
|
|
95
|
+
console.timeEnd('getLoadingTask');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=get-loading-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-loading-task.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/get-loading-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Mutation = exports.Query = void 0;
|
|
4
|
+
const get_loading_task_1 = require("./get-loading-task");
|
|
5
|
+
const sort_item_1 = require("./sort-item");
|
|
6
|
+
const find_loadable_release_good_1 = require("./find-loadable-release-good");
|
|
7
|
+
const find_loadable_release_good_by_bin_1 = require("./find-loadable-release-good-by-bin");
|
|
8
|
+
const loading_worksheet_v2_1 = require("./loading-worksheet-v2");
|
|
9
|
+
const load_by_qty_1 = require("./load-by-qty");
|
|
10
|
+
const my_loading_assignment_status_1 = require("./my-loading-assignment-status");
|
|
11
|
+
const get_delivery_orders_1 = require("./get-delivery-orders");
|
|
12
|
+
const undo_load_1 = require("./undo-load");
|
|
13
|
+
const warehouse_return_1 = require("./warehouse-return");
|
|
14
|
+
const complete_load_1 = require("./complete-load");
|
|
15
|
+
exports.Query = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, find_loadable_release_good_1.findLoadableReleaseGood), find_loadable_release_good_by_bin_1.findLoadableReleaseGoodByBin), loading_worksheet_v2_1.loadingWorksheetv2), my_loading_assignment_status_1.myLoadingAssignmentStatus), get_delivery_orders_1.getDeliveryOrders);
|
|
16
|
+
exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, get_loading_task_1.getLoadingTask), sort_item_1.sortItem), load_by_qty_1.loadByQty), undo_load_1.undoLoad), warehouse_return_1.warehouseReturn), complete_load_1.completeLoad);
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/index.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,2CAAsC;AACtC,6EAAsE;AACtE,2FAAkF;AAClF,iEAA2D;AAC3D,+CAAyC;AACzC,iFAA0E;AAC1E,+DAAyD;AACzD,2CAAsC;AACtC,yDAAoD;AACpD,mDAA8C;AAEjC,QAAA,KAAK,6EACb,oDAAuB,GACvB,gEAA4B,GAC5B,yCAAkB,GAClB,wDAAyB,GACzB,uCAAiB,EACrB;AAEY,QAAA,QAAQ,2FAChB,iCAAc,GACd,oBAAQ,GACR,uBAAS,GACT,oBAAQ,GACR,kCAAe,GACf,4BAAY,EAChB"}
|