@things-factory/warehouse-base 4.3.679 → 4.3.682

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.
@@ -1515,91 +1515,250 @@ async function massageInventoryPalletSummary(tx, params, bizplace, context) {
1515
1515
  let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance');
1516
1516
  let hasTransactionOrBalanceQuery = '';
1517
1517
  if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
1518
- hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)';
1518
+ hasTransactionOrBalanceQuery = 'and (c.opening_qty > 0 or c.total_in_qty > 0 or c.adjustment_qty > 0)';
1519
1519
  }
1520
1520
  await tx.query(`
1521
- create temp table temp_inventory_pallet_summary ON COMMIT DROP as (
1522
- select invh.*,
1523
- invh.opening_qty + invh.total_in_qty + invh.total_out_qty + invh.adjustment_qty as closing_qty from (
1524
- select product_sku, product_id, product_name, product_description, product_type,
1525
- SUM(case when invHistory.created_at < $1 then
1526
- case when invHistory.status = 'STORED' then 1
1527
- when invhistory.status = 'TERMINATED' then -1
1528
- else 0 end
1529
- else 0 end) as opening_qty,
1530
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1531
- case when (invHistory.transaction_type = 'UNLOADING' or invHistory.transaction_type = 'NEW' or invHistory.transaction_type = 'CANCEL_ORDER') then 1 else 0 end
1532
- else 0 end) as total_in_qty,
1533
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1534
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
1535
- else 0 end) as total_out_qty,
1536
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1537
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type = 'ADJUSTMENT' then -1
1538
- when invHistory.status = 'STORED' AND invHistory.transaction_type = 'ADJUSTMENT' then 1 else 0 end
1539
- else 0 end) as adjustment_qty
1540
- from(
1541
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1542
- inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1543
- select row_number() over(partition by invh.pallet_id order by invh.created_at asc) as rn, invh.* ,
1544
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1545
- from temp_inv_history invh
1546
- inner join temp_products prd on prd.id = invh.product_id
1547
- where (transaction_type = 'UNLOADING' or invh.transaction_type = 'NEW' or invh.transaction_type = 'CANCEL_ORDER')
1548
- and invh.created_at >= $1
1549
- ) as invIn where rn = 1
1550
- union all
1551
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1552
- inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1553
- SELECT row_number() over(partition by pallet_id, invh.product_id order by seq asc) as rn,
1554
- invh.pallet_id, invh.product_id, invh.packing_type, invh.packing_size,
1555
- invh.batch_id, invh.inventory_history_id,
1556
- invh.seq, 'STORED' AS status, invh.transaction_type, invh.qty, invh.opening_qty,
1557
- invh.created_at,
1558
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1559
- from temp_inv_history invh
1560
- inner join temp_products prd on prd.id = invh.product_id
1561
- where invh.created_at < $1
1562
- and (invh.status = 'STORED' or invh.status = 'UNLOADED')
1563
- ) as invStored where rn = 1
1564
- union all
1565
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1566
- inventory_history_id, packing_type, packing_size, qty, opening_qty, started_at as created_at from (
1567
- select row_number() over(partition by invh.pallet_id, invh.product_id order by invh.seq desc) as rn, invh.*,
1568
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, repeatedGroup.started_at
1569
- from temp_inv_history invh
1570
- inner join (
1571
- select pallet_id, min(created_at) as started_at, max(created_at) as ended_at, min(seq) as min_seq, max(seq) as max_seq, status from (
1572
- select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (
1573
- select s.*,
1574
- (case when lag(status) over (partition by pallet_id order by seq) = status then 0 else 1 end) as startflag
1575
- from temp_inv_history s
1576
- ) startData
1577
- ) endData
1578
- group by pallet_id, grp, status
1579
- ) repeatedGroup on repeatedGroup.pallet_id = invh.pallet_id and repeatedGroup.min_seq <= invh.seq and repeatedGroup.max_seq >= invh.seq
1580
- inner join temp_products prd on prd.id = invh.product_id
1581
- where invh.status = 'TERMINATED' and invh.transaction_type IN ('TERMINATED', 'ADJUSTMENT')
1582
- ) as invOut where rn=1
1583
- union all
1584
- SELECT invh.pallet_id, invh.seq, invh.status, invh.transaction_type,
1585
- prd.sku AS product_sku, invh.product_id, prd.name AS product_name, prd.description AS product_description, prd.type AS product_type,
1586
- invh.inventory_history_id, invh.packing_type, invh.packing_size, invh.qty, invh.opening_qty, invh.created_at
1587
- FROM temp_inv_history invh
1588
- INNER JOIN (
1589
- SELECT invh.pallet_id, invh.seq AS stored_seq, invh2.seq AS terminated_seq FROM temp_inv_history invh
1590
- INNER JOIN temp_inv_history invh2 ON invh2.pallet_id = invh.pallet_id AND invh2.status='STORED' AND invh2.seq = invh.seq + 1 AND invh2.product_id <> invh.product_id
1591
- WHERE invh.transaction_type = 'ADJUSTMENT'
1592
- ) dt ON dt.pallet_id = invh.pallet_id AND (dt.stored_seq = invh.seq OR dt.terminated_seq = invh.seq)
1593
- inner join temp_products prd on prd.id = invh.product_id
1594
- where invh.created_at >= $1
1595
- ORDER BY product_name, pallet_id, seq
1596
- ) as invHistory
1597
- group by product_sku, product_id, product_name, product_description, product_type
1598
- ) invh
1599
- where 1=1
1600
- ${hasTransactionOrBalanceQuery}
1521
+ create temp table temp_inventory_pallet_summary ON COMMIT DROP as
1522
+ with params as (
1523
+ select $1::timestamp as t1, $2::timestamp as t2
1524
+ ),
1525
+ base as (
1526
+ select
1527
+ invh.*,
1528
+ prd.sku as product_sku,
1529
+ prd.name as product_name,
1530
+ prd.description as product_description,
1531
+ prd.type as product_type
1532
+ from temp_inv_history invh
1533
+ join temp_products prd on prd.id = invh.product_id
1534
+ ),
1535
+
1536
+ /* ---- Opening snapshot as-of t1 (FIX) ----
1537
+ For each pallet, take the last row <= t1; if status='STORED',
1538
+ count it toward that row's product_id opening.
1539
+ */
1540
+ opening_last_asof as (
1541
+ select *
1542
+ from (
1543
+ select h.*,
1544
+ row_number() over (partition by h.pallet_id order by h.created_at desc, h.seq desc) as rn
1545
+ from temp_inv_history h
1546
+ join params p on true
1547
+ where h.created_at <= p.t1
1548
+ ) x
1549
+ where rn = 1 and status = 'STORED'
1550
+ ),
1551
+ opening_agg as (
1552
+ select
1553
+ p.sku as product_sku,
1554
+ p.id as product_id,
1555
+ p.name as product_name,
1556
+ p.description as product_description,
1557
+ p.type as product_type,
1558
+ count(*)::int as opening_qty
1559
+ from opening_last_asof o
1560
+ join temp_products p on p.id = o.product_id
1561
+ group by p.sku, p.id, p.name, p.description, p.type
1562
+ ),
1563
+
1564
+ /* ---- Arrivals inside window: first arrival-like row per pallet (your rule) ---- */
1565
+ invIn as (
1566
+ select b.*,
1567
+ row_number() over (partition by b.pallet_id order by b.created_at, b.seq) as rn
1568
+ from base b
1569
+ join params p on true
1570
+ where b.transaction_type in ('UNLOADING','NEW','CANCEL_ORDER')
1571
+ and b.created_at >= p.t1
1572
+ ),
1573
+ invIn_first as (
1574
+ select
1575
+ pallet_id, seq, status, transaction_type,
1576
+ product_sku, product_id, product_name, product_description, product_type,
1577
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at
1578
+ from invIn
1579
+ where rn = 1
1580
+ ),
1581
+
1582
+ /* ---- TERMINATED reps (incl. ADJUSTMENT terminations), using your runs logic ---- */
1583
+ status_runs as (
1584
+ select
1585
+ endData.pallet_id,
1586
+ min(endData.created_at) as started_at,
1587
+ max(endData.created_at) as ended_at,
1588
+ min(endData.seq) as min_seq,
1589
+ max(endData.seq) as max_seq,
1590
+ endData.status
1591
+ from (
1592
+ select startData.*,
1593
+ sum(startflag) over (partition by startData.pallet_id order by startData.seq) as grp
1594
+ from (
1595
+ select s.*,
1596
+ case when lag(s.status) over (partition by s.pallet_id order by s.seq) = s.status then 0 else 1 end as startflag
1597
+ from temp_inv_history s
1598
+ ) startData
1599
+ ) endData
1600
+ group by endData.pallet_id, endData.status, endData.grp
1601
+ ),
1602
+ invOut_base as (
1603
+ select b.*, r.started_at
1604
+ from base b
1605
+ join status_runs r
1606
+ on r.pallet_id = b.pallet_id
1607
+ and r.min_seq <= b.seq
1608
+ and r.max_seq >= b.seq
1609
+ where b.status = 'TERMINATED'
1610
+ and b.transaction_type in ('TERMINATED','ADJUSTMENT')
1611
+ ),
1612
+
1613
+ /* ---- Transfer pairing (seq-gap tolerant & tolerant txn tags) ---- */
1614
+ /* STORED side in-window; pair to nearest prior TERMINATED (from raw history), different product */
1615
+ adj_stored AS (
1616
+ SELECT b.*
1617
+ FROM base b
1618
+ JOIN params p ON TRUE
1619
+ WHERE b.status = 'STORED'
1620
+ AND b.created_at BETWEEN p.t1 AND p.t2
1621
+ ),
1622
+ adj_pairs AS (
1623
+ SELECT
1624
+ s.pallet_id,
1625
+ s.seq AS stored_seq,
1626
+ t.seq AS terminated_seq,
1627
+ s.product_id AS new_product_id,
1628
+ t.product_id AS old_product_id,
1629
+ s.inventory_history_id AS stored_inventory_history_id,
1630
+ t.inventory_history_id AS terminated_inventory_history_id,
1631
+ s.created_at AS stored_at,
1632
+ t.created_at AS terminated_at,
1633
+ s.transaction_type AS stored_txn,
1634
+ t.transaction_type AS terminated_txn
1635
+ FROM adj_stored s
1636
+ JOIN LATERAL (
1637
+ SELECT t.*
1638
+ FROM temp_inv_history t -- use raw history (old product may be outside temp_products)
1639
+ WHERE t.pallet_id = s.pallet_id
1640
+ AND t.seq < s.seq
1641
+ AND t.status = 'TERMINATED'
1642
+ ORDER BY t.seq DESC
1643
+ LIMIT 1
1644
+ ) t ON TRUE
1645
+ WHERE t.product_id IS DISTINCT FROM s.product_id
1646
+ AND (s.transaction_type='ADJUSTMENT' OR t.transaction_type='ADJUSTMENT')
1647
+ ),
1648
+ adj_pairs_terminated_keys AS (
1649
+ SELECT pallet_id, terminated_seq AS seq
1650
+ FROM adj_pairs
1651
+ ),
1652
+
1653
+ /* Representative TERMINATED per (pallet, product), EXCLUDING those used by a pair (avoid double-count) */
1654
+ invOut_rep AS (
1655
+ SELECT *
1656
+ FROM (
1657
+ SELECT iob.*,
1658
+ row_number() over (partition by iob.pallet_id, iob.product_id order by iob.seq desc) as rn
1659
+ FROM invOut_base iob
1660
+ LEFT JOIN adj_pairs_terminated_keys k
1661
+ ON k.pallet_id = iob.pallet_id
1662
+ AND k.seq = iob.seq
1663
+ WHERE k.pallet_id IS NULL
1664
+ ) z
1665
+ WHERE rn = 1
1666
+ ),
1667
+
1668
+ /* Materialize both sides of the paired transfer */
1669
+ adj_pairs_stored_rows AS (
1670
+ SELECT
1671
+ b.pallet_id, b.seq, b.status, b.transaction_type,
1672
+ b.product_sku, b.product_id, b.product_name, b.product_description, b.product_type,
1673
+ b.inventory_history_id, b.packing_type, b.packing_size, b.qty, b.opening_qty, b.created_at
1674
+ FROM base b
1675
+ JOIN adj_pairs ap
1676
+ ON ap.pallet_id = b.pallet_id
1677
+ AND ap.stored_seq = b.seq
1678
+ ),
1679
+ adj_pairs_terminated_rows AS (
1680
+ SELECT
1681
+ b.pallet_id, b.seq, b.status, b.transaction_type,
1682
+ b.product_sku, b.product_id, b.product_name, b.product_description, b.product_type,
1683
+ b.inventory_history_id, b.packing_type, b.packing_size, b.qty, b.opening_qty, b.created_at
1684
+ FROM base b
1685
+ JOIN adj_pairs ap
1686
+ ON ap.pallet_id = b.pallet_id
1687
+ AND ap.terminated_seq = b.seq
1688
+ ),
1689
+
1690
+ /* ---- Unified stream for window movement ---- */
1691
+ invHistory as (
1692
+ select * from invIn_first
1693
+ union all
1694
+ select
1695
+ pallet_id, seq, status, transaction_type,
1696
+ product_sku, product_id, product_name, product_description, product_type,
1697
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at
1698
+ from invOut_rep
1699
+ union all
1700
+ select * from adj_pairs_stored_rows
1701
+ union all
1702
+ select * from adj_pairs_terminated_rows
1703
+ ),
1704
+
1705
+ /* ---- Movement aggregation only (no opening here) ---- */
1706
+ movement_agg as (
1707
+ select
1708
+ ih.product_sku,
1709
+ ih.product_id,
1710
+ ih.product_name,
1711
+ ih.product_description,
1712
+ ih.product_type,
1713
+
1714
+ sum(case when ih.created_at >= (select t1 from params)
1715
+ and ih.created_at <= (select t2 from params) then
1716
+ case when ih.transaction_type in ('UNLOADING','NEW','CANCEL_ORDER') then 1 else 0 end
1717
+ else 0 end)::int as total_in_qty,
1718
+
1719
+ sum(case when ih.created_at >= (select t1 from params)
1720
+ and ih.created_at <= (select t2 from params) then
1721
+ case when ih.status = 'TERMINATED'
1722
+ and ih.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
1723
+ else 0 end)::int as total_out_qty,
1724
+
1725
+ sum(case when ih.created_at >= (select t1 from params)
1726
+ and ih.created_at <= (select t2 from params) then
1727
+ case when ih.status = 'TERMINATED' and ih.transaction_type = 'ADJUSTMENT' then -1
1728
+ when ih.status = 'STORED' and ih.transaction_type = 'ADJUSTMENT' then 1
1729
+ else 0 end
1730
+ else 0 end)::int as adjustment_qty
1731
+
1732
+ from invHistory ih
1733
+ group by ih.product_sku, ih.product_id, ih.product_name, ih.product_description, ih.product_type
1734
+ ),
1735
+
1736
+ /* ---- Combine opening snapshot + window movement ---- */
1737
+ combined as (
1738
+ select
1739
+ coalesce(o.product_sku, m.product_sku) as product_sku,
1740
+ coalesce(o.product_id, m.product_id) as product_id,
1741
+ coalesce(o.product_name,m.product_name) as product_name,
1742
+ coalesce(o.product_description,m.product_description) as product_description,
1743
+ coalesce(o.product_type,m.product_type) as product_type,
1744
+
1745
+ coalesce(o.opening_qty, 0) as opening_qty,
1746
+ coalesce(m.total_in_qty, 0) as total_in_qty,
1747
+ coalesce(m.total_out_qty, 0) as total_out_qty,
1748
+ coalesce(m.adjustment_qty, 0) as adjustment_qty
1749
+ from opening_agg o
1750
+ full outer join movement_agg m
1751
+ on m.product_id = o.product_id
1601
1752
  )
1602
- `, [fromDate.value, toDate.value]);
1753
+
1754
+ select
1755
+ c.*,
1756
+ (c.opening_qty + c.total_in_qty + c.total_out_qty + c.adjustment_qty) as closing_qty
1757
+ from combined c
1758
+ where 1=1
1759
+ ${hasTransactionOrBalanceQuery}
1760
+ ;
1761
+ `, [fromDate.value, toDate.value]);
1603
1762
  const total = await tx.query(`select count(*) as count, sum(total_in_qty) as totalInQty, sum(opening_qty) as totalOpeningBal from temp_inventory_pallet_summary`);
1604
1763
  const result = await tx.query(`
