Skip to content

Instantly share code, notes, and snippets.

@kerdany
Last active November 6, 2023 21:29
Show Gist options
  • Save kerdany/0edfa5c1f6e17cfb9e0389c7ff83a46f to your computer and use it in GitHub Desktop.
Save kerdany/0edfa5c1f6e17cfb9e0389c7ff83a46f to your computer and use it in GitHub Desktop.
ExpiryConfigsForPutawayTesting
# Expiry configs for SKUs in stock in UAE
# This query gives all pbarcodes that are configured as expirable, which are existing in darkstore stock
# that are currently configured as expirable, and gives their configured shelf_life and inbound_norms.
SELECT
  ANY_VALUE(p.sku) AS sku,
  ip.pbarcode AS pbarcode,
  SUM(qty) as qty_total,
  ANY_VALUE(p.family_code) family_code,
  ANY_VALUE(pt.code) product_type_code,
  ANY_VALUE(iet.id_ignore_expiry_tracking IS NULL) is_expirable,
  ANY_VALUE(sl.shelf_life) shelf_life,
  ANY_VALUE(inm.min_inbound_shelf_days) min_inbound_shelf_days,
  ANY_VALUE(inm.min_inbound_shelf_perc) min_inbound_shelf_perc,
  ANY_VALUE(inm.is_exception_approved) is_exception_approved
FROM `noondwh.wms.stock` s
LEFT JOIN `noondwh.wms.location` l USING (id_location)
LEFT JOIN `noondwh.wms.warehouse` w USING (id_warehouse)
LEFT JOIN `noondwh.wms.item` i USING (id_item)
LEFT JOIN `noondwh.wms.item_lot` il ON (i.id_item_kind, i.id) = (1, il.id_item_lot)
LEFT JOIN `noondwh.wms.item` ii ON ii.id_item=il.id_item_inner
LEFT JOIN `noondwh.wms.item_pbarcode` ip ON (ii.id, ii.id_item_kind) = (ip.id_item_pbarcode, 6)
LEFT JOIN `noondwh.wms.zone` z USING (id_zone)
LEFT JOIN `noondwh.wms.area` a USING (id_area)
LEFT JOIN `noondwh.wms.country` c USING (id_country)
LEFT JOIN `noondwh.psku.pbarcode` pb ON (pb.pbarcode_canonical = ip.pbarcode AND pb.id_partner = ip.id_partner)
LEFT JOIN `noondwh.psku.psku` ps USING (psku_code)
LEFT JOIN `noondwh.instant_spanner.product` p ON (ps.zsku_child = p.sku)
LEFT JOIN `noondwh.wecat_md.product_fulltype` pf USING (id_product_fulltype)
LEFT JOIN `noondwh.wecat_md.product_type` pt USING (id_product_type)
LEFT JOIN `noondwh.scgoms_product.ignore_expiry_tracking` iet ON (iet.family_code = p.family_code AND iet.product_type_code = pt.code AND iet.is_active = 1)
LEFT JOIN `noondwh.scgoms_product.shelf_life` sl ON (sl.gtin = ip.pbarcode AND sl.is_active = 1)
LEFT JOIN `noondwh.scgoms_product.inbound_norms_minutes` inm ON (inm.gtin = ip.pbarcode AND inm.is_active = 1)
WHERE TRUE
AND a.is_virtual = 0
AND w.is_darkstore = 1
AND REGEXP_CONTAINS(w.code, '^[A-Z]{3}DS\\d{2,3}$')
AND c.code = 'AE'
AND s.qty > 0
AND iet.id_ignore_expiry_tracking IS NULL -- Comment out to see all skus in stock
GROUP BY ip.pbarcode;
# Expiry configs for SKUs in an incoming TXW
SELECT
  pbarcode,
  id_partner,
  ANY_VALUE(sku) zsku,
  ANY_VALUE(family_code) family_code,
  ANY_VALUE(product_type_code) product_type_code,
  ANY_VALUE(is_expirable) is_expirable,
  ANY_VALUE(shelf_life) shelf_life,
  ANY_VALUE(min_inbound_shelf_days) min_inbound_shelf_days,
  ANY_VALUE(min_inbound_shelf_perc) min_inbound_shelf_perc,
  ANY_VALUE(is_exception_approved) is_exception_approved
