1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| CREATE OR REPLACE
PACKAGE BODY "PKG_RPT_TREE_BOM" AS
PROCEDURE GetRPTTreeBom(mID_TREE_BOM IN NUMBER, mCur OUT REFCUR)
IS
BEGIN
OPEN mCur FOR SELECT * FROM Table(CAST(GetListRPTBom(mID_TREE_BOM) AS ART_RPT_INFO));
END;
FUNCTION GetListRPTBom(mID_TREE_BOM IN NUMBER) RETURN ART_RPT_INFO
IS
mRowArt TOPERP.T_ARTICLE%ROWTYPE;
mTypeFab NUMBER;
mBomTree TOPPDM.BOM_TREE;
mRowRPT ROW_ART_RPT_INFO;
ListRPT ART_RPT_INFO := ART_RPT_INFO();
ListRefMat DBMS_SQL.VARCHAR2_TABLE;
ListRefOut DBMS_SQL.VARCHAR2_TABLE;
BEGIN
mBomTree := TOPPDM.PKG_TREE.GetListTreeBOM('ID_TREE_BOM = ' || mID_TREE_BOM );
for i in mBomTree.FIRST .. mBomTree.LAST loop
-- Ajout
-- mRowRPT := ROW_ART_RPT_INFO(NULL,NULL,NULL,NULL,NULL,NULL);
mRowRPT := ROW_ART_RPT_INFO(NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-- code propre au report
mRowRPT.mLEVEL := LPAD(mBomTree(i).LEVEL_BOM,mBomTree(i).LEVEL_BOM+(mBomTree(i).LEVEL_BOM-1),' .');
mRowRPT.ID_ARTICLE := mBomTree(i).ID_ERP_ITEM;
mRowRPT.REFERENCE := mBomTree(i).ERP_REFERENCE;
mRowRPT.DESIGNATION := mBomTree(i).ERP_DESIGNATION;
mRowRPT.QTY := mBomTree(i).QUANTITY;
-- Ajout
mRowRPT.ID_ROUTING := mBomTree(i).ID_ROUTING;
BEGIN
select qte_disponible into mRowRPT.QTE_STOCK_DISPO from toperp.t_stock where id_article = mRowRPT.ID_ARTICLE;
EXCEPTION WHEN OTHERS THEN
mRowRPT.QTE_STOCK_DISPO := 0;
END;
-- fin du code
ListRPT.extend;
ListRPT(ListRPT.Last) := mRowRPT;
end loop;
return ListRPT;
END;
END; |
Partager