@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,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.outboundOrderDetailsReport = void 0;
|
|
4
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
5
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
exports.outboundOrderDetailsReport = {
|
|
8
|
+
async outboundOrderDetailsReport(_, params, context) {
|
|
9
|
+
try {
|
|
10
|
+
const { domain, user, tx } = context.state;
|
|
11
|
+
let bizplaceFilter = { name: '', operator: '', value: '' };
|
|
12
|
+
let userFilter = params.filters.find(data => data.name === 'user');
|
|
13
|
+
let fromDate = params.filters.find(data => data.name === 'fromDate');
|
|
14
|
+
let toDate = params.filters.find(data => data.name === 'toDate');
|
|
15
|
+
let roNo = params.filters.find(data => data.name === 'roNo');
|
|
16
|
+
let doNo = params.filters.find(data => data.name === 'doNo');
|
|
17
|
+
let status = params.filters.find(data => data.name === 'status');
|
|
18
|
+
let binLocation = params.filters.find(data => data.name === 'binLocation');
|
|
19
|
+
let priorityDelivery = params.filters.find(data => data.name === 'priorityDelivery');
|
|
20
|
+
let byPackingComplete = params.filters.find(data => data.name === 'byPackingComplete');
|
|
21
|
+
if (userFilter) {
|
|
22
|
+
const user = await tx.getRepository(auth_base_1.User).findOne({
|
|
23
|
+
where: { id: userFilter.value },
|
|
24
|
+
relations: ['bizplaces']
|
|
25
|
+
});
|
|
26
|
+
const bizplace = user.bizplaces[0];
|
|
27
|
+
if (!bizplace)
|
|
28
|
+
throw 'Invalid input';
|
|
29
|
+
bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
|
|
33
|
+
}
|
|
34
|
+
if (!bizplaceFilter || !fromDate || !toDate)
|
|
35
|
+
throw 'Invalid input';
|
|
36
|
+
const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
|
|
37
|
+
id: bizplaceFilter.value
|
|
38
|
+
});
|
|
39
|
+
await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
|
|
40
|
+
let extraQueryFilters = '';
|
|
41
|
+
if (roNo) {
|
|
42
|
+
extraQueryFilters = `${extraQueryFilters} and ro_no like '%${roNo.value}%' `;
|
|
43
|
+
}
|
|
44
|
+
if (doNo) {
|
|
45
|
+
extraQueryFilters = `${extraQueryFilters} and delivery_order_no like '%${doNo.value}%' `;
|
|
46
|
+
}
|
|
47
|
+
console.time('temp');
|
|
48
|
+
await tx.query(`
|
|
49
|
+
create temp table temp_outbound_order_report on commit drop as (
|
|
50
|
+
select * from (
|
|
51
|
+
select oi.id,
|
|
52
|
+
oi.release_qty AS "release_qty", oi.picked_at, oi.picked_by, oi.packed_at, oi.packed_by, oi.loaded_at, oi.loaded_by,
|
|
53
|
+
oi.release_qty as "qty", oi.release_uom_value as "uom_value", oi.return_to_location_qty, oi.return_to_location_uom_value, oi.product_detail_id,
|
|
54
|
+
l2.name as "picking_location",
|
|
55
|
+
coalesce(do2.other_driver, td.name) as driver_name,
|
|
56
|
+
coalesce(do2.truck_no, tv.name, rg.truck_no) as vehicle_no,
|
|
57
|
+
do2.name AS "delivery_order_no", do2.delivery_date::timestamp AS "delivery_order_delivery_date", do2."to", do2.contact_point_ref_id, do2.pallet_qty,
|
|
58
|
+
coalesce(do2.delivery_date_time, do2.delivery_date::timestamp, ms.dispatched_at, null) as "dispatched_at",
|
|
59
|
+
rg.bizplace_id, $5 AS "bizplace_name", $6 AS "bizplace_description", rg.priority_delivery as "priority_delivery",
|
|
60
|
+
coalesce( concat(do2.delivery_address_1, do2.delivery_address_2, do2.delivery_address_3, do2.delivery_address_4, do2.delivery_address_5, do2.postal_code, do2.country), concat(rg.delivery_address_1, rg.delivery_address_2, rg.delivery_address_3, rg.delivery_address_4, rg.delivery_address_5, rg.postal_code, rg.country)) as delivery_address,
|
|
61
|
+
so.container_no, so.container_size,
|
|
62
|
+
rg.export_option, rg.name AS "ro_no", rg."type" as "ro_type", rg.ref_no AS "ref_no_1", rg.ref_no_2 AS "ref_no_2", rg.ref_no_3 AS "ref_no_3", rg.status as "ro_status",
|
|
63
|
+
u1.name as "order_created_by", rg.created_at AS "order_created_at",
|
|
64
|
+
rg.accepted_at, u4.name as accepted_by, rg.checked_remark_by, rg.checked_remark_at, coalesce(do2.own_collection, rg.own_transport) AS own_transport,
|
|
65
|
+
p.id as "product_id", p.sku as "product_sku", p.name AS "product_name", p.description AS "product_description", p.type as "product_type", oi.packing_type as "packing_type", oi.packing_size as "packing_size",
|
|
66
|
+
i.uom, i.unit_cost,
|
|
67
|
+
i.id as inventory_id, i.pallet_id, i.carton_id, i.batch_id, i.batch_id_ref, i.expiration_date, i.manufacture_date,
|
|
68
|
+
coalesce(ms.name,'') as manifest_no, coalesce(rg.manifested_at, ms.created_at) as manifested_at, coalesce(u6.name, u5.name) as manifested_by, l.name as picking_bin
|
|
69
|
+
from release_goods rg
|
|
70
|
+
left join users u1 on u1.id = rg.creator_id
|
|
71
|
+
inner join order_inventories oi on rg.id = oi.release_good_id
|
|
72
|
+
left join locations l on l.id = oi.bin_location_id
|
|
73
|
+
left join shipping_orders so on so.id = rg.shipping_order_id
|
|
74
|
+
left join users u4 on u4.id = rg.accepted_by_id
|
|
75
|
+
left join manifests ms on ms.id = rg.manifest_id
|
|
76
|
+
left join users u5 on u5.id = ms.creator_id
|
|
77
|
+
left join users u6 on u6.id = rg.manifested_by_id
|
|
78
|
+
inner join inventories i on i.id = oi.inventory_id
|
|
79
|
+
inner join temp_products p on p.id = oi.product_id
|
|
80
|
+
left join delivery_orders do2 on do2.id = oi.delivery_order_id
|
|
81
|
+
left join transport_drivers td ON td.id = do2.transport_driver_id
|
|
82
|
+
left join transport_vehicles tv on tv.id = do2.transport_vehicle_id
|
|
83
|
+
left join locations l2 on l2.id = i.location_id
|
|
84
|
+
where rg.bizplace_id = $2 and rg.domain_id = $1
|
|
85
|
+
and rg.created_at >= $3 and rg.created_at <= $4
|
|
86
|
+
and oi.status <> 'REPLACED'
|
|
87
|
+
and oi.release_qty > 0
|
|
88
|
+
${status ? `and rg.status = '${status.value}' ` : ``}
|
|
89
|
+
${binLocation ? `and l.name ilike '${binLocation.value}' ` : ``}
|
|
90
|
+
${priorityDelivery ? `and rg.priority_delivery = ${priorityDelivery.value} ` : ``}
|
|
91
|
+
and oi.release_qty > 0
|
|
92
|
+
) src
|
|
93
|
+
where 1=1
|
|
94
|
+
${extraQueryFilters}
|
|
95
|
+
union all
|
|
96
|
+
select * from (
|
|
97
|
+
select op.id,
|
|
98
|
+
op.release_qty AS "release_qty", NULL::timestamp, NULL, NULL::timestamp, NULL, NULL::timestamp, NULL,
|
|
99
|
+
op.release_qty as "qty", op.release_uom_value as "uom_value", NULL:: double precision, null:: double precision, op.product_detail_id,
|
|
100
|
+
NULL,
|
|
101
|
+
NULL, NULL,
|
|
102
|
+
NULL, NULL::timestamp, NULL, null::uuid, null,
|
|
103
|
+
null::timestamp,
|
|
104
|
+
rg.bizplace_id, $5 AS "bizplace_name", $6 AS "bizplace_description", rg.priority_delivery as "priority_delivery",
|
|
105
|
+
NULL, so.container_no, so.container_size,
|
|
106
|
+
rg.export_option, rg.name AS "ro_no", rg."type" as "ro_type", rg.ref_no AS "ref_no_1", rg.ref_no_2 AS "ref_no_2", rg.ref_no_3 AS "ref_no_3", rg.status as "ro_status",
|
|
107
|
+
u1.name as "order_created_by", rg.created_at AS "order_created_at",
|
|
108
|
+
rg.accepted_at, u4.name as accepted_by, rg.checked_remark_by, rg.checked_remark_at, rg.own_transport AS own_transport,
|
|
109
|
+
p.id as "product_id", p.sku as "product_sku", p.name AS "product_name", p.description AS "product_description", p.type as "product_type", op.packing_type as "packing_type", op.packing_size as "packing_size",
|
|
110
|
+
op.uom, null::double precision,
|
|
111
|
+
null::uuid, NULL, NULL, op.batch_id, op.batch_id_ref, null::date, null::date,
|
|
112
|
+
coalesce(ms.name,'') as manifest_no, coalesce(rg.manifested_at, ms.created_at) as manifested_at, coalesce(u6.name, u5.name) as manifested_by, NULL
|
|
113
|
+
from release_goods rg
|
|
114
|
+
left join users u1 on u1.id = rg.creator_id
|
|
115
|
+
inner join order_products op on rg.id = op.release_good_id
|
|
116
|
+
left join shipping_orders so on so.id = rg.shipping_order_id
|
|
117
|
+
left join users u4 on u4.id = rg.accepted_by_id
|
|
118
|
+
left join manifests ms on ms.id = rg.manifest_id
|
|
119
|
+
left join users u5 on u5.id = ms.creator_id
|
|
120
|
+
left join users u6 on u6.id = rg.manifested_by_id
|
|
121
|
+
inner join temp_products p on p.id = op.product_id
|
|
122
|
+
where rg.bizplace_id = $2 and rg.domain_id = $1
|
|
123
|
+
and rg.created_at >= $3 and rg.created_at <= $4
|
|
124
|
+
and rg.assigned_inventory = false
|
|
125
|
+
${status ? `and rg.status = '${status.value}' ` : ``}
|
|
126
|
+
and rg.assigned_inventory = false
|
|
127
|
+
and op.release_qty > 0
|
|
128
|
+
) src2
|
|
129
|
+
where 1=1
|
|
130
|
+
${extraQueryFilters}
|
|
131
|
+
)
|
|
132
|
+
`, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value, bizplace.name, bizplace.description]);
|
|
133
|
+
console.timeEnd('temp');
|
|
134
|
+
await tx.query(`
|
|
135
|
+
create temp table temp_outbound_order_worksheet on commit drop as (
|
|
136
|
+
select oi.id, w.started_at, w.ended_at, w.type, w.status from temp_outbound_order_report oi
|
|
137
|
+
inner join worksheet_details wd on wd.target_inventory_id = oi.id
|
|
138
|
+
inner join worksheets w on w.id = wd.worksheet_id
|
|
139
|
+
where oi.id is not null
|
|
140
|
+
)
|
|
141
|
+
`);
|
|
142
|
+
const total = await tx.query(`
|
|
143
|
+
select count(*) from temp_outbound_order_report oi
|
|
144
|
+
left join temp_outbound_order_worksheet wpack on wpack.id = oi.id and wpack.type= 'PACKING'
|
|
145
|
+
WHERE 1=1
|
|
146
|
+
${byPackingComplete.value
|
|
147
|
+
? `and wpack.ended_at BETWEEN '${fromDate.value}' and '${toDate.value}' and wpack.status = 'DONE'`
|
|
148
|
+
: ''}
|
|
149
|
+
`);
|
|
150
|
+
console.time('result');
|
|
151
|
+
const result = await tx.query(`
|
|
152
|
+
select *,
|
|
153
|
+
round((qty * unit_volume)::numeric ,4) as total_volume,
|
|
154
|
+
round((qty * unit_nett_weight)::numeric ,4) as total_unit_nett_weight,
|
|
155
|
+
round((qty * unit_gross_weight)::numeric ,4) as total_unit_gross_weight
|
|
156
|
+
from (
|
|
157
|
+
select oi.*,
|
|
158
|
+
wpick.started_at as picking_start, wpick.ended_at as picking_complete,
|
|
159
|
+
wpack.started_at as packing_start, wpack.ended_at as packing_complete,
|
|
160
|
+
wsort.started_at as sorting_start, wsort.ended_at as sorting_complete,
|
|
161
|
+
wload.started_at as loading_start, wload.ended_at as loading_complete,
|
|
162
|
+
coalesce(delivery_address, concat(cp.address, cp.address_2)) as "delivery_address",
|
|
163
|
+
coalesce((select volume from product_details pd where pd.id = oi.product_detail_id
|
|
164
|
+
order by created_at desc
|
|
165
|
+
fetch first 1 rows only),0) as unit_volume,
|
|
166
|
+
coalesce((select nett_weight from product_details pd where pd.id = oi.product_detail_id
|
|
167
|
+
order by created_at desc
|
|
168
|
+
fetch first 1 rows only),0) as unit_nett_weight,
|
|
169
|
+
coalesce((select gross_weight from product_details pd where pd.id = oi.product_detail_id
|
|
170
|
+
order by created_at desc
|
|
171
|
+
fetch first 1 rows only),0) as unit_gross_weight,
|
|
172
|
+
coalesce((select weight_unit from product_details pd where pd.id = oi.product_detail_id
|
|
173
|
+
order by created_at desc
|
|
174
|
+
fetch first 1 rows only),'') as weight_unit,
|
|
175
|
+
coalesce((select unit_cost from reduced_inventory_histories rih where
|
|
176
|
+
rih.ref_order_id::uuid = oi.id and
|
|
177
|
+
rih.inventory_id::uuid = oi.inventory_id and
|
|
178
|
+
rih.transaction_type = 'PICKING'
|
|
179
|
+
order by created_at desc
|
|
180
|
+
fetch first 1 rows only), oi.unit_cost, 0) as unit_cost
|
|
181
|
+
from temp_outbound_order_report oi
|
|
182
|
+
left join contact_points cp on cp.id = oi.contact_point_ref_id
|
|
183
|
+
left join temp_outbound_order_worksheet wpick on wpick.id = oi.id
|
|
184
|
+
and (wpick.type= 'PICKING' OR wpick.type = 'BATCH_PICKING')
|
|
185
|
+
left join temp_outbound_order_worksheet wpack on wpack.id = oi.id
|
|
186
|
+
and wpack.type= 'PACKING'
|
|
187
|
+
left join temp_outbound_order_worksheet wsort on wsort.id = oi.id
|
|
188
|
+
and wsort.type= 'SORTING'
|
|
189
|
+
left join temp_outbound_order_worksheet wload on wload.id = oi.id
|
|
190
|
+
and wload.type= 'LOADING'
|
|
191
|
+
WHERE 1=1
|
|
192
|
+
${byPackingComplete.value
|
|
193
|
+
? `and wpack.ended_at BETWEEN '${fromDate.value}' and '${toDate.value}' and wpack.status = 'DONE'`
|
|
194
|
+
: ''}
|
|
195
|
+
${byPackingComplete.value ? `ORDER BY wpack.ended_at DESC` : `ORDER BY order_created_at DESC`}
|
|
196
|
+
offset $1 limit $2
|
|
197
|
+
) src
|
|
198
|
+
`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
|
|
199
|
+
console.timeEnd('result');
|
|
200
|
+
let items = result.map(itm => {
|
|
201
|
+
return {
|
|
202
|
+
bizplace: {
|
|
203
|
+
id: itm.bizplace_id,
|
|
204
|
+
name: itm.bizplace_name,
|
|
205
|
+
description: itm.bizplace_description
|
|
206
|
+
},
|
|
207
|
+
doNo: itm.delivery_order_no,
|
|
208
|
+
doDeliveryDate: itm.delivery_order_delivery_date,
|
|
209
|
+
dispatchedAt: itm.dispatched_at,
|
|
210
|
+
deliveryAddress: itm.delivery_address,
|
|
211
|
+
manifestNo: itm.manifest_no,
|
|
212
|
+
roNo: itm.ro_no,
|
|
213
|
+
roType: itm.ro_type,
|
|
214
|
+
status: itm.ro_status,
|
|
215
|
+
refNo1: itm.ref_no_1,
|
|
216
|
+
refNo3: itm.ref_no_3,
|
|
217
|
+
refNo2: itm.ref_no_2,
|
|
218
|
+
acceptedBy: itm.accepted_by,
|
|
219
|
+
acceptedAt: itm.accepted_at,
|
|
220
|
+
orderCreatedBy: itm.order_created_by,
|
|
221
|
+
orderCreatedAt: itm.order_created_at,
|
|
222
|
+
pickingStart: itm.picking_start,
|
|
223
|
+
pickingComplete: itm.picking_complete,
|
|
224
|
+
packingStart: itm.packing_start,
|
|
225
|
+
packingComplete: itm.packing_complete,
|
|
226
|
+
sortingStart: itm.sorting_start,
|
|
227
|
+
sortingComplete: itm.sorting_complete,
|
|
228
|
+
loadingStart: itm.loading_start,
|
|
229
|
+
loadingComplete: itm.loading_complete,
|
|
230
|
+
product: {
|
|
231
|
+
id: itm.product_id,
|
|
232
|
+
sku: itm.product_sku,
|
|
233
|
+
name: itm.product_name,
|
|
234
|
+
description: itm.product_description,
|
|
235
|
+
type: itm.product_type
|
|
236
|
+
},
|
|
237
|
+
packType: itm.packing_type,
|
|
238
|
+
packSize: itm.packing_size,
|
|
239
|
+
qty: Math.abs(itm.qty),
|
|
240
|
+
uomValue: Math.abs(itm.uom_value),
|
|
241
|
+
uom: itm.uom,
|
|
242
|
+
unitCost: itm.unit_cost,
|
|
243
|
+
returnToLocationQty: itm.return_to_location_qty,
|
|
244
|
+
returnToLocationUomValue: itm.return_to_location_uom_value,
|
|
245
|
+
unitVolume: itm.unit_volume,
|
|
246
|
+
totalVolume: itm.total_volume,
|
|
247
|
+
unitNettWeight: itm.unit_nett_weight,
|
|
248
|
+
totalUnitNettWeight: itm.total_unit_nett_weight,
|
|
249
|
+
unitGrossWeight: itm.unit_gross_weight,
|
|
250
|
+
totalUnitGrossWeight: itm.total_unit_gross_weight,
|
|
251
|
+
weightUnit: itm.weight_unit,
|
|
252
|
+
palletId: itm.pallet_id,
|
|
253
|
+
cartonId: itm.carton_id,
|
|
254
|
+
batchId: itm.batch_id,
|
|
255
|
+
batchIdRef: itm.batch_id_ref,
|
|
256
|
+
expirationDate: itm.expiration_date,
|
|
257
|
+
manufactureDate: itm.manufacture_date,
|
|
258
|
+
pickingLocation: itm.picking_location,
|
|
259
|
+
pickedAt: itm.picked_at,
|
|
260
|
+
pickedBy: itm.picked_by,
|
|
261
|
+
packedAt: itm.packed_at,
|
|
262
|
+
packedBy: itm.packed_by,
|
|
263
|
+
checkedRemarkBy: itm.checked_remark_by,
|
|
264
|
+
checkedRemarkAt: itm.checked_remark_at,
|
|
265
|
+
loadedAt: itm.loaded_at,
|
|
266
|
+
loadedBy: itm.loaded_by,
|
|
267
|
+
manifestedAt: itm.manifested_at,
|
|
268
|
+
manifestedBy: itm.manifested_by,
|
|
269
|
+
binLocation: itm.picking_bin,
|
|
270
|
+
exportOption: itm.export_option,
|
|
271
|
+
containerNo: itm.container_no,
|
|
272
|
+
containerSize: itm.container_size,
|
|
273
|
+
palletQty: itm.pallet_qty,
|
|
274
|
+
transportOption: itm.own_transport ? 'Own Transport' : 'Warehouse Transport',
|
|
275
|
+
vehicleNo: itm.vehicle_no,
|
|
276
|
+
driverName: itm.driver_name,
|
|
277
|
+
priorityDelivery: itm.priority_delivery
|
|
278
|
+
};
|
|
279
|
+
});
|
|
280
|
+
return {
|
|
281
|
+
items,
|
|
282
|
+
total: total[0].count
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
throw error;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
//# sourceMappingURL=outbound-order-details-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-order-details-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/outbound-order-details-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.outboundSerialNumberReport = void 0;
|
|
4
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
5
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
exports.outboundSerialNumberReport = {
|
|
8
|
+
async outboundSerialNumberReport(_, params, context) {
|
|
9
|
+
try {
|
|
10
|
+
const { tx } = context.state;
|
|
11
|
+
let bizplaceFilter = { name: '', operator: '', value: '' };
|
|
12
|
+
let userFilter = params.filters.find(data => data.name === 'user');
|
|
13
|
+
let fromDate = params.filters.find(data => data.name === 'fromDate');
|
|
14
|
+
let toDate = params.filters.find(data => data.name === 'toDate');
|
|
15
|
+
let orderNo = params.filters.find(data => data.name === 'orderNo');
|
|
16
|
+
let ref = params.filters.find(data => data.name === 'ref');
|
|
17
|
+
let palletId = params.filters.find(data => data.name === 'palletId');
|
|
18
|
+
let cartonId = params.filters.find(data => data.name === 'cartonId');
|
|
19
|
+
let serialNumber = params.filters.find(data => data.name === 'serialNumber');
|
|
20
|
+
if (userFilter) {
|
|
21
|
+
const user = await tx.getRepository(auth_base_1.User).findOne({
|
|
22
|
+
where: { id: userFilter.value },
|
|
23
|
+
relations: ['bizplaces']
|
|
24
|
+
});
|
|
25
|
+
const bizplace = user.bizplaces[0];
|
|
26
|
+
if (!bizplace)
|
|
27
|
+
throw 'Invalid input';
|
|
28
|
+
bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
|
|
32
|
+
}
|
|
33
|
+
if (!bizplaceFilter || !fromDate || !toDate)
|
|
34
|
+
throw 'Invalid input';
|
|
35
|
+
const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
|
|
36
|
+
id: bizplaceFilter.value
|
|
37
|
+
});
|
|
38
|
+
await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
|
|
39
|
+
let extraQueryFilters = '';
|
|
40
|
+
if (orderNo) {
|
|
41
|
+
extraQueryFilters = `${extraQueryFilters} and order_no like '%${orderNo.value}%' `;
|
|
42
|
+
}
|
|
43
|
+
if (palletId) {
|
|
44
|
+
extraQueryFilters = `${extraQueryFilters} and pallet_id like '%${palletId.value}%' `;
|
|
45
|
+
}
|
|
46
|
+
if (cartonId) {
|
|
47
|
+
extraQueryFilters = `${extraQueryFilters} and carton_id like '%${cartonId.value}%' `;
|
|
48
|
+
}
|
|
49
|
+
if (serialNumber) {
|
|
50
|
+
extraQueryFilters = `${extraQueryFilters} and serial_number like '%${serialNumber.value}%' `;
|
|
51
|
+
}
|
|
52
|
+
let refNoQueryFilter = '';
|
|
53
|
+
if (ref) {
|
|
54
|
+
let refValue = ref.value
|
|
55
|
+
.toLowerCase()
|
|
56
|
+
.split(',')
|
|
57
|
+
.map(ref => {
|
|
58
|
+
return "'%" + ref.trim().replace(/'/g, "''") + "%'";
|
|
59
|
+
})
|
|
60
|
+
.join(',');
|
|
61
|
+
refNoQueryFilter = `AND (
|
|
62
|
+
Lower(rg.ref_no) LIKE ANY(ARRAY[${refValue}])
|
|
63
|
+
OR Lower(rg.ref_no_2) LIKE ANY(ARRAY[${refValue}])
|
|
64
|
+
OR Lower(rg.ref_no_3) LIKE ANY(ARRAY[${refValue}])
|
|
65
|
+
)`;
|
|
66
|
+
}
|
|
67
|
+
await tx.query(`
|
|
68
|
+
create temp table temp_outbound_serial_number_report on commit drop as (
|
|
69
|
+
select * from (
|
|
70
|
+
select
|
|
71
|
+
row_number() over(partition by rg."name" order by coalesce(w.started_at, ii.created_at), p.sku ) as "no",
|
|
72
|
+
rg."name" as "order_no", concat_ws(', ',rg.delivery_address_1,rg.delivery_address_2,rg.delivery_address_3,rg.delivery_address_4,rg.delivery_address_5,rg.postal_code,rg.city,rg.state) as "full_delivery_address",
|
|
73
|
+
rg."attention_to" as "attention_to",
|
|
74
|
+
i.pallet_id, i.carton_id, rg.ref_no, rg.ref_no_2, rg.ref_no_3,
|
|
75
|
+
p.id as "product_id", p.sku as "product_sku", p.brand_sku as "product_brand_sku",
|
|
76
|
+
p.name as "product_name", p.description as "product_description", p."type" as "product_type",
|
|
77
|
+
coalesce(pd.volume, '0') as "product_volume",
|
|
78
|
+
ii.serial_number,
|
|
79
|
+
coalesce(w.started_at,ii.created_at) as "etd"
|
|
80
|
+
from inventory_items ii
|
|
81
|
+
inner join inventories i on i.id = ii.inventory_id
|
|
82
|
+
inner join temp_products p on p.id = i.product_id
|
|
83
|
+
left join product_details pd on pd.product_id = p.id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
|
|
84
|
+
inner join release_goods rg on rg.id = ii.outbound_order_id::uuid
|
|
85
|
+
left join worksheets w on w.release_good_id = rg.id and w.type = 'PICKING'
|
|
86
|
+
where
|
|
87
|
+
i.domain_id = $1 and i.bizplace_id = $2
|
|
88
|
+
and coalesce(w.started_at, ii.created_at) between $3 and $4
|
|
89
|
+
${refNoQueryFilter}
|
|
90
|
+
order by coalesce(w.started_at, ii.created_at), p.sku
|
|
91
|
+
) src
|
|
92
|
+
where 1=1
|
|
93
|
+
${extraQueryFilters}
|
|
94
|
+
)
|
|
95
|
+
`, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]);
|
|
96
|
+
const total = await tx.query(`
|
|
97
|
+
select count(*) from temp_outbound_serial_number_report
|
|
98
|
+
`);
|
|
99
|
+
const result = await tx.query(`
|
|
100
|
+
select *
|
|
101
|
+
from temp_outbound_serial_number_report
|
|
102
|
+
offset $1 limit $2
|
|
103
|
+
`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
|
|
104
|
+
let items = result.map(itm => {
|
|
105
|
+
let data = {
|
|
106
|
+
no: itm.no,
|
|
107
|
+
bizplace: {
|
|
108
|
+
description: bizplace.description,
|
|
109
|
+
name: bizplace.name
|
|
110
|
+
},
|
|
111
|
+
fullDeliveryAddress: itm.full_delivery_address,
|
|
112
|
+
attentionTo: itm.attention_to,
|
|
113
|
+
palletId: itm.pallet_id,
|
|
114
|
+
cartonId: itm.carton_id,
|
|
115
|
+
orderNo: itm.order_no,
|
|
116
|
+
refNo1: itm.ref_no,
|
|
117
|
+
refNo2: itm.ref_no_2,
|
|
118
|
+
refNo3: itm.ref_no_3,
|
|
119
|
+
product: {
|
|
120
|
+
id: itm.product_id,
|
|
121
|
+
sku: itm.product_sku,
|
|
122
|
+
brandSku: itm.product_brand_sku,
|
|
123
|
+
name: itm.product_name,
|
|
124
|
+
description: itm.product_description,
|
|
125
|
+
type: itm.product_type,
|
|
126
|
+
volume: itm.product_volume
|
|
127
|
+
},
|
|
128
|
+
serialNumber: itm.serial_number,
|
|
129
|
+
etd: itm.etd
|
|
130
|
+
};
|
|
131
|
+
return data;
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
items,
|
|
135
|
+
total: total[0].count
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=outbound-serial-number-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-serial-number-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/outbound-serial-number-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pgUdfQuery = void 0;
|
|
4
|
+
exports.pgUdfQuery = {
|
|
5
|
+
async pgUdfQuery(_, params, context) {
|
|
6
|
+
const { domain, tx } = context.state;
|
|
7
|
+
let udfName = params.filters.find(param => param.name === 'udf');
|
|
8
|
+
let domainParam = params.filters.find(param => param.name === 'domain_id');
|
|
9
|
+
try {
|
|
10
|
+
if (!(udfName === null || udfName === void 0 ? void 0 : udfName.value)) {
|
|
11
|
+
throw new Error('UDF name is required');
|
|
12
|
+
}
|
|
13
|
+
if (!(domainParam === null || domainParam === void 0 ? void 0 : domainParam.value)) {
|
|
14
|
+
params.filters.push({ name: 'domain_id', operator: 'eq', value: domain.id });
|
|
15
|
+
}
|
|
16
|
+
// Remove the udf filter and convert remaining filters to an object
|
|
17
|
+
const parameters = params.filters
|
|
18
|
+
.filter(f => f.name !== 'udf')
|
|
19
|
+
.map(filter => ({
|
|
20
|
+
[filter.name]: filter.value
|
|
21
|
+
}));
|
|
22
|
+
return { items: JSON.stringify(await callPostgresFunction(udfName.value, tx, parameters)) };
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Calls a PostgreSQL user-defined function through TypeORM
|
|
31
|
+
*
|
|
32
|
+
* @param functionName - Name of the PostgreSQL UDF to call
|
|
33
|
+
* @param entityManager - EntityManager instance
|
|
34
|
+
* @param parameters - Array of parameters or string to pass to the function
|
|
35
|
+
* @returns Promise with the function result
|
|
36
|
+
*/
|
|
37
|
+
async function callPostgresFunction(functionName, entityManager, parameters) {
|
|
38
|
+
try {
|
|
39
|
+
const exists = await entityManager.query(`
|
|
40
|
+
SELECT EXISTS (
|
|
41
|
+
SELECT 1 FROM pg_proc p
|
|
42
|
+
JOIN pg_namespace n ON p.pronamespace = n.oid
|
|
43
|
+
WHERE p.proname = $1
|
|
44
|
+
AND n.nspname = 'public'
|
|
45
|
+
)`, [functionName]);
|
|
46
|
+
if (!exists[0].exists) {
|
|
47
|
+
throw new Error(`PostgreSQL function '${functionName}' does not exist in the database.`);
|
|
48
|
+
}
|
|
49
|
+
let query, params;
|
|
50
|
+
if (typeof parameters === 'string') {
|
|
51
|
+
// Pass string parameter directly
|
|
52
|
+
query = `SELECT * FROM ${functionName}($1)`;
|
|
53
|
+
params = [parameters];
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Handle array of parameters
|
|
57
|
+
const paramPlaceholders = parameters.map((_, index) => `$${index + 1}`).join(', ');
|
|
58
|
+
query = `SELECT * FROM ${functionName}(${paramPlaceholders})`;
|
|
59
|
+
params = parameters.map(param => Object.values(param)).flat();
|
|
60
|
+
}
|
|
61
|
+
// Execute the query with the provided parameters
|
|
62
|
+
const result = await entityManager.query(query, params);
|
|
63
|
+
// PostgreSQL functions typically return rows, so we handle both single and multiple results
|
|
64
|
+
return Array.isArray(result) && result.length === 1 ? result[0] : result;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
throw new Error(`Error calling PostgreSQL function '${functionName}': ${error.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=pg-udf-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-udf-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/pg-udf-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.productLabelReport = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const id_rule_base_1 = require("@things-factory/id-rule-base");
|
|
6
|
+
exports.productLabelReport = {
|
|
7
|
+
async productLabelReport(_, params, context) {
|
|
8
|
+
var _a;
|
|
9
|
+
try {
|
|
10
|
+
const { domain } = context.state;
|
|
11
|
+
// const { domain }: { domain: Domain } = context.state
|
|
12
|
+
const bizplaceId = params.filters.find(data => data.name === 'bizplace').value;
|
|
13
|
+
const type = (_a = params.filters.find(data => data.name === 'type')) === null || _a === void 0 ? void 0 : _a.value;
|
|
14
|
+
const fromDate = params.filters.find(data => data.name === 'fromDate').value;
|
|
15
|
+
const toDate = params.filters.find(data => data.name === 'toDate').value;
|
|
16
|
+
if (!bizplaceId || !fromDate || !toDate)
|
|
17
|
+
throw new Error('Invalid input');
|
|
18
|
+
const items = await (0, typeorm_1.getRepository)(id_rule_base_1.Sequence).query(`
|
|
19
|
+
SELECT "date", "type", "count", "bizplace_id" FROM (
|
|
20
|
+
SELECT
|
|
21
|
+
"sq"."pattern"::JSONB ->> 'type' AS "type",
|
|
22
|
+
"sq"."pattern"::JSONB ->> 'date' AS "date",
|
|
23
|
+
"sq"."pattern"::JSONB ->> 'bizplaceId' AS "bizplace_id",
|
|
24
|
+
"sq"."seq" AS "count"
|
|
25
|
+
FROM "sequences" "sq" WHERE "sq"."type" = '${id_rule_base_1.SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER}'
|
|
26
|
+
AND "sq"."domain_id" = '${domain.id}'
|
|
27
|
+
) AS foo
|
|
28
|
+
WHERE "bizplace_id" = '${bizplaceId}'
|
|
29
|
+
${type ? `AND "type" ilike '%${type}%'` : ''}
|
|
30
|
+
AND "date"::date BETWEEN '${fromDate}' AND '${toDate}'
|
|
31
|
+
ORDER BY type ASC, date ASC
|
|
32
|
+
`);
|
|
33
|
+
// @farishelmi any usage for this function? If no please remove.
|
|
34
|
+
/*
|
|
35
|
+
need to transform into queryBuilder form
|
|
36
|
+
const qb: SelectQueryBuilder<Sequence> = tx
|
|
37
|
+
.getRepository(Sequence)
|
|
38
|
+
.createQueryBuilder('sq')
|
|
39
|
+
.select(`"sq"."pattern"::JSONB ->> 'type'`, 'type')
|
|
40
|
+
.addSelect(`"sq"."pattern"::JSONB ->> 'date'`, 'date')
|
|
41
|
+
.addSelect(`"sq"."pattern"::JSONB ->> 'bizplaceId'`, 'bizplace_id')
|
|
42
|
+
.addSelect(`"sq"."seq"`, 'count')
|
|
43
|
+
.where('"sq"."type" = :sequenceType', { sequenceType: SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER })
|
|
44
|
+
.andWhere(`"sq"."pattern"::JSONB ->> 'bizplaceId' = :bizplaceId`, { bizplaceId })
|
|
45
|
+
.andWhere(`"sq"."domain_id" = :domainId`, { domainId: domain.id })
|
|
46
|
+
*/
|
|
47
|
+
return {
|
|
48
|
+
items,
|
|
49
|
+
total: 0
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=product-label-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-label-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/product-label-report.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAEvC,+DAAsE;AAGzD,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;;QAC9D,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;YACpD,uDAAuD;YACvD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,CAAA;YAC9E,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,0CAAE,KAAK,CAAA;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,CAAA;YAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAA;YAExE,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;YAEzE,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,uBAAQ,CAAC,CAAC,KAAK,CAAC;;;;;;;uDAOD,4BAAa,CAAC,qBAAqB;oCACtD,MAAM,CAAC,EAAE;;iCAEZ,UAAU;UACjC,IAAI,CAAC,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;oCAChB,QAAQ,UAAU,MAAM;;OAErD,CAAC,CAAA;YAEF,gEAAgE;YAChE;;;;;;;;;;;;cAYE;YAEF,OAAO;gBACL,KAAK;gBACL,KAAK,EAAE,CAAC;aACT,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
|