FROM (
  SELECT
    e.doc_nr, d.id_doc, dt.code doc_type, ds.code doc_state, ls.code line_state, ip.pbarcode pbarcode, ip.id_partner, p.sku, p.family_code, pt.code product_type_code,
    iet.id_ignore_expiry_tracking IS NULL AS is_expirable,
    sl.shelf_life,
    inm.min_inbound_shelf_days,
    inm.min_inbound_shelf_perc,
    inm.is_exception_approved
  FROM `noondwh.wms.exdoc` e
  JOIN `noondwh.wms.doc` d USING (id_exdoc)
  JOIN `noondwh.wms.doc_type` dt USING (id_doc_type)
  JOIN `noondwh.wms.state` ds ON (ds.id_state = d.id_state)
  JOIN `noondwh.wms.doc_line` dl USING (id_doc)
  JOIN `noondwh.wms.line_state` ls USING (id_line_state)
  JOIN `noondwh.wms.item` i ON (dl.id_item_res = i.id_item)
  JOIN `noondwh.wms.item_lot` il ON (i.id_item_kind, i.id) = (1, il.id_item_lot)
  JOIN `noondwh.wms.item` ii ON (ii.id_item = il.id_item_inner)
  JOIN `noondwh.wms.item_pbarcode` ip ON (ii.id_item_kind, ii.id) = (6, ip.id_item_pbarcode)
  JOIN `noondwh.psku.pbarcode` pb ON (pb.pbarcode_canonical = ip.pbarcode AND pb.id_partner = ip.id_partner)
  JOIN `noondwh.psku.psku` ps USING (psku_code)
  JOIN `noondwh.instant_spanner.product` p ON (ps.zsku_child = p.sku)
  JOIN `noondwh.wecat_md.product_fulltype` pf USING (id_product_fulltype)
  JOIN `noondwh.wecat_md.product_type` pt USING (id_product_type)
  LEFT JOIN `noondwh.scgoms_product.ignore_expiry_tracking` iet ON (iet.family_code = p.family_code AND iet.product_type_code = pt.code AND iet.is_active = 1)
  LEFT JOIN `noondwh.scgoms_product.shelf_life` sl ON (sl.gtin = ip.pbarcode AND sl.is_active = 1)
  LEFT JOIN `noondwh.scgoms_product.inbound_norms_minutes` inm ON (inm.gtin = ip.pbarcode AND inm.is_active = 1)
  WHERE TRUE
  AND e.doc_nr IN ('W00496873T')
  AND dt.code = 'pack'
  -- AND ls.code NOT IN ('missing')
) GROUP BY pbarcode, id_partner
ORDER BY family_code, product_type_code, is_expirable;
# Expiry configs for SKUs in an incoming ASN
SELECT
  pbarcode,
  id_partner,
  ANY_VALUE(sku) zsku,
  ANY_VALUE(family_code) family_code,
  ANY_VALUE(product_type_code) product_type_code,
  ANY_VALUE(is_expirable) is_expirable,
  ANY_VALUE(shelf_life) shelf_life,
  ANY_VALUE(min_inbound_shelf_days) min_inbound_shelf_days,
  ANY_VALUE(min_inbound_shelf_perc) min_inbound_shelf_perc,
  ANY_VALUE(is_exception_approved) is_exception_approved
FROM (
  SELECT
    w.partner_code warehouse_code,
    a.asn_nr,
    p.sku,
    al.psku_code,
    pb.id_partner id_partner,
    pb.pbarcode_canonical pbarcode,
    p.family_code,
    pt.code product_type_code,
    iet.id_ignore_expiry_tracking IS NULL AS is_expirable,
    sl.shelf_life,
    inm.min_inbound_shelf_days,
    inm.min_inbound_shelf_perc,
    inm.is_exception_approved
  FROM `noondwh.scinbound_inbound.asn` a
  JOIN `noondwh.scinbound_inbound.asn_line` al USING (id_asn)
  JOIN `noondwh.scinbound_inbound.warehouse` w USING (id_warehouse)
  JOIN `noondwh.psku.pbarcode` pb ON (pb.psku_code = al.psku_code AND is_active = 1) -- Only active pbarcodes that can be inbounded
  JOIN `noondwh.psku.psku` ps ON (ps.psku_code = al.psku_code)
  JOIN `noondwh.instant_spanner.product` p ON (ps.zsku_child = p.sku)
  JOIN `noondwh.wecat_md.product_fulltype` pf USING (id_product_fulltype)
  JOIN `noondwh.wecat_md.product_type` pt USING (id_product_type)
  LEFT JOIN `noondwh.scgoms_product.ignore_expiry_tracking` iet ON (iet.family_code = p.family_code AND iet.product_type_code = pt.code AND iet.is_active = 1)
  LEFT JOIN `noondwh.scgoms_product.shelf_life` sl ON (sl.gtin = pb.pbarcode_canonical AND sl.is_active = 1)
  LEFT JOIN `noondwh.scgoms_product.inbound_norms_minutes` inm ON (inm.gtin = pb.pbarcode_canonical AND inm.is_active = 1)
  WHERE TRUE
  AND a.asn_nr IN ('A00596114PN')
) GROUP BY pbarcode, id_partner
ORDER BY family_code, product_type_code, is_expirable;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment