DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_MPP_AP_INVOICE_DISTS_PKG

Source


1 PACKAGE BODY IGI_MPP_AP_INVOICE_DISTS_PKG as
2  /* $Header: igipmudb.pls 115.7 2003/12/01 16:13:45 sdixit ship $ */
3 
4    --bug 3199481: following variables added for fnd logging changes:sdixit :start
5    l_debug_level number	:=	FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6    l_state_level number	:=	FND_LOG.LEVEL_STATEMENT;
7    l_proc_level number	:=	FND_LOG.LEVEL_PROCEDURE;
8    l_event_level number	:=	FND_LOG.LEVEL_EVENT;
9    l_excep_level number	:=	FND_LOG.LEVEL_EXCEPTION;
10    l_error_level number	:=	FND_LOG.LEVEL_ERROR;
11    l_unexp_level number	:=	FND_LOG.LEVEL_UNEXPECTED;
12 
13      PROCEDURE Lock_Row(X_Rowid              VARCHAR2,
14         X_Distribution_Line_Number           NUMBER,
15         X_Invoice_Id                         NUMBER,
16         X_Ignore_Mpp_Flag                    VARCHAR2,
17         X_Accounting_Rule_Id                 VARCHAR2,
18         X_Start_Date                         DATE,
19         X_Duration                           NUMBER
20 
21 
22      ) IS
23        CURSOR C IS
24           SELECT *
25          FROM   igi_mpp_ap_invoice_dists
26          WHERE  rowid = X_Rowid
27          FOR UPDATE of Invoice_id, Distribution_Line_Number NOWAIT;
28      Recinfo C%ROWTYPE;
29 
30    BEGIN
31      OPEN C;
32      FETCH C INTO Recinfo;
33      if (C%NOTFOUND) then
34        CLOSE C;
35        FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
36    --bug 3199481: fnd logging changes:sdixit :start
37        IF (l_error_level >=  l_debug_level ) THEN
38           FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmudb.IGI_MPP_AP_INVOICE_DISTS_PKG.Lock_Row.FORM_RECORD_DELETED',FALSE);
39        END IF;
40    --bug 3199481 fnd logging changes: sdixit: end block
41        APP_EXCEPTION.Raise_Exception;
42      end if;
43      CLOSE C;
44      if (
45              (Recinfo.distribution_line_number =  X_Distribution_Line_Number)
46          AND (Recinfo.invoice_id =  X_Invoice_Id)
47          AND (   (Recinfo.ignore_mpp_flag =  X_Ignore_Mpp_Flag)
48               OR (    (Recinfo.ignore_mpp_flag IS NULL)
49                    AND (X_Ignore_Mpp_Flag IS NULL)))
50          AND (   (Recinfo.start_date =  X_start_date)
51               OR (    (Recinfo.start_date IS NULL)
52                    AND (X_Start_Date IS NULL)))
53          AND (   (Recinfo.Duration =  X_Duration)
54               OR (    (Recinfo.Duration IS NULL)
55                    AND (X_Duration IS NULL)))
56           AND (Recinfo.accounting_rule_id = X_Accounting_Rule_Id)
57 
58         ) then
59         return;
60       else
61         FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
62    --bug 3199481: fnd logging changes:sdixit :start
63         IF (l_error_level >=  l_debug_level ) THEN
64            FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmerb.IGI_MPP_EXPENSE_RULES_PKG.Lock_Row.FORM_RECORD_CHANGED',FALSE);
65         END IF;
66    --bug 3199481 fnd logging changes: sdixit: end block
67         APP_EXCEPTION.Raise_Exception;
68       end if;
69     END Lock_Row;
70 
71 
72     PROCEDURE Update_Row(X_Rowid               VARCHAR2,
73          X_Distribution_Line_Number            NUMBER,
74          X_Invoice_Id                          NUMBER,
75          X_Ignore_Mpp_Flag                     VARCHAR2,
76          X_Accounting_Rule_Id                 VARCHAR2,
77          X_Start_Date                          DATE,
78          X_Duration                            NUMBER,
79          X_Last_Updated_By                     NUMBER,
80          X_Last_Update_Date                    DATE,
81          X_Last_Update_Login                   NUMBER
82 
83      ) IS
84      BEGIN
85        UPDATE igi_mpp_ap_invoice_dists
86        SET
87          ignore_mpp_flag                    =  nvl(X_Ignore_Mpp_Flag,'N'),
88          accounting_rule_id                 =  X_Accounting_Rule_Id,
89          start_date                         =  X_Start_Date,
90          duration                           =  X_Duration,
91          last_updated_by                    =  X_Last_Updated_By,
92          last_update_date                   =  X_Last_Update_Date,
93          last_update_login                  =  X_Last_Update_Login
94        WHERE rowid = X_Rowid;
95 
96        if (SQL%NOTFOUND) then
97    --bug 3199481: fnd logging changes:sdixit :start
98            IF (l_error_level >=  l_debug_level ) THEN
99               FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmudb.IGI_MPP_AP_INVOICE_DISTS_PKG.Update_Row.NO_DATA_FOUND',FALSE);
100            END IF;
101    --bug 3199481 fnd logging changes: sdixit: end block
102          Raise NO_DATA_FOUND;
103        end if;
104      END Update_Row;
105 
106 
107 END IGI_MPP_AP_INVOICE_DISTS_PKG;