Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

-- Vendor warehouses so each Gurugram physical warehouse can receive internal movements from its Delhi counterpart only:
--   supplier 452 (7720 DL-HR)    -> 13368 HR-NSSPL/GGN
--   supplier 325 (7573 Delhi)    -> 13370 HR-NSSPL/DL
--   supplier 457 (9514 DL-Noida) -> 13372 HR-NSSPL/UPW
-- GRN books units into selectGoodSupplierWarehouse(supplier, physical) - exactly one OURS/GOOD row per pair.
-- Rows mirror WarehouseServiceImpl.createVendorWarehouse (edit-supplier screen), as for supplier 457 -> 9470/10521 on
-- 2026-09-15: OURS/GOOD, OURS/BAD, THIRD_PARTY/GOOD; displayName = destination seller label; location/state/pin from
-- the destination address master (#33); logisticsLocation from the physical row; gstin NULL.

START TRANSACTION;

INSERT INTO inventory.warehouse (displayName, location, status, addedOn, lastCheckedOn, tinNumber, gstin, pincode,
  logisticsLocation, vendor_id, billingType, inventoryType, warehouseType, shippingWarehouseId, billingWarehouseId,
  transferDelayInHours, isAvailabilityMonitored, state_id, source)
SELECT se.label, a.address, 3, NOW(), NOW(), NULL, NULL, a.pin, pw.logisticsLocation, p.vendor, 0, t.inv, t.wtype,
       pw.id, pw.id, 0, 0, a.state_id, 0
  FROM (SELECT 452 vendor, 13368 wh UNION ALL SELECT 325, 13370 UNION ALL SELECT 457, 13372) p
  JOIN (SELECT 1 ord, 'GOOD' inv, 'OURS' wtype UNION ALL SELECT 2, 'BAD', 'OURS' UNION ALL SELECT 3, 'GOOD', 'THIRD_PARTY') t
  JOIN inventory.warehouse pw ON pw.id = p.wh
  JOIN transaction.sellerwarehouse sw ON sw.warehouse_id = p.wh AND sw.orderType = 0
  JOIN transaction.seller se ON se.id = sw.seller_id
  JOIN transaction.warehouseaddressmapping m ON m.warehouse_id = p.wh
  JOIN transaction.warehouseaddressmaster a ON a.id = m.address_id
 WHERE NOT EXISTS (SELECT 1 FROM inventory.warehouse x WHERE x.vendor_id = p.vendor AND x.billingWarehouseId = p.wh
                     AND x.inventoryType = 'GOOD' AND x.warehouseType = 'OURS')
 ORDER BY p.wh, t.ord;

COMMIT;

-- verify: exactly one row of each type per pair
SELECT w.vendor_id, w.billingWarehouseId, w.id, w.warehouseType, w.inventoryType, w.displayName, w.state_id,
       w.pincode, w.logisticsLocation, LEFT(w.location, 40) location
  FROM inventory.warehouse w
 WHERE (w.vendor_id, w.billingWarehouseId) IN ((452, 13368), (325, 13370), (457, 13372))
 ORDER BY w.billingWarehouseId, w.id;