| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461 |
- -- S4 global UAT seed for tenant 797403760988229.
- -- Idempotent: uses fixed UAT document numbers and NOT EXISTS guards.
- SET @tenant_id := 797403760988229;
- -- 1) Existing SH-UAT shipments were imported without tenant_id.
- UPDATE scm_shd
- SET tenant_id = @tenant_id,
- sh_purchase_name = COALESCE(NULLIF(sh_purchase_name, ''), sh_purchase_num),
- state = 1,
- shzt = COALESCE(NULLIF(shzt, ''), '待收'),
- tjrxm = COALESCE(NULLIF(tjrxm, ''), 'UAT数据导入'),
- tjrq = COALESCE(NULLIF(tjrq, ''), '2026-06-04')
- WHERE shddh LIKE 'SH-UAT-%'
- AND (tenant_id IS NULL OR tenant_id <> @tenant_id);
- UPDATE scm_shdzb
- SET tenant_id = @tenant_id
- WHERE (
- po_bill IN ('PO-UAT-20260604-01', 'PO-UAT-20260604-02', 'PO-UAT-20260604-03', 'PO-UAT-20260604-04', 'PO-UAT-20260604-05')
- OR po_billno IN ('PO-UAT-20260604-01', 'PO-UAT-20260604-02', 'PO-UAT-20260604-03', 'PO-UAT-20260604-04', 'PO-UAT-20260604-05')
- )
- AND (tenant_id IS NULL OR tenant_id <> @tenant_id);
- -- 2) Source receipt documents (rc) for return creation and traceability.
- INSERT INTO PurOrdRctMaster
- (
- RecID, Domain, RctType, Receiver, RctDate, OrdNbr, Site, BusinessID,
- CreateUser, UpdateUser, CreateTime, UpdateTime,
- IsActive, IsConfirm, Typed, Department, Supp, Print, IsChanged,
- TaxClass, TaxIn, Remark, Curr, IsExport, Terms, IsPlan,
- TermsofTrade, IsBackwash, tenant_id
- )
- SELECT
- 60604000 + p.idx AS RecID,
- COALESCE(m.Domain, '100') AS Domain,
- 'rc' AS RctType,
- p.rc_receiver AS Receiver,
- DATE_ADD('2026-06-04', INTERVAL p.idx - 1 DAY) AS RctDate,
- p.po AS OrdNbr,
- COALESCE(m.Site, 'AIDOP') AS Site,
- 0 AS BusinessID,
- 'S1S4_UAT_20260604_RQ_V1' AS CreateUser,
- 'S1S4_UAT_20260604_RQ_V1' AS UpdateUser,
- NOW() AS CreateTime,
- NOW() AS UpdateTime,
- 1 AS IsActive,
- 0 AS IsConfirm,
- 'C' AS Typed,
- COALESCE(m.Department, 'D-PROD') AS Department,
- COALESCE(m.Supp, 'VEN00060') AS Supp,
- 0 AS Print,
- 0 AS IsChanged,
- COALESCE(m.TaxClass, '') AS TaxClass,
- COALESCE(m.TaxIn, 0) AS TaxIn,
- CONCAT('S4 global UAT receipt for ', p.po) AS Remark,
- COALESCE(m.Curr, 'CNY') AS Curr,
- 0 AS IsExport,
- COALESCE(m.CreditTerms, '') AS Terms,
- 0 AS IsPlan,
- 'S1S4_UAT' AS TermsofTrade,
- 0 AS IsBackwash,
- @tenant_id AS tenant_id
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'RC-UAT-20260604-01' rc_receiver UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'RC-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'RC-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'RC-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'RC-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- WHERE NOT EXISTS (
- SELECT 1 FROM PurOrdRctMaster x
- WHERE x.RctType = 'rc' AND x.Receiver = p.rc_receiver AND x.tenant_id = @tenant_id
- );
- -- 3) Purchase return documents (pt) visible in the S4 return page.
- INSERT INTO PurOrdRctMaster
- (
- RecID, Domain, RctType, Receiver, RctDate, OrdNbr, Site, BusinessID,
- CreateUser, UpdateUser, CreateTime, UpdateTime,
- IsActive, IsConfirm, Typed, Department, Supp, Print, IsChanged,
- TaxClass, TaxIn, Remark, Curr, IsExport, Terms, IsPlan,
- TermsofTrade, IsBackwash, tenant_id
- )
- SELECT
- 60604050 + p.idx AS RecID,
- COALESCE(m.Domain, '100') AS Domain,
- 'pt' AS RctType,
- p.pt_receiver AS Receiver,
- DATE_ADD('2026-06-09', INTERVAL p.idx - 1 DAY) AS RctDate,
- p.po AS OrdNbr,
- COALESCE(m.Site, 'AIDOP') AS Site,
- 0 AS BusinessID,
- 'S1S4_UAT_20260604_RQ_V1' AS CreateUser,
- 'S1S4_UAT_20260604_RQ_V1' AS UpdateUser,
- NOW() AS CreateTime,
- NOW() AS UpdateTime,
- 1 AS IsActive,
- 0 AS IsConfirm,
- 'C' AS Typed,
- COALESCE(m.Department, 'D-PROD') AS Department,
- COALESCE(m.Supp, 'VEN00060') AS Supp,
- 0 AS Print,
- 0 AS IsChanged,
- COALESCE(m.TaxClass, '') AS TaxClass,
- COALESCE(m.TaxIn, 0) AS TaxIn,
- CONCAT('S4 global UAT purchase return for ', p.po) AS Remark,
- COALESCE(m.Curr, 'CNY') AS Curr,
- 0 AS IsExport,
- COALESCE(m.CreditTerms, '') AS Terms,
- 1 AS IsPlan,
- 'S1S4_UAT' AS TermsofTrade,
- 0 AS IsBackwash,
- @tenant_id AS tenant_id
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'PT-UAT-20260604-01' pt_receiver UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'PT-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'PT-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'PT-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'PT-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- WHERE NOT EXISTS (
- SELECT 1 FROM PurOrdRctMaster x
- WHERE x.RctType = 'pt' AND x.Receiver = p.pt_receiver AND x.tenant_id = @tenant_id
- );
- -- 4) Receipt details.
- INSERT INTO PurOrdRctDetail
- (
- RecID, Domain, RctType, Receiver, Line, ItemNum, Dimension1, Dimension2,
- OrdNbr, RctDate, POCost, UM, QtyOrded, RctQty, Site, Supp, Location,
- QtyReceived, Potype, BusinessID, CreateUser, UpdateUser, CreateTime, UpdateTime,
- IsActive, IsConfirm, Typed, IsChanged, TaxClass, TaxIn, UMConversion,
- Curr, IsClosed, OrdLine, IsRounding, BlanketLine, ProjectLine,
- RctLine, QtyReturn, PurOrdRctRecID, QcQty, RctNbr, Remark, tenant_id
- )
- SELECT
- 606041000 + p.idx * 10 + d.Line AS RecID,
- COALESCE(m.Domain, '100') AS Domain,
- 'rc' AS RctType,
- p.rc_receiver AS Receiver,
- d.Line AS Line,
- d.ItemNum,
- COALESCE(d.Dimension1, '') AS Dimension1,
- COALESCE(d.Dimension2, '') AS Dimension2,
- p.po AS OrdNbr,
- DATE_ADD('2026-06-04', INTERVAL p.idx - 1 DAY) AS RctDate,
- COALESCE(d.PurCost, 0) AS POCost,
- COALESCE(d.UM, 'EA') AS UM,
- COALESCE(d.QtyOrded, 0) AS QtyOrded,
- ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5) AS RctQty,
- COALESCE(m.Site, 'AIDOP') AS Site,
- COALESCE(m.Supp, 'VEN00060') AS Supp,
- COALESCE(d.Location, 'QA') AS Location,
- ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5) AS QtyReceived,
- COALESCE(d.Potype, 'PT') AS Potype,
- 0 AS BusinessID,
- 'S1S4_UAT_20260604_RQ_V1' AS CreateUser,
- 'S1S4_UAT_20260604_RQ_V1' AS UpdateUser,
- NOW() AS CreateTime,
- NOW() AS UpdateTime,
- 1 AS IsActive,
- 0 AS IsConfirm,
- 'C' AS Typed,
- 0 AS IsChanged,
- COALESCE(m.TaxClass, '') AS TaxClass,
- COALESCE(m.TaxIn, 0) AS TaxIn,
- 1 AS UMConversion,
- COALESCE(m.Curr, 'CNY') AS Curr,
- 0 AS IsClosed,
- d.Line AS OrdLine,
- 0 AS IsRounding,
- 0 AS BlanketLine,
- 0 AS ProjectLine,
- d.Line AS RctLine,
- 0 AS QtyReturn,
- 60604000 + p.idx AS PurOrdRctRecID,
- ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5) AS QcQty,
- p.rc_receiver AS RctNbr,
- CONCAT('S4 global UAT receipt detail for ', p.po) AS Remark,
- @tenant_id AS tenant_id
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'RC-UAT-20260604-01' rc_receiver UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'RC-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'RC-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'RC-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'RC-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- JOIN (
- SELECT PurOrd, Line, MIN(ItemNum) ItemNum, MIN(Dimension1) Dimension1, MIN(Dimension2) Dimension2,
- MAX(QtyOrded) QtyOrded, MIN(UM) UM, MIN(Location) Location, MAX(PurCost) PurCost, MIN(Potype) Potype
- FROM PurOrdDetail
- WHERE tenant_id = @tenant_id AND PurOrd LIKE 'PO-UAT-20260604-%' AND Line IN (1, 2)
- GROUP BY PurOrd, Line
- ) d ON d.PurOrd = p.po
- WHERE NOT EXISTS (
- SELECT 1 FROM PurOrdRctDetail x
- WHERE x.RctType = 'rc' AND x.Receiver = p.rc_receiver AND x.Line = d.Line AND x.tenant_id = @tenant_id
- );
- -- 5) Return details: line 1 quality issue, line 2 quantity discrepancy.
- INSERT INTO PurOrdRctDetail
- (
- RecID, Domain, RctType, Receiver, Line, ItemNum, Dimension1, Dimension2,
- OrdNbr, RctDate, POCost, UM, QtyOrded, RctQty, Site, Supp, Location,
- QtyReceived, Potype, BusinessID, CreateUser, UpdateUser, CreateTime, UpdateTime,
- IsActive, IsConfirm, Typed, QC, QCDescr, IsChanged, TaxClass, TaxIn, UMConversion,
- Curr, IsClosed, OrdLine, IsRounding, BlanketLine, ProjectLine,
- RctNbr, RctLine, QtyReturn, PurOrdRctRecID, QcQty, Remark, tenant_id
- )
- SELECT
- 606042000 + p.idx * 10 + d.Line AS RecID,
- COALESCE(m.Domain, '100') AS Domain,
- 'pt' AS RctType,
- p.pt_receiver AS Receiver,
- d.Line AS Line,
- d.ItemNum,
- COALESCE(d.Dimension1, '') AS Dimension1,
- COALESCE(d.Dimension2, '') AS Dimension2,
- p.po AS OrdNbr,
- DATE_ADD('2026-06-09', INTERVAL p.idx - 1 DAY) AS RctDate,
- COALESCE(d.PurCost, 0) AS POCost,
- COALESCE(d.UM, 'EA') AS UM,
- COALESCE(d.QtyOrded, 0) AS QtyOrded,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * CASE WHEN d.Line = 1 THEN 0.03 ELSE 0.02 END, 5)) AS RctQty,
- COALESCE(m.Site, 'AIDOP') AS Site,
- COALESCE(m.Supp, 'VEN00060') AS Supp,
- COALESCE(d.Location, 'QA') AS Location,
- 0 AS QtyReceived,
- COALESCE(d.Potype, 'PT') AS Potype,
- 0 AS BusinessID,
- 'S1S4_UAT_20260604_RQ_V1' AS CreateUser,
- 'S1S4_UAT_20260604_RQ_V1' AS UpdateUser,
- NOW() AS CreateTime,
- NOW() AS UpdateTime,
- 1 AS IsActive,
- 0 AS IsConfirm,
- 'C' AS Typed,
- CASE WHEN d.Line = 1 THEN 'QUALITY' ELSE 'QTY' END AS QC,
- CASE WHEN d.Line = 1 THEN 'Quality nonconformance' ELSE 'Quantity discrepancy' END AS QCDescr,
- 0 AS IsChanged,
- COALESCE(m.TaxClass, '') AS TaxClass,
- COALESCE(m.TaxIn, 0) AS TaxIn,
- 1 AS UMConversion,
- COALESCE(m.Curr, 'CNY') AS Curr,
- 0 AS IsClosed,
- d.Line AS OrdLine,
- 0 AS IsRounding,
- 0 AS BlanketLine,
- 0 AS ProjectLine,
- p.rc_receiver AS RctNbr,
- d.Line AS RctLine,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * CASE WHEN d.Line = 1 THEN 0.03 ELSE 0.02 END, 5)) AS QtyReturn,
- 60604050 + p.idx AS PurOrdRctRecID,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * CASE WHEN d.Line = 1 THEN 0.03 ELSE 0.02 END, 5)) AS QcQty,
- CONCAT(CASE WHEN d.Line = 1 THEN 'Quality nonconformance for ' ELSE 'Quantity discrepancy for ' END, p.po) AS Remark,
- @tenant_id AS tenant_id
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'RC-UAT-20260604-01' rc_receiver, 'PT-UAT-20260604-01' pt_receiver UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'RC-UAT-20260604-02', 'PT-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'RC-UAT-20260604-03', 'PT-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'RC-UAT-20260604-04', 'PT-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'RC-UAT-20260604-05', 'PT-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- JOIN (
- SELECT PurOrd, Line, MIN(ItemNum) ItemNum, MIN(Dimension1) Dimension1, MIN(Dimension2) Dimension2,
- MAX(QtyOrded) QtyOrded, MIN(UM) UM, MIN(Location) Location, MAX(PurCost) PurCost, MIN(Potype) Potype
- FROM PurOrdDetail
- WHERE tenant_id = @tenant_id AND PurOrd LIKE 'PO-UAT-20260604-%' AND Line IN (1, 2)
- GROUP BY PurOrd, Line
- ) d ON d.PurOrd = p.po
- WHERE NOT EXISTS (
- SELECT 1 FROM PurOrdRctDetail x
- WHERE x.RctType = 'pt' AND x.Receiver = p.pt_receiver AND x.Line = d.Line AND x.tenant_id = @tenant_id
- );
- -- 6) IQC return samples.
- INSERT INTO qms_qcp_inspecapplyn
- (
- id, FBILLNO, FBILLSTATUS, FCREATETIME, FMODIFYTIME, FAUDITDATE,
- FAPPLYUSER, FAPPLYTIME, FBILLTYPE, FCOMMENT, FINTERFACEID
- )
- SELECT
- 910606040100 + p.idx AS id,
- p.iqc_bill AS FBILLNO,
- 'C' AS FBILLSTATUS,
- NOW() AS FCREATETIME,
- NOW() AS FMODIFYTIME,
- NOW() AS FAUDITDATE,
- 'S1S4_UAT_20260604_RQ_V1' AS FAPPLYUSER,
- DATE_ADD('2026-06-09 09:00:00', INTERVAL p.idx - 1 DAY) AS FAPPLYTIME,
- 'IQC_RETURN' AS FBILLTYPE,
- CONCAT('S4 global UAT IQC return for ', p.po) AS FCOMMENT,
- 'S1S4_UAT_20260604_RQ_V1' AS FINTERFACEID
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'IQC-UAT-20260604-01' iqc_bill UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'IQC-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'IQC-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'IQC-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'IQC-UAT-20260604-05'
- ) p
- WHERE NOT EXISTS (SELECT 1 FROM qms_qcp_inspecapplyn x WHERE x.FBILLNO = p.iqc_bill);
- INSERT INTO qms_qcp_insappnentry
- (
- id, glid, FSEQ, FUNIT, FLOTNUMBER, FSRCORDERTYPE, FSRCORDERNUM,
- FAPPLYQTY, FJOINQTY, FINSPECTSTATUS, FBASEQTY, FMATERIALCFG,
- wlmc, ggxh, FSCSYSTEM, FORDERNUM, FSUPPLIER, FORDERTYPE,
- FRESULTSTATUS, shdh, gysbm, gysmc, wllb
- )
- SELECT
- 910606040200 + p.idx AS id,
- 910606040100 + p.idx AS glid,
- 1 AS FSEQ,
- COALESCE(d.UM, 'EA') AS FUNIT,
- CONCAT('LOT-UAT-', LPAD(p.idx, 2, '0')) AS FLOTNUMBER,
- 'PO' AS FSRCORDERTYPE,
- p.po AS FSRCORDERNUM,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS FAPPLYQTY,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS FJOINQTY,
- '退货' AS FINSPECTSTATUS,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS FBASEQTY,
- d.ItemNum AS FMATERIALCFG,
- COALESCE(i.Descr, d.ItemNum) AS wlmc,
- COALESCE(i.Descr1, '') AS ggxh,
- 'AIDOP' AS FSCSYSTEM,
- COALESCE(m.SalesOrd, '') AS FORDERNUM,
- COALESCE(m.Supp, 'VEN00060') AS FSUPPLIER,
- 'PO' AS FORDERTYPE,
- 'NG' AS FRESULTSTATUS,
- p.shddh AS shdh,
- COALESCE(m.Supp, 'VEN00060') AS gysbm,
- COALESCE(NULLIF(ds.supplier, ''), COALESCE(m.Supp, 'VEN00060')) AS gysmc,
- 'UAT' AS wllb
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'SH-UAT-20260604-01' shddh UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'SH-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'SH-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'SH-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'SH-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- JOIN (
- SELECT PurOrd, MIN(ItemNum) ItemNum, MAX(QtyOrded) QtyOrded, MIN(UM) UM
- FROM PurOrdDetail
- WHERE tenant_id = @tenant_id AND PurOrd LIKE 'PO-UAT-20260604-%' AND Line = 1
- GROUP BY PurOrd
- ) d ON d.PurOrd = p.po
- LEFT JOIN (
- SELECT ItemNum, MIN(Descr) AS Descr, MIN(Descr1) AS Descr1
- FROM ItemMaster
- GROUP BY ItemNum
- ) i ON i.ItemNum = d.ItemNum
- LEFT JOIN srm_polist_ds ds ON ds.ponumber = p.po AND ds.poline = 1 AND ds.tenant_id = @tenant_id
- WHERE NOT EXISTS (
- SELECT 1 FROM qms_qcp_insappnentry x
- WHERE x.FSRCORDERNUM = p.po AND x.shdh = p.shddh
- );
- INSERT INTO qms_qcp_inspbill
- (
- id, lydjbh, FBILLNO, FBILLSTATUS, FCREATETIME, FMODIFYTIME, FAUDITDATE,
- FINSPESTARTDATE, FINSPEENDDATE, FINSPECTORID, FBILLTYPE, FCOMMENT,
- FMATERIALCFG, wlmc, ggxh, FRINSQTY, dhsl, lysl, bhgsl,
- clfs, pch, gysmc, thyy, UnqualifiedDescription, SampleQty, TestQty
- )
- SELECT
- 910606040300 + p.idx AS id,
- p.iqc_bill AS lydjbh,
- CONCAT('INSP-UAT-20260604-', LPAD(p.idx, 2, '0')) AS FBILLNO,
- 'C' AS FBILLSTATUS,
- NOW() AS FCREATETIME,
- NOW() AS FMODIFYTIME,
- NOW() AS FAUDITDATE,
- DATE_ADD('2026-06-09 10:00:00', INTERVAL p.idx - 1 DAY) AS FINSPESTARTDATE,
- DATE_ADD('2026-06-09 11:00:00', INTERVAL p.idx - 1 DAY) AS FINSPEENDDATE,
- 'AIDOP-UAT' AS FINSPECTORID,
- 'IQC_RETURN' AS FBILLTYPE,
- CONCAT('S4 global UAT IQC result for ', p.po) AS FCOMMENT,
- d.ItemNum AS FMATERIALCFG,
- COALESCE(i.Descr, d.ItemNum) AS wlmc,
- COALESCE(i.Descr1, '') AS ggxh,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS FRINSQTY,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS dhsl,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS lysl,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * CASE WHEN p.idx <= 3 THEN 0.03 ELSE 0.02 END, 5)) AS bhgsl,
- 3 AS clfs,
- CONCAT('LOT-UAT-', LPAD(p.idx, 2, '0')) AS pch,
- COALESCE(NULLIF(ds.supplier, ''), COALESCE(m.Supp, 'VEN00060')) AS gysmc,
- CASE WHEN p.idx <= 3 THEN 'Quality nonconformance' ELSE 'Quantity discrepancy' END AS thyy,
- CASE WHEN p.idx <= 3 THEN 'Quality nonconformance' ELSE 'Quantity discrepancy' END AS UnqualifiedDescription,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.10, 5)) AS SampleQty,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.90, 5)) AS TestQty
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po, 'IQC-UAT-20260604-01' iqc_bill UNION ALL
- SELECT 2, 'PO-UAT-20260604-02', 'IQC-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03', 'IQC-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04', 'IQC-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05', 'IQC-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- JOIN (
- SELECT PurOrd, MIN(ItemNum) ItemNum, MAX(QtyOrded) QtyOrded
- FROM PurOrdDetail
- WHERE tenant_id = @tenant_id AND PurOrd LIKE 'PO-UAT-20260604-%' AND Line = 1
- GROUP BY PurOrd
- ) d ON d.PurOrd = p.po
- LEFT JOIN (
- SELECT ItemNum, MIN(Descr) AS Descr, MIN(Descr1) AS Descr1
- FROM ItemMaster
- GROUP BY ItemNum
- ) i ON i.ItemNum = d.ItemNum
- LEFT JOIN srm_polist_ds ds ON ds.ponumber = p.po AND ds.poline = 1 AND ds.tenant_id = @tenant_id
- WHERE NOT EXISTS (SELECT 1 FROM qms_qcp_inspbill x WHERE x.lydjbh = p.iqc_bill);
- -- 7) Supplier shortage kanban samples.
- INSERT INTO WorkOrdDetailTotalKB
- (
- RowNum, Descr, Descr1, ItemNum, supplier_number, supplier_name,
- D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14
- )
- SELECT
- CAST(2026060400 + p.idx AS CHAR) AS RowNum,
- COALESCE(i.Descr, d.ItemNum) AS Descr,
- COALESCE(i.Descr1, CONCAT('WO ', COALESCE(m.WorkOrd, ''))) AS Descr1,
- d.ItemNum,
- COALESCE(m.Supp, 'VEN00060') AS supplier_number,
- COALESCE(NULLIF(ds.supplier, ''), COALESCE(m.Supp, 'VEN00060')) AS supplier_name,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.10, 5)) AS D0,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.08, 5)) AS D1,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.06, 5)) AS D2,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.04, 5)) AS D3,
- GREATEST(1, ROUND(COALESCE(d.QtyOrded, 0) * 0.02, 5)) AS D4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- FROM (
- SELECT 1 idx, 'PO-UAT-20260604-01' po UNION ALL
- SELECT 2, 'PO-UAT-20260604-02' UNION ALL
- SELECT 3, 'PO-UAT-20260604-03' UNION ALL
- SELECT 4, 'PO-UAT-20260604-04' UNION ALL
- SELECT 5, 'PO-UAT-20260604-05'
- ) p
- LEFT JOIN PurOrdMaster m ON m.PurOrd = p.po AND m.tenant_id = @tenant_id
- JOIN (
- SELECT PurOrd, MIN(ItemNum) ItemNum, MAX(QtyOrded) QtyOrded
- FROM PurOrdDetail
- WHERE tenant_id = @tenant_id AND PurOrd LIKE 'PO-UAT-20260604-%' AND Line = 1
- GROUP BY PurOrd
- ) d ON d.PurOrd = p.po
- LEFT JOIN (
- SELECT ItemNum, MIN(Descr) AS Descr, MIN(Descr1) AS Descr1
- FROM ItemMaster
- GROUP BY ItemNum
- ) i ON i.ItemNum = d.ItemNum
- LEFT JOIN srm_polist_ds ds ON ds.ponumber = p.po AND ds.poline = 1 AND ds.tenant_id = @tenant_id
- WHERE NOT EXISTS (
- SELECT 1 FROM WorkOrdDetailTotalKB x WHERE x.RowNum = CAST(2026060400 + p.idx AS CHAR)
- );
|