@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,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadByQty = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
8
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
9
|
+
exports.loadByQty = {
|
|
10
|
+
async loadByQty(_, { worksheetDetailPatch }, context) {
|
|
11
|
+
var _a;
|
|
12
|
+
try {
|
|
13
|
+
const { domain, user, tx } = context.state;
|
|
14
|
+
console.time('load');
|
|
15
|
+
const updatedWorksheetDetails = worksheetDetailPatch.orderInventories;
|
|
16
|
+
const releaseGoodNo = worksheetDetailPatch.releaseGoodNo;
|
|
17
|
+
const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
|
|
18
|
+
where: { domain, name: releaseGoodNo },
|
|
19
|
+
relations: ['bizplace', 'orderInventories']
|
|
20
|
+
});
|
|
21
|
+
if (!releaseGood) {
|
|
22
|
+
throw new Error('Release good not found');
|
|
23
|
+
}
|
|
24
|
+
const worksheet = await tx.getRepository(worksheet_base_1.Worksheet).findOne({
|
|
25
|
+
where: {
|
|
26
|
+
domain,
|
|
27
|
+
releaseGood,
|
|
28
|
+
type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
|
|
29
|
+
status: (0, typeorm_1.In)([
|
|
30
|
+
worksheet_base_1.WORKSHEET_STATUS.EXECUTING,
|
|
31
|
+
worksheet_base_1.WORKSHEET_STATUS.PARTIAL_EXECUTING
|
|
32
|
+
])
|
|
33
|
+
},
|
|
34
|
+
relations: ['worksheetDetails', 'worksheetDetails.targetInventory', 'worksheetDetails.domain']
|
|
35
|
+
});
|
|
36
|
+
if (!worksheet) {
|
|
37
|
+
throw new Error('No loading worksheet found for order ' + releaseGoodNo);
|
|
38
|
+
}
|
|
39
|
+
const oiIds = worksheet.worksheetDetails.map((wsd) => wsd.targetInventory.id);
|
|
40
|
+
const orderInventories = await tx.getRepository(sales_base_1.OrderInventory).find({
|
|
41
|
+
where: { id: (0, typeorm_1.In)(oiIds) },
|
|
42
|
+
relations: [
|
|
43
|
+
'inventory',
|
|
44
|
+
'domain',
|
|
45
|
+
'bizplace',
|
|
46
|
+
'releaseGood',
|
|
47
|
+
'product',
|
|
48
|
+
'productDetail',
|
|
49
|
+
'binLocation',
|
|
50
|
+
'orderProduct'
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
const updatedOrderInventories = [];
|
|
54
|
+
for (const wsd of updatedWorksheetDetails) {
|
|
55
|
+
//find the respective wsd and oi to update
|
|
56
|
+
const foundWorksheetDetail = worksheet.worksheetDetails.find(foundWsd => foundWsd.name === wsd.name);
|
|
57
|
+
let orderInventory = orderInventories.find(oi => oi.id === foundWorksheetDetail.targetInventory.id);
|
|
58
|
+
//validate oi status and do is not yet generated
|
|
59
|
+
if (orderInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADED || orderInventory.deliveryOrderId !== null) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// compare with sort qty
|
|
63
|
+
if (wsd.loadedQty > orderInventory.pickedQty) {
|
|
64
|
+
throw new Error('Load qty is more than picked qty for sku ' + wsd.productSku);
|
|
65
|
+
}
|
|
66
|
+
else if (wsd.loadedQty == orderInventory.releaseQty) {
|
|
67
|
+
//compare load qty to release, if order is partially picked, has to split oi
|
|
68
|
+
//update oi
|
|
69
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, updater: user, updatedAt: new Date() });
|
|
70
|
+
//update wsd
|
|
71
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
72
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
73
|
+
updater: user,
|
|
74
|
+
updatedAt: new Date()
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else if (wsd.loadedQty < orderInventory.releaseQty) {
|
|
78
|
+
//split oi
|
|
79
|
+
//create new order inventory with remaining quantity
|
|
80
|
+
const remainingQty = orderInventory.releaseQty - wsd.loadedQty;
|
|
81
|
+
const newOrderInventory = tx.getRepository(sales_base_1.OrderInventory).create(Object.assign(Object.assign({}, orderInventory), { id: undefined, name: sales_base_1.OrderNoGenerator.orderInventory(), releaseQty: remainingQty, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * remainingQty, pickedQty: orderInventory.pickedQty - wsd.loadedQty, sortedQty: orderInventory.sortedQty === 0 ? 0 : orderInventory.sortedQty - wsd.loadedQty, status: orderInventory.status, updater: user, updatedAt: new Date() }));
|
|
82
|
+
await tx.getRepository(sales_base_1.OrderInventory).save(newOrderInventory);
|
|
83
|
+
//create new worksheet detail for the new order inventory
|
|
84
|
+
const newWorksheetDetail = tx.getRepository(worksheet_base_1.WorksheetDetail).create(Object.assign(Object.assign({}, foundWorksheetDetail), { id: undefined, name: `LOAD-DETAIL-` + (0, uuid_1.v4)(), worksheet: worksheet, targetInventory: newOrderInventory, status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING, updater: user, updatedAt: new Date() }));
|
|
85
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).save(newWorksheetDetail);
|
|
86
|
+
//update current order inventory to loaded with loaded quantity
|
|
87
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * wsd.loadedQty, releaseQty: wsd.loadedQty, pickedQty: wsd.loadedQty, sortedQty: wsd.loadedQty, updater: user, updatedAt: new Date() });
|
|
88
|
+
//update current wsd
|
|
89
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
90
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
91
|
+
updater: user,
|
|
92
|
+
updatedAt: new Date()
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({
|
|
96
|
+
where: { id: orderInventory.inventoryId }
|
|
97
|
+
});
|
|
98
|
+
// generate inventory history
|
|
99
|
+
await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.LOADING, 0, 0, user, tx);
|
|
100
|
+
updatedOrderInventories.push(orderInventory);
|
|
101
|
+
}
|
|
102
|
+
if (updatedOrderInventories.length < 1) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const deliveryOrder = {
|
|
107
|
+
truckNo: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.vehicleNo,
|
|
108
|
+
ownCollection: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.ownCollection,
|
|
109
|
+
totalPalletQty: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.palletQty,
|
|
110
|
+
contactPointRefId: ((_a = releaseGood.deliverTo) === null || _a === void 0 ? void 0 : _a.id) || null
|
|
111
|
+
};
|
|
112
|
+
const createdDo = await (0, sales_base_1.generateDeliveryOrder)(deliveryOrder, updatedOrderInventories, releaseGood.bizplace, releaseGood, domain, user, tx);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
throw e;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=load-by-qty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-by-qty.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/load-by-qty.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadingWorksheetv2 = 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 setting_base_1 = require("@things-factory/setting-base");
|
|
8
|
+
const FILTER_TYPES = {
|
|
9
|
+
QC: 'qc',
|
|
10
|
+
LOADING: 'loading'
|
|
11
|
+
};
|
|
12
|
+
// Helper functions
|
|
13
|
+
function formatDate(date) {
|
|
14
|
+
if (!date)
|
|
15
|
+
return null;
|
|
16
|
+
return new Date(date).toISOString().slice(0, 19).replace('T', ' ');
|
|
17
|
+
}
|
|
18
|
+
function shouldFilterBySortedQty(releaseGoodStatus, disableQC) {
|
|
19
|
+
return releaseGoodStatus !== sales_base_1.ORDER_STATUS.LOADING || (releaseGoodStatus === sales_base_1.ORDER_STATUS.LOADING && !disableQC);
|
|
20
|
+
}
|
|
21
|
+
function getSortedQty(releaseGoodStatus, disableQC, pickedQty, sortedQty) {
|
|
22
|
+
return releaseGoodStatus === sales_base_1.ORDER_STATUS.LOADING && disableQC ? pickedQty : sortedQty;
|
|
23
|
+
}
|
|
24
|
+
exports.loadingWorksheetv2 = {
|
|
25
|
+
async loadingWorksheetv2(_, { orderNo, filter = null }, context) {
|
|
26
|
+
const { domain, tx } = context.state;
|
|
27
|
+
if (process.env.NODE_ENV === 'development') {
|
|
28
|
+
console.time('loadingWorksheetv2');
|
|
29
|
+
}
|
|
30
|
+
// Find release good
|
|
31
|
+
const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
|
|
32
|
+
where: { domain, name: orderNo }
|
|
33
|
+
});
|
|
34
|
+
if (!releaseGood)
|
|
35
|
+
throw new Error('Release good not found');
|
|
36
|
+
// Find worksheet
|
|
37
|
+
const worksheet = await tx.getRepository(worksheet_base_1.Worksheet).findOne({
|
|
38
|
+
where: {
|
|
39
|
+
domain,
|
|
40
|
+
releaseGood,
|
|
41
|
+
type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
|
|
42
|
+
status: (0, typeorm_1.In)([worksheet_base_1.WORKSHEET_STATUS.EXECUTING, worksheet_base_1.WORKSHEET_STATUS.PARTIAL_EXECUTING])
|
|
43
|
+
},
|
|
44
|
+
relations: ['bizplace']
|
|
45
|
+
});
|
|
46
|
+
if (!worksheet)
|
|
47
|
+
throw new Error('No loading worksheet found for order ' + orderNo);
|
|
48
|
+
// Get QC setting
|
|
49
|
+
const disableQcSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
50
|
+
where: {
|
|
51
|
+
domain,
|
|
52
|
+
name: 'disable-QC-in-loading'
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const disableQc = (disableQcSetting === null || disableQcSetting === void 0 ? void 0 : disableQcSetting.value) === 'true';
|
|
56
|
+
// Build worksheet details query
|
|
57
|
+
const qb = tx
|
|
58
|
+
.getRepository(worksheet_base_1.WorksheetDetail)
|
|
59
|
+
.createQueryBuilder('worksheetDetail')
|
|
60
|
+
.leftJoinAndSelect('worksheetDetail.targetInventory', 'targetInventory')
|
|
61
|
+
.leftJoinAndSelect('targetInventory.binLocation', 'binLocation')
|
|
62
|
+
.leftJoinAndSelect('targetInventory.product', 'product')
|
|
63
|
+
.leftJoinAndSelect('targetInventory.productDetail', 'productDetail')
|
|
64
|
+
.leftJoin('targetInventory.inventory', 'inventory')
|
|
65
|
+
.addSelect('inventory.expirationDate')
|
|
66
|
+
.where('worksheetDetail.domain_id = :domainId', { domainId: domain.id })
|
|
67
|
+
.andWhere('worksheetDetail.worksheet_id = :worksheetId', { worksheetId: worksheet.id });
|
|
68
|
+
// Check if all items are deactivated
|
|
69
|
+
const allWorksheetDetails = await qb.getMany();
|
|
70
|
+
if (allWorksheetDetails.every(wsd => wsd.status === worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED)) {
|
|
71
|
+
throw new Error('Item in this RO is not ready to be loaded');
|
|
72
|
+
}
|
|
73
|
+
// Apply filters
|
|
74
|
+
qb.andWhere('targetInventory.status NOT IN (:...excludeStatuses)', {
|
|
75
|
+
excludeStatuses: [sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, sales_base_1.ORDER_INVENTORY_STATUS.RETURNING]
|
|
76
|
+
});
|
|
77
|
+
qb.andWhere('worksheetDetail.status IN (:...wsdStatus)', {
|
|
78
|
+
wsdStatus: [worksheet_base_1.WORKSHEET_STATUS.EXECUTING]
|
|
79
|
+
});
|
|
80
|
+
if (filter === FILTER_TYPES.QC) {
|
|
81
|
+
qb.andWhere('targetInventory.status = :loadingStatus', { loadingStatus: sales_base_1.ORDER_INVENTORY_STATUS.SORTING });
|
|
82
|
+
qb.andWhere('targetInventory.sortedQty <> targetInventory.pickedQty');
|
|
83
|
+
}
|
|
84
|
+
if (filter === FILTER_TYPES.LOADING) {
|
|
85
|
+
if (shouldFilterBySortedQty(releaseGood.status, disableQc)) {
|
|
86
|
+
qb.andWhere('targetInventory.sortedQty > 0');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
qb.orderBy('product.name', 'ASC');
|
|
90
|
+
const worksheetDetails = await qb.getMany();
|
|
91
|
+
if (process.env.NODE_ENV === 'development') {
|
|
92
|
+
console.timeEnd('loadingWorksheetv2');
|
|
93
|
+
}
|
|
94
|
+
return await mapdata(worksheet, worksheetDetails, releaseGood, disableQc);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
async function mapdata(worksheet, worksheetDetails, releaseGood, disableQC) {
|
|
98
|
+
var _a;
|
|
99
|
+
const worksheetInfo = {
|
|
100
|
+
worksheet: {
|
|
101
|
+
id: worksheet.id,
|
|
102
|
+
name: worksheet.name,
|
|
103
|
+
type: worksheet.type,
|
|
104
|
+
status: worksheet.status
|
|
105
|
+
},
|
|
106
|
+
bizplaceName: (_a = worksheet.bizplace) === null || _a === void 0 ? void 0 : _a.name,
|
|
107
|
+
startedAt: formatDate(worksheet.startedAt),
|
|
108
|
+
releaseGood: {
|
|
109
|
+
id: releaseGood.id,
|
|
110
|
+
name: releaseGood.name,
|
|
111
|
+
status: releaseGood.status,
|
|
112
|
+
attentionCompany: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.attentionCompany,
|
|
113
|
+
refNo: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.refNo,
|
|
114
|
+
refNo2: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.refNo2,
|
|
115
|
+
refNo3: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.refNo3,
|
|
116
|
+
remark: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.remark
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const worksheetDetailInfos = worksheetDetails.map(wsd => {
|
|
120
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
121
|
+
return ({
|
|
122
|
+
id: wsd.id,
|
|
123
|
+
name: wsd.name,
|
|
124
|
+
batchId: wsd.targetInventory.batchId || '-',
|
|
125
|
+
releaseQty: wsd.targetInventory.releaseQty,
|
|
126
|
+
pickedQty: wsd.targetInventory.pickedQty,
|
|
127
|
+
sortedQty: getSortedQty(releaseGood.status, disableQC, wsd.targetInventory.pickedQty, wsd.targetInventory.sortedQty),
|
|
128
|
+
loadedQty: wsd.targetInventory.loadedQty,
|
|
129
|
+
status: wsd.status,
|
|
130
|
+
packingType: wsd.targetInventory.packingType,
|
|
131
|
+
packingSize: wsd.targetInventory.packingSize,
|
|
132
|
+
expirationDate: (_b = (_a = wsd.targetInventory) === null || _a === void 0 ? void 0 : _a.inventory) === null || _b === void 0 ? void 0 : _b.expirationDate,
|
|
133
|
+
binLocation: {
|
|
134
|
+
name: (_c = wsd.targetInventory.binLocation) === null || _c === void 0 ? void 0 : _c.name
|
|
135
|
+
},
|
|
136
|
+
productName: (_e = (_d = wsd.targetInventory) === null || _d === void 0 ? void 0 : _d.product) === null || _e === void 0 ? void 0 : _e.name,
|
|
137
|
+
productSku: (_g = (_f = wsd.targetInventory) === null || _f === void 0 ? void 0 : _f.product) === null || _g === void 0 ? void 0 : _g.sku,
|
|
138
|
+
relatedOrderInv: {
|
|
139
|
+
id: (_h = wsd.targetInventory) === null || _h === void 0 ? void 0 : _h.id,
|
|
140
|
+
batchId: ((_j = wsd.targetInventory) === null || _j === void 0 ? void 0 : _j.batchId) || '-',
|
|
141
|
+
packingType: (_k = wsd.targetInventory) === null || _k === void 0 ? void 0 : _k.packingType,
|
|
142
|
+
product: {
|
|
143
|
+
id: (_m = (_l = wsd.targetInventory) === null || _l === void 0 ? void 0 : _l.product) === null || _m === void 0 ? void 0 : _m.id,
|
|
144
|
+
sku: (_p = (_o = wsd.targetInventory) === null || _o === void 0 ? void 0 : _o.product) === null || _p === void 0 ? void 0 : _p.sku,
|
|
145
|
+
name: (_r = (_q = wsd.targetInventory) === null || _q === void 0 ? void 0 : _q.product) === null || _r === void 0 ? void 0 : _r.name
|
|
146
|
+
},
|
|
147
|
+
productDetail: {
|
|
148
|
+
id: (_t = (_s = wsd.targetInventory) === null || _s === void 0 ? void 0 : _s.productDetail) === null || _t === void 0 ? void 0 : _t.id
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
worksheetInfo,
|
|
155
|
+
worksheetDetailInfos
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=loading-worksheet-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading-worksheet-v2.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/loading-worksheet-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.myLoadingAssignmentStatus = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
6
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
exports.myLoadingAssignmentStatus = {
|
|
8
|
+
async myLoadingAssignmentStatus(_parentObj, _params, context) {
|
|
9
|
+
const { domain, user } = context.state;
|
|
10
|
+
// Fetch Release Orders where sorter id = user id
|
|
11
|
+
const releaseOrders = await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).find({
|
|
12
|
+
where: { domain, sortedBy: user }
|
|
13
|
+
});
|
|
14
|
+
// Fetch Worksheets where type = loading and release good id is in the fetched release orders
|
|
15
|
+
const loadingWorksheets = await (0, typeorm_1.getRepository)(worksheet_base_1.Worksheet).find({
|
|
16
|
+
where: {
|
|
17
|
+
domain,
|
|
18
|
+
type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
|
|
19
|
+
releaseGood: (0, typeorm_1.In)(releaseOrders.map(ro => ro.id)),
|
|
20
|
+
status: (0, typeorm_1.In)([worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED, worksheet_base_1.WORKSHEET_STATUS.EXECUTING])
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return (loadingWorksheets || []).reduce((assignmentStatus, worksheet) => {
|
|
24
|
+
if (worksheet.status === worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED)
|
|
25
|
+
assignmentStatus.pending.push(worksheet);
|
|
26
|
+
if (worksheet.status === worksheet_base_1.WORKSHEET_STATUS.EXECUTING)
|
|
27
|
+
assignmentStatus.loading.push(worksheet);
|
|
28
|
+
return assignmentStatus;
|
|
29
|
+
}, { userId: user.id, pending: [], loading: [] });
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=my-loading-assignment-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"my-loading-assignment-status.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/my-loading-assignment-status.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAG3C,mEAA4F;AAC5F,2DAAwD;AAE3C,QAAA,yBAAyB,GAAG;IACvC,KAAK,CAAC,yBAAyB,CAAC,UAAgB,EAAE,OAAa,EAAE,OAAY;QAC3E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;QAEtE,iDAAiD;QACjD,MAAM,aAAa,GAAkB,MAAM,IAAA,uBAAa,EAAC,wBAAW,CAAC,CAAC,IAAI,CAAC;YACzE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAClC,CAAC,CAAA;QAEF,6FAA6F;QAC7F,MAAM,iBAAiB,GAAgB,MAAM,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAC,IAAI,CAAC;YACzE,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI,EAAE,+BAAc,CAAC,OAAO;gBAC5B,WAAW,EAAE,IAAA,YAAE,EAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/C,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,iCAAgB,CAAC,WAAW,EAAE,iCAAgB,CAAC,SAAS,CAAC,CAAC;aACvE;SACF,CAAC,CAAA;QAEF,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CACrC,CAAC,gBAAgB,EAAE,SAAoB,EAAE,EAAE;YACzC,IAAI,SAAS,CAAC,MAAM,KAAK,iCAAgB,CAAC,WAAW;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,iCAAgB,CAAC,SAAS;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7F,OAAO,gBAAgB,CAAA;QACzB,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9C,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortItem = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
exports.sortItem = {
|
|
7
|
+
async sortItem(_, { releaseGoodNo, productBarcode, qty, worksheetDetails }, context) {
|
|
8
|
+
const { domain, user, tx } = context.state;
|
|
9
|
+
// Single query to get order inventories based on either releaseGood name or binLocation
|
|
10
|
+
const orderInventories = await tx
|
|
11
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
12
|
+
.createQueryBuilder('orderInventory')
|
|
13
|
+
.innerJoinAndSelect('orderInventory.productDetail', 'productDetail')
|
|
14
|
+
.innerJoinAndSelect('productDetail.productBarcodes', 'productBarcode')
|
|
15
|
+
.leftJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
|
|
16
|
+
.leftJoinAndSelect('orderInventory.binLocation', 'binLocation')
|
|
17
|
+
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
18
|
+
.andWhere('orderInventory.status IN (:...statuses)', {
|
|
19
|
+
statuses: [
|
|
20
|
+
sales_base_1.ORDER_INVENTORY_STATUS.SORTING,
|
|
21
|
+
sales_base_1.ORDER_INVENTORY_STATUS.LOADING
|
|
22
|
+
]
|
|
23
|
+
})
|
|
24
|
+
.andWhere('productBarcode.gtin = :gtin', { gtin: productBarcode })
|
|
25
|
+
.andWhere(new typeorm_1.Brackets(qb => {
|
|
26
|
+
qb
|
|
27
|
+
.where('orderInventory.sortedQty < orderInventory.pickedQty')
|
|
28
|
+
.andWhere('orderInventory.sortedQty < orderInventory.releaseQty');
|
|
29
|
+
}))
|
|
30
|
+
.andWhere(new typeorm_1.Brackets(qb => {
|
|
31
|
+
qb.where('releaseGood.name = :releaseGoodNo', { releaseGoodNo }).orWhere('binLocation.name = :releaseGoodNo', { releaseGoodNo });
|
|
32
|
+
}))
|
|
33
|
+
.getMany();
|
|
34
|
+
if (!orderInventories.length)
|
|
35
|
+
throw new Error('No matching product barcode found');
|
|
36
|
+
// Calculate total available quantity (minimum of releaseQty and pickedQty for each order inventory)
|
|
37
|
+
const totalAvailableQty = orderInventories.reduce((sum, oi) => {
|
|
38
|
+
const availableQty = Math.min(oi.releaseQty, oi.pickedQty) - oi.sortedQty;
|
|
39
|
+
return sum + (availableQty > 0 ? availableQty : 0);
|
|
40
|
+
}, 0);
|
|
41
|
+
if (qty > totalAvailableQty) {
|
|
42
|
+
throw new Error(`Sort qty (${qty}) exceeds total available quantity (${totalAvailableQty})`);
|
|
43
|
+
}
|
|
44
|
+
// Distribute the sorted quantity across order inventories
|
|
45
|
+
let remainingQty = qty;
|
|
46
|
+
for (const orderInventory of orderInventories) {
|
|
47
|
+
if (remainingQty <= 0)
|
|
48
|
+
break;
|
|
49
|
+
const availableQty = Math.min(orderInventory.releaseQty, orderInventory.pickedQty) - orderInventory.sortedQty;
|
|
50
|
+
if (availableQty <= 0)
|
|
51
|
+
continue;
|
|
52
|
+
const qtyToAdd = Math.min(remainingQty, availableQty);
|
|
53
|
+
const newSortQty = orderInventory.sortedQty + qtyToAdd;
|
|
54
|
+
// Update the order inventory
|
|
55
|
+
await tx.getRepository(sales_base_1.OrderInventory).update(orderInventory.id, {
|
|
56
|
+
sortedQty: newSortQty,
|
|
57
|
+
status: sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
|
|
58
|
+
updatedAt: new Date(),
|
|
59
|
+
updater: user
|
|
60
|
+
});
|
|
61
|
+
remainingQty -= qtyToAdd;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=sort-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-item.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/sort-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.undoLoad = void 0;
|
|
4
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
5
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
6
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
7
|
+
exports.undoLoad = {
|
|
8
|
+
async undoLoad(_, { doId }, context) {
|
|
9
|
+
const { domain, tx, user } = context.state;
|
|
10
|
+
const deliveryOrder = await tx.getRepository(sales_base_1.DeliveryOrder).findOne({
|
|
11
|
+
where: { id: doId, domain },
|
|
12
|
+
relations: ['orderInventories', 'orderInventories.inventory', 'releaseGood', 'releaseGood.orderInventories']
|
|
13
|
+
});
|
|
14
|
+
if (!deliveryOrder) {
|
|
15
|
+
throw new Error(`Delivery order not found`);
|
|
16
|
+
}
|
|
17
|
+
const releaseGood = deliveryOrder.releaseGood;
|
|
18
|
+
for (const doInventory of deliveryOrder.orderInventories) {
|
|
19
|
+
const worksheetDetail = await tx.getRepository(worksheet_base_1.WorksheetDetail).findOne({
|
|
20
|
+
where: { targetInventory: doInventory, type: worksheet_base_1.WORKSHEET_TYPE.LOADING, status: worksheet_base_1.WORKSHEET_STATUS.DONE }
|
|
21
|
+
});
|
|
22
|
+
//find if the oi is splitted and not yet loaded
|
|
23
|
+
const previousOi = releaseGood.orderInventories.find(roInventory => roInventory.id !== doInventory.id &&
|
|
24
|
+
roInventory.inventoryId === doInventory.inventoryId &&
|
|
25
|
+
roInventory.productId === doInventory.productId &&
|
|
26
|
+
roInventory.productDetailId === doInventory.productDetailId &&
|
|
27
|
+
roInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADING);
|
|
28
|
+
if (previousOi) {
|
|
29
|
+
//combine previously splitted oi
|
|
30
|
+
await tx.getRepository(sales_base_1.OrderInventory).update(previousOi.id, {
|
|
31
|
+
releaseQty: previousOi.releaseQty + doInventory.releaseQty,
|
|
32
|
+
pickedQty: previousOi.pickedQty + doInventory.pickedQty,
|
|
33
|
+
sortedQty: previousOi.sortedQty + doInventory.sortedQty,
|
|
34
|
+
releaseUomValue: previousOi.releaseUomValue + doInventory.releaseUomValue,
|
|
35
|
+
updater: user,
|
|
36
|
+
updatedAt: new Date()
|
|
37
|
+
});
|
|
38
|
+
//terminate splitted oi
|
|
39
|
+
await tx.getRepository(sales_base_1.OrderInventory).update(doInventory.id, {
|
|
40
|
+
deliveryOrder: null,
|
|
41
|
+
status: sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED,
|
|
42
|
+
updatedAt: new Date(),
|
|
43
|
+
updater: user
|
|
44
|
+
});
|
|
45
|
+
//delete wsd
|
|
46
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).delete({ id: worksheetDetail.id, status: worksheet_base_1.WORKSHEET_STATUS.DONE });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
//undo oi and wsd
|
|
50
|
+
await tx.getRepository(sales_base_1.OrderInventory).update(doInventory.id, {
|
|
51
|
+
deliveryOrder: null,
|
|
52
|
+
status: sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
|
|
53
|
+
loadedAt: null,
|
|
54
|
+
loadedByUser: null,
|
|
55
|
+
loadedBy: null,
|
|
56
|
+
updater: user
|
|
57
|
+
});
|
|
58
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(worksheetDetail.id, {
|
|
59
|
+
status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING,
|
|
60
|
+
updater: user,
|
|
61
|
+
updatedAt: new Date()
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//generate inventory history
|
|
65
|
+
let inventory = doInventory.inventory;
|
|
66
|
+
await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNDO_LOADING, 0, 0, this.user);
|
|
67
|
+
}
|
|
68
|
+
await tx.getRepository(sales_base_1.DeliveryOrder).delete(deliveryOrder.id);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=undo-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"undo-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/undo-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.warehouseReturn = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
8
|
+
exports.warehouseReturn = {
|
|
9
|
+
//this function is used for zone picking warehouse return
|
|
10
|
+
//in this case, ro status will remain PROCESSING/PARTIAL_PROCESSING
|
|
11
|
+
async warehouseReturn(_, { releaseGoodNo, worksheetDetails }, context) {
|
|
12
|
+
const { domain, tx, user } = context.state;
|
|
13
|
+
//find release order
|
|
14
|
+
const releaseOrder = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
|
|
15
|
+
where: { domain, name: releaseGoodNo }
|
|
16
|
+
});
|
|
17
|
+
if (!releaseOrder) {
|
|
18
|
+
throw new Error(`Release good not found`);
|
|
19
|
+
}
|
|
20
|
+
const existingWorksheet = await tx.getRepository(worksheet_base_1.Worksheet).findOne({
|
|
21
|
+
where: { releaseGood: releaseOrder, type: worksheet_base_1.WORKSHEET_TYPE.WAREHOUSE_RETURN }
|
|
22
|
+
});
|
|
23
|
+
if (existingWorksheet) {
|
|
24
|
+
throw new Error('Existing return worksheet exist for this order');
|
|
25
|
+
}
|
|
26
|
+
let orderInventories = worksheetDetails.map(wsd => wsd.relatedOrderInv);
|
|
27
|
+
//find order inventories
|
|
28
|
+
let foundOrderInventories = await tx.getRepository(sales_base_1.OrderInventory).find({
|
|
29
|
+
where: { domain, id: (0, typeorm_1.In)(orderInventories.map(oi => oi.id)) },
|
|
30
|
+
relations: [
|
|
31
|
+
'inventory',
|
|
32
|
+
'domain',
|
|
33
|
+
'bizplace',
|
|
34
|
+
'releaseGood',
|
|
35
|
+
'product',
|
|
36
|
+
'productDetail',
|
|
37
|
+
'binLocation',
|
|
38
|
+
'orderProduct'
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
let completedLoadingWsdIds = [];
|
|
42
|
+
let returnOrderInventories = foundOrderInventories.flatMap(oi => {
|
|
43
|
+
const matchingWorksheetDetail = worksheetDetails.find(wsd => wsd.relatedOrderInv.id === oi.id);
|
|
44
|
+
if (!matchingWorksheetDetail)
|
|
45
|
+
return [oi];
|
|
46
|
+
if (matchingWorksheetDetail.returnQty < oi.releaseQty) {
|
|
47
|
+
const remainingOI = Object.assign(Object.assign({}, oi), { id: undefined, name: sales_base_1.OrderNoGenerator.orderInventory(), status: sales_base_1.ORDER_INVENTORY_STATUS.RETURNING, releaseQty: matchingWorksheetDetail.returnQty, releaseUomValue: (oi.releaseUomValue / oi.releaseQty) * matchingWorksheetDetail.returnQty, pickedQty: oi.pickedQty - matchingWorksheetDetail.returnQty, sortedQty: oi.sortedQty - matchingWorksheetDetail.returnQty, updatedAt: new Date(), updater: user });
|
|
48
|
+
oi.releaseQty = oi.releaseQty - matchingWorksheetDetail.returnQty;
|
|
49
|
+
oi.releaseUomValue = oi.releaseUomValue - remainingOI.releaseUomValue;
|
|
50
|
+
oi.pickedQty = oi.pickedQty - matchingWorksheetDetail.returnQty;
|
|
51
|
+
oi.sortedQty = oi.sortedQty - matchingWorksheetDetail.returnQty;
|
|
52
|
+
oi.updatedAt = new Date();
|
|
53
|
+
oi.updater = user;
|
|
54
|
+
return [oi, remainingOI];
|
|
55
|
+
}
|
|
56
|
+
else if (matchingWorksheetDetail.returnQty === oi.releaseQty) {
|
|
57
|
+
oi.status = sales_base_1.ORDER_INVENTORY_STATUS.RETURNING;
|
|
58
|
+
oi.updatedAt = new Date();
|
|
59
|
+
oi.updater = user;
|
|
60
|
+
completedLoadingWsdIds.push(oi.id);
|
|
61
|
+
return [oi];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
//update current loading wsd status to done
|
|
65
|
+
//for returnQty = releaseQty items
|
|
66
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update({ targetInventory: (0, typeorm_1.In)(completedLoadingWsdIds) }, {
|
|
67
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
68
|
+
updater: user,
|
|
69
|
+
updatedAt: new Date()
|
|
70
|
+
});
|
|
71
|
+
await tx.getRepository(sales_base_1.OrderInventory).save(returnOrderInventories);
|
|
72
|
+
//generate worksheet
|
|
73
|
+
let returnWorksheet = {
|
|
74
|
+
name: `RETURN-${(0, uuid_1.v4)()}`,
|
|
75
|
+
type: worksheet_base_1.WORKSHEET_TYPE.WAREHOUSE_RETURN,
|
|
76
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED,
|
|
77
|
+
createdAt: new Date(),
|
|
78
|
+
domain: releaseOrder.domainId,
|
|
79
|
+
bizplace: releaseOrder.bizplaceId,
|
|
80
|
+
releaseGood: releaseOrder,
|
|
81
|
+
creator: user
|
|
82
|
+
};
|
|
83
|
+
await tx.getRepository(worksheet_base_1.Worksheet).save(returnWorksheet);
|
|
84
|
+
//generate worksheet detail only for return order inventories
|
|
85
|
+
const returnWorksheetDetails = returnOrderInventories
|
|
86
|
+
.filter(oi => oi.status === sales_base_1.ORDER_INVENTORY_STATUS.RETURNING)
|
|
87
|
+
.map(roi => ({
|
|
88
|
+
name: `RETURN-DETAIL-` + (0, uuid_1.v4)(),
|
|
89
|
+
type: worksheet_base_1.WORKSHEET_TYPE.WAREHOUSE_RETURN,
|
|
90
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED,
|
|
91
|
+
createdAt: new Date(),
|
|
92
|
+
domain: domain,
|
|
93
|
+
bizplaceId: releaseOrder.bizplaceId,
|
|
94
|
+
worksheet: returnWorksheet,
|
|
95
|
+
targetInventory: roi,
|
|
96
|
+
creator: user
|
|
97
|
+
}));
|
|
98
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).save(returnWorksheetDetails);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=warehouse-return.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warehouse-return.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/warehouse-return.ts"],"names":[],"mappings":"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"}
|