DBA Data[Home] [Help]

PACKAGE BODY: APPS.JAI_AR_CR_TRIGGER_PKG

Source


1 PACKAGE BODY jai_ar_cr_trigger_pkg AS
2 /* $Header: jai_arcr_trg_pkg.plb 120.1.12000000.1 2007/07/24 06:55:35 rallamse noship $ */
3 
4 	PROCEDURE ARI_T1 	(pr_old 	IN	t_rec%type ,
5 				 pr_new 	IN	t_rec%type ,
6 				 pv_action 	IN	VARCHAR2 ,
7 				 pv_return_code OUT NOCOPY VARCHAR2 ,
8 				 pv_return_message OUT NOCOPY VARCHAR2 )
9 	IS
10 
11 	CURSOR C_CURRENT_SID
12 	IS
13 	SELECT	JAI_AR_CASH_RECEIPTS_S1.CURRVAL
14 	FROM DUAL;
15 
16 	CURSOR C_CHECK_TMP_DATA(PN_TEMP_SEQUENCE_ID	NUMBER)
17 	IS
18 	SELECT	LOC_CASH_RECEIPT_ID,
19 		RECEIPT_AMOUNT,
20 		CUSTOMER_ID,
21 		CONFIRM_FLAG,
22 		CURRENCY_CODE,
23 		EXCHANGE_RATE
24 	FROM 	JAI_AR_CASH_RECEIPTS_ALL
25 	WHERE 	TEMP_SEQUENCE_ID = PN_TEMP_SEQUENCE_ID
26 	AND 	CASH_RECEIPT_ID IS NULL;
27 
28 	r_check_tmp_data	c_check_tmp_data%ROWTYPE;
29 	ln_session_id		NUMBER;
30 	lv_process_flag		VARCHAR2(2);
31 	lv_process_message 	VARCHAR2(1000);
32 
33 	BEGIN
34 		pv_return_code := jai_constants.successful;
35 
36 		BEGIN
37 			OPEN c_current_sid;
38 			FETCH c_current_sid INTO ln_session_id;
39 			CLOSE c_current_sid;
40 		EXCEPTION
41 			WHEN OTHERS THEN
42 				NULL;
43 		END;
44 
45 		OPEN c_check_tmp_data(ln_session_id);
46 		FETCH c_check_tmp_data INTO r_check_tmp_data;
47 		CLOSE c_check_tmp_data;
48 
49 		IF r_check_tmp_data.loc_cash_receipt_id IS NOT NULL THEN
50 
51 			IF r_check_tmp_data.receipt_amount <> pr_new.amount OR
52 					r_check_tmp_data.customer_id <> pr_new.pay_from_customer OR
53 					r_check_tmp_data.currency_code <> pr_new.currency_code OR
54 					r_check_tmp_data.exchange_rate <> pr_new.exchange_rate
55 			THEN
56 				--raise_application_error(-20010,'Either of Receipt Amount or customer details or currency details are changed. Delete the record using Zoom function');
57 				pv_return_code 		:= jai_constants.expected_error;
58 				pv_return_message := 'Either of Receipt Amount or customer details or currency details are changed. Delete the record using Tools Menu';
59 				return;
60 			END IF;
61 
62 			UPDATE	jai_ar_cash_receipts_all
63 			SET 		cash_receipt_id = pr_new.cash_receipt_id,
64 							temp_sequence_id = NULL
65 			WHERE 	loc_cash_receipt_id = r_check_tmp_data.loc_cash_receipt_id;
66 
67 			UPDATE	jai_cmn_document_taxes
68 			SET 		source_doc_id = pr_new.cash_receipt_id,
69 							source_doc_line_id = NULL
70 			WHERE 	source_doc_line_id = r_check_tmp_data.loc_cash_receipt_id
71 			AND 		source_table_name = 'JAI_AR_CASH_RECEIPTS_ALL';
72 
73 			IF r_check_tmp_data.confirm_flag = 'Y' THEN
74 
75 				jai_ar_cr_pkg.process_cm_dm(
76 												p_event							=>	jai_constants.ar_cash_tax_confirmed,
77 												p_new								=>	pr_new,
78 												p_old								=> 	pr_old,
79 												p_process_flag			=> 	lv_process_flag,
80 												p_process_message 	=> 	lv_process_message);
81 
82 				IF NVL(lv_process_flag,'XX') <> jai_constants.successful THEN
83 					--raise_application_error(-20011,	lv_process_message);
84 					pv_return_code 		:= jai_constants.expected_error;
85 					pv_return_message := lv_process_message;
86 					return;
87 				END IF;
88 
89 
90 			END IF;
91 
92 		ELSE
93 			--raise_application_error(-20010,'First process the taxes using Zoom function and then save the form');
94 			pv_return_code 		:= jai_constants.expected_error;
95 			pv_return_message := 'First process the taxes using Tools Menu and then save the form';
96 			return;
97 		END IF;
98 	EXCEPTION
99 	   WHEN OTHERS THEN
100 	     pv_return_code     :=  jai_constants.unexpected_error;
101 	     pv_return_message  := 'Encountered an error in jai_ar_cash_receipts_trg_pkg.ARI_T1 '  || substr(sqlerrm,1,1900);
102 
103 	END ARI_T1;
104 
105 
106 	PROCEDURE ARU_T1 (pr_old		IN	t_rec%type ,
107 			  pr_new 		IN	t_rec%type ,
108 			  pv_action 		IN	VARCHAR2 ,
109 			  pv_return_code 	OUT NOCOPY VARCHAR2 ,
110 			  pv_return_message 	OUT NOCOPY VARCHAR2 )
111 	IS
112 
113 	CURSOR c_ar_cash_receipts(cp_cash_receipt_id	NUMBER)
114 	IS
115 	SELECT	confirm_flag
116 	FROM 		jai_ar_cash_receipts_all
117 	WHERE 	cash_receipt_id = cp_cash_receipt_id;
118 
119 	r_ar_cash_receipts	c_ar_cash_receipts%ROWTYPE;
120 	lv_process_flag			VARCHAR2(2);
121 	lv_process_message 	VARCHAR2(1000);
122 
123 	BEGIN
124 		OPEN c_ar_cash_receipts(pr_old.cash_receipt_id);
125 		FETCH c_ar_cash_receipts INTO r_ar_cash_receipts;
126 		CLOSE c_ar_cash_receipts;
127 
128 		IF pr_old.amount <> pr_new.amount OR
129 			 pr_old.pay_from_customer <> pr_new.pay_from_customer OR
130 			 pr_old.reversal_date IS NULL AND pr_new.reversal_date is NOT NULL THEN
131 
132 			IF NVL(r_ar_cash_receipts.confirm_flag,'N') IN ('N','I') THEN
133 
134 				DELETE 	jai_cmn_document_taxes
135 				WHERE 	source_table_name = 'JAI_AR_CASH_RECEIPTS_ALL'
136 				AND 		source_doc_id = pr_old.cash_receipt_id;
137 
138 				DELETE 	jai_ar_cash_receipts_all
139 				WHERE 	cash_receipt_id = pr_old.cash_receipt_id;
140 			ELSE
141 				IF pr_old.reversal_date IS NULL AND pr_new.reversal_date is NOT NULL THEN
142 					jai_ar_cr_pkg.process_cm_dm(
143 										p_event		=>	jai_constants.trx_type_rct_rvs,
144 										p_new		=>	pr_new,
145 										p_old		=> 	pr_old,
146 										p_process_flag	=> 	lv_process_flag,
147 										p_process_message => 	lv_process_message);
148 
149 					IF NVL(lv_process_flag,'XX') <> jai_constants.successful THEN
150 						--raise_application_error(-20011,	lv_process_message);
151 						pv_return_code 		:= jai_constants.expected_error;
152 						pv_return_message := lv_process_message;
153 						return;
154 					END IF;
155 				ELSE
156 					--raise_application_error(-20011, 'Either receipt amount or customer details are changed. You can''t change these details. Reverse the receipt');
157 					pv_return_code 		:= jai_constants.expected_error;
158 					pv_return_message := 'Either receipt amount or customer details are changed. You can''t change these details. Reverse the receipt';
159 					return;
160 				END IF;
161 			END IF;
162 
163 		ELSE
164 			NULL;
165 		END IF;
166 	EXCEPTION
167 	   WHEN OTHERS THEN
168 	     pv_return_code     :=  jai_constants.unexpected_error;
169 	     pv_return_message  := 'Encountered an error in jai_ar_cash_receipts_trg_pkg.ARU_T1 '  || substr(sqlerrm,1,1900);
170 	END ARU_T1;
171 
172 	PROCEDURE ARD_T1 			 (pr_old 							IN	t_rec%type ,
173 													pr_new 							IN	t_rec%type ,
174 													pv_action 					IN	VARCHAR2 ,
175 													pv_return_code 			OUT NOCOPY VARCHAR2 ,
176 													pv_return_message 	OUT NOCOPY VARCHAR2 )
177 	IS
178 
179 	CURSOR c_ar_cash_receipts(cp_cash_receipt_id	NUMBER)
180 	IS
181 	SELECT	confirm_flag
182 	FROM 		jai_ar_cash_receipts_all
183 	WHERE 	cash_receipt_id = cp_cash_receipt_id;
184 
185 	r_ar_cash_receipts	c_ar_cash_receipts%ROWTYPE;
186 	lv_process_flag			VARCHAR2(2);
187 	lv_process_message 	VARCHAR2(1000);
188 
189 	BEGIN
190 		OPEN c_ar_cash_receipts(pr_old.cash_receipt_id);
191 		FETCH c_ar_cash_receipts INTO r_ar_cash_receipts;
192 		CLOSE c_ar_cash_receipts;
193 
194 		IF NVL(r_ar_cash_receipts.confirm_flag,'N') IN ('N','I') THEN
195 			DELETE 	jai_cmn_document_taxes
196 			WHERE 	source_table_name = 'JAI_AR_CASH_RECEIPTS_ALL'
197 			AND 		source_doc_id = pr_old.cash_receipt_id;
198 
199 			DELETE 	jai_ar_cash_receipts_all
200 			WHERE 	cash_receipt_id = pr_old.cash_receipt_id;
201 		ELSE
202 			--raise_application_error(-20011, 'You can''t delete this receipt. Reverse the receipt');
203 			pv_return_code 		:= jai_constants.expected_error;
204 			pv_return_message := 'You can''t delete this receipt. Reverse the receipt';
205 			return;
206 		END IF;
207 	EXCEPTION
208 	   WHEN OTHERS THEN
209 	     pv_return_code     :=  jai_constants.unexpected_error;
210 	     pv_return_message  := 'Encountered an error in jai_ar_cash_receipts_trg_pkg.ARD_T1 '  || substr(sqlerrm,1,1900);
211 	END ARD_T1;
212 
213 END;