1605
1764
  select *, 'PALLET' as packing_type from temp_inventory_pallet_summary ORDER BY product_name, product_description OFFSET $1 LIMIT $2
@@ -1663,23 +1822,43 @@ async function filterInventoryQuery(tx, params, bizplace, context) {
1663
1822
  .join(',') +
1664
1823
  '])';
1665
1824
  }
1825
+ /* Step 1: materialize filtered histories into a temp table and index */
1826
+ await tx.query(`
1827
+ create temp table temp_filtered_histories ON COMMIT DROP as (
1828
+ SELECT
1829
+ ih.pallet_id,
1830
+ ih.product_id,
1831
+ ih.packing_type,
1832
+ ih.batch_id,
1833
+ ih.id,
1834
+ ih.seq,
1835
+ ih.status,
1836
+ ih.transaction_type,
1837
+ ih.qty,
1838
+ ih.opening_qty,
1839
+ ih.created_at,
1840
+ ih.domain_id,
1841
+ ih.bizplace_id
1842
+ FROM inventory_histories ih
1843
+ WHERE ih.domain_id = $1
1844
+ AND ih.bizplace_id = $2
1845
+ AND ih.created_at <= $3
1846
+ AND (ih.qty <> 0 OR ih.opening_qty <> 0 OR ih.status = 'MISSING')
1847
+ )
1848
+ `, [context.state.domain.id, bizplace.id, toDate.value]);
1849
+ /* Step 2: build temp_inv_history by joining inventories with indexed temp_filtered_histories and temp_products */
1666
1850
  await tx.query(`
1667
1851
  create temp table temp_inv_history ON COMMIT DROP as (
1668
- WITH filtered_histories AS (
1669
- SELECT *
1670
- FROM reduced_inventory_histories
1671
- WHERE domain_id = $1
1672
- AND bizplace_id = $2
1673
- AND created_at <= $3
1674
- )
1675
1852
  SELECT i2.pallet_id, ih.product_id::uuid, ih.packing_type, i2.packing_size, ih.batch_id,
1676
1853
  ih.id AS inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.created_at
1677
1854
  FROM inventories i2
1678
- INNER JOIN filtered_histories ih
1855
+ INNER JOIN temp_filtered_histories ih
1679
1856
  ON ih.pallet_id = i2.pallet_id
1680
1857
  AND ih.domain_id = i2.domain_id
1858
+ INNER JOIN temp_products prd
1859
+ ON prd.id = ih.product_id::uuid
1681
1860
  ${batchNoQuery}
1682
1861
  )
1683
- `, [context.state.domain.id, bizplace.id, toDate.value]);
1862
+ `);
1684
1863
  }
1685
1864
  //# sourceMappingURL=inventory-history-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-history-query.js","sourceRoot":"","sources":["../../../server/service/inventory-history/inventory-history-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory-history-query.js","sourceRoot":"","sources":["../../../server/service/inventory-history/inventory-history-query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/warehouse-base",
3
- "version": "4.3.679",
3
+ "version": "4.3.682",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -25,12 +25,12 @@
25
25
  "dependencies": {
26
26
  "@things-factory/biz-base": "^4.3.677",
27
27
  "@things-factory/id-rule-base": "^4.3.677",
28
- "@things-factory/integration-accounting": "^4.3.677",
29
- "@things-factory/integration-powrup": "^4.3.677",
30
- "@things-factory/integration-sellercraft": "^4.3.677",
31
- "@things-factory/marketplace-base": "^4.3.677",
28
+ "@things-factory/integration-accounting": "^4.3.682",
29
+ "@things-factory/integration-powrup": "^4.3.682",
30
+ "@things-factory/integration-sellercraft": "^4.3.682",
31
+ "@things-factory/marketplace-base": "^4.3.682",
32
32
  "@things-factory/product-base": "^4.3.677",
33
33
  "@things-factory/setting-base": "^4.3.677"
34
34
  },
35
- "gitHead": "dbd3c422ea6f5239def218b70aac8302eac238f5"
35
+ "gitHead": "b2ad61e11288f94f4fc73b4f74c049e70a77079a"
36
36
  }
@@ -1655,6 +1655,7 @@ async function massageInventorySummary(tx: EntityManager, params: ListParam, biz
1655
1655
  if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
1656
1656
  hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)'
1657
1657
  }
1658
+
1658
1659
  await tx.query(
1659
1660
  `
1660
1661
  create temp table temp_inventory_summary ON COMMIT DROP as (
@@ -1701,92 +1702,252 @@ async function massageInventoryPalletSummary(tx: EntityManager, params: ListPara
1701
1702
 
1702
1703
  let hasTransactionOrBalanceQuery = ''
1703
1704
  if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
1704
- hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)'
1705
+ hasTransactionOrBalanceQuery = 'and (c.opening_qty > 0 or c.total_in_qty > 0 or c.adjustment_qty > 0)'
1705
1706
  }
1707
+
1706
1708
  await tx.query(
1707
1709
  `
1708
- create temp table temp_inventory_pallet_summary ON COMMIT DROP as (
1709
- select invh.*,
1710
- invh.opening_qty + invh.total_in_qty + invh.total_out_qty + invh.adjustment_qty as closing_qty from (
1711
- select product_sku, product_id, product_name, product_description, product_type,
1712
- SUM(case when invHistory.created_at < $1 then
1713
- case when invHistory.status = 'STORED' then 1
1714
- when invhistory.status = 'TERMINATED' then -1
1715
- else 0 end
1716
- else 0 end) as opening_qty,
1717
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1718
- case when (invHistory.transaction_type = 'UNLOADING' or invHistory.transaction_type = 'NEW' or invHistory.transaction_type = 'CANCEL_ORDER') then 1 else 0 end
1719
- else 0 end) as total_in_qty,
1720
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1721
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
1722
- else 0 end) as total_out_qty,
1723
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1724
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type = 'ADJUSTMENT' then -1
1725
- when invHistory.status = 'STORED' AND invHistory.transaction_type = 'ADJUSTMENT' then 1 else 0 end
1726
- else 0 end) as adjustment_qty
1727
- from(
1728
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1729
- inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1730
- select row_number() over(partition by invh.pallet_id order by invh.created_at asc) as rn, invh.* ,
1731
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1732
- from temp_inv_history invh
1733
- inner join temp_products prd on prd.id = invh.product_id
1734
- where (transaction_type = 'UNLOADING' or invh.transaction_type = 'NEW' or invh.transaction_type = 'CANCEL_ORDER')
1735
- and invh.created_at >= $1
1736
- ) as invIn where rn = 1
1737
- union all
1738
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1739
- inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1740
- SELECT row_number() over(partition by pallet_id, invh.product_id order by seq asc) as rn,
1741
- invh.pallet_id, invh.product_id, invh.packing_type, invh.packing_size,
1742
- invh.batch_id, invh.inventory_history_id,
1743
- invh.seq, 'STORED' AS status, invh.transaction_type, invh.qty, invh.opening_qty,
1744
- invh.created_at,
1745
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1746
- from temp_inv_history invh
1747
- inner join temp_products prd on prd.id = invh.product_id
1748
- where invh.created_at < $1
1749
- and (invh.status = 'STORED' or invh.status = 'UNLOADED')
1750
- ) as invStored where rn = 1
1751
- union all
1752
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1753
- inventory_history_id, packing_type, packing_size, qty, opening_qty, started_at as created_at from (
1754
- select row_number() over(partition by invh.pallet_id, invh.product_id order by invh.seq desc) as rn, invh.*,
1755
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, repeatedGroup.started_at
1756
- from temp_inv_history invh
1757
- inner join (
1758
- select pallet_id, min(created_at) as started_at, max(created_at) as ended_at, min(seq) as min_seq, max(seq) as max_seq, status from (
1759
- select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (
1760
- select s.*,
1761
- (case when lag(status) over (partition by pallet_id order by seq) = status then 0 else 1 end) as startflag
1762
- from temp_inv_history s
1763
- ) startData
1764
- ) endData
1765
- group by pallet_id, grp, status
1766
- ) repeatedGroup on repeatedGroup.pallet_id = invh.pallet_id and repeatedGroup.min_seq <= invh.seq and repeatedGroup.max_seq >= invh.seq
1767
- inner join temp_products prd on prd.id = invh.product_id
1768
- where invh.status = 'TERMINATED' and invh.transaction_type IN ('TERMINATED', 'ADJUSTMENT')
1769
- ) as invOut where rn=1
1770
- union all
1771
- SELECT invh.pallet_id, invh.seq, invh.status, invh.transaction_type,
1772
- prd.sku AS product_sku, invh.product_id, prd.name AS product_name, prd.description AS product_description, prd.type AS product_type,
1773
- invh.inventory_history_id, invh.packing_type, invh.packing_size, invh.qty, invh.opening_qty, invh.created_at
1774
- FROM temp_inv_history invh
1775
- INNER JOIN (
1776
- SELECT invh.pallet_id, invh.seq AS stored_seq, invh2.seq AS terminated_seq FROM temp_inv_history invh
1777
- INNER JOIN temp_inv_history invh2 ON invh2.pallet_id = invh.pallet_id AND invh2.status='STORED' AND invh2.seq = invh.seq + 1 AND invh2.product_id <> invh.product_id
1778
- WHERE invh.transaction_type = 'ADJUSTMENT'
1779
- ) dt ON dt.pallet_id = invh.pallet_id AND (dt.stored_seq = invh.seq OR dt.terminated_seq = invh.seq)
1780
- inner join temp_products prd on prd.id = invh.product_id
1781
- where invh.created_at >= $1
1782
- ORDER BY product_name, pallet_id, seq
1783
- ) as invHistory
1784
- group by product_sku, product_id, product_name, product_description, product_type
1785
- ) invh
1786
- where 1=1
1787
- ${hasTransactionOrBalanceQuery}
1710
+ create temp table temp_inventory_pallet_summary ON COMMIT DROP as
1711
+ with params as (
1712
+ select $1::timestamp as t1, $2::timestamp as t2
1713
+ ),
1714
+ base as (
1715
+ select
1716
+ invh.*,
1717
+ prd.sku as product_sku,
1718
+ prd.name as product_name,
1719
+ prd.description as product_description,
1720
+ prd.type as product_type
1721
+ from temp_inv_history invh
1722
+ join temp_products prd on prd.id = invh.product_id
1723
+ ),
1724
+
1725
+ /* ---- Opening snapshot as-of t1 (FIX) ----
1726
+ For each pallet, take the last row <= t1; if status='STORED',
1727
+ count it toward that row's product_id opening.
1728
+ */
1729
+ opening_last_asof as (
1730
+ select *
1731
+ from (
1732
+ select h.*,
1733
+ row_number() over (partition by h.pallet_id order by h.created_at desc, h.seq desc) as rn
1734
+ from temp_inv_history h
1735
+ join params p on true
1736
+ where h.created_at <= p.t1
1737
+ ) x
1738
+ where rn = 1 and status = 'STORED'
1739
+ ),
1740
+ opening_agg as (
1741
+ select
1742
+ p.sku as product_sku,
1743
+ p.id as product_id,
1744
+ p.name as product_name,
1745
+ p.description as product_description,
1746
+ p.type as product_type,
1747
+ count(*)::int as opening_qty
1748
+ from opening_last_asof o
1749
+ join temp_products p on p.id = o.product_id
1750
+ group by p.sku, p.id, p.name, p.description, p.type
1751
+ ),
1752
+
1753
+ /* ---- Arrivals inside window: first arrival-like row per pallet (your rule) ---- */
1754
+ invIn as (
1755
+ select b.*,
1756
+ row_number() over (partition by b.pallet_id order by b.created_at, b.seq) as rn
1757
+ from base b
1758
+ join params p on true
1759
+ where b.transaction_type in ('UNLOADING','NEW','CANCEL_ORDER')
1760
+ and b.created_at >= p.t1
1761
+ ),
1762
+ invIn_first as (
1763
+ select
1764
+ pallet_id, seq, status, transaction_type,
1765
+ product_sku, product_id, product_name, product_description, product_type,
1766
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at
1767
+ from invIn
1768
+ where rn = 1
1769
+ ),
1770
+
1771
+ /* ---- TERMINATED reps (incl. ADJUSTMENT terminations), using your runs logic ---- */
1772
+ status_runs as (
1773
+ select
1774
+ endData.pallet_id,
1775
+ min(endData.created_at) as started_at,
1776
+ max(endData.created_at) as ended_at,
1777
+ min(endData.seq) as min_seq,
1778
+ max(endData.seq) as max_seq,
1779
+ endData.status
1780
+ from (
1781
+ select startData.*,
1782
+ sum(startflag) over (partition by startData.pallet_id order by startData.seq) as grp
1783
+ from (
1784
+ select s.*,
1785
+ case when lag(s.status) over (partition by s.pallet_id order by s.seq) = s.status then 0 else 1 end as startflag
1786
+ from temp_inv_history s
1787
+ ) startData
1788
+ ) endData
1789
+ group by endData.pallet_id, endData.status, endData.grp
1790
+ ),
1791
+ invOut_base as (
1792
+ select b.*, r.started_at
1793
+ from base b
1794
+ join status_runs r
1795
+ on r.pallet_id = b.pallet_id
1796
+ and r.min_seq <= b.seq
1797
+ and r.max_seq >= b.seq
1798
+ where b.status = 'TERMINATED'
1799
+ and b.transaction_type in ('TERMINATED','ADJUSTMENT')
1800
+ ),
1801
+
1802
+ /* ---- Transfer pairing (seq-gap tolerant & tolerant txn tags) ---- */
1803
+ /* STORED side in-window; pair to nearest prior TERMINATED (from raw history), different product */
1804
+ adj_stored AS (
1805
+ SELECT b.*
1806
+ FROM base b
1807
+ JOIN params p ON TRUE
1808
+ WHERE b.status = 'STORED'
1809
+ AND b.created_at BETWEEN p.t1 AND p.t2
1810
+ ),
1811
+ adj_pairs AS (
1812
+ SELECT
1813
+ s.pallet_id,
1814
+ s.seq AS stored_seq,
1815
+ t.seq AS terminated_seq,
1816
+ s.product_id AS new_product_id,
1817
+ t.product_id AS old_product_id,
1818
+ s.inventory_history_id AS stored_inventory_history_id,
1819
+ t.inventory_history_id AS terminated_inventory_history_id,
1820
+ s.created_at AS stored_at,
1821
+ t.created_at AS terminated_at,
1822
+ s.transaction_type AS stored_txn,
1823
+ t.transaction_type AS terminated_txn
1824
+ FROM adj_stored s
1825
+ JOIN LATERAL (
1826
+ SELECT t.*
1827
+ FROM temp_inv_history t -- use raw history (old product may be outside temp_products)
1828
+ WHERE t.pallet_id = s.pallet_id
1829
+ AND t.seq < s.seq
1830
+ AND t.status = 'TERMINATED'
1831
+ ORDER BY t.seq DESC
1832
+ LIMIT 1
1833
+ ) t ON TRUE
1834
+ WHERE t.product_id IS DISTINCT FROM s.product_id
1835
+ AND (s.transaction_type='ADJUSTMENT' OR t.transaction_type='ADJUSTMENT')
1836
+ ),
1837
+ adj_pairs_terminated_keys AS (
1838
+ SELECT pallet_id, terminated_seq AS seq
1839
+ FROM adj_pairs
1840
+ ),
1841
+
1842
+ /* Representative TERMINATED per (pallet, product), EXCLUDING those used by a pair (avoid double-count) */
1843
+ invOut_rep AS (
1844
+ SELECT *
1845
+ FROM (
1846
+ SELECT iob.*,
1847
+ row_number() over (partition by iob.pallet_id, iob.product_id order by iob.seq desc) as rn
1848
+ FROM invOut_base iob
1849
+ LEFT JOIN adj_pairs_terminated_keys k
1850
+ ON k.pallet_id = iob.pallet_id
1851
+ AND k.seq = iob.seq
1852
+ WHERE k.pallet_id IS NULL
1853
+ ) z
1854
+ WHERE rn = 1
1855
+ ),
1856
+
1857
+ /* Materialize both sides of the paired transfer */
1858
+ adj_pairs_stored_rows AS (
1859
+ SELECT
1860
+ b.pallet_id, b.seq, b.status, b.transaction_type,
1861
+ b.product_sku, b.product_id, b.product_name, b.product_description, b.product_type,
1862
+ b.inventory_history_id, b.packing_type, b.packing_size, b.qty, b.opening_qty, b.created_at
1863
+ FROM base b
1864
+ JOIN adj_pairs ap
1865
+ ON ap.pallet_id = b.pallet_id
1866
+ AND ap.stored_seq = b.seq
1867
+ ),
1868
+ adj_pairs_terminated_rows AS (
1869
+ SELECT
1870
+ b.pallet_id, b.seq, b.status, b.transaction_type,
1871
+ b.product_sku, b.product_id, b.product_name, b.product_description, b.product_type,
1872
+ b.inventory_history_id, b.packing_type, b.packing_size, b.qty, b.opening_qty, b.created_at
1873
+ FROM base b
1874
+ JOIN adj_pairs ap
1875
+ ON ap.pallet_id = b.pallet_id
1876
+ AND ap.terminated_seq = b.seq
1877
+ ),
1878
+
1879
+ /* ---- Unified stream for window movement ---- */
1880
+ invHistory as (
1881
+ select * from invIn_first
1882
+ union all
1883
+ select
1884
+ pallet_id, seq, status, transaction_type,
1885
+ product_sku, product_id, product_name, product_description, product_type,
1886
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at
1887
+ from invOut_rep
1888
+ union all
1889
+ select * from adj_pairs_stored_rows
1890
+ union all
1891
+ select * from adj_pairs_terminated_rows
1892
+ ),
1893
+
1894
+ /* ---- Movement aggregation only (no opening here) ---- */
1895
+ movement_agg as (
1896
+ select
1897
+ ih.product_sku,
1898
+ ih.product_id,
1899
+ ih.product_name,
1900
+ ih.product_description,
1901
+ ih.product_type,
1902
+
1903
+ sum(case when ih.created_at >= (select t1 from params)
1904
+ and ih.created_at <= (select t2 from params) then
1905
+ case when ih.transaction_type in ('UNLOADING','NEW','CANCEL_ORDER') then 1 else 0 end
1906
+ else 0 end)::int as total_in_qty,
1907
+
1908
+ sum(case when ih.created_at >= (select t1 from params)
1909
+ and ih.created_at <= (select t2 from params) then
1910
+ case when ih.status = 'TERMINATED'
1911
+ and ih.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
1912
+ else 0 end)::int as total_out_qty,
1913
+
1914
+ sum(case when ih.created_at >= (select t1 from params)
1915
+ and ih.created_at <= (select t2 from params) then
1916
+ case when ih.status = 'TERMINATED' and ih.transaction_type = 'ADJUSTMENT' then -1
1917
+ when ih.status = 'STORED' and ih.transaction_type = 'ADJUSTMENT' then 1
1918
+ else 0 end
1919
+ else 0 end)::int as adjustment_qty
1920
+
1921
+ from invHistory ih
1922
+ group by ih.product_sku, ih.product_id, ih.product_name, ih.product_description, ih.product_type
1923
+ ),
1924
+
1925
+ /* ---- Combine opening snapshot + window movement ---- */
1926
+ combined as (
1927
+ select
1928
+ coalesce(o.product_sku, m.product_sku) as product_sku,
1929
+ coalesce(o.product_id, m.product_id) as product_id,
1930
+ coalesce(o.product_name,m.product_name) as product_name,
1931
+ coalesce(o.product_description,m.product_description) as product_description,
1932
+ coalesce(o.product_type,m.product_type) as product_type,
1933
+
1934
+ coalesce(o.opening_qty, 0) as opening_qty,
1935
+ coalesce(m.total_in_qty, 0) as total_in_qty,
1936
+ coalesce(m.total_out_qty, 0) as total_out_qty,
1937
+ coalesce(m.adjustment_qty, 0) as adjustment_qty
1938
+ from opening_agg o
1939
+ full outer join movement_agg m
1940
+ on m.product_id = o.product_id
1788
1941
  )
1789
- `,
1942
+
1943
+ select
1944
+ c.*,
1945
+ (c.opening_qty + c.total_in_qty + c.total_out_qty + c.adjustment_qty) as closing_qty
1946
+ from combined c
1947
+ where 1=1
1948
+ ${hasTransactionOrBalanceQuery}
1949
+ ;
1950
+ `,
1790
1951
  [fromDate.value, toDate.value]
1791
1952
  )
1792
1953
 
@@ -1871,25 +2032,48 @@ async function filterInventoryQuery(tx: EntityManager, params: ListParam, bizpla
1871
2032
  '])'
1872
2033
  }
1873
2034
 
2035
+ /* Step 1: materialize filtered histories into a temp table and index */
2036
+ await tx.query(
2037
+ `
2038
+ create temp table temp_filtered_histories ON COMMIT DROP as (
2039
+ SELECT
2040
+ ih.pallet_id,
2041
+ ih.product_id,
2042
+ ih.packing_type,
2043
+ ih.batch_id,
2044
+ ih.id,
2045
+ ih.seq,
2046
+ ih.status,
2047
+ ih.transaction_type,
2048
+ ih.qty,
2049
+ ih.opening_qty,
2050
+ ih.created_at,
2051
+ ih.domain_id,
2052
+ ih.bizplace_id
2053
+ FROM inventory_histories ih
2054
+ WHERE ih.domain_id = $1
2055
+ AND ih.bizplace_id = $2
2056
+ AND ih.created_at <= $3
2057
+ AND (ih.qty <> 0 OR ih.opening_qty <> 0 OR ih.status = 'MISSING')
2058
+ )
2059
+ `,
2060
+ [context.state.domain.id, bizplace.id, toDate.value]
2061
+ )
2062
+
2063
+ /* Step 2: build temp_inv_history by joining inventories with indexed temp_filtered_histories and temp_products */
1874
2064
  await tx.query(
1875
2065
  `
1876
2066
  create temp table temp_inv_history ON COMMIT DROP as (
1877
- WITH filtered_histories AS (
1878
- SELECT *
1879
- FROM reduced_inventory_histories
1880
- WHERE domain_id = $1
1881
- AND bizplace_id = $2
1882
- AND created_at <= $3
1883
- )
1884
2067
  SELECT i2.pallet_id, ih.product_id::uuid, ih.packing_type, i2.packing_size, ih.batch_id,
1885
2068
  ih.id AS inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.created_at
1886
2069
  FROM inventories i2
1887
- INNER JOIN filtered_histories ih
2070
+ INNER JOIN temp_filtered_histories ih
1888
2071
  ON ih.pallet_id = i2.pallet_id
1889
2072
  AND ih.domain_id = i2.domain_id
2073
+ INNER JOIN temp_products prd
2074
+ ON prd.id = ih.product_id::uuid
1890
2075
  ${batchNoQuery}
1891
2076
  )
1892
- `,
1893
- [context.state.domain.id, bizplace.id, toDate.value]
2077
+ `
1894
2078
  )
1895
2079
  }