@things-factory/operato-mms 5.0.0-alpha.25 → 5.0.0-alpha.28

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.
@@ -0,0 +1,54 @@
1
+ module.exports = {
2
+ useVirtualHostBasedDomain: false,
3
+ port: 3000,
4
+ uploads: 'uploads',
5
+ attachmentsPath: 'attachments',
6
+ SECRET: '0xD58F835B69D207A76CC5F84a70a1D0d4C89dfC95',
7
+ logger: {
8
+ file: {
9
+ filename: 'logs/application-%DATE%.log',
10
+ datePattern: 'YYYY-MM-DD-HH',
11
+ zippedArchive: true,
12
+ maxSize: '200m',
13
+ maxFiles: '1m',
14
+ level: 'info'
15
+ }
16
+ },
17
+ email: {
18
+ host: 'smtp.office365.com',
19
+ port: 587,
20
+ secure: false, // true for 465, false for other ports
21
+ auth: {
22
+ user: 'no-reply@hatiolab.com', // generated ethereal user
23
+ pass: 'h@ti0LAB1008' // generated ethereal password
24
+ },
25
+ secureConnection: false,
26
+ tls: {
27
+ ciphers: 'SSLv3'
28
+ }
29
+ },
30
+ notification: {
31
+ fcm: {
32
+ serviceAccount: {
33
+ project_id: 'operato',
34
+ private_key:
35
+ '-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYNOfyNjPMSeG9\nzU1qs0cpVK5cVfadcUaw5g+hkQZMOMlAA7uqW2eX4vkayj7MzbYUayH+sei8044Q\nJIyl6f26dNX1VT3UgTmSmCS0v48EBEZHCgusrUGFjduLRN6OS6uvrXW1xKA18k9q\nai1C2EHCXF2AE4PTvf239RC1UIOnVePcMtT7rMTdHRO4s8OKVuSDbzIt8k1cV3Zt\nES0YsJlkELqBisYpV//2/ZSILTt39J9JzrVef03X9kkoo9p+YnNyy6tWsfQPfgJO\nybiRGBNxiyJ/E2pxRo/WqU0go9OzYJlGaSUrUx09heNiRD1b0MAOmyPDJz/6AaTk\nkU/A+kLzAgMBAAECggEADQ5s2gtR53VSujk1V/Xe8e0Di99DwaWUj5w6YhcK7/wX\nPdQRN4Fw6RLeLjL7xeG/rCNSwzm6hKSrQJL5zLnWW7XbMdyQRk6jdmnVAEv3zACi\nFH9+eFK3e+Q214XfgWz/v4p/FZdRLCYni5VBNHcwyWxLLS/V1ynzB3KM1sDiTRmI\npcT7+uTtwrKgJq64sXtFE2pYrFxDdCiyqzkhv/2ed4YIowAjpKBbbcCDKeVxVkoz\nC1P4PAzs9EeUuKSWYrWaUjN17lqtRlYeT1ylR1PIJuWqd4cKfgoEgz+lHwRPDCEX\nAYbk3nofiJIPBhSfCHrXS755wK48mY8vMwFdfCPJeQKBgQDsz4tjYTHdat5A25n5\nekwMxZwFQ5OvMV4eulwZUDMypTAYSz1iB6sDlgwKDm5omZIfuneqCEIvrqxV/kx3\n5wV/DANHO3hYxdp/NV7rM23xmqlaKZhHQbDono1Fm/LP6DEmJiD7N2eFKsXYcPpR\nSAIdCv0X3zkDQ4zRi51yJlCXzQKBgQDpufJBxCoXngiQJ2j14lWVAeOOdQ6zh5Ip\nBcDwF0X67cNSN3Wl40bS4yLFdolhEAyj5m0WPuYYXpjzhHhZ0W3V3ItdBkrmwIvy\nWOWu26qN0ZbwxVS2qVpHuj6iHWJKHuDZZUkFtJg3BeeBSOUHSA8TvjnA0xd83xeb\n8ZJasWoFvwKBgQDFs/gQ/gIdcq0exLfluh5nw0qgcmyHpNWJHdjqITS9IX/nqFkU\n0IYLtmdStf2jQiLmbkydHcvz9wZVvLqml67VBHhwLcwpgPULoskd34/4V0Dvzy4c\nv1Esw8H5zVqIDLeLu+VpFjZMzQrjyl6RIWbyTExEc84rVWfpQYAu3qIGOQKBgAFr\nXatEk7TdAtRNSPflTfu/rTAaSeKROjQBkvBiU8x4US1YpOBDBxUUyAtG8wKh5FHC\nfnsaGq+fM3KXJVv2R6J62mXQOfg4xyDLpWlwcBK4aSBBMoiBcsjouqSlZQlqMpdf\nZBgixqHe6U8BsFJg/6ZxC0y+e3AIss4Bo4/lb+1lAoGAFOexvaBh21K6W3inmRW4\nLlkVYJaBJ20OwokXg5aXjBiHxqmk7VLAuFbkpb5LOKH2xPILRQ0OEkn51yVymS3T\n9lLpHOFTQXt5tF2/F7NW7kaQJNlLr/h5jPi3O9XHeFmuaN2z150ZB6zzgjeGKzr8\ni+1fgTsRfDtNw8xkSH9qL1Y=\n-----END PRIVATE KEY-----\n',
36
+ client_email: 'firebase-adminsdk-xmm2e@operato.iam.gserviceaccount.com'
37
+ },
38
+
39
+ appConfig: {
40
+ apiKey: 'AIzaSyDdTM2BTLHSt2LNS0G5QB8G0i4KBXFiG7U',
41
+ projectId: 'operato',
42
+ messagingSenderId: 79537064975,
43
+ appId: '1:79537064975:web:32f53119e9c8c6ee2a277a'
44
+ },
45
+ serverKey:
46
+ 'AAAAEoTHTA8:APA91bGwt-4HT82Dfwf_VwbQaKT0_qHd0Y3tuW41udjWz5Lz0Ko0mEMD6WbHHSILvQpa6yuoGGKCMsrU7VW2qWRrUm3CYpyG9oSwshNm1tIhljAnOuUfwHCoawbVLwf9qlWpHt4dwCoc'
47
+ },
48
+ vapidKey: {
49
+ subject: 'mailto:heartyoh@hatiolab.com',
50
+ publicKey: 'BAkVkITsCXBIsYL1yeaBmx5_dn57we-ZXMjirPPHzC2dan82cdEnAio_53PQ-1_w3ykWCBPrrFAWQ_d9N4cFF0o',
51
+ privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
52
+ }
53
+ }
54
+ }
@@ -58,25 +58,8 @@ async function warehouseMarketplaceProduct(params, domain, user, tx) {
58
58
  )
59
59
  `);
60
60
  await tx.query(`
61
- CREATE TEMP TABLE "temp_inventory" ON COMMIT DROP AS (
62
- select "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
63
- "i2"."product_id", SUM(greatest(coalesce("locked_qty",0),0) + greatest(coalesce(oi.release_qty,0),0)) as "inventory_locked_qty", sum(coalesce("qty",0)) as "inventory_qty",
64
- "i2"."domain_id"
65
- from inventories "i2"
66
- inner join warehouses "w" on "w"."id" = "i2"."warehouse_id"
67
- inner join domains "d2" on "d2"."id" = "w"."domain_id" and "d2"."ext_type" ='warehouse'
68
- inner join fulfillment_centers "fc" ON "fc"."center_id" = "d2"."subdomain"
69
- inner join (
70
- select "Product"."product_id" from (
71
- select case when "Product"."type" = 'PRODUCT' then "Product"."product_id" else "pbs"."product_id" end as "product_id"
72
- from temp_products "Product"
73
- left join product_bundles "pb" on "pb"."id" = "Product"."product_id"
74
- left join product_bundle_settings "pbs" on "pbs"."product_bundle_id" = "pb"."id"
75
- ) "Product"
76
- group by "Product"."product_id"
77
- ) "Product" on "Product"."product_id" = "i2"."product_id"
78
- left join (
79
- SELECT
61
+ CREATE TEMP TABLE "temp_order_inventories" ON COMMIT DROP AS (
62
+ SELECT
80
63
  SUM(oi.release_qty) AS release_qty, SUM(oi.release_uom_value) AS release_uom_value, oi.batch_id, oi.batch_id_ref,
81
64
  oi.product_id, p.product_name, oi.packing_type, oi.packing_size, oi.uom
82
65
  FROM
@@ -94,10 +77,35 @@ async function warehouseMarketplaceProduct(params, domain, user, tx) {
94
77
  GROUP BY
95
78
  oi.batch_id, oi.batch_id_ref, oi.product_id, oi.packing_type,
96
79
  oi.packing_size, oi.uom, p.product_name
97
- )"oi" ON "i2".batch_id = "oi".batch_id AND "Product"."product_id" = "oi".product_id AND "i2".packing_type = "oi".packing_type AND "i2".packing_size = oi.packing_size AND "i2".uom = oi.uom
98
- where "fc"."domain_id" = $1
99
- and "i2"."status" = 'STORED'
100
- group by "i2"."domain_id", "fc"."id", "fc"."name", "i2"."product_id"
80
+ );
81
+ `, [domain.id]);
82
+ await tx.query(`
83
+ CREATE TEMP TABLE "temp_inventory" ON COMMIT DROP AS (
84
+ select "i2".*, coalesce("oi".release_qty,0) + coalesce("i2".locked_qty,0) as "inventory_locked_qty" from (
85
+ select "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
86
+ "i2"."product_id", sum(coalesce("locked_qty",0)) as "locked_qty", sum(coalesce("qty",0)) as "inventory_qty",
87
+ "i2"."domain_id", "i2"."packing_type", "i2"."packing_size", "i2"."uom"
88
+ from inventories "i2"
89
+ inner join warehouses "w" on "w"."id" = "i2"."warehouse_id"
90
+ inner join domains "d2" on "d2"."id" = "w"."domain_id" and "d2"."ext_type" ='warehouse'
91
+ inner join fulfillment_centers "fc" ON "fc"."center_id" = "d2"."subdomain"
92
+ inner join (
93
+ select "Product"."product_id" from (
94
+ select case when "Product"."type" = 'PRODUCT' then "Product"."product_id" else "pbs"."product_id" end as "product_id"
95
+ from temp_products "Product"
96
+ left join product_bundles "pb" on "pb"."id" = "Product"."product_id"
97
+ left join product_bundle_settings "pbs" on "pbs"."product_bundle_id" = "pb"."id"
98
+ ) "Product"
99
+ group by "Product"."product_id"
100
+ ) "Product" on "Product"."product_id" = "i2"."product_id"
101
+ where "fc"."domain_id" = $1
102
+ and "i2"."status" = 'STORED'
103
+ group by "i2"."domain_id", "fc"."id", "fc"."name", "i2"."product_id", "i2"."packing_type", "i2"."packing_size", "i2"."uom"
104
+ ) as "i2"
105
+ left join temp_order_inventories "oi" on "i2"."product_id" = "oi"."product_id"
106
+ AND "i2"."packing_type" = "oi"."packing_type"
107
+ AND "i2"."packing_size" = "oi"."packing_size"
108
+ AND "i2"."uom" = "oi"."uom"
101
109
  )
102
110
  `, [domain.id]);
103
111
  await tx.query(`
@@ -127,7 +135,7 @@ async function warehouseMarketplaceProduct(params, domain, user, tx) {
127
135
  max("bundledInv"."inventory_locked_qty") as "inventory_locked_qty", min("bundledInv"."inventory_qty") as "inventory_qty" from (
128
136
  select "Product"."product_id", fc.domain_id, "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
129
137
  "pbs"."bundle_qty",
130
- case when "pbs"."bundle_qty" <= 0 then 0 else ceil(greatest("i2"."inventory_locked_qty",0)/ "pbs"."bundle_qty") end AS "inventory_locked_qty",
138
+ case when "pbs"."bundle_qty" <= 0 then 0 else floor(greatest("i2"."inventory_qty", 0)/ "pbs"."bundle_qty")- floor((greatest("i2"."inventory_qty", 0) - greatest("i2"."inventory_locked_qty",0)) / "pbs"."bundle_qty") end AS "inventory_locked_qty",
131
139
  case when "pbs"."bundle_qty" <= 0 then 0 else floor(greatest("i2"."inventory_qty", 0)/ "pbs"."bundle_qty") end AS "inventory_qty"
132
140
  from temp_products "Product"
133
141
  inner join product_bundle_settings pbs ON pbs.product_bundle_id = "Product"."product_id"
@@ -1 +1 @@
1
- {"version":3,"file":"warehouse-marketplace-products.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warehouse-marketplace-products.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-mms",
3
- "version": "5.0.0-alpha.25",
3
+ "version": "5.0.0-alpha.28",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -41,69 +41,69 @@
41
41
  "@material/mwc-formfield": "^0.25.3",
42
42
  "@material/mwc-linear-progress": "^0.25.3",
43
43
  "@material/mwc-radio": "^0.25.3",
44
- "@operato/ghost-print": "1.0.0-alpha.47",
45
- "@operato/scene-chartjs": "^1.0.0-alpha.4",
46
- "@operato/scene-clock": "^1.0.0-alpha.4",
47
- "@operato/scene-clone": "^1.0.0-alpha.4",
48
- "@operato/scene-compass": "^1.0.0-alpha.4",
49
- "@operato/scene-gauge": "^1.0.0-alpha.4",
50
- "@operato/scene-grist": "^1.0.0-alpha.4",
51
- "@operato/scene-half-roundrect": "^1.0.0-alpha.4",
52
- "@operato/scene-indoor-map": "^1.0.0-alpha.4",
53
- "@operato/scene-integration": "^1.0.0-alpha.4",
54
- "@operato/scene-legend": "^1.0.0-alpha.4",
55
- "@operato/scene-news-ticker": "^1.0.0-alpha.4",
56
- "@operato/scene-progressbar": "^1.0.0-alpha.4",
57
- "@operato/scene-random": "^1.0.0-alpha.4",
58
- "@operato/scene-switch": "^1.0.0-alpha.4",
59
- "@operato/scene-tab": "^1.0.0-alpha.4",
60
- "@operato/scene-table": "^1.0.0-alpha.4",
61
- "@operato/scene-timer": "^1.0.0-alpha.4",
62
- "@operato/scene-wheel-sorter": "^1.0.0-alpha.4",
63
- "@things-factory/apptool-ui": "^5.0.0-alpha.25",
64
- "@things-factory/attachment-base": "^5.0.0-alpha.25",
65
- "@things-factory/auth-ui": "^5.0.0-alpha.25",
66
- "@things-factory/biz-base": "^5.0.0-alpha.25",
67
- "@things-factory/board-service": "^5.0.0-alpha.25",
68
- "@things-factory/board-ui": "^5.0.0-alpha.25",
69
- "@things-factory/code-ui": "^5.0.0-alpha.25",
70
- "@things-factory/context-ui": "^5.0.0-alpha.25",
71
- "@things-factory/dashboard": "^5.0.0-alpha.25",
72
- "@things-factory/export-ui": "^5.0.0-alpha.25",
73
- "@things-factory/export-ui-csv": "^5.0.0-alpha.25",
74
- "@things-factory/export-ui-excel": "^5.0.0-alpha.25",
75
- "@things-factory/geography": "^5.0.0-alpha.25",
76
- "@things-factory/grist-ui": "^5.0.0-alpha.25",
77
- "@things-factory/help": "^5.0.0-alpha.25",
78
- "@things-factory/i18n-base": "^5.0.0-alpha.25",
79
- "@things-factory/integration-fulfillment": "^5.0.0-alpha.25",
80
- "@things-factory/integration-lmd": "^5.0.0-alpha.25",
81
- "@things-factory/lite-menu": "^5.0.0-alpha.25",
82
- "@things-factory/marketplace-base": "^5.0.0-alpha.25",
83
- "@things-factory/more-ui": "^5.0.0-alpha.25",
84
- "@things-factory/notification": "^5.0.0-alpha.25",
85
- "@things-factory/oauth2-client": "^5.0.0-alpha.25",
86
- "@things-factory/pdf": "^5.0.0-alpha.25",
87
- "@things-factory/product-base": "^5.0.0-alpha.25",
88
- "@things-factory/resource-ui": "^5.0.0-alpha.25",
89
- "@things-factory/scene-data-transform": "^5.0.0-alpha.25",
90
- "@things-factory/scene-excel": "^5.0.0-alpha.25",
91
- "@things-factory/scene-firebase": "^5.0.0-alpha.25",
92
- "@things-factory/scene-form": "^5.0.0-alpha.25",
93
- "@things-factory/scene-google-map": "^5.0.0-alpha.25",
94
- "@things-factory/scene-graphql": "^5.0.0-alpha.25",
95
- "@things-factory/scene-label": "^5.0.0-alpha.25",
96
- "@things-factory/scene-marker": "^5.0.0-alpha.25",
97
- "@things-factory/scene-mqtt": "^5.0.0-alpha.25",
98
- "@things-factory/scene-restful": "^5.0.0-alpha.25",
99
- "@things-factory/scene-visualizer": "^5.0.0-alpha.25",
100
- "@things-factory/setting-ui": "^5.0.0-alpha.25",
101
- "@things-factory/system-ui": "^5.0.0-alpha.25",
102
- "@things-factory/warehouse-base": "^5.0.0-alpha.25"
44
+ "@operato/ghost-print": "1.0.0-alpha.51",
45
+ "@operato/scene-chartjs": "^1.0.0-alpha.5",
46
+ "@operato/scene-clock": "^1.0.0-alpha.5",
47
+ "@operato/scene-clone": "^1.0.0-alpha.5",
48
+ "@operato/scene-compass": "^1.0.0-alpha.5",
49
+ "@operato/scene-gauge": "^1.0.0-alpha.5",
50
+ "@operato/scene-grist": "^1.0.0-alpha.5",
51
+ "@operato/scene-half-roundrect": "^1.0.0-alpha.5",
52
+ "@operato/scene-indoor-map": "^1.0.0-alpha.5",
53
+ "@operato/scene-integration": "^1.0.0-alpha.5",
54
+ "@operato/scene-legend": "^1.0.0-alpha.5",
55
+ "@operato/scene-news-ticker": "^1.0.0-alpha.5",
56
+ "@operato/scene-progressbar": "^1.0.0-alpha.5",
57
+ "@operato/scene-random": "^1.0.0-alpha.5",
58
+ "@operato/scene-switch": "^1.0.0-alpha.5",
59
+ "@operato/scene-tab": "^1.0.0-alpha.5",
60
+ "@operato/scene-table": "^1.0.0-alpha.5",
61
+ "@operato/scene-timer": "^1.0.0-alpha.5",
62
+ "@operato/scene-wheel-sorter": "^1.0.0-alpha.5",
63
+ "@things-factory/apptool-ui": "^5.0.0-alpha.28",
64
+ "@things-factory/attachment-base": "^5.0.0-alpha.28",
65
+ "@things-factory/auth-ui": "^5.0.0-alpha.28",
66
+ "@things-factory/biz-base": "^5.0.0-alpha.28",
67
+ "@things-factory/board-service": "^5.0.0-alpha.28",
68
+ "@things-factory/board-ui": "^5.0.0-alpha.28",
69
+ "@things-factory/code-ui": "^5.0.0-alpha.28",
70
+ "@things-factory/context-ui": "^5.0.0-alpha.28",
71
+ "@things-factory/dashboard": "^5.0.0-alpha.28",
72
+ "@things-factory/export-ui": "^5.0.0-alpha.28",
73
+ "@things-factory/export-ui-csv": "^5.0.0-alpha.28",
74
+ "@things-factory/export-ui-excel": "^5.0.0-alpha.28",
75
+ "@things-factory/geography": "^5.0.0-alpha.28",
76
+ "@things-factory/grist-ui": "^5.0.0-alpha.28",
77
+ "@things-factory/help": "^5.0.0-alpha.28",
78
+ "@things-factory/i18n-base": "^5.0.0-alpha.28",
79
+ "@things-factory/integration-fulfillment": "^5.0.0-alpha.28",
80
+ "@things-factory/integration-lmd": "^5.0.0-alpha.28",
81
+ "@things-factory/lite-menu": "^5.0.0-alpha.28",
82
+ "@things-factory/marketplace-base": "^5.0.0-alpha.28",
83
+ "@things-factory/more-ui": "^5.0.0-alpha.28",
84
+ "@things-factory/notification": "^5.0.0-alpha.28",
85
+ "@things-factory/oauth2-client": "^5.0.0-alpha.28",
86
+ "@things-factory/pdf": "^5.0.0-alpha.28",
87
+ "@things-factory/product-base": "^5.0.0-alpha.28",
88
+ "@things-factory/resource-ui": "^5.0.0-alpha.28",
89
+ "@things-factory/scene-data-transform": "^5.0.0-alpha.28",
90
+ "@things-factory/scene-excel": "^5.0.0-alpha.28",
91
+ "@things-factory/scene-firebase": "^5.0.0-alpha.28",
92
+ "@things-factory/scene-form": "^5.0.0-alpha.28",
93
+ "@things-factory/scene-google-map": "^5.0.0-alpha.28",
94
+ "@things-factory/scene-graphql": "^5.0.0-alpha.28",
95
+ "@things-factory/scene-label": "^5.0.0-alpha.28",
96
+ "@things-factory/scene-marker": "^5.0.0-alpha.28",
97
+ "@things-factory/scene-mqtt": "^5.0.0-alpha.28",
98
+ "@things-factory/scene-restful": "^5.0.0-alpha.28",
99
+ "@things-factory/scene-visualizer": "^5.0.0-alpha.28",
100
+ "@things-factory/setting-ui": "^5.0.0-alpha.28",
101
+ "@things-factory/system-ui": "^5.0.0-alpha.28",
102
+ "@things-factory/warehouse-base": "^5.0.0-alpha.28"
103
103
  },
104
104
  "devDependencies": {
105
- "@things-factory/builder": "^5.0.0-alpha.25",
105
+ "@things-factory/builder": "^5.0.0-alpha.28",
106
106
  "@types/node-fetch": "^2.5.7"
107
107
  },
108
- "gitHead": "d4307f6a23ea8be3555a06f17182558b2b00c74d"
108
+ "gitHead": "9adb6cdfd07c7730800f84a2d532d96f0f436288"
109
109
  }
@@ -67,25 +67,8 @@ export async function warehouseMarketplaceProduct(params: ListParam, domain: Dom
67
67
 
68
68
  await tx.query(
69
69
  `
70
- CREATE TEMP TABLE "temp_inventory" ON COMMIT DROP AS (
71
- select "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
72
- "i2"."product_id", SUM(greatest(coalesce("locked_qty",0),0) + greatest(coalesce(oi.release_qty,0),0)) as "inventory_locked_qty", sum(coalesce("qty",0)) as "inventory_qty",
73
- "i2"."domain_id"
74
- from inventories "i2"
75
- inner join warehouses "w" on "w"."id" = "i2"."warehouse_id"
76
- inner join domains "d2" on "d2"."id" = "w"."domain_id" and "d2"."ext_type" ='warehouse'
77
- inner join fulfillment_centers "fc" ON "fc"."center_id" = "d2"."subdomain"
78
- inner join (
79
- select "Product"."product_id" from (
80
- select case when "Product"."type" = 'PRODUCT' then "Product"."product_id" else "pbs"."product_id" end as "product_id"
81
- from temp_products "Product"
82
- left join product_bundles "pb" on "pb"."id" = "Product"."product_id"
83
- left join product_bundle_settings "pbs" on "pbs"."product_bundle_id" = "pb"."id"
84
- ) "Product"
85
- group by "Product"."product_id"
86
- ) "Product" on "Product"."product_id" = "i2"."product_id"
87
- left join (
88
- SELECT
70
+ CREATE TEMP TABLE "temp_order_inventories" ON COMMIT DROP AS (
71
+ SELECT
89
72
  SUM(oi.release_qty) AS release_qty, SUM(oi.release_uom_value) AS release_uom_value, oi.batch_id, oi.batch_id_ref,
90
73
  oi.product_id, p.product_name, oi.packing_type, oi.packing_size, oi.uom
91
74
  FROM
@@ -103,10 +86,39 @@ export async function warehouseMarketplaceProduct(params: ListParam, domain: Dom
103
86
  GROUP BY
104
87
  oi.batch_id, oi.batch_id_ref, oi.product_id, oi.packing_type,
105
88
  oi.packing_size, oi.uom, p.product_name
106
- )"oi" ON "i2".batch_id = "oi".batch_id AND "Product"."product_id" = "oi".product_id AND "i2".packing_type = "oi".packing_type AND "i2".packing_size = oi.packing_size AND "i2".uom = oi.uom
107
- where "fc"."domain_id" = $1
108
- and "i2"."status" = 'STORED'
109
- group by "i2"."domain_id", "fc"."id", "fc"."name", "i2"."product_id"
89
+ );
90
+ `,
91
+ [domain.id]
92
+ )
93
+
94
+ await tx.query(
95
+ `
96
+ CREATE TEMP TABLE "temp_inventory" ON COMMIT DROP AS (
97
+ select "i2".*, coalesce("oi".release_qty,0) + coalesce("i2".locked_qty,0) as "inventory_locked_qty" from (
98
+ select "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
99
+ "i2"."product_id", sum(coalesce("locked_qty",0)) as "locked_qty", sum(coalesce("qty",0)) as "inventory_qty",
100
+ "i2"."domain_id", "i2"."packing_type", "i2"."packing_size", "i2"."uom"
101
+ from inventories "i2"
102
+ inner join warehouses "w" on "w"."id" = "i2"."warehouse_id"
103
+ inner join domains "d2" on "d2"."id" = "w"."domain_id" and "d2"."ext_type" ='warehouse'
104
+ inner join fulfillment_centers "fc" ON "fc"."center_id" = "d2"."subdomain"
105
+ inner join (
106
+ select "Product"."product_id" from (
107
+ select case when "Product"."type" = 'PRODUCT' then "Product"."product_id" else "pbs"."product_id" end as "product_id"
108
+ from temp_products "Product"
109
+ left join product_bundles "pb" on "pb"."id" = "Product"."product_id"
110
+ left join product_bundle_settings "pbs" on "pbs"."product_bundle_id" = "pb"."id"
111
+ ) "Product"
112
+ group by "Product"."product_id"
113
+ ) "Product" on "Product"."product_id" = "i2"."product_id"
114
+ where "fc"."domain_id" = $1
115
+ and "i2"."status" = 'STORED'
116
+ group by "i2"."domain_id", "fc"."id", "fc"."name", "i2"."product_id", "i2"."packing_type", "i2"."packing_size", "i2"."uom"
117
+ ) as "i2"
118
+ left join temp_order_inventories "oi" on "i2"."product_id" = "oi"."product_id"
119
+ AND "i2"."packing_type" = "oi"."packing_type"
120
+ AND "i2"."packing_size" = "oi"."packing_size"
121
+ AND "i2"."uom" = "oi"."uom"
110
122
  )
111
123
  `,
112
124
  [domain.id]
@@ -141,7 +153,7 @@ export async function warehouseMarketplaceProduct(params: ListParam, domain: Dom
141
153
  max("bundledInv"."inventory_locked_qty") as "inventory_locked_qty", min("bundledInv"."inventory_qty") as "inventory_qty" from (
142
154
  select "Product"."product_id", fc.domain_id, "fc"."id" as "fulfillment_id", "fc"."name" as "fulfillment_name",
143
155
  "pbs"."bundle_qty",
144
- case when "pbs"."bundle_qty" <= 0 then 0 else ceil(greatest("i2"."inventory_locked_qty",0)/ "pbs"."bundle_qty") end AS "inventory_locked_qty",
156
+ case when "pbs"."bundle_qty" <= 0 then 0 else floor(greatest("i2"."inventory_qty", 0)/ "pbs"."bundle_qty")- floor((greatest("i2"."inventory_qty", 0) - greatest("i2"."inventory_locked_qty",0)) / "pbs"."bundle_qty") end AS "inventory_locked_qty",
145
157
  case when "pbs"."bundle_qty" <= 0 then 0 else floor(greatest("i2"."inventory_qty", 0)/ "pbs"."bundle_qty") end AS "inventory_qty"
146
158
  from temp_products "Product"
147
159
  inner join product_bundle_settings pbs ON pbs.product_bundle_id = "Product"."product_id"