DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_CLM_PVT_PKG

Source


1 PACKAGE BODY AP_CLM_PVT_PKG AS
2 /* $Header: apclmpfb.pls 120.0.12010000.5 2010/03/23 07:08:49 sjetti noship $ */
3 
4   G_MSG_UERROR        CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
5   G_MSG_ERROR         CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_ERROR;
6   G_MSG_SUCCESS       CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
7   G_MSG_HIGH          CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
8   G_MSG_MEDIUM        CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
9   G_MSG_LOW           CONSTANT NUMBER       := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
10   G_LINES_PER_FETCH   CONSTANT NUMBER       := 1000;
11 
12   G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER   := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
13   G_LEVEL_UNEXPECTED      CONSTANT NUMBER   := FND_LOG.LEVEL_UNEXPECTED;
14   G_LEVEL_ERROR           CONSTANT NUMBER   := FND_LOG.LEVEL_ERROR;
15   G_LEVEL_EXCEPTION       CONSTANT NUMBER   := FND_LOG.LEVEL_EXCEPTION;
16   G_LEVEL_EVENT           CONSTANT NUMBER   := FND_LOG.LEVEL_EVENT;
17   G_LEVEL_PROCEDURE       CONSTANT NUMBER   := FND_LOG.LEVEL_PROCEDURE;
18   G_LEVEL_STATEMENT       CONSTANT NUMBER   := FND_LOG.LEVEL_STATEMENT;
19 
20 
21 Procedure Print_Debug(
22 		p_api_name		IN VARCHAR2,
23 		p_debug_info		IN VARCHAR2);
24 
25 --  This function will determine whether a PO is a clm PO.
26 FUNCTION is_clm_po
27                     (
28                             p_po_header_id        IN NUMBER DEFAULT NULL,
29                             p_po_line_id          IN NUMBER DEFAULT NULL,
30                             p_po_line_location_id IN NUMBER DEFAULT NULL,
31                             p_po_distribution_id  IN NUMBER DEFAULT NULL
32                     )
33 RETURN VARCHAR2
34 IS
35 l_api_name                 CONSTANT VARCHAR2(100) := 'is_clm_po';
36 l_debug_info               VARCHAR2(240);
37 l_is_clm_po                VARCHAR2(1) := 'N';
38 BEGIN
39 
40      l_debug_info := 'Calling po_clm_intg_grp.is_clm_po Procedure: ';
41      Print_Debug(l_api_name,  l_debug_info);
42 
43      IF (po_clm_intg_grp.is_clm_po(p_po_header_id) = 'Y') then
44             l_debug_info := 'Setting is_clm_installed as Y';
45             Print_Debug(l_api_name,  l_debug_info);
46             l_is_clm_po :='Y';
47      END IF ;
48 
49      RETURN l_is_clm_po;
50 EXCEPTION
51   WHEN Others THEN
52      l_debug_info := 'is_clm_po check failed';
53      Print_Debug(l_api_name,  l_debug_info);
54      APP_EXCEPTION.raise_exception;
55 END is_clm_po;
56 
57 
58 
59 --  This function will determine whether CLM is installed
60 FUNCTION is_clm_installed
61 RETURN VARCHAR2
62 IS
63 l_api_name                 CONSTANT VARCHAR2(100) := 'is_clm_installed';
64 l_debug_info               VARCHAR2(240);
65 l_is_clm_installed  VARCHAR2(1) := 'N';
66 BEGIN
67 
68 l_debug_info := 'Calling po_clm_intg_grp.is_clm_installed Procedure: ';
69 Print_Debug(l_api_name,  l_debug_info);
70 
71 l_is_clm_installed := po_clm_intg_grp.is_clm_installed ;
72 
73 RETURN l_is_clm_installed;
74 EXCEPTION
75 WHEN OTHERS THEN
76      l_debug_info := 'is_clm_installed check failed';
77      Print_Debug(l_api_name,  l_debug_info);
78      APP_EXCEPTION.raise_exception;
79 END is_clm_installed;
80 
81 
82 
83 -- This procedure returns the PO Funding Information for a given entity id
84 PROCEDURE Get_Funding_Info
85   (
86     p_PO_HEADER_ID             IN NUMBER DEFAULT NULL,
87     p_PO_LINE_ID               IN NUMBER DEFAULT NULL,
88     p_LINE_LOCATION_ID         IN NUMBER DEFAULT NULL,
89     p_PO_DISTRIBUTION_ID       IN NUMBER DEFAULT NULL,
90     x_DISTRIBUTION_TYPE        OUT NOCOPY VARCHAR2,
91     x_MATCHING_BASIS           OUT NOCOPY VARCHAR2,
92     x_ACCRUE_ON_RECEIPT_FLAG   OUT NOCOPY VARCHAR2,
93     x_CODE_COMBINATION_ID      OUT NOCOPY NUMBER,
94     x_BUDGET_ACCOUNT_ID        OUT NOCOPY NUMBER,
95     x_PARTIAL_FUNDED_FLAG      OUT NOCOPY VARCHAR2,
96     x_UNIT_MEAS_LOOKUP_CODE    OUT NOCOPY VARCHAR2,
97     x_FUNDED_VALUE             OUT NOCOPY NUMBER,
98     x_QUANTITY_FUNDED          OUT NOCOPY NUMBER,
99     x_AMOUNT_FUNDED            OUT NOCOPY NUMBER,
100     x_QUANTITY_RECEIVED        OUT NOCOPY NUMBER,
101     x_AMOUNT_RECEIVED          OUT NOCOPY NUMBER,
102     x_QUANTITY_DELIVERED       OUT NOCOPY NUMBER,
103     x_AMOUNT_DELIVERED         OUT NOCOPY NUMBER,
104     x_QUANTITY_BILLED          OUT NOCOPY NUMBER,
105     x_AMOUNT_BILLED            OUT NOCOPY NUMBER,
106     x_QUANTITY_CANCELLED       OUT NOCOPY NUMBER,
107     x_AMOUNT_CANCELLED 	       OUT NOCOPY NUMBER,
108     X_RETURN_STATUS            OUT NOCOPY VARCHAR2)
109     IS
110 l_api_name                 CONSTANT VARCHAR2(100) := 'Get_Funding_Info';
111 l_distribution_type        PO_DISTRIBUTIONS_ALL.destination_type_code%TYPE ;
112 l_accrue_on_receipt_flag   PO_DISTRIBUTIONS_ALL.accrue_on_receipt_flag%TYPE ;
113 l_code_combination_id      PO_DISTRIBUTIONS_ALL.code_combination_id%TYPE ;
114 l_budget_account_id        PO_DISTRIBUTIONS_ALL.budget_account_id%TYPE ;
115 l_partial_funded_flag      PO_DISTRIBUTIONS_ALL.partial_funded_flag%TYPE ;
116 l_funded_value             PO_DISTRIBUTIONS_ALL.funded_value%TYPE ;
117 l_quantity_funded          PO_DISTRIBUTIONS_ALL.quantity_funded%TYPE ;
118 l_amount_funded            PO_DISTRIBUTIONS_ALL.amount_funded%TYPE ;
119 l_quantity_delivered       PO_DISTRIBUTIONS_ALL.quantity_delivered%TYPE ;
120 l_amount_delivered         PO_DISTRIBUTIONS_ALL.amount_delivered%TYPE ;
121 l_quantity_billed          PO_DISTRIBUTIONS_ALL.quantity_billed%TYPE ;
122 l_amount_billed            PO_DISTRIBUTIONS_ALL.amount_billed%TYPE ;
123 l_quantity_cancelled       PO_DISTRIBUTIONS_ALL.quantity_cancelled%TYPE ;
124 l_amount_cancelled         PO_DISTRIBUTIONS_ALL.amount_cancelled%TYPE ;
125 l_matching_basis           PO_LINE_LOCATIONS.matching_basis%TYPE;
126 l_quantity_received        PO_LINE_LOCATIONS.quantity_received%TYPE;
127 l_amount_received          PO_LINE_LOCATIONS.amount_received%TYPE;
128 l_hold_name                VARCHAR2(30);
129 l_unit_meas_lookup_code    PO_LINE_LOCATIONS_ALL.unit_meas_lookup_code%TYPE;
130 l_return_status            VARCHAR2(1);
131 l_debug_info               VARCHAR2(240);
132 
133 BEGIN
134 
135         l_debug_info := 'Processing Proedure AP_CLM_PVT_PKG.Get_Funding_Info for DISTRIBUTION_ID: '|| p_PO_DISTRIBUTION_ID;
136         Print_Debug(l_api_name,  l_debug_info);
137 
138          po_clm_intg_grp.Get_Funding_Info(
139          P_PO_DISTRIBUTION_ID     =>  p_PO_DISTRIBUTION_ID
140         ,X_DISTRIBUTION_TYPE      =>  l_distribution_type
141         ,X_MATCHING_BASIS         =>  l_matching_basis
142         ,X_ACCRUE_ON_RECEIPT_FLAG =>  l_accrue_on_receipt_flag
143         ,X_CODE_COMBINATION_ID    =>  l_code_combination_id
144         ,X_BUDGET_ACCOUNT_ID      =>  l_budget_account_id
145         ,X_PARTIAL_FUNDED_FLAG    =>  l_partial_funded_flag
146         ,x_UNIT_MEAS_LOOKUP_CODE  =>  l_unit_meas_lookup_code
147         ,X_FUNDED_VALUE           =>  l_funded_value
148         ,X_QUANTITY_FUNDED        =>  l_quantity_funded
149         ,X_AMOUNT_FUNDED          =>  l_amount_funded
150         ,X_QUANTITY_RECEIVED      =>  l_quantity_received
151         ,X_AMOUNT_RECEIVED        =>  l_amount_received
152         ,X_QUANTITY_DELIVERED     =>  l_quantity_delivered
153         ,X_AMOUNT_DELIVERED       =>  l_amount_delivered
154         ,X_QUANTITY_BILLED        =>  l_quantity_billed
155         ,X_AMOUNT_BILLED          =>  l_amount_billed
156         ,x_QUANTITY_CANCELLED     =>  l_quantity_cancelled
157         ,x_AMOUNT_CANCELLED       =>  l_amount_cancelled
158         ,x_RETURN_STATUS          =>  l_return_status    );
159 
160         l_debug_info := 'After calling po_clm_intg_grp.Get_Funding_Info for l_return_status: '|| l_return_status;
161         Print_Debug(l_api_name,  l_debug_info);
162 
163     IF L_return_status <> FND_API.G_RET_STS_SUCCESS THEN
164         l_debug_info := 'PO_INTG_DOCUMENT_FUNDS_GRP.Get_Funding_Info returned invalid status.';
165         Print_Debug(l_api_name,  l_debug_info);
166         APP_EXCEPTION.raise_exception;
167     END IF    ;
168 
169 x_DISTRIBUTION_TYPE       :=  l_distribution_type     ;
170 x_MATCHING_BASIS          :=  l_matching_basis  ;
171 x_ACCRUE_ON_RECEIPT_FLAG  :=  l_accrue_on_receipt_flag  ;
172 x_CODE_COMBINATION_ID     :=  l_code_combination_id     ;
173 x_BUDGET_ACCOUNT_ID       :=  l_budget_account_id      ;
174 x_PARTIAL_FUNDED_FLAG     :=  l_partial_funded_flag      ;
175 x_UNIT_MEAS_LOOKUP_CODE   :=  l_unit_meas_lookup_code ;
176 x_FUNDED_VALUE            :=  l_funded_value            ;
177 x_QUANTITY_FUNDED         :=  l_quantity_funded          ;
178 x_AMOUNT_FUNDED           :=  l_amount_funded          ;
179 x_QUANTITY_DELIVERED      :=  l_quantity_delivered      ;
180 x_AMOUNT_DELIVERED        :=  l_amount_delivered         ;
181 x_QUANTITY_BILLED         :=  l_quantity_billed          ;
182 x_AMOUNT_BILLED           :=  l_amount_billed            ;
183 x_QUANTITY_RECEIVED       :=  l_quantity_received    ;
184 x_AMOUNT_RECEIVED         :=  l_amount_received      ;
185 x_QUANTITY_CANCELLED      :=  l_quantity_cancelled ;
186 x_AMOUNT_CANCELLED        :=  l_amount_cancelled ;
187 x_RETURN_STATUS           :=  l_return_status ;
188 
189  Print_Debug(l_api_name,  'l_matching_basis :'|| l_matching_basis );
190  Print_Debug(l_api_name,  'l_quantity_billed :'|| l_quantity_billed );
191  Print_Debug(l_api_name,  'l_quantity_funded :'|| l_quantity_funded );
192  Print_Debug(l_api_name,  'l_amount_billed :'|| l_amount_billed );
193  Print_Debug(l_api_name,  'l_amount_funded :'|| l_amount_funded );
194 
195 l_debug_info := 'Returning from AP_CLM_PVT_PKG.Get_Funding_Info with l_return_status: '|| l_return_status;
196 Print_Debug(l_api_name,  l_debug_info);
197 
198 
199 EXCEPTION
200   WHEN Others THEN
201      X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
202      l_debug_info := 'Get_Funding_Info check failed';
203      Print_Debug(l_api_name,  l_debug_info);
204      APP_EXCEPTION.raise_exception;
205 END Get_Funding_Info;
206 
207 Procedure Print_Debug(
208 		p_api_name		  IN VARCHAR2,
209 		p_debug_info		IN VARCHAR2) IS
210 BEGIN
211 
212 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
213      FND_LOG.STRING(G_LEVEL_STATEMENT, 'AP.PLSQL.AP_CLM_PVT_PKG'||p_api_name,p_debug_info);
214   END IF;
215 
216 END Print_Debug;
217 
218 END AP_CLM_PVT_PKG;