@things-factory/operato-wms 4.3.661 → 4.3.663
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/client/pages/order/arrival-notice/edit-product-popup.js +1 -1
- 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 +114 -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 +215 -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 +3 -3
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cycleCountReport = void 0;
|
|
4
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
5
|
+
exports.cycleCountReport = {
|
|
6
|
+
async cycleCountReport(_, { filters, name }, context) {
|
|
7
|
+
try {
|
|
8
|
+
const { domain, tx } = context.state;
|
|
9
|
+
const batchNoVarianceFilter = filters === null || filters === void 0 ? void 0 : filters.find(e => e.name === 'batchNoVariance');
|
|
10
|
+
const expirationDateVarianceFilter = filters === null || filters === void 0 ? void 0 : filters.find(e => e.name === 'expirationDateVariance');
|
|
11
|
+
const locationVarianceFilter = filters === null || filters === void 0 ? void 0 : filters.find(e => e.name === 'locationVariance');
|
|
12
|
+
const cycleCount = await tx.getRepository(sales_base_1.InventoryCheck).findOne({
|
|
13
|
+
where: { domain, name },
|
|
14
|
+
relations: ['domain']
|
|
15
|
+
});
|
|
16
|
+
await tx.query(`CREATE EXTENSION IF NOT EXISTS tablefunc`);
|
|
17
|
+
// Step 1: Create the temp_fixed_columns table
|
|
18
|
+
await tx.query(`
|
|
19
|
+
CREATE TEMP TABLE temp_fixed_columns ON COMMIT DROP AS (
|
|
20
|
+
SELECT
|
|
21
|
+
d.id as "partner_domain_id",
|
|
22
|
+
w.check_count as "check_count",
|
|
23
|
+
ic.id as "inventory_check_id",
|
|
24
|
+
ici.inventory_id as "inventory_id",
|
|
25
|
+
ic.name as "name",
|
|
26
|
+
ici.product_id as "product_id",
|
|
27
|
+
ici.count_no as "count_no",
|
|
28
|
+
ici.product_detail_id as "product_detail_id",
|
|
29
|
+
ici.status as "invCheckItemStatus",
|
|
30
|
+
b.name as "company",
|
|
31
|
+
ic.name as "cycle_count_no",
|
|
32
|
+
ic.execution_date as "execution_date",
|
|
33
|
+
ic.status as "status",
|
|
34
|
+
i.carton_id as "carton_id",
|
|
35
|
+
i.pallet_id as "pallet_id",
|
|
36
|
+
i.packing_type as "i_packing_type",
|
|
37
|
+
i.uom as "i_uom",
|
|
38
|
+
p.sku as "product_sku",
|
|
39
|
+
p.name as "product_name",
|
|
40
|
+
p.brand as "product_brand",
|
|
41
|
+
p.description as "product_description",
|
|
42
|
+
pd.packing_type as "pd_packing_type",
|
|
43
|
+
pd.uom as "pd_uom",
|
|
44
|
+
ici.origin_batch_no as "origin_batch_no",
|
|
45
|
+
ici.inspected_batch_no as "inspected_batch_no",
|
|
46
|
+
ici.origin_uom_value as "origin_uom_value",
|
|
47
|
+
ici.origin_location_id as "origin_location_id",
|
|
48
|
+
ici.origin_expiration_date as "origin_expiration_date",
|
|
49
|
+
ici.inspected_expiration_date as "inspected_expiration_date",
|
|
50
|
+
l.name as "origin_location_name",
|
|
51
|
+
ici.inspected_location_id as "inspected_location_id",
|
|
52
|
+
l2.name as "inspected_location_name",
|
|
53
|
+
COALESCE(ici.origin_qty, 0) as "origin_qty",
|
|
54
|
+
COALESCE(ici.inspected_qty, 0) as "inspected_qty",
|
|
55
|
+
COALESCE(ici.inspected_uom_value, 0) as "inspected_uom_value"
|
|
56
|
+
FROM
|
|
57
|
+
inventory_checks ic
|
|
58
|
+
INNER JOIN
|
|
59
|
+
inventory_check_items ici on ici.inventory_check_id = ic.id
|
|
60
|
+
LEFT JOIN
|
|
61
|
+
inventories i on i.id = ici.inventory_id
|
|
62
|
+
INNER JOIN
|
|
63
|
+
products p ON p.id = ici.product_id
|
|
64
|
+
INNER JOIN
|
|
65
|
+
product_details pd ON pd.id = ici.product_detail_id
|
|
66
|
+
INNER JOIN
|
|
67
|
+
worksheets w on w.inventory_check_id = ic.id
|
|
68
|
+
INNER JOIN
|
|
69
|
+
worksheet_details wd on wd.worksheet_id = w.id and wd.target_inventory_check_item_id = ici.id
|
|
70
|
+
LEFT JOIN
|
|
71
|
+
locations l on l.id = ici.origin_location_id
|
|
72
|
+
LEFT JOIN
|
|
73
|
+
locations l2 on l2.id = ici.inspected_location_id
|
|
74
|
+
INNER JOIN
|
|
75
|
+
bizplaces b on b.id = ic.bizplace_id
|
|
76
|
+
INNER JOIN
|
|
77
|
+
domains d on d.id = b.domain_id
|
|
78
|
+
WHERE
|
|
79
|
+
ic.id = $1
|
|
80
|
+
)`, [cycleCount.id]);
|
|
81
|
+
// Step 2: Create the temp_dynamic_columns table
|
|
82
|
+
await tx.query(`
|
|
83
|
+
CREATE TEMP TABLE temp_dynamic_columns ON COMMIT DROP AS (
|
|
84
|
+
SELECT ic.id as "inventory_check_id",
|
|
85
|
+
w.check_count as "check_count"
|
|
86
|
+
FROM inventory_checks ic
|
|
87
|
+
INNER JOIN worksheets w ON ic.id = w.inventory_check_id
|
|
88
|
+
WHERE ic.id = $1
|
|
89
|
+
)`, [cycleCount.id]);
|
|
90
|
+
// Step 3: Generate definedCrossColumn for dynamic columns
|
|
91
|
+
const definedCrossColumn = await tx.query(`
|
|
92
|
+
SELECT string_agg(DISTINCT 'count ' || check_count::text, ',') as count_columns,
|
|
93
|
+
string_agg(DISTINCT 'uom count ' || check_count::text, ',') as uom_columns
|
|
94
|
+
FROM temp_dynamic_columns
|
|
95
|
+
`);
|
|
96
|
+
const countColumns = definedCrossColumn[0].count_columns
|
|
97
|
+
.split(',')
|
|
98
|
+
.map(column => `"${column.trim()}" varchar`)
|
|
99
|
+
.join(', ');
|
|
100
|
+
const uomColumns = definedCrossColumn[0].uom_columns
|
|
101
|
+
.split(',')
|
|
102
|
+
.map(column => `"${column.trim()}" varchar`)
|
|
103
|
+
.join(', ');
|
|
104
|
+
// Step 4: Pivot data and create the pivot tables
|
|
105
|
+
await tx.query(`
|
|
106
|
+
CREATE TEMP TABLE temp_pivoted_data ON COMMIT DROP AS (
|
|
107
|
+
SELECT *
|
|
108
|
+
FROM crosstab(
|
|
109
|
+
$$
|
|
110
|
+
SELECT inventory_id, 'count ' || check_count, inspected_qty
|
|
111
|
+
FROM temp_fixed_columns ORDER BY 1,2,3
|
|
112
|
+
$$,
|
|
113
|
+
$$
|
|
114
|
+
SELECT DISTINCT 'count ' || check_count FROM temp_dynamic_columns ORDER BY 1
|
|
115
|
+
$$
|
|
116
|
+
) AS ct (inventory_id varchar, ${countColumns})
|
|
117
|
+
)
|
|
118
|
+
`);
|
|
119
|
+
await tx.query(`
|
|
120
|
+
CREATE TEMP TABLE temp_pivoted_uom_data ON COMMIT DROP AS (
|
|
121
|
+
SELECT *
|
|
122
|
+
FROM crosstab(
|
|
123
|
+
$$
|
|
124
|
+
SELECT inventory_id, 'uom count ' || check_count, inspected_uom_value
|
|
125
|
+
FROM temp_fixed_columns ORDER BY 1,2,3
|
|
126
|
+
$$,
|
|
127
|
+
$$
|
|
128
|
+
SELECT DISTINCT 'uom count ' || check_count FROM temp_dynamic_columns ORDER BY 1
|
|
129
|
+
$$
|
|
130
|
+
) AS ct (inventory_id varchar, ${uomColumns})
|
|
131
|
+
)
|
|
132
|
+
`);
|
|
133
|
+
// Step 5: Create the temp_final_count table
|
|
134
|
+
await tx.query(`
|
|
135
|
+
CREATE TEMP TABLE temp_final_count ON COMMIT DROP AS (
|
|
136
|
+
SELECT
|
|
137
|
+
inventory_id,
|
|
138
|
+
count_no,
|
|
139
|
+
MAX(inspected_qty) as "final_count",
|
|
140
|
+
MAX(inspected_uom_value) as "final_uom"
|
|
141
|
+
FROM
|
|
142
|
+
inventory_check_items ici
|
|
143
|
+
WHERE
|
|
144
|
+
inventory_check_id = $1
|
|
145
|
+
GROUP BY inventory_id, count_no
|
|
146
|
+
)`, [cycleCount.id]);
|
|
147
|
+
// Step 6: Create the final temp table with combined data
|
|
148
|
+
const jsonColumnNames = definedCrossColumn[0].count_columns
|
|
149
|
+
.split(',')
|
|
150
|
+
.map(column => `p."${column.trim()}" as "${column.trim()}"`)
|
|
151
|
+
.join(',');
|
|
152
|
+
const uomJsonColumnNames = definedCrossColumn[0].uom_columns
|
|
153
|
+
.split(',')
|
|
154
|
+
.map(column => `puom."${column.trim()}" as "${column.trim()}"`)
|
|
155
|
+
.join(',');
|
|
156
|
+
await tx.query(`
|
|
157
|
+
CREATE TEMP TABLE temp_final_data ON COMMIT DROP AS (
|
|
158
|
+
SELECT
|
|
159
|
+
f.*,
|
|
160
|
+
fc.final_count,
|
|
161
|
+
fc.final_uom,
|
|
162
|
+
first_count.origin_qty as "system_qty",
|
|
163
|
+
first_count.origin_batch_no as "system_batch_no",
|
|
164
|
+
first_count.origin_location_name as "system_location_name",
|
|
165
|
+
first_count.origin_uom_value as "system_uom_value",
|
|
166
|
+
row_to_json((SELECT cn FROM (SELECT ${jsonColumnNames}) cn))::varchar as "count_data",
|
|
167
|
+
row_to_json((SELECT cn FROM (SELECT ${uomJsonColumnNames}) cn))::varchar as "count_uom_data",
|
|
168
|
+
ROUND(CAST(fc.final_count - first_count.origin_qty AS NUMERIC), 3) as "count_variance",
|
|
169
|
+
CASE
|
|
170
|
+
WHEN (COALESCE(first_count.origin_batch_no, '') <> COALESCE(f.inspected_batch_no, ''))
|
|
171
|
+
THEN true
|
|
172
|
+
ELSE false
|
|
173
|
+
END AS "BatchNoVariance",
|
|
174
|
+
CASE
|
|
175
|
+
WHEN (COALESCE(first_count.origin_location_id::text, '') <> COALESCE(f.inspected_location_id::text, ''))
|
|
176
|
+
THEN true
|
|
177
|
+
ELSE false
|
|
178
|
+
END AS "LocationVariance",
|
|
179
|
+
CASE
|
|
180
|
+
WHEN (COALESCE(first_count.origin_uom_value, 0) <> COALESCE(f.inspected_uom_value, 0))
|
|
181
|
+
THEN true
|
|
182
|
+
ELSE false
|
|
183
|
+
END AS "UomValueVariance",
|
|
184
|
+
CASE
|
|
185
|
+
WHEN (COALESCE(first_count.origin_expiration_date, '1900-01-01') <> COALESCE(f.inspected_expiration_date, '1900-01-01'))
|
|
186
|
+
THEN true
|
|
187
|
+
ELSE false
|
|
188
|
+
END AS "ExpirationDateVariance"
|
|
189
|
+
FROM temp_fixed_columns f
|
|
190
|
+
INNER JOIN (
|
|
191
|
+
SELECT
|
|
192
|
+
inventory_id,
|
|
193
|
+
count_no,
|
|
194
|
+
origin_qty,
|
|
195
|
+
origin_batch_no,
|
|
196
|
+
origin_location_id,
|
|
197
|
+
origin_location_name,
|
|
198
|
+
origin_uom_value,
|
|
199
|
+
origin_expiration_date
|
|
200
|
+
FROM temp_fixed_columns
|
|
201
|
+
WHERE count_no = 1
|
|
202
|
+
) first_count ON f.inventory_id = first_count.inventory_id
|
|
203
|
+
INNER JOIN temp_pivoted_data p ON f.inventory_id::uuid = p.inventory_id::uuid
|
|
204
|
+
INNER JOIN temp_pivoted_uom_data puom ON f.inventory_id::uuid = puom.inventory_id::uuid
|
|
205
|
+
INNER JOIN temp_final_count fc ON f.inventory_id = fc.inventory_id and f.count_no = fc.count_no
|
|
206
|
+
)
|
|
207
|
+
`);
|
|
208
|
+
const whereConditions = [];
|
|
209
|
+
if ((batchNoVarianceFilter === null || batchNoVarianceFilter === void 0 ? void 0 : batchNoVarianceFilter.value) === true) {
|
|
210
|
+
whereConditions.push('"BatchNoVariance" = true');
|
|
211
|
+
}
|
|
212
|
+
if ((expirationDateVarianceFilter === null || expirationDateVarianceFilter === void 0 ? void 0 : expirationDateVarianceFilter.value) === true) {
|
|
213
|
+
whereConditions.push('"ExpirationDateVariance" = true');
|
|
214
|
+
}
|
|
215
|
+
if ((locationVarianceFilter === null || locationVarianceFilter === void 0 ? void 0 : locationVarianceFilter.value) === true) {
|
|
216
|
+
whereConditions.push('"LocationVariance" = true');
|
|
217
|
+
}
|
|
218
|
+
// Step 7: Select final result
|
|
219
|
+
const result = await tx.query(`
|
|
220
|
+
SELECT * FROM temp_final_data
|
|
221
|
+
${whereConditions.length > 0 ? 'WHERE ' + whereConditions.join(' OR ') : ''}
|
|
222
|
+
`);
|
|
223
|
+
// Step 8: Group inventory id and prepare final response
|
|
224
|
+
const inventoryIds = new Set();
|
|
225
|
+
const items = [];
|
|
226
|
+
result.forEach(itm => {
|
|
227
|
+
if (!inventoryIds.has(itm.inventory_id)) {
|
|
228
|
+
inventoryIds.add(itm.inventory_id);
|
|
229
|
+
let countStatus;
|
|
230
|
+
if (itm.final_count === itm.system_qty) {
|
|
231
|
+
countStatus = 'HIT';
|
|
232
|
+
}
|
|
233
|
+
else if (itm.final_count < itm.system_qty) {
|
|
234
|
+
countStatus = 'SHORT';
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
countStatus = 'EXCESS';
|
|
238
|
+
}
|
|
239
|
+
let data = {
|
|
240
|
+
inventoryCheck: {
|
|
241
|
+
name: itm.name,
|
|
242
|
+
executionDate: itm.execution_date,
|
|
243
|
+
status: itm.status
|
|
244
|
+
},
|
|
245
|
+
inventoryCheckItem: {
|
|
246
|
+
status: itm.invCheckItemStatus,
|
|
247
|
+
originBatchNo: itm.origin_batch_no,
|
|
248
|
+
inspectedBatchNo: itm.inspected_batch_no,
|
|
249
|
+
originUomValue: itm.origin_uom_value,
|
|
250
|
+
inspectedUomValue: itm.inspected_uom_value,
|
|
251
|
+
originQty: itm.origin_qty,
|
|
252
|
+
inspectedQty: itm.inspected_qty,
|
|
253
|
+
originLocation: {
|
|
254
|
+
name: itm.origin_location_name
|
|
255
|
+
},
|
|
256
|
+
inspectedLocation: {
|
|
257
|
+
name: itm.inspected_location_name
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
inventory: {
|
|
261
|
+
id: itm.inventory_id,
|
|
262
|
+
cartonId: itm.carton_id,
|
|
263
|
+
palletId: itm.pallet_id,
|
|
264
|
+
packingType: itm.i_packing_type,
|
|
265
|
+
uom: itm.i_uom
|
|
266
|
+
},
|
|
267
|
+
product: {
|
|
268
|
+
sku: itm.product_sku,
|
|
269
|
+
name: itm.product_name,
|
|
270
|
+
brand: itm.product_brand,
|
|
271
|
+
description: itm.product_description
|
|
272
|
+
},
|
|
273
|
+
productDetail: {
|
|
274
|
+
packingType: itm.pd_packing_type,
|
|
275
|
+
uom: itm.pd_uom
|
|
276
|
+
},
|
|
277
|
+
systemQty: itm.system_qty,
|
|
278
|
+
systemBatchNo: itm.system_batch_no,
|
|
279
|
+
systemLocationName: itm.system_location_name,
|
|
280
|
+
systemUomValue: itm.system_uom_value,
|
|
281
|
+
originLocationId: itm.origin_location_id,
|
|
282
|
+
inspectedLocationId: itm.inspected_location_id,
|
|
283
|
+
countData: itm.count_data,
|
|
284
|
+
countUomData: itm.count_uom_data,
|
|
285
|
+
batchNoVariance: itm.BatchNoVariance,
|
|
286
|
+
locationVariance: itm.LocationVariance,
|
|
287
|
+
uomValueVariance: itm.UomValueVariance,
|
|
288
|
+
expirationDateVariance: itm.ExpirationDateVariance,
|
|
289
|
+
finalCount: itm.final_count,
|
|
290
|
+
finalUom: itm.final_uom,
|
|
291
|
+
countVariance: itm.count_variance,
|
|
292
|
+
countStatus,
|
|
293
|
+
company: itm.company,
|
|
294
|
+
partnerDomainId: itm.partner_domain_id
|
|
295
|
+
};
|
|
296
|
+
items.push(data);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
// Step 9: Count total and return the final object
|
|
300
|
+
const finalTotal = inventoryIds.size;
|
|
301
|
+
return {
|
|
302
|
+
items,
|
|
303
|
+
total: finalTotal
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
throw error;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
//# sourceMappingURL=cycle-count-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle-count-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/cycle-count-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inboundOrderDetailsReport = 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.inboundOrderDetailsReport = {
|
|
8
|
+
async inboundOrderDetailsReport(_, 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 ganNo = params.filters.find(data => data.name === 'ganNo');
|
|
16
|
+
let grnNo = params.filters.find(data => data.name === 'grnNo');
|
|
17
|
+
let poNo = params.filters.find(data => data.name === 'poNo');
|
|
18
|
+
let doNo = params.filters.find(data => data.name === 'doNo');
|
|
19
|
+
let cartonId = params.filters.find(data => data.name === 'cartonId');
|
|
20
|
+
let lotId = params.filters.find(data => data.name == 'palletId');
|
|
21
|
+
let byUnloadComplete = params.filters.find(data => data.name == 'byUnloadComplete');
|
|
22
|
+
if (userFilter) {
|
|
23
|
+
const user = await tx.getRepository(auth_base_1.User).findOne({
|
|
24
|
+
where: { id: userFilter.value },
|
|
25
|
+
relations: ['bizplaces']
|
|
26
|
+
});
|
|
27
|
+
const bizplace = user.bizplaces[0];
|
|
28
|
+
if (!bizplace)
|
|
29
|
+
throw 'Invalid input';
|
|
30
|
+
bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
|
|
34
|
+
}
|
|
35
|
+
if (!bizplaceFilter || !fromDate || !toDate)
|
|
36
|
+
throw 'Invalid input';
|
|
37
|
+
const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
|
|
38
|
+
id: bizplaceFilter.value
|
|
39
|
+
});
|
|
40
|
+
await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
|
|
41
|
+
let extraQueryFilters = '';
|
|
42
|
+
if (ganNo) {
|
|
43
|
+
extraQueryFilters = `${extraQueryFilters} and gan_no like '%${ganNo.value}%' `;
|
|
44
|
+
}
|
|
45
|
+
if (grnNo) {
|
|
46
|
+
extraQueryFilters = `${extraQueryFilters} and grn_no like '%${grnNo.value}%' `;
|
|
47
|
+
}
|
|
48
|
+
if (poNo) {
|
|
49
|
+
extraQueryFilters = `${extraQueryFilters} and purchase_order_name like '%${poNo.value}%' `;
|
|
50
|
+
}
|
|
51
|
+
if (doNo) {
|
|
52
|
+
extraQueryFilters = `${extraQueryFilters} and delivery_order_no like '%${doNo.value}%' `;
|
|
53
|
+
}
|
|
54
|
+
if (lotId) {
|
|
55
|
+
extraQueryFilters = `${extraQueryFilters} and pallet_id like '%${lotId.value}%' `;
|
|
56
|
+
}
|
|
57
|
+
if (cartonId) {
|
|
58
|
+
extraQueryFilters = `${extraQueryFilters} and carton_id like '%${cartonId.value}%' `;
|
|
59
|
+
}
|
|
60
|
+
await tx.query(`
|
|
61
|
+
create temp table temp_inbound_order_report on commit drop as (
|
|
62
|
+
select src2.*,
|
|
63
|
+
w.started_at as "unload_start", w.ended_at as "unload_complete",
|
|
64
|
+
w2.started_at as "putaway_start", w2.ended_at as "putaway_complete",
|
|
65
|
+
cp.id as "supplier_id", cp.company_name as "supplier_name",
|
|
66
|
+
u.name as "accepted_by", u2.name as "unloaded_by", u3.name as "putaway_by"
|
|
67
|
+
from (
|
|
68
|
+
select * from (
|
|
69
|
+
select an.id, an.accepted_by_id, an.name as "gan_no", an.ref_no as "ref_no_1", an.ref_no_2 as "ref_no_2", an.ref_no_3 as "ref_no_3",
|
|
70
|
+
an.loose_item, an.import_cargo, an.container_no, an.container_size, an.own_transport,
|
|
71
|
+
an.accepted_at, u1.name as "order_created_by", an.created_at as "order_created_at", an.delivery_order_no,
|
|
72
|
+
b2.id as "bizplace_id", b2.name as "bizplace_name", b2.description as "bizplace_description",
|
|
73
|
+
grn.name as "grn_no",
|
|
74
|
+
po.id as "purchase_order_id", po.name as "purchase_order_name", po.supplier_id as "po_supplier_id",
|
|
75
|
+
row_number() over(partition by an.name order by an.name, p.sku, oi.batch_id) as "order_line_item",
|
|
76
|
+
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",
|
|
77
|
+
oi.packing_size as "pack_size", oi.packing_type as "pack_type", oi.actual_pack_qty, oi.actual_pack_uom_value, oi.uom, oi.batch_id, oi.batch_id_ref,
|
|
78
|
+
oi.unloaded_at as "unloaded_at", oi.putaway_at as "putaway_at", oi.unloaded_by_id as "oi_unloaded_by_id", oi.putaway_by_id as "oi_putaway_by_id",
|
|
79
|
+
i.pallet_id, i.carton_id, i.expiration_date, i.manufacture_date, i.unit_cost,
|
|
80
|
+
pd.volume as "unit_volume", pd.nett_weight as "unit_nett_weight", pd.gross_weight as "unit_gross_weight", pd.weight_unit as "weight_unit"
|
|
81
|
+
from (
|
|
82
|
+
select * from arrival_notices
|
|
83
|
+
where domain_id = $1 and bizplace_id = $2 and status ='DONE'
|
|
84
|
+
${!byUnloadComplete.value ? `and created_at >= $3 and created_at <= $4` : ``}
|
|
85
|
+
) an
|
|
86
|
+
left join users u1 on u1.id = an.creator_id
|
|
87
|
+
left join purchase_orders po on po.id = an.purchase_order_id
|
|
88
|
+
left join goods_receival_notes grn on grn.arrival_notice_id = an.id
|
|
89
|
+
inner join order_inventories oi on oi.arrival_notice_id = an.id
|
|
90
|
+
inner join bizplaces b2 on b2.id = an.bizplace_id
|
|
91
|
+
inner join inventories i on i.id = oi.inventory_id
|
|
92
|
+
inner join temp_products p on p.id = oi.product_id
|
|
93
|
+
inner join product_details pd on pd.id = oi.product_detail_id
|
|
94
|
+
inner join (
|
|
95
|
+
select
|
|
96
|
+
distinct on (
|
|
97
|
+
arrival_notice_id, product_detail_id,
|
|
98
|
+
batch_id
|
|
99
|
+
) *
|
|
100
|
+
from
|
|
101
|
+
order_products
|
|
102
|
+
where
|
|
103
|
+
actual_pack_qty is not null
|
|
104
|
+
order by
|
|
105
|
+
arrival_notice_id,
|
|
106
|
+
product_detail_id,
|
|
107
|
+
batch_id,
|
|
108
|
+
created_at
|
|
109
|
+
) op on op.arrival_notice_id = an.id
|
|
110
|
+
and op.product_detail_id = oi.product_detail_id
|
|
111
|
+
and op.batch_id = oi.batch_id
|
|
112
|
+
) src
|
|
113
|
+
where 1=1
|
|
114
|
+
${extraQueryFilters}
|
|
115
|
+
) src2
|
|
116
|
+
left join contact_points cp on cp.id = src2.po_supplier_id
|
|
117
|
+
left join users u on u.id = src2.accepted_by_id
|
|
118
|
+
left join users u2 on u2.id = src2.oi_unloaded_by_id
|
|
119
|
+
left join users u3 on u3.id = src2.oi_putaway_by_id
|
|
120
|
+
left join worksheets w on w.arrival_notice_id = src2.id and w."type" ='UNLOADING'
|
|
121
|
+
left join worksheets w2 on w2.arrival_notice_id = src2.id and w2."type" ='PUTAWAY'
|
|
122
|
+
${byUnloadComplete.value
|
|
123
|
+
? `where w.ended_at >= $3 and w.ended_at <= $4 and w."type" ='UNLOADING' ORDER BY w.ended_at DESC`
|
|
124
|
+
: `ORDER BY order_created_at DESC`}
|
|
125
|
+
)
|
|
126
|
+
`, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]);
|
|
127
|
+
const total = await tx.query(`
|
|
128
|
+
select count(*) from temp_inbound_order_report
|
|
129
|
+
`);
|
|
130
|
+
const result = await tx.query(`
|
|
131
|
+
select src2.*,
|
|
132
|
+
round((src2.actual_pack_qty * src2.unit_volume)::numeric ,4) as total_volume,
|
|
133
|
+
round((src2.actual_pack_qty * src2.unit_nett_weight)::numeric ,4) as total_unit_nett_weight,
|
|
134
|
+
round((src2.actual_pack_qty * src2.unit_gross_weight)::numeric ,4) as total_unit_gross_weight
|
|
135
|
+
from temp_inbound_order_report src2
|
|
136
|
+
offset $1 limit $2
|
|
137
|
+
`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
|
|
138
|
+
let items = result.map(itm => {
|
|
139
|
+
let data = {
|
|
140
|
+
bizplace: {
|
|
141
|
+
description: itm.bizplace_description,
|
|
142
|
+
name: itm.bizplace_name
|
|
143
|
+
},
|
|
144
|
+
grnNo: itm.grn_no,
|
|
145
|
+
ganNo: itm.gan_no,
|
|
146
|
+
deliveryOrderNo: itm.delivery_order_no,
|
|
147
|
+
refNo1: itm.ref_no_1,
|
|
148
|
+
refNo2: itm.ref_no_2,
|
|
149
|
+
refNo3: itm.ref_no_3,
|
|
150
|
+
looseItem: itm.loose_item,
|
|
151
|
+
importCargo: itm.import_cargo,
|
|
152
|
+
containerNo: itm.container_no,
|
|
153
|
+
containerSize: itm.container_size,
|
|
154
|
+
ownTransport: itm.own_transport,
|
|
155
|
+
acceptedBy: itm.accepted_by,
|
|
156
|
+
acceptedAt: itm.accepted_at,
|
|
157
|
+
orderCreatedBy: itm.order_created_by,
|
|
158
|
+
orderCreatedAt: itm.order_created_at,
|
|
159
|
+
unloadStart: itm.unload_start,
|
|
160
|
+
unloadComplete: itm.unload_complete,
|
|
161
|
+
putawayStart: itm.putaway_start,
|
|
162
|
+
putawayComplete: itm.putaway_complete,
|
|
163
|
+
orderLineItem: itm.order_line_item,
|
|
164
|
+
product: {
|
|
165
|
+
id: itm.product_id,
|
|
166
|
+
sku: itm.product_sku,
|
|
167
|
+
name: itm.product_name,
|
|
168
|
+
description: itm.product_description,
|
|
169
|
+
type: itm.product_type
|
|
170
|
+
},
|
|
171
|
+
purchaseOrderId: itm.purchase_order_id,
|
|
172
|
+
purchaseOrderNo: itm.purchase_order_name,
|
|
173
|
+
packType: itm.pack_type,
|
|
174
|
+
packSize: itm.pack_size,
|
|
175
|
+
actualPackQty: itm.actual_pack_qty,
|
|
176
|
+
actualPackUomValue: itm.actual_pack_uom_value,
|
|
177
|
+
uom: itm.uom,
|
|
178
|
+
unitVolume: itm.unit_volume,
|
|
179
|
+
unitCost: itm.unit_cost,
|
|
180
|
+
totalVolume: itm.total_volume,
|
|
181
|
+
unitNettWeight: itm.unit_nett_weight,
|
|
182
|
+
totalUnitNettWeight: itm.total_unit_nett_weight,
|
|
183
|
+
unitGrossWeight: itm.unit_gross_weight,
|
|
184
|
+
totalUnitGrossWeight: itm.total_unit_gross_weight,
|
|
185
|
+
weightUnit: itm.weight_unit,
|
|
186
|
+
palletId: itm.pallet_id,
|
|
187
|
+
cartonId: itm.carton_id,
|
|
188
|
+
batchId: itm.batch_id,
|
|
189
|
+
batchIdRef: itm.batch_id_ref,
|
|
190
|
+
expirationDate: itm.expiration_date,
|
|
191
|
+
manufactureDate: itm.manufacture_date,
|
|
192
|
+
unloadedAt: itm.unloaded_at,
|
|
193
|
+
unloadedBy: itm.unloaded_by,
|
|
194
|
+
putawayAt: itm.putaway_at,
|
|
195
|
+
putawayBy: itm.putaway_by
|
|
196
|
+
};
|
|
197
|
+
if (itm.supplier_id) {
|
|
198
|
+
data['supplier'] = {
|
|
199
|
+
id: itm.supplier_id,
|
|
200
|
+
name: itm.supplier_name
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
return data;
|
|
204
|
+
});
|
|
205
|
+
return {
|
|
206
|
+
items,
|
|
207
|
+
total: total[0].count
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
throw error;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
//# sourceMappingURL=inbound-order-details-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-order-details-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/inbound-order-details-report.ts"],"names":[],"mappings":"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"}
|