27: begin
28: v_debug := x_text;
29: -- insert into sailen
30: -- select sailen_s.nextval, x_text from dual;
31: -- fnd_message.debug(x_text);
32: -- dbms_output.put_line(x_text);
33: null;
34: end;
35:
46: AND NVL(end_date_active,GHG_utilities_pkg.end_date)
47: AND lookup_code = p_batch_type;
48:
49: IF v_row_count > 0 THEN
50: FND_MESSAGE.SET_NAME('GHG', 'GHG_INTERNAL_BATCH_TYPE_USED');
51: RAISE raise_error;
52: ELSE
53: v_row_count := 0;
54: END IF;
65: AND NVL(end_date_active,GHG_utilities_pkg.end_date)
66: AND lookup_code = p_batch_sub_type;
67:
68: IF v_row_count = 0 THEN
69: FND_MESSAGE.SET_NAME('GHG', 'GHG_SUB_BATCH_UNKNOWN');
70: RAISE raise_error;
71: ELSE
72: v_row_count := 0;
73: END IF;
78: IF p_batch_type = 'ITEM' THEN
79: x_debug('item ' || p_item_number);
80: IF p_item_number is NULL THEN
81: x_debug('item is null for ITEM batch type');
82: FND_MESSAGE.SET_NAME('GHG', 'GHG_INVALID_ITEM');
83: RAISE raise_error;
84: END IF;
85:
86: END IF;
100: AND TRUNC(NVL(inactive_date, sysdate + 1)) > TRUNC(sysdate)
101: AND pay_site_flag = 'Y');
102:
103: IF v_row_count = 0 THEN
104: FND_MESSAGE.SET_NAME('GHG', 'GHG_INVALID_SUPPLIER_ID');
105: RAISE raise_error;
106: ELSE
107: v_row_count := 0;
108: END IF;
117: AND TRUNC(NVL(inactive_date, sysdate + 1)) > TRUNC(sysdate)
118: AND pay_site_flag = 'Y';
119:
120: IF v_row_count = 0 THEN
121: FND_MESSAGE.SET_NAME('GHG', 'GHG_INVALID_SUPPLIER_SITE_ID');
122: RAISE raise_error;
123: ELSE
124: v_row_count := 0;
125: END IF;
135: AND TRUNC(SYSDATE) BETWEEN start_date_active AND NVL(end_date_active,GHG_utilities_pkg.end_date)
136: AND lookup_code = nvl(p_emission_scope, 'NA');
137:
138: IF v_row_count = 0 THEN
139: FND_MESSAGE.SET_NAME('GHG','GHG_SCOPE_UNKNOWN');
140: RAISE raise_error;
141: ELSE
142: v_row_count := 0;
143: END IF;
152: AND NVL(end_date_active,GHG_utilities_pkg.end_date)
153: AND lookup_code = nvl(p_m_criteria,'-1');
154:
155: IF v_row_count = 0 THEN
156: FND_MESSAGE.SET_NAME('GHG', 'GHG_INVALID_MEASURE_CRITERIA');
157: RAISE raise_error;
158: ELSE
159: v_row_count := 0;
160: END IF;
161:
162: -- Check Emission Usage
163: x_debug('Check Emission Usage');
164: IF p_emission_usage is NULL THEN
165: FND_MESSAGE.SET_NAME('GHG', 'GHG_NULL_USAGE_QUANTITY');
166: RAISE raise_error;
167: END IF;
168:
169: /*******************************************************************
188: OR (txn.transaction_date_to between p_emission_from_date
189: and p_emission_to_date );
190:
191: IF v_row_count > 0 THEN
192: FND_MESSAGE.SET_NAME('GHG', 'GHG_TRANSACTIONS_EXIST');
193: RAISE raise_error;
194: ELSE
195: v_row_count := 0;
196: END IF;
206: AND TRUNC(SYSDATE) BETWEEN start_date_active AND NVL(end_date_active,GHG_utilities_pkg.end_date)
207: AND lookup_code = p_emission_location;
208:
209: IF v_row_count = 0 THEN
210: FND_MESSAGE.SET_NAME('GHG','GHG_LOCATION_UNKNOWN');
211: RAISE raise_error;
212: ELSE
213: v_row_count := 0;
214: END IF;
219: EXCEPTION
220: WHEN raise_error THEN
221:
222: -- Re-used from Bug 12434320
223: v_msg_code := FND_MESSAGE.GET;
224:
225: -- dbms_output.put_line ('Error is ' || v_msg_code);
226: if v_msg_code is not null then
227: v_msg_code := substr(v_msg_code,5);
229: else
230: v_msg_code := 'GHG_VALIDATE_TXN_INPUT_ERROR';
231: end if;
232:
233: FND_MESSAGE.SET_NAME('GHG',v_msg_code);
234: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
235:
236: when others then
237:
234: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
235:
236: when others then
237:
238: FND_MESSAGE.SET_NAME('GHG','GHG_VALIDATE_TXN_INPUT_ERROR');
239: RAISE_APPLICATION_ERROR(-20002, 'GHG_VALIDATE_TXN_INPUT_ERROR');
240: */
241:
242: END validate_transaction_inputs;
301: begin
302: v_debug := x_text;
303: -- insert into sailen
304: -- select sailen_s.nextval, x_text from dual;
305: -- fnd_message.debug(x_text);
306: -- dbms_output.put_line(x_text);
307: null;
308: end;
309:
320: x_debug('In Org_id :'||p_org_id);
321:
322: -- Check Inputs Batch Type
323: IF p_batch_type IS NULL THEN
324: FND_MESSAGE.SET_NAME('GHG', 'GHG_BATCH_TYPE_MISSING');
325: RAISE raise_error;
326: ELSE
327: SELECT count(*)
328: INTO v_check
335: -- This is to cater for the fact that teh API has been called from PO
336: IF p_batch_type = 'INT_INVOICE' THEN
337: NULL;
338: ELSE
339: FND_MESSAGE.SET_NAME('GHG', 'GHG_BATCH_UNKNOWN');
340: RAISE raise_error;
341: END IF;
342: ELSE
343: v_check := 0;
364:
365: /* EXCEPTION
366: WHEN OTHERS THEN
367: -- Re-used from Bug 12434320
368: v_msg_code := FND_MESSAGE.GET;
369:
370: if v_msg_code is not null then
371: v_msg_code := substr(v_msg_code,5);
372: v_msg_code := substr(v_msg_code,1,length(v_msg_code)-1);
373: else
374: v_msg_code := 'GHG_VALIDATE_TXN_INPUT_ERROR';
375: end if;
376:
377: FND_MESSAGE.SET_NAME('GHG',v_msg_code);
378:
379: RAISE raise_error;
380: END; */
381:
380: END; */
381:
382: -- Check Inputs Batch Number
383: if P_BATCH_NUMBER is null then
384: FND_MESSAGE.SET_NAME('GHG', 'GHG_BATCH_NUM_MISSING');
385: RAISE raise_error;
386: ELSE
387: SELECT set_of_books_id
388: INTO v_set_of_books_id
402: IF v_batch_status = 'A' THEN
403: IF v_batch_type = 'INT_INVOICE' THEN
404: NULL;
405: ELSE
406: FND_MESSAGE.SET_NAME('GHG', 'GHG_BATCH_APPROVED');
407: RAISE raise_error;
408: END IF;
409: END IF;
410:
408: END IF;
409: END IF;
410:
411: IF v_batch_type <> p_batch_type THEN
412: FND_MESSAGE.SET_NAME('GHG','GHG_BATCH_TYPE_DIFFER');
413: RAISE raise_error;
414: END IF;
415:
416: EXCEPTION
453: AND msi.INVENTORY_ITEM_ID = gsi.INVENTORY_ITEM_ID
454: and gsi.SOURCE_ID = s.SOURCE_ID;
455: EXCEPTION
456: WHEN NO_DATA_FOUND THEN
457: FND_MESSAGE.SET_NAME('GHG','GHG_ITEM_NO_DEFAULT');
458: RAISE raise_error;
459: END;
460: END IF;
461:
488: from GHG_SOURCES
489: where source_name = nvl(p_emission_source_name, v_emission_source_name);
490: EXCEPTION
491: when no_data_found then
492: FND_MESSAGE.SET_NAME('GHG','GHG_SOURCE_UNKNOWN');
493: RAISE raise_error;
494: END;
495: END IF;
496:
507: AND TRUNC(SYSDATE) BETWEEN start_date_active AND NVL(end_date_active,GHG_utilities_pkg.end_date)
508: AND lookup_code = nvl(p_emission_scope,v_emission_scope);
509:
510: IF v_check = 0 THEN
511: FND_MESSAGE.SET_NAME('GHG','GHG_SCOPE_UNKNOWN');
512: RAISE raise_error;
513: ELSE
514: v_check := 0;
515: END IF;
517: */
518:
519: -- Check Facility
520: IF p_facility IS NULL THEN
521: FND_MESSAGE.SET_NAME('GHG','GHG_FACILITY_MISSING');
522: RAISE raise_error;
523: ELSE
524: BEGIN
525: SELECT ghg_organization_id
529: AND allow_transactions = 'Y';
530:
531: EXCEPTION
532: WHEN NO_DATA_FOUND THEN
533: FND_MESSAGE.SET_NAME('GHG','GHG_FACILITY_UNKNOWN');
534: RAISE raise_error;
535: END;
536:
537: BEGIN
544: AND allow_transactions = 'Y';
545:
546: EXCEPTION
547: WHEN NO_DATA_FOUND THEN
548: FND_MESSAGE.SET_NAME('GHG','GHG_FACILITY_INVALID');
549: RAISE raise_error;
550: END;
551:
552: END IF;
579: -- Check Emission Location
580: --IF nvl(p_emission_location,v_emission_location) IS NULL THEN
581: --Bug 12546495: ssurendr. Use location from organization
582: IF v_emission_location IS NULL THEN
583: FND_MESSAGE.SET_NAME('GHG','GHG_LOCATION_MISSING');
584: RAISE raise_error;
585: ELSE
586: SELECT count(*)
587: INTO v_check
592: --AND lookup_code = nvl(p_emission_location,v_emission_location);
593: --Bug 12546495: ssurendr. Use location from organization
594:
595: IF v_check = 0 THEN
596: FND_MESSAGE.SET_NAME('GHG','GHG_LOCATION_UNKNOWN');
597: RAISE raise_error;
598: ELSE
599: v_check := 0;
600: END IF;
601: END IF;
602:
603: -- Check Emission UOM
604: IF p_emission_uom IS NULL THEN
605: FND_MESSAGE.SET_NAME('GHG','GHG_UOM_MISSING');
606: RAISE raise_error;
607: ELSE
608: SELECT count(*)
609: INTO v_check
616: AND source_id = v_emission_source_id
617: AND mum2.unit_of_measure = p_emission_uom;
618:
619: IF v_check = 0 THEN
620: FND_MESSAGE.SET_NAME('GHG','GHG_UOM_UNKNOWN');
621: RAISE raise_error;
622: ELSE
623: v_check := 0;
624: END IF;
625: END IF;
626:
627: -- Check Emission Dates
628: IF p_emission_from_date IS NULL OR p_emission_to_date IS NULL THEN
629: FND_MESSAGE.SET_NAME('GHG','GHG_DATE_MISSING');
630: RAISE raise_error;
631: ELSE
632: IF p_emission_from_date > p_emission_to_date THEN
633: FND_MESSAGE.SET_NAME('GHG','GHG_DATE_INVALID');
629: FND_MESSAGE.SET_NAME('GHG','GHG_DATE_MISSING');
630: RAISE raise_error;
631: ELSE
632: IF p_emission_from_date > p_emission_to_date THEN
633: FND_MESSAGE.SET_NAME('GHG','GHG_DATE_INVALID');
634: RAISE raise_error;
635: END IF;
636:
637: END IF;
691: v_asset_id ,
692: v_facility_id) THEN
693: v_rates_exist_manual_loc := 'Y';
694: ELSE
695: FND_MESSAGE.SET_NAME('GHG','GHG_RATE_UNAVAILABLE');
696: RAISE raise_error;
697: END IF;
698: END IF;
699: ELSE
710: v_asset_id ,
711: v_facility_id) THEN
712: NULL;
713: ELSE
714: FND_MESSAGE.SET_NAME('GHG','GHG_RATE_UNAVAILABLE');
715: RAISE raise_error;
716: END IF;
717: END IF;
718:
842: WHEN raise_error THEN
843: x_debug('Raise Error 1');
844:
845: -- Bug 12434320
846: v_msg_code := FND_MESSAGE.GET_ENCODED;
847:
848: if v_msg_code is not null then
849: v_msg_code := substr(v_msg_code,5);
850: v_msg_code := substr(v_msg_code,1,length(v_msg_code)-1);
847:
848: if v_msg_code is not null then
849: v_msg_code := substr(v_msg_code,5);
850: v_msg_code := substr(v_msg_code,1,length(v_msg_code)-1);
851: FND_MESSAGE.SET_NAME('GHG',v_msg_code);
852: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
853: else
854: FND_MESSAGE.SET_NAME('GHG', 'GHG_DEBUG');
855: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
850: v_msg_code := substr(v_msg_code,1,length(v_msg_code)-1);
851: FND_MESSAGE.SET_NAME('GHG',v_msg_code);
852: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
853: else
854: FND_MESSAGE.SET_NAME('GHG', 'GHG_DEBUG');
855: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
856: --FND_MESSAGE.SET_TOKEN('DEBUG_INFO', NULL);
857: RAISE_APPLICATION_ERROR(-20002, 'GHG_DEBUG~' || SQLERRM);
858: end if;
851: FND_MESSAGE.SET_NAME('GHG',v_msg_code);
852: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
853: else
854: FND_MESSAGE.SET_NAME('GHG', 'GHG_DEBUG');
855: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
856: --FND_MESSAGE.SET_TOKEN('DEBUG_INFO', NULL);
857: RAISE_APPLICATION_ERROR(-20002, 'GHG_DEBUG~' || SQLERRM);
858: end if;
859:
852: RAISE_APPLICATION_ERROR(-20002, v_msg_code || '~');
853: else
854: FND_MESSAGE.SET_NAME('GHG', 'GHG_DEBUG');
855: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
856: --FND_MESSAGE.SET_TOKEN('DEBUG_INFO', NULL);
857: RAISE_APPLICATION_ERROR(-20002, 'GHG_DEBUG~' || SQLERRM);
858: end if;
859:
860:
860:
861:
862: when others then
863:
864: FND_MESSAGE.SET_NAME('GHG', 'GHG_SQLERRM');
865: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
866: RAISE_APPLICATION_ERROR(-20002, 'GHG_SQLERRM~' || SQLERRM);
867:
868: END create_transaction;
861:
862: when others then
863:
864: FND_MESSAGE.SET_NAME('GHG', 'GHG_SQLERRM');
865: FND_MESSAGE.SET_TOKEN('ERROR', substr(SQLERRM,1,75));
866: RAISE_APPLICATION_ERROR(-20002, 'GHG_SQLERRM~' || SQLERRM);
867:
868: END create_transaction;
869:
934: GHG_EMISSION_RATES_PKG.calculate_emissions(emissions.transaction_id);
935: END LOOP;
936:
937: --Start of Code--Added by neechand as per Bug 14741401 on 23rd jan 2013
938: /* v_msg:=fnd_message.get_string('GHG','GHG_LOG_INFO_MSG');
939: v_msg := v_msg || v_count;
940: FND_FILE.put_line(FND_FILE.log, v_msg);*/
941:
942: FND_MESSAGE.SET_NAME('GHG', 'GHG_LOG_INFO_MSG');
938: /* v_msg:=fnd_message.get_string('GHG','GHG_LOG_INFO_MSG');
939: v_msg := v_msg || v_count;
940: FND_FILE.put_line(FND_FILE.log, v_msg);*/
941:
942: FND_MESSAGE.SET_NAME('GHG', 'GHG_LOG_INFO_MSG');
943: FND_MESSAGE.SET_TOKEN('ROW_COUNT',v_count);
944: FND_FILE.put_line(FND_FILE.log, FND_MESSAGE.GET);
945: --End of Code--Added by neechand as per Bug 14741401 on 23rd jan 2013
946: END IF;
939: v_msg := v_msg || v_count;
940: FND_FILE.put_line(FND_FILE.log, v_msg);*/
941:
942: FND_MESSAGE.SET_NAME('GHG', 'GHG_LOG_INFO_MSG');
943: FND_MESSAGE.SET_TOKEN('ROW_COUNT',v_count);
944: FND_FILE.put_line(FND_FILE.log, FND_MESSAGE.GET);
945: --End of Code--Added by neechand as per Bug 14741401 on 23rd jan 2013
946: END IF;
947:
940: FND_FILE.put_line(FND_FILE.log, v_msg);*/
941:
942: FND_MESSAGE.SET_NAME('GHG', 'GHG_LOG_INFO_MSG');
943: FND_MESSAGE.SET_TOKEN('ROW_COUNT',v_count);
944: FND_FILE.put_line(FND_FILE.log, FND_MESSAGE.GET);
945: --End of Code--Added by neechand as per Bug 14741401 on 23rd jan 2013
946: END IF;
947:
948: EXCEPTION
999:
1000: v_dblink := fnd_profile.value('GHG_DW_DBLINK');
1001:
1002: if v_dblink is null then
1003: FND_MESSAGE.SET_NAME('GHG', 'GHG_DW_DB_LINK_MISSING');
1004: RAISE raise_error;
1005: END IF;
1006:
1007: SELECT USERENV('LANG') INTO v_language from dual;