Wiki

New Case Case Status Kiln
Log In

Wiki

 
Renumber Scripts»TAMS Renumber
  • RSS Feed

Last modified on 5/30/2014 10:27 AM by User.

Tags:

TAMS Renumber

Just find and replace the renumber_id (?) with the actual renumber_id in dbo_renumbers table 

-- 1. Copy intro date

UPDATE DBO_CLASSIFICATIONDATA.part_master pmn

SET intro_date = (SELECT pm.intro_date

                    FROM DBO_CLASSIFICATIONDATA.part_master pm,

                         DBO_CLASSIFICATIONDATA.renumber_part rp

                    WHERE rp.OLD_HQ_ABBR = pm.HQ_ABBR

                    AND rp.OLD_PART_NUMBER = pm.PART_NUMBER

                    AND rp.RENUMBER_ID = ?

                    AND rp.NEW_PART_NUMBER = pmn.PART_NUMBER

                    AND rp.NEW_HQ_ABBR = pmn.HQ_ABBR)                               

WHERE part_number IN (SELECT rp.NEW_PART_NUMBER FROM DBO_CLASSIFICATIONDATA.renumber_part rp

                              WHERE rp.RENUMBER_ID = AND rp.NEW_HQ_ABBR = pmn.HQ_ABBR);

  

-- 2a. Copy classes

UPDATE DBO_CLASSIFICATIONDATA.class_master cmn

SET (curr, prev, hist) = (SELECT MAX(cm.CURR), MAX(cm.PREV), MAX(cm.HIST)

                  FROM DBO_CLASSIFICATIONDATA.class_master cm,

                  DBO_CLASSIFICATIONDATA.part_master pm,

                  DBO_CLASSIFICATIONDATA.part_master pmn,

                  DBO_CLASSIFICATIONDATA.renumber_part rp

                  WHERE rp.OLD_HQ_ABBR = pm.HQ_ABBR

                  AND rp.OLD_PART_NUMBER = pm.PART_NUMBER

                  AND pm.part_Id = cm.PART_ID

                  AND cm.DC_NUMBER = cmn.DC_NUMBER

                  AND rp.RENUMBER_ID = ?

                  AND rp.NEW_PART_NUMBER = pmn.PART_NUMBER

                  AND rp.NEW_HQ_ABBR = pmn.HQ_ABBR

                  AND pmn.part_id = cmn.part_id)                               

WHERE part_id IN (SELECT pmn.part_id

                  FROM DBO_CLASSIFICATIONDATA.renumber_part rp,

                  DBO_CLASSIFICATIONDATA.part_master pm,

                  DBO_CLASSIFICATIONDATA.part_master pmn,

                  DBO_CLASSIFICATIONDATA.class_master cm,

                  DBO_CLASSIFICATIONDATA.class c,

                  DBO_CLASSIFICATIONDATA.class cn 

                  WHERE rp.RENUMBER_ID = ?

                  AND rp.NEW_HQ_ABBR = pmn.HQ_ABBR

                  AND rp.NEW_PART_NUMBER = pmn.PART_NUMBER

                  AND c.class = cm.curr

                  AND cn.class = cmn.curr

                  AND rp.OLD_HQ_ABBR = pm.HQ_ABBR

                  AND rp.OLD_PART_NUMBER = pm.PART_NUMBER

                  AND cm.part_id = pm.PART_ID

                  AND c.class_order < cn.class_order

                  AND cm.DC_NUMBER = cmn.DC_NUMBER

                  AND cm.curr NOT IN ('S','O','NL')

AND cm.dc_number IN (SELECT dc_number FROM DBO_CLASSIFICATIONDATA.renumber_dc WHERE renumber_id = ?);

 

--2b. Optional class changes

UPDATE CLASS_MASTER

SET curr = REPLACE(curr,'X','')

where PART_ID IN (

    SELECT part_id FROM part_master pm, RENUMBER_PART rp

    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)

AND curr != REPLACE(curr,'X','');

 

UPDATE CLASS_MASTER

SET prev = REPLACE(prev,'X','')

where PART_ID IN (

    SELECT part_id FROM part_master pm, RENUMBER_PART rp

    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)

AND prev != REPLACE(prev,'X','');

 

UPDATE CLASS_MASTER

SET hist = REPLACE(hist,'X','')

where PART_ID IN (

    SELECT part_id FROM part_master pm, RENUMBER_PART rp

    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)

AND hist != REPLACE(hist,'X','');

 

 

-- 3. DC sales

--Updatesales

CREATE TABLE temp_sales AS

SELECT part_id, dc_number, month_id, sales FROM sales

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

DELETE FROM SALES

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

INSERT INTO DBO_CLASSIFICATIONDATA.sales (part_id, dc_number, month_id, sales)

(SELECT NVL(pmn.part_id, pm.part_id), dc_number, month_id, sum(sales)

FROM temp_sales ts

INNER JOIN part_master pm ON ts.part_id = pm.part_id

LEFT JOIN RENUMBER_PART rp ON rp.OLD_HQ_ABBR = pm.HQ_ABBR AND rp.OLD_PART_NUMBER = pm.PART_NUMBER        and renumber_id =?

LEFT JOIN part_master pmn ON pmn.hq_abbr = rp.NEW_HQ_ABBR AND pmn.part_number = rp.NEW_PART_NUMBER

GROUP BY NVL(pmn.part_id, pm.part_id), dc_number, month_id);

 

DROP TABLE temp_sales;

 

--Update sales history yearly

DELETE FROM SALES_HISTORY_YEARLY

WHERE part_id IN ( SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

INSERT INTO DBO_CLASSIFICATIONDATA.sales_history_yearly (part_id, dc_number, sales_year_1, sales_year_2, sales_year_3,sales_year_4)

            (SELECT part_id, dc_number,

            SUM(CASE WHEN sales_month<13 THEN sales ELSE 0 END),

            SUM(CASE WHEN sales_month BETWEEN 13 AND 24 THEN sales ELSE 0 END),

            SUM(CASE WHEN sales_month BETWEEN 25 AND 36 THEN sales ELSE 0 END),

            SUM(CASE WHEN sales_month BETWEEN 37 AND 48 THEN sales ELSE 0 END)

            FROM DBO_CLASSIFICATIONDATA.sales_history_v

            where part_id IN ( SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

            AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?)

           GROUP BY part_id, dc_number);

           

--Update JDE sales detail

UPDATE DBO_CLASSIFICATIONDATA.jde_sales_detail jsd

SET part_id = (SELECT pmn.part_id from Part_master pm, renumber_Part rp, part_master pmn

              WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER

              and renumber_id =?

              AND pmn.hq_abbr = rp.new_hq_abbr AND pmn.part_number = rp.new_part_number

              and pm.part_id = jsd.part_id)

WHERE part_id IN (SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?)

AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

 

DELETE FROM DBO_CLASSIFICATIONDATA.JDE_SALES_SUMMARY

WHERE part_id IN (      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?);

 

 

INSERT INTO DBO_CLASSIFICATIONDATA.JDE_SALES_SUMMARY

SELECT part_id, order_type,  TRUNC(order_date, 'MM'as month_date, sum(qty_shipped) as shipped

FROM DBO_CLASSIFICATIONDATA.jde_sales_detail jsd 

WHERE  order_date >= add_months(TRUNC(sysdate'MM') , -14)

AND part_id IN (      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

GROUP BY part_id, order_type, TRUNC(order_date, 'MM');

 

--4. DC inventory, it should fix itself with the next daily refresh

--5. Store inventory, we will just wait till the 17th for this to be refreshed

--6. Store sales

 

--Individual months need to be renumbered

DECLARE

CURSOR THREE_YEARS_MONTHS IS

SELECT table_name from (SELECT table_name

FROM dbo_store_invoice.pos_month

ORDER BY month_date DESCWHERE rownum<=36;

 

BEGIN

FOR MONTHS IN THREE_YEARS_MONTHS

LOOP

    EXECUTE IMMEDIATE 'UPDATE dbo_store_invoice.'|| MONTHS.table_name|| ' i

        SET (HQ_ABBR, PART_NUMBER) = (SELECT NEW_HQ_ABBR, NEW_PART_NUMBER

                                      FROM RENUMBER_PART rp

                                      WHERE rp.renumber_id = ?

                                      AND old_hq_abbr = hq_abbr

                                      AND old_part_Number = part_number)

        WHERE DC_ABBR IN(SELECT DC_ABBR FROM DC_MASTER dc, RENUMBER_DC rd WHERE rd.dc_number = dc.dc_number AND RENUMBER_ID = ?)

        AND PART_NUMBER IN (SELECT OLD_PART_NUMBER FROM RENUMBER_PART WHERE OLD_HQ_ABBR = HQ_ABBR AND RENUMBER_ID = ?)';

END LOOP;

END;

 

--Defects

CREATE TABLE temp_defects AS

SELECT part_id, dc_number, month_id, sales, store_type FROM dbo_store_invoice.store_defects

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

DELETE FROM dbo_store_invoice.store_defects

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

INSERT INTO dbo_store_invoice.store_defects (month_id, part_id, dc_number, store_type, sales)

(SELECT month_id,  NVL(pmn.part_id, pm.part_id), dc_number, store_type, sum(sales) FROM temp_defects ts

INNER JOIN part_master pm ON ts.part_id = pm.part_id

LEFT JOIN RENUMBER_PART rp ON rp.OLD_HQ_ABBR = pm.HQ_ABBR AND rp.OLD_PART_NUMBER = pm.PART_NUMBER 

and renumber_id =?

LEFT JOIN part_master pmn ON pmn.hq_abbr = rp.NEW_HQ_ABBR AND pmn.part_number = rp.NEW_PART_NUMBER

GROUP BY  NVL(pmn.part_id, pm.part_id), dc_number, month_id, store_type);

 

DROP TABLE temp_defects;

 

--Sales detail

CREATE TABLE temp_store_detail AS

SELECT part_id, dc_number, month_id, sales, store_type, sale_dollars FROM dbo_store_invoice.store_sales_detail

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

DELETE FROM dbo_store_invoice.store_sales_detail

WHERE PART_ID IN (

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.OLD_HQ_ABBR AND pm.part_number = rp.OLD_PART_NUMBER and renumber_id =?

      UNION

      SELECT part_id from Part_master pm, renumber_Part rp WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id =?)

      AND dc_number IN (SELECT DC_NUMBER FROM renumber_dc WHERE renumber_id = ?);

 

INSERT INTO dbo_store_invoice.store_sales_detail (month_id, part_id, dc_number, store_type, sales, sale_dollars)

(SELECT month_id,  NVL(pmn.part_id, pm.part_id), dc_number, store_type, sum(sales), sum(sale_dollars) FROM temp_store_detail ts

INNER JOIN part_master pm ON ts.part_id = pm.part_id

LEFT JOIN RENUMBER_PART rp ON rp.OLD_HQ_ABBR = pm.HQ_ABBR AND rp.OLD_PART_NUMBER = pm.PART_NUMBER

and renumber_id =?

LEFT JOIN part_master pmn ON pmn.hq_abbr = rp.NEW_HQ_ABBR AND pmn.part_number = rp.NEW_PART_NUMBER

    GROUP BY month_id,  NVL(pmn.part_id, pm.part_id), dc_number, store_type);

 

DROP TABLE temp_store_detail;

 

--Sales summary

  DELETE FROM DBO_STORE_INVOICE.STORES_SALES_SUMMARY  WHERE part_id IN

  (SELECT part_id from DBO_CLASSIFICATIONDATA.Part_master pm, DBO_CLASSIFICATIONDATA.renumber_part rp

    WHERE rp.new_hq_abbr = pm.hq_abbr AND rp.new_part_number = pm.part_number and renumber_id = ?

UNION  SELECT part_id from DBO_CLASSIFICATIONDATA.Part_master pm, DBO_CLASSIFICATIONDATA.renumber_part rp

    WHERE rp.old_hq_abbr = pm.hq_abbr AND rp.old_part_number = pm.part_number and renumber_id = ?);

 

  INSERT INTO DBO_STORE_INVOICE.STORES_SALES_SUMMARY (PART_ID, SALES_MONTH, sales)

SELECT part_id, sales_month, sum(sales) as sales

FROM dbo_store_invoice.store_sales_detail sd, dbo_classificationData.sales_month sm

WHERE sd.MONTH_ID = sm.MONTH_ID

AND sales_month<=36 AND part_id IN  (SELECT part_id from DBO_CLASSIFICATIONDATA.Part_master pm, DBO_CLASSIFICATIONDATA.renumber_part rp

    WHERE rp.new_hq_abbr = pm.hq_abbr AND rp.new_part_number = pm.part_number and renumber_id = ?

UNION  SELECT part_id from DBO_CLASSIFICATIONDATA.Part_master pm, DBO_CLASSIFICATIONDATA.renumber_part rp

    WHERE rp.old_hq_abbr = pm.hq_abbr AND rp.old_part_number = pm.part_number and renumber_id = ?)

GROUP BY part_id, sales_month;

 -- 7.   DC_PART_STOCKING_EVENT

INSERT INTO DBO_CLASSIFICATIONDATA.DC_PART_STOCKING_EVENT dcp

(PART_ID, DC_NUMBER, FIRST_ON_HAND, FIRST_POSITIVE_CLASS)

SELECT pmn.part_id, dc_number, FIRST_ON_HAND, FIRST_POSITIVE_CLASS 

FROM DBO_CLASSIFICATIONDATA.DC_PART_STOCKING_EVENT dp 

INNER JOIN DBO_CLASSIFICATIONDATA.part_master pm ON dp.part_id = pm.part_id 

INNER JOIN DBO_CLASSIFICATIONDATA.RENUMBER_PART rp ON rp.OLD_HQ_ABBR = pm.HQ_ABBR AND rp.OLD_PART_NUMBER = pm.PART_NUMBER and renumber_id = ? 

INNER JOIN DBO_CLASSIFICATIONDATA.part_master pmn ON pmn.hq_abbr = rp.NEW_HQ_ABBR AND pmn.part_number = rp.NEW_PART_NUMBER

 where dp.dc_number IN (SELECT dc_number FROM DBO_CLASSIFICATIONDATA.renumber_dc WHERE renumber_id = ?);

 --8.   HIERARCHY_PART

 
 

 -- 9. Log the state of the new numbers

DECLARE V_GROUP_ID INT;

BEGIN

  --Update assigned_to and title

INSERT INTO DBO_class_transaction.transaction_group(release_date, status_id , assigned_to, title, transaction_type)

values(sysdate37'DEW Single Part Renumber (New Number)',9);

 

SELECT max(group_idINTO V_GROUP_ID 

FROm DBO_class_transaction.transaction_group WHERE assigned_to = 7  AND transaction_type = 9;

 

--Update renumber id

INSERT INTO DBO_class_transaction.transaction_key (hq_abbr, part_number, group_id)

SELECT distinct hq_abbr, part_number, V_GROUP_ID

FROM DBO_CLASSIFICATIONDATA.renumber_part rp, DBO_CLASSIFICATIONDATA.part_master pm

WHERE pm.hq_abbr = new_hq_abbr

AND pm.part_number = new_part_number

AND renumber_id  IN  (?);

 

DBO_class_transaction.create_complete_log(V_GROUP_ID);

 

DELETE FROm DBO_class_transaction.transaction_key where group_id = V_GROUP_ID;

DELETE FROm DBO_class_transaction.transaction_group where group_id = V_GROUP_ID;

 

END;

 * CHECK PARTVIEWER & LOGS for New Part Numbers

  • FOUND SOME OPTIONAL CLASSES FOR AVB Renumber, Id=82, AVB PART AND NOT ON OLD PART, SO DID THE REVERSE OF ADDING OPTIONAL
--OPTIONAL UPDATE
UPDATE CLASS_MASTER
SET curr = 'X'|| curr
where PART_ID IN (
    SELECT part_id FROM part_master pm, RENUMBER_PART rp 
    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)
AND curr in('D','C','B','A')
 
UPDATE CLASS_MASTER
SET PREV = 'X'|| PREV
where PART_ID IN (
    SELECT part_id FROM part_master pm, RENUMBER_PART rp 
    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)
AND PREV in('D','C','B','A')
 
UPDATE CLASS_MASTER
SET HIST = 'X'|| HIST
where PART_ID IN (
    SELECT part_id FROM part_master pm, RENUMBER_PART rp 
    WHERE pm.HQ_ABBR = rp.NEW_HQ_ABBR AND pm.part_number = rp.NEW_PART_NUMBER and renumber_id = ?)
AND HIST in('D','C','B','A')
 

--10. Query used for delete bulletin of old

SELECT old_hq_abbr, old_part_number FROM renumber_part where renumber_id = ?

Manually create Delete Bulletin in PUP