DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_CN_CUSTOM_SOURCES

Source


1 package body JA_CN_CUSTOM_SOURCES AS
2   --$Header: JACNSCSB.pls 120.8 2008/03/28 09:39:58 shyan noship $
3   --+=======================================================================+
4   --|               Copyright (c) 2006 Oracle Corporation                   |
5   --|                       Redwood Shores, CA, USA                         |
6   --|                         All rights reserved.                          |
7   --+=======================================================================+
8   --| FILENAME                                                              |
9   --|      JACNSCSB.pls                                                      |
10   --|                                                                       |
11   --| DESCRIPTION                                                           |
12   --|     This package is used to create customer source.           |
13   --|                                                                       |
14   --| PROCEDURE LIST                                                        |
15   --|                                                                       |
16   --|      PROCEDURE    Invoice_Category     PUBLIC                        |
17   --|                                                                       |
18   --| HISTORY                                                               |
19   --|      01/08/2007     yanbo liu         Created                      |
20   --|                                                                       |
21   --+======================================================================*/
22     --==========================================================================
23   --  FUNCTION NAME:
24   --  GDF_Item      Private
25   --
26   --  DESCRIPTION:
27   --    This procedure is used to return source value when the invoice source is
28   --    'Manual Invoice Entry'. The return value is GDF in Invoice distribution
29   --    or header.The priority of distribution is over than header.
30   --
31   --  PARAMETERS:
32   --      p_invoice_id                   invoice id
33   --      p_invoice_distribution_id      invoice distribution id
34   --
35   --  DESIGN REFERENCES:
36   --      None
37   --
38   --  CHANGE HISTORY:
39   --     06/08/2007     yanbo liu        updated
40   --===========================================================================
41  FUNCTION GDF_Item(p_invoice_id                 IN  NUMBER,
42                      p_invoice_distribution_id    IN  NUMBER)
43    RETURN VARCHAR2 IS
44     GDF_Item  ap_invoice_distributions_all.global_attribute1%type:=null;
45     l_dbg_level               NUMBER        :=FND_LOG.G_Current_Runtime_Level;
46     l_proc_level              NUMBER        :=FND_LOG.Level_Procedure;
47     l_proc_name               VARCHAR2(100) :='GDF_Item';
48 
49     BEGIN
50     IF (l_proc_level >= l_dbg_level)
51     THEN
52       FND_LOG.String( l_proc_level
53                      ,l_module_prefix||'.'||l_proc_name||'.begin'
54                      ,'Enter procedure'
55                     );
56       FND_LOG.String( l_proc_level
57                      ,l_module_prefix||'.'||l_proc_name||'.parameters'
58                      ,'p_invoice_id  '||p_invoice_id
59                     );
60 
61       FND_LOG.String(l_proc_level
62                     ,l_module_prefix||'.'||l_proc_name||'.parameters'
63                     ,'p_invoice_distribution_id'||p_invoice_distribution_id
64                     );
65 
66     END IF;  --(l_proc_level >= l_dbg_level)
67 
68     --First get custom source value from distribution
69 
70         SELECT GLOBAL_ATTRIBUTE1
71         INTO GDF_ITEM
72         FROM AP_INVOICE_DISTRIBUTIONS_ALL
73         WHERE INVOICE_DISTRIBUTION_ID=P_INVOICE_DISTRIBUTION_ID;
74 
75         --IF THE VALUE IN DISTRIBUTION IS NULL,
76         --THEN GET THE VALUE FROM HEADER.
77         IF GDF_ITEM IS NULL THEN
78           SELECT GLOBAL_ATTRIBUTE1
79           INTO GDF_ITEM
80           FROM AP_INVOICES_ALL
81           WHERE INVOICE_ID=P_INVOICE_ID;
82         END IF;
83 
84         RETURN GDF_ITEM;
85 
86       --  RETURN nvl(GDF_ITEM,'gdf_item_0') ;
87 
88     EXCEPTION
89 
90       WHEN OTHERS THEN
91         IF (l_proc_level >= l_dbg_level)
92         THEN
93           FND_LOG.String( l_proc_level
94                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
95                          ,SQLCODE||':'||SQLERRM);
96         END IF;  --(l_proc_level >= l_dbg_level)
97         RAISE;
98      --   return('gdf_item0');
99     END GDF_Item;
100   --==========================================================================
101   --  FUNCTION NAME:
102   --  Master_Item                  Public
103   --
104   --  DESCRIPTION:
105   --    This procedure is used to return source value when the invoice source is
106   --    'ERS'.The return value is Category Set In Master Item
107   --
108   --  PARAMETERS:
109   --      p_invoice_distribution_id      invoice distribution id
110   --
111   --  DESIGN REFERENCES:
112   --      None
113   --
114   --  CHANGE HISTORY:
115   --     06/08/2007     yanbo liu        updated
116   --     09/08/2007     yanbo liu        updated
117   --     07/12/2007     xiao lv          updated
118   --     get item logic change
119   --===========================================================================
120   FUNCTION MASTER_ITEM_UPDATE(P_INVOICE_ID                  IN NUMBER,
121                        P_INVOICE_DISTRIBUTION_ID     IN  NUMBER)
122     RETURN VARCHAR2 IS
123     MASTER_ITEM              VARCHAR(100):=null;
124     L_INVOICE_LINE_NUMBER     NUMBER;
125     L_INVOICE_ID              NUMBER;
126     --new variable
127     L_PO_HEADER_ID            NUMBER;
128     L_PO_LINE_ID              NUMBER;
129     --
130     L_DBG_LEVEL               NUMBER        :=FND_LOG.G_CURRENT_RUNTIME_LEVEL;
131     L_PROC_LEVEL              NUMBER        :=FND_LOG.LEVEL_PROCEDURE;
132     L_PROC_NAME               VARCHAR2(100) :='MASTER_ITEM';
133     a EXCEPTION;
134 
135 
136     BEGIN
137     IF (l_proc_level >= l_dbg_level)
138     THEN
139       FND_LOG.String( l_proc_level
140                      ,l_module_prefix||'.'||l_proc_name||'.begin'
141                      ,'Enter procedure'
142                     );
143 
144       FND_LOG.String(l_proc_level
145                     ,l_module_prefix||'.'||l_proc_name||'.parameters'
146                     ,'p_invoice_distribution_id '||p_invoice_distribution_id
147                     );
148 
149     END IF;  --(l_proc_level >= l_dbg_level)
150 
151         -- get the invoice line number and invoice id from ap_invoice_distributions_all
152         SELECT INVOICE_LINE_NUMBER,INVOICE_ID
153         INTO L_INVOICE_LINE_NUMBER,L_INVOICE_ID
154         FROM AP_INVOICE_DISTRIBUTIONS_ALL
155         WHERE INVOICE_DISTRIBUTION_ID=P_INVOICE_DISTRIBUTION_ID ;
156 
157        --get key flexfield concatenated_segments as source value
158        --CATEGORY SET NAME is 'Cash Flow Category'
159    BEGIN
160     SELECT MC.CONCATENATED_SEGMENTS
161        INTO MASTER_ITEM
162        FROM MTL_CATEGORIES_B_KFV MC
163        WHERE CATEGORY_ID IN(
164            SELECT CATEGORY_ID
165            FROM MTL_ITEM_CATEGORIES MIC
166            WHERE MIC.CATEGORY_SET_ID IN (
167                   SELECT CATEGORY_SET_ID
168                   FROM MTL_CATEGORY_SETS_TL MCST
169                   WHERE MCST.LANGUAGE = USERENV('LANG')
170                   AND MCST.CATEGORY_SET_NAME = 'Cash Flow Category')
171            AND INVENTORY_ITEM_ID IN(
172                   SELECT ITEM_ID
173                   FROM PO_LINES_ALL
174                   WHERE PO_HEADER_ID = (
175                           SELECT PO_HEADER_ID
176                           FROM AP_INVOICE_LINES_ALL AP
177                           WHERE AP.INVOICE_ID=L_INVOICE_ID
178                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
179                   AND   PO_LINE_ID = (
180                           SELECT PO_LINE_ID
181                           FROM AP_INVOICE_LINES_ALL AP
182                           WHERE AP.INVOICE_ID=L_INVOICE_ID
183                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
184                   )
185             AND ORGANIZATION_ID IN(
186                           SELECT ORG_ID
187                           FROM AP_INVOICE_LINES_ALL AP
188                           WHERE AP.INVOICE_ID=L_INVOICE_ID
189                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
190            );
191 
192        EXCEPTION
193          WHEN OTHERS THEN
194         --updated by lyb, for custom source for tax 6666473
195              IF MASTER_ITEM IS NULL
196              THEN
197                SELECT PO_HEADER_ID,
198                       PO_LINE_ID
199                  INTO L_PO_HEADER_ID,
200                       L_PO_LINE_ID
201                  FROM ap_invoice_lines_all al
202                 WHERE RCV_TRANSACTION_ID = (
203                          SELECT RCV_TRANSACTION_ID
204                            FROM ap_invoice_lines_all ap
205                           WHERE ap.invoice_id = P_INVOICE_ID
206                             AND ap.LINE_NUMBER = L_INVOICE_LINE_NUMBER)
207 
208                   AND INVOICE_ID = P_INVOICE_ID
209                   AND PO_HEADER_ID IS NOT NULL
210                   AND PO_LINE_ID IS NOT NULL;
211 
212              --get key flexfield concatenated_segments as source value
213              --CATEGORY SET NAME is 'Cash Flow Category'
214                 SELECT MC.CONCATENATED_SEGMENTS
215                   INTO MASTER_ITEM
216                   FROM MTL_CATEGORIES_B_KFV MC
217                  WHERE CATEGORY_ID IN(
218                     SELECT CATEGORY_ID
219                       FROM MTL_ITEM_CATEGORIES MIC
220                      WHERE MIC.CATEGORY_SET_ID IN (
221                            SELECT CATEGORY_SET_ID
222                              FROM MTL_CATEGORY_SETS_TL MCST
223                             WHERE MCST.LANGUAGE = USERENV('LANG')
224                               AND MCST.CATEGORY_SET_NAME = 'Cash Flow Category')
225                        AND INVENTORY_ITEM_ID IN(
226                               SELECT ITEM_ID
227                               FROM PO_LINES_ALL
228                               WHERE PO_HEADER_ID = L_PO_HEADER_ID
229                               AND   PO_LINE_ID = L_PO_LINE_ID
230                               )
231                        AND ORGANIZATION_ID IN(
232                                       SELECT ORG_ID
233                                       FROM AP_INVOICE_LINES_ALL AP
234                                       WHERE AP.INVOICE_ID=L_INVOICE_ID
235                                       AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
236                        );
237 
238 
239                END IF;
240 
241                IF MASTER_ITEM IS NOT NULL THEN
242                    RETURN MASTER_ITEM;
243                END IF;
244 
245            RAISE A;
246          END;
247        --==========================================================================
248 
249        --==========================================================================
250 
251          RETURN MASTER_ITEM;
252        --RETURN nvl(MASTER_ITEM,'master_item_0');
253 
254     EXCEPTION
255 
256       WHEN OTHERS THEN
257         IF (l_proc_level >= l_dbg_level)
258         THEN
259           FND_LOG.String( l_proc_level
260                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
261                          ,SQLCODE||':'||SQLERRM);
262         END IF;  --(l_proc_level >= l_dbg_level)
263         IF MASTER_ITEM IS NULL THEN
264           MASTER_ITEM := GDF_Item(p_invoice_id,
265                                    p_invoice_distribution_id
266                                  );
267           RETURN MASTER_ITEM;
268         END IF;
269             RAISE;
270              --  return('master_item_exp');
271     END MASTER_ITEM_UPDATE;
272 
273 
274 
275     --==========================================================================
276   --  FUNCTION NAME:
277   --  Expense_Item                  Public
278   --
279   --  DESCRIPTION:
280   --    This procedure is used to return source value when the invoice source is
281   --    'Oracle Internet Expenses' or 'Payables Expense Reports'.
282   --    The return value is Expenses Item.
283   --
284   --
285   --  PARAMETERS:
286   --      invoice_distribution_id        invoice distribution id
287   --
288   --  DESIGN REFERENCES:
289   --      None
290   --
291   --  CHANGE HISTORY:
292   --     06/08/2007     yanbo liu        updated
293   --===========================================================================
294    FUNCTION Expense_Item(P_INVOICE_ID                IN NUMBER,
295                          p_invoice_distribution_id   IN  NUMBER)
296     RETURN VARCHAR2 IS
297     Expense_Item_desc  ap_invoice_distributions_all.description%type:=null;
298     l_dbg_level               NUMBER        :=FND_LOG.G_Current_Runtime_Level;
299     l_proc_level              NUMBER        :=FND_LOG.Level_Procedure;
300     l_proc_name               VARCHAR2(100) :='Expense_Item';
301 
302     BEGIN
303     IF (l_proc_level >= l_dbg_level)
304     THEN
305       FND_LOG.String( l_proc_level
306                      ,l_module_prefix||'.'||l_proc_name||'.begin'
307                      ,'Enter procedure'
308                     );
309 
310       FND_LOG.String(l_proc_level
311                     ,l_module_prefix||'.'||l_proc_name||'.parameters'
312                     ,'invoice_distribution_id'||p_invoice_distribution_id
313                     );
314 
315     END IF;  --(l_proc_level >= l_dbg_level)
316 
317     --get the custom value from destribution
318         SELECT description
319         INTO Expense_Item_desc
320         FROM ap_invoice_distributions_all
321         WHERE invoice_distribution_id=p_invoice_distribution_id ;
322         RETURN Expense_Item_desc;
323         --RETURN nvl(Expense_Item_desc,'expense_item_desc_0');
324     EXCEPTION
325       WHEN OTHERS THEN
326         IF (l_proc_level >= l_dbg_level)
327         THEN
328           FND_LOG.String( l_proc_level
329                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
330                          ,SQLCODE||':'||SQLERRM);
331         END IF;  --(l_proc_level >= l_dbg_level)
332        IF Expense_Item_desc IS NULL THEN
333           Expense_Item_desc := GDF_Item(p_invoice_id,
334                                    p_invoice_distribution_id
335                                  );
336           RETURN Expense_Item_desc;
337         END IF;
338        RAISE;
339        -- return('expense_item0');
340     END Expense_Item;
341  --==========================================================================
342   --  FUNCTION NAME:
343   --  Master_Item                  Public
344   --
345   --  DESCRIPTION:
346   --    This procedure is used to return source value when the invoice source is
347   --    'ERS'.The return value is Category Set In Master Item
348   --
349   --  PARAMETERS:
350   --      p_invoice_distribution_id      invoice distribution id
351   --
352   --  DESIGN REFERENCES:
353   --      None
354   --
355   --  CHANGE HISTORY:
356   --     06/08/2007     yanbo liu        updated
357   --     09/08/2007     yanbo liu        updated
358   --     get item logic change
359   --===========================================================================
360   FUNCTION MASTER_ITEM(P_INVOICE_ID                  IN NUMBER,
361                        P_INVOICE_DISTRIBUTION_ID     IN  NUMBER)
362     RETURN VARCHAR2 IS
363     MASTER_ITEM              VARCHAR(100):=null;
364     L_INVOICE_LINE_NUMBER     NUMBER;
365     L_INVOICE_ID              NUMBER;
366     L_DBG_LEVEL               NUMBER        :=FND_LOG.G_CURRENT_RUNTIME_LEVEL;
367     L_PROC_LEVEL              NUMBER        :=FND_LOG.LEVEL_PROCEDURE;
368     L_PROC_NAME               VARCHAR2(100) :='MASTER_ITEM';
369     a EXCEPTION;
370 
371 
372     BEGIN
373     IF (l_proc_level >= l_dbg_level)
374     THEN
375       FND_LOG.String( l_proc_level
376                      ,l_module_prefix||'.'||l_proc_name||'.begin'
377                      ,'Enter procedure'
378                     );
379 
380       FND_LOG.String(l_proc_level
381                     ,l_module_prefix||'.'||l_proc_name||'.parameters'
382                     ,'p_invoice_distribution_id '||p_invoice_distribution_id
383                     );
384 
385     END IF;  --(l_proc_level >= l_dbg_level)
386 
387         -- get the invoice line number and invoice id from ap_invoice_distributions_all
388         SELECT INVOICE_LINE_NUMBER,INVOICE_ID
389         INTO L_INVOICE_LINE_NUMBER,L_INVOICE_ID
390         FROM AP_INVOICE_DISTRIBUTIONS_ALL
391         WHERE INVOICE_DISTRIBUTION_ID=P_INVOICE_DISTRIBUTION_ID ;
392 
393        --get key flexfield concatenated_segments as source value
394        --CATEGORY SET NAME is 'Cash Flow Category'
395     SELECT MC.CONCATENATED_SEGMENTS
396        INTO MASTER_ITEM
397        FROM MTL_CATEGORIES_B_KFV MC
398        WHERE CATEGORY_ID IN(
399            SELECT CATEGORY_ID
400            FROM MTL_ITEM_CATEGORIES MIC
401            WHERE MIC.CATEGORY_SET_ID IN (
402                   SELECT CATEGORY_SET_ID
403                   FROM MTL_CATEGORY_SETS_TL MCST
404                   WHERE MCST.LANGUAGE = USERENV('LANG')
405                   AND MCST.CATEGORY_SET_NAME = 'Cash Flow Category')
406            AND INVENTORY_ITEM_ID IN(
407                   SELECT ITEM_ID
408                   FROM PO_LINES_ALL
409                   WHERE PO_HEADER_ID = (
410                           SELECT PO_HEADER_ID
411                           FROM AP_INVOICE_LINES_ALL AP
412                           WHERE AP.INVOICE_ID=L_INVOICE_ID
413                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
414                   AND   PO_LINE_ID = (
415                           SELECT PO_LINE_ID
416                           FROM AP_INVOICE_LINES_ALL AP
417                           WHERE AP.INVOICE_ID=L_INVOICE_ID
418                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
419                   )
420             AND ORGANIZATION_ID IN(
421                           SELECT ORG_ID
422                           FROM AP_INVOICE_LINES_ALL AP
423                           WHERE AP.INVOICE_ID=L_INVOICE_ID
424                           AND AP.LINE_NUMBER=L_INVOICE_LINE_NUMBER)
425            );
426 
427          RETURN MASTER_ITEM;
428        --RETURN nvl(MASTER_ITEM,'master_item_0');
429 
430     EXCEPTION
431 
432       WHEN OTHERS THEN
433         IF (l_proc_level >= l_dbg_level)
434         THEN
435           FND_LOG.String( l_proc_level
436                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
437                          ,SQLCODE||':'||SQLERRM);
438         END IF;  --(l_proc_level >= l_dbg_level)
439         IF MASTER_ITEM IS NULL THEN
440           MASTER_ITEM := GDF_Item(p_invoice_id,
441                                    p_invoice_distribution_id
442                                  );
443           RETURN MASTER_ITEM;
444         END IF;
445             RAISE;
446              --  return('master_item_exp');
447     END Master_Item;
448 
449   --==========================================================================
450   --  FUNCTION NAME:
451   --    Invoice_Category                 Public
452   --
453   --  DESCRIPTION:
454   --    This procedure is used to return different source value according to
455   --    invoice source input.
456   --
457   --  PARAMETERS:
458   --      p_Invoice_Source               invoice source
459   --      p_invoice_id                   invoice id
460   --      p_invoice_line_number          invoice line number
461   --      p_distribution_line_number     distribution line number
462   --
463   --  DESIGN REFERENCES:
464   --      None
465   --
466   --  CHANGE HISTORY:
467  --     06/08/2007     yanbo liu        updated
468   --===========================================================================
469   FUNCTION Invoice_Category(p_Invoice_Source            IN VARCHAR2,
470                             p_invoice_id                IN  NUMBER,
471                             p_invoice_distribution_id  IN  NUMBER)
472     RETURN VARCHAR2 IS
473     Source_Value  VARCHAR2(200):=NULL;
474     l_dbg_level               NUMBER        :=FND_LOG.G_Current_Runtime_Level;
475     l_proc_level              NUMBER        :=FND_LOG.Level_Procedure;
476     l_proc_name               VARCHAR2(100) :='Invoice Category';
477   BEGIN
478 
479   IF (l_proc_level >= l_dbg_level)
480     THEN
481       FND_LOG.String( l_proc_level
482                      ,l_module_prefix||'.'||l_proc_name||'.begin'
483                      ,'Enter procedure'
484                     );
485       FND_LOG.String( l_proc_level
486                      ,l_module_prefix||'.'||l_proc_name||'.parameters'
487                      ,'p_Invoice_Source '||p_Invoice_Source
488                     );
489       FND_LOG.String( l_proc_level
490                      ,l_module_prefix||'.'||l_proc_name||'.parameters'
491                      ,'p_invoice_id  '||p_invoice_id
492                     );
493 
494       FND_LOG.String(l_proc_level
495                     ,l_module_prefix||'.'||l_proc_name||'.parameters'
496                     ,'p_invoice_distribution_id'||p_invoice_distribution_id
497                     );
498 
499     END IF;  --(l_proc_level >= l_dbg_level)
500 
501     --  This function will call different function and return different value
502     --  according to the parameter Invoice Source.
503 
504     IF p_Invoice_Source IS NULL OR p_invoice_id IS NULL OR p_invoice_distribution_id IS NULL THEN
505         RETURN NULL;
506     ELSE
507         CASE p_Invoice_Source
508           WHEN 'Manual Invoice Entry'
509           THEN
510               Source_Value := GDF_Item(p_invoice_id,
511                                        p_invoice_distribution_id
512                                        );
513           WHEN 'SelfService'
514           THEN
515               Source_Value := Expense_Item(p_invoice_id,
516                                            p_invoice_distribution_id);
517           WHEN 'XpenseXpress'
518           THEN
519               Source_Value := Expense_Item(p_invoice_id,
520                                            p_invoice_distribution_id);
521           WHEN 'ERS'
522           THEN
523               Source_Value := MASTER_ITEM_UPDATE(p_invoice_id,
524                                           p_invoice_distribution_id);
525           ELSE
526               Source_Value := GDF_Item(p_invoice_id,
527                                        p_invoice_distribution_id
528                                      );
529         END CASE ;
530 
531         IF (l_proc_level >= l_dbg_level)
532           THEN
533             FND_LOG.STRING(l_proc_level,
534                            l_module_prefix|| '.' || l_proc_name || '.end',
535                            'end procedure');
536           END IF;
537          RETURN Source_Value;
538         -- RETURN nvl(Source_Value,'0');
539    END IF;
540    EXCEPTION
541       WHEN OTHERS THEN
542         IF (l_proc_level >= l_dbg_level)
543         THEN
544           FND_LOG.String( l_proc_level
545                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
546                          ,SQLCODE||':'||SQLERRM);
547         END IF;  --(l_proc_level >= l_dbg_level)
548 
549         RETURN NULL;
550         RAISE;
551      --  return('invoice_category');
552   END Invoice_Category;
553     --==========================================================================
554   --  FUNCTION NAME:
555   --  GET_PROJECT_NUM                 Public
556   --
557   --  DESCRIPTION:
558   --    This procedure is used to return project number according to project id
559   --
560   --
561   --  PARAMETERS:
562   --      Project_id         Project id
563   --
564   --  DESIGN REFERENCES:
565   --      None
566   --
567   --  CHANGE HISTORY:
568   --  09/08/2007     yanbo liu        updated
569   --===========================================================================
570 
571   FUNCTION GET_PROJECT_NUM(Project_id           IN  NUMBER)
572   RETURN VARCHAR2 IS
573     project_num               PA_PROJECTS_ALL.Segment1%type:=null;
574     l_dbg_level               NUMBER        :=FND_LOG.G_Current_Runtime_Level;
575     l_proc_level              NUMBER        :=FND_LOG.Level_Procedure;
576     l_proc_name               VARCHAR2(100) :='GET_PROJECT_NUM';
577   BEGIN
578 
579     IF (l_proc_level >= l_dbg_level)
580     THEN
581       FND_LOG.String( l_proc_level
582                      ,l_module_prefix||'.'||l_proc_name||'.begin'
583                      ,'Enter procedure'
584                     );
585       FND_LOG.String( l_proc_level
586                      ,l_module_prefix||'.'||l_proc_name||'.parameters'
587                      ,'Project_id  '||Project_id
588                     );
589 
590     END IF;  --(l_proc_level >= l_dbg_level)
591 
592     --get project number by project id.
593     IF Project_id IS NULL THEN
594        RETURN NULL;
595     ELSE
596        SELECT SEGMENT1
597        INTO project_num
598        FROM PA_PROJECTS_ALL
599        WHERE PROJECT_ID = Project_id;
600 
601        RETURN project_num;
602     END IF;
603 
604 
605     EXCEPTION
606 
607       WHEN OTHERS THEN
608         IF (l_proc_level >= l_dbg_level)
609         THEN
610           FND_LOG.String( l_proc_level
611                          ,l_module_prefix||'.'||l_proc_name||'.Other_Exception '
612                          ,SQLCODE||':'||SQLERRM);
613         END IF;  --(l_proc_level >= l_dbg_level)
614         RETURN NULL;
615         RAISE;
616   END GET_PROJECT_NUM;
617 
618 
619 BEGIN
620   NULL;
621   -- Initialization
622 --  <Statement>
623 end JA_CN_CUSTOM_SOURCES;
624 
625