DBA Data[Home] [Help]

PACKAGE: APPS.PON_CLO_RENUMBER_PKG

Source


1 PACKAGE pon_clo_renumber_pkg AUTHID CURRENT_USER AS
2 /* $Header: PONCLORNS.pls 120.15.12020000.2 2013/02/09 11:15:01 hvutukur ship $ */
3 
4 /********************Type Declarations **************************/
5  -- Changing the following table type to genric PO_TBL_VARCHAR100 as some of these procedures
6  -- will be called from Java/Middle-tier -- serukull
7  -- TYPE TBL_VARCHAR2_100 IS TABLE OF VARCHAR2(100);
8 
9 
10 /************User Defined Exceptions used in the body ***********/
11 
12  NO_MORE_LINES_CAN_BE_ADDED EXCEPTION;
13  CLIN_NUMBERS_EXHAUSTED EXCEPTION;
14  ELIN_NUMBERS_EXHAUSTED EXCEPTION;
15  INVALID_CLIN_NUMBER EXCEPTION;
16  INVALID_ELIN_NUMBER EXCEPTION;
17  INVALID_INPUT_CLIN_ARRAY EXCEPTION;
18  INFO_SLIN_NUM_EXHAUSTED EXCEPTION;
19  PRICED_SLIN_NUM_EXHAUSTED EXCEPTION;
20 
21 /*****************Public Methods*********************************/
22  /*******************************
23 Name : NEXT_CLIN_NUM (Only PLSQL Implementation required)
24 Input : Array / PLSQL table of already assigned Clin numbers
25 Output : Next lowest Clin number available.
26 ********************************/
27 FUNCTION NEXT_CLIN_NUM ( ASSIGNED_NUM_ARRAY PO_TBL_VARCHAR100   ) return VARCHAR2;
28 
29 FUNCTION NEXT_CLIN_NUM_WRAPPER(p_Document_ID IN NUMBER,
30                 p_product_code IN VARCHAR2) RETURN varchar2;
31 
32 FUNCTION ELIN_TO_DECIMAL(linNum VARCHAR2) RETURN NUMBER;
33 
34 FUNCTION DECIMAL_TO_ELIN(elin_dec NUMBER) RETURN VARCHAR2;
35 
36 FUNCTION NEXT_ELIN_NUM_WRAPPER ( p_Document_ID IN NUMBER, p_product_code IN VARCHAR2, p_exhibit_number IN VARCHAR2) return VARCHAR2;
37 
38 FUNCTION NEXT_ELIN_NUM_WRAPPER2 ( p_Document_ID IN NUMBER, p_product_code IN VARCHAR2, p_exhibit_number IN VARCHAR2) return VARCHAR2;
39 /*
40 This function takes table of newly created line numbers in this session.
41 This is to get latest possible next clin number.
42 */
43 FUNCTION NEXT_CLIN_NUM_WRAPPER2(p_Document_ID IN NUMBER,
44                 p_product_code IN VARCHAR2,
45                 new_lines IN PO_TBL_VARCHAR100) RETURN VARCHAR2;
46 
47 
48 /* When user enters a clin number manually, this procudure validates the clin number */
49 PROCEDURE VALIDATE_CLIN_NUMBER( p_line_id IN NUMBER, p_doc_id IN NUMBER, p_new_value IN varchar2,
50                 p_product_code IN VARCHAR2,p_error_message OUT NOCOPY VARCHAR2);
51 
52 
53 /*********************************
54 	Name : RenumberAllLines()
55 	Input  : Document_ID
56  Product_Code,
57  Lines_table_name
58 	Output : Status
59    Exception_message
60 	Desc:    Can be used when renumbering the entire document, at a time when no lines have been manually renumbered by user.  Eg. At the time of autocreate or automatic creation of new docs.
61 
62  Algorithm :
63 1.	Maintain 1 variable <LastClinNum> having the last Clin number,  initialized to "0001"
64 2.	Loop Thru all the CLINs for the given document_id
65 3.	find all the options of this CLIN and update the clm_base line_num to <LastClinNum>
66 a.	This can be done using a simple update query.
67 4.	Assign the <LastClinNum> to current clin.
68 5.	Initialize 2 variables for line numbers of Info and priced Slins, initialized as
69 a.	<LastInfoSlin> = "<LastClinNum>01"
70 b.	and
71 c.	<LastPricedSlin> = "<LastClinNum>AA"
72 6.	Loop thru all the slins
73 7.	if the slin is a priced Slin then
74 a.	Find all  the options of this Slin and set clm_base_line_num =  <LastPricedSlin>
75 b.	assign the <LastPricedSlin> to this slin and call <LastPricedSlin> = INCREMENT_PRICED_SLIN_NUM(<LastPricedSlin>)
76 8.	if the slin is an Info Slin,
77 a.	Find all  the options of this Slin and set clm_base_line_num =  <LastPricedSlin>
78 b.	assign the <LastInfoSlin> to this slin and call <LastInfoSlin> = INCREMENT_INFO_SLIN_NUM(<LastInfoSlin>)
79 9.	Change the group_line_id to <LastClinNum>
80 10.	End loop at line 5
81 11.	<LastPricedSlin> = INCREMENT_CLIN_NUM(<LastClinNum>)
82 12.	End loop at line 2
83 *********************************/
84 
85 
86 PROCEDURE RenumberAllLines (
87                 p_Document_ID IN NUMBER,
88                 p_product_code IN VARCHAR2,
89                 x_status OUT NOCOPY varchar2);
90 
91 
92 FUNCTION GetNextSlinNumber(p_product_code IN VARCHAR2,P_Document_ID IN NUMBER,p_ClinNumber IN VARCHAR2,p_ClmInfo_Flag IN VARCHAR2)
93 return VARCHAR2;
94 
95 PROCEDURE 	RenumberSlinStructure(
96                  p_product_code IN VARCHAR2,
97                  p_Document_ID IN NUMBER,
98                  p_ClinNumber IN VARCHAR2,
99                  x_status OUT NOCOPY varchar2)
100 ;
101 
102 FUNCTION INCREMENT_CLIN_NUMBER (ClinNum IN VARCHAR2)
103  RETURN varchar2;
104 
105 FUNCTION INCREMENT_ELIN_NUMBER (ElinNum IN VARCHAR2)
106  RETURN varchar2;
107 
108 FUNCTION INCREMENT_INFO_SLIN_NUMBER (SlinNum IN VARCHAR2)
109 RETURN  VARCHAR2;
110 
111 FUNCTION INCREMENT_PRICED_SLIN_NUMBER (SlinNum IN VARCHAR2)
112 RETURN  VARCHAR2;
113 
114 
115 PROCEDURE RenumberSlin(p_auction_header_id IN Number,
116 		       p_line_number IN Number,
117 		       x_status OUT NOCOPY varchar2 );
118 --CLM_SPLIT
119 FUNCTION FIRST_INFO_SLIN_NUMBER (CLINNUM IN VARCHAR2)
120 RETURN  VARCHAR2;
121 --END
122 
123 
124 /**************test Functions ***********************************/
125 FUNCTION testIncrementClinNum(ClinNum IN VARCHAR2) return varchar2;
126  FUNCTION testIncrementPricedSlinNum(SlinNum IN VARCHAR2) return VARCHAR2;
127  FUNCTION testIncrementInfoSlinNum(SlinNum IN VARCHAR2) return VARCHAR2;
128 
129 
130 /* Bug 9883780 - Start */
131 /* Added the following procedure to regenerate SLINs for Solicitations
132    during Solicitation to Award Creation Flow. */
133 
134 PROCEDURE GenerateSlinStructure(
135                  p_product_code          IN         VARCHAR2,
136                  p_interface_header_id   IN         NUMBER,
137                  p_clinnumber            IN         VARCHAR2,
138                  x_status                OUT NOCOPY varchar2);
139 
140 --Unsolicited Lines Project
141 FUNCTION NEXT_CLIN_NUM_WRAPPER3(p_bid_number IN NUMBER,
142 				P_auction_id IN  NUMBER,
143                 		p_product_code IN VARCHAR2)
144 RETURN VARCHAR2;
145 
146 /*CLM PHASE-2 :Autocreate Grouping
147 Moving the function to spec*/
148 
149 FUNCTION getLineid(p_product_code IN VARCHAR2,
150                    p_Document_ID  IN NUMBER,
151                   p_ClinNumber    IN VARCHAR2)
152 RETURN NUMBER;
153 
154 
155 END PON_CLO_RENUMBER_PKG;