90: and q.list_line_id=p_line_id;
91:
92:
93: l_qual_ind NUMBER := FND_API.G_MISS_NUM;
94: l_line_qual_exists VARCHAR2(1) := QP_PREQ_GRP.G_NO;
95: BEGIN
96:
97:
98: OPEN l_line_qual_exists_cur(p_list_line_id, p_list_header_id);
151: l_return_status VARCHAR2(1);
152:
153: BEGIN
154:
155: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157:
158: IF l_debug = FND_API.G_TRUE THEN
159: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Insertr_Coupon ...');
155: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157:
158: IF l_debug = FND_API.G_TRUE THEN
159: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Insertr_Coupon ...');
160: QP_PREQ_GRP.engine_debug ('p_issued_by_modifier_id: '||p_issued_by_modifier_id);
161: END IF; -- END IF l_debug
162:
163: --DBMS_OUTPUT.PUT_LINE('Inside insert_coupon');
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157:
158: IF l_debug = FND_API.G_TRUE THEN
159: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Insertr_Coupon ...');
160: QP_PREQ_GRP.engine_debug ('p_issued_by_modifier_id: '||p_issued_by_modifier_id);
161: END IF; -- END IF l_debug
162:
163: --DBMS_OUTPUT.PUT_LINE('Inside insert_coupon');
164: /* Coupon's effective dates:
202: x_coupon_id
203: FROM dual;
204:
205: IF l_debug = FND_API.G_TRUE THEN
206: QP_PREQ_GRP.engine_debug ('coupon_id going to QP_COUPONS table (QP_COUPONS_S.nextval): '||x_coupon_id);
207: QP_PREQ_GRP.engine_debug ('l_generated_coupon_number(QP_GENERATED_COUPON_NO_S.nextval): '||l_generated_coupon_number);
208: QP_PREQ_GRP.engine_debug ('p_user_def_coupon_number: '||p_user_def_coupon_number);
209: END IF; -- END IF l_debug
210:
203: FROM dual;
204:
205: IF l_debug = FND_API.G_TRUE THEN
206: QP_PREQ_GRP.engine_debug ('coupon_id going to QP_COUPONS table (QP_COUPONS_S.nextval): '||x_coupon_id);
207: QP_PREQ_GRP.engine_debug ('l_generated_coupon_number(QP_GENERATED_COUPON_NO_S.nextval): '||l_generated_coupon_number);
208: QP_PREQ_GRP.engine_debug ('p_user_def_coupon_number: '||p_user_def_coupon_number);
209: END IF; -- END IF l_debug
210:
211: x_coupon_number := p_user_def_coupon_number||l_generated_coupon_number;
204:
205: IF l_debug = FND_API.G_TRUE THEN
206: QP_PREQ_GRP.engine_debug ('coupon_id going to QP_COUPONS table (QP_COUPONS_S.nextval): '||x_coupon_id);
207: QP_PREQ_GRP.engine_debug ('l_generated_coupon_number(QP_GENERATED_COUPON_NO_S.nextval): '||l_generated_coupon_number);
208: QP_PREQ_GRP.engine_debug ('p_user_def_coupon_number: '||p_user_def_coupon_number);
209: END IF; -- END IF l_debug
210:
211: x_coupon_number := p_user_def_coupon_number||l_generated_coupon_number;
212:
210:
211: x_coupon_number := p_user_def_coupon_number||l_generated_coupon_number;
212:
213: IF l_debug = FND_API.G_TRUE THEN
214: QP_PREQ_GRP.engine_debug ('coupon_number going to QP_COUPONS table: '||x_coupon_number);
215: END IF; -- END IF l_debug
216:
217: INSERT INTO QP_COUPONS(
218: COUPON_ID,
285:
286: COUP_DENORMALIZED_COL_EXP EXCEPTION;
287: BEGIN
288:
289: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
290: x_return_status := FND_API.G_RET_STS_SUCCESS;
291:
292: IF l_debug = FND_API.G_TRUE THEN
293: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Create_Coupon_Qualifier ...');
289: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
290: x_return_status := FND_API.G_RET_STS_SUCCESS;
291:
292: IF l_debug = FND_API.G_TRUE THEN
293: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Create_Coupon_Qualifier ...');
294: QP_PREQ_GRP.engine_debug ('p_list_line_id: '||p_list_line_id);
295: QP_PREQ_GRP.engine_debug ('p_coupon_id: '||p_coupon_id);
296: END IF; -- END IF l_debug
297:
290: x_return_status := FND_API.G_RET_STS_SUCCESS;
291:
292: IF l_debug = FND_API.G_TRUE THEN
293: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Create_Coupon_Qualifier ...');
294: QP_PREQ_GRP.engine_debug ('p_list_line_id: '||p_list_line_id);
295: QP_PREQ_GRP.engine_debug ('p_coupon_id: '||p_coupon_id);
296: END IF; -- END IF l_debug
297:
298:
291:
292: IF l_debug = FND_API.G_TRUE THEN
293: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Create_Coupon_Qualifier ...');
294: QP_PREQ_GRP.engine_debug ('p_list_line_id: '||p_list_line_id);
295: QP_PREQ_GRP.engine_debug ('p_coupon_id: '||p_coupon_id);
296: END IF; -- END IF l_debug
297:
298:
299: BEGIN
316: RAISE QP_COUPON_MODIFIER_NOT_FOUND;
317: END;
318:
319: IF l_debug = FND_API.G_TRUE THEN
320: QP_PREQ_GRP.engine_debug ('before calling Get_denormalized_qual_cols ...');
321: END IF; -- END IF l_debug
322:
323: Get_denormalized_qual_cols(l_list_header_id,
324: l_list_line_id,
381: fnd_global.login_id,
382: l_list_header_id,
383: l_list_line_id,
384: '=',
385: QP_PREQ_GRP.G_LIST_HEADER_CONTEXT,
386: QP_COUPON_PVT.G_COUPON_QUALIFIER,
387: to_char(p_coupon_id),
388: NULL,
389: qp_qualifier_group_no_s.nextval,
415: /* In the rare case that there was no qualifier for the coupon benefit line,
416: update qualification_ind because no there is a qualifier
417: If set up form correctly creates dummy qualifier, this should never happen */
418: -- Not needed ... Also the old qualification indicators are no more applicable #1545351
419: /* IF (l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_IND
420: OR l_qualification_ind = QP_PREQ_GRP.G_NO_RLTD_QUAL_IND
421: OR l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_PRIC_IND
422: OR l_qualification_ind = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND) THEN
423:
416: update qualification_ind because no there is a qualifier
417: If set up form correctly creates dummy qualifier, this should never happen */
418: -- Not needed ... Also the old qualification indicators are no more applicable #1545351
419: /* IF (l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_IND
420: OR l_qualification_ind = QP_PREQ_GRP.G_NO_RLTD_QUAL_IND
421: OR l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_PRIC_IND
422: OR l_qualification_ind = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND) THEN
423:
424: l_qualification_ind := l_qualification_ind-QP_PREQ_GRP.G_NO_QUAL_IND;
417: If set up form correctly creates dummy qualifier, this should never happen */
418: -- Not needed ... Also the old qualification indicators are no more applicable #1545351
419: /* IF (l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_IND
420: OR l_qualification_ind = QP_PREQ_GRP.G_NO_RLTD_QUAL_IND
421: OR l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_PRIC_IND
422: OR l_qualification_ind = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND) THEN
423:
424: l_qualification_ind := l_qualification_ind-QP_PREQ_GRP.G_NO_QUAL_IND;
425:
418: -- Not needed ... Also the old qualification indicators are no more applicable #1545351
419: /* IF (l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_IND
420: OR l_qualification_ind = QP_PREQ_GRP.G_NO_RLTD_QUAL_IND
421: OR l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_PRIC_IND
422: OR l_qualification_ind = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND) THEN
423:
424: l_qualification_ind := l_qualification_ind-QP_PREQ_GRP.G_NO_QUAL_IND;
425:
426: update qp_list_lines set qualification_ind
420: OR l_qualification_ind = QP_PREQ_GRP.G_NO_RLTD_QUAL_IND
421: OR l_qualification_ind = QP_PREQ_GRP.G_NO_QUAL_PRIC_IND
422: OR l_qualification_ind = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND) THEN
423:
424: l_qualification_ind := l_qualification_ind-QP_PREQ_GRP.G_NO_QUAL_IND;
425:
426: update qp_list_lines set qualification_ind
427: =decode(l_qualification_ind, 0, NULL, l_qualification_ind)
428: where list_line_id = l_list_line_id;
491:
492: -- Bug 9210291 - Replacing query to improve performance
493: /* UPDATE qp_qualifiers
494: SET end_date_active = p_pricing_effective_date
495: WHERE qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
496: AND qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
497: AND nvl(comparison_operator_code,'=') = '='
498: AND qualifier_attr_Value in
499: (select coupon_id from qp_coupons where coupon_number=p_Coupon_number);*/
499: (select coupon_id from qp_coupons where coupon_number=p_Coupon_number);*/
500:
501: UPDATE /*+ INDEX(qpq QP_QUALIFIERS_N4) */ qp_qualifiers qpq
502: SET qpq.end_date_active = p_pricing_effective_date
503: WHERE qpq.qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
504: AND qpq.qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
505: AND nvl(qpq.comparison_operator_code,'=') = '='
506: AND qpq.qualifier_attr_Value in
507: (select TO_CHAR(coupon_id) from qp_coupons where coupon_number=p_Coupon_number);
565: -- Bug 9210291 - Replacing query to improve performance.
566: /*
567: UPDATE qp_qualifiers
568: SET end_date_active = NULL
569: WHERE qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
570: AND qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
571: AND nvl(comparison_operator_code,'=') = '='
572: AND qualifier_attr_Value=p_Coupon_ID;
573: */
573: */
574:
575: UPDATE /*+ INDEX(qpq QP_QUALIFIERS_N4) */ qp_qualifiers qpq
576: SET qpq.end_date_active = NULL
577: WHERE qpq.qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
578: AND qpq.qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
579: AND nvl(qpq.comparison_operator_code,'=') = '='
580: AND qpq.qualifier_attr_Value=TO_CHAR(p_Coupon_ID);
581:
624: -- Bug 9210291 - Replacing query to improve performance.
625: /*
626: UPDATE qp_qualifiers
627: SET end_date_active = NULL
628: WHERE qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
629: AND qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
630: AND nvl(comparison_operator_code,'=') = '='
631: AND qualifier_attr_Value in
632: (select coupon_id from qp_coupons where coupon_number=p_Coupon_Number);
633: */
634:
635: UPDATE /*+ INDEX(qpq QP_QUALIFIERS_N4) */ qp_qualifiers qpq
636: SET qpq.end_date_active = NULL
637: WHERE qpq.qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
638: AND qpq.qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
639: AND nvl(qpq.comparison_operator_code,'=') = '='
640: AND qpq.qualifier_attr_Value in
641: (select TO_CHAR(coupon_id) from qp_coupons where coupon_number=p_Coupon_Number);
716: /*
717: INDX,QP_COUPON_PVT.Delete_Coupon.Delete_Coupon_sel1,QP_COUPONS_PK,COUPON_ID,1
718: */
719: DELETE FROM qp_qualifiers
720: WHERE qualifier_context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
721: AND qualifier_attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
722: AND nvl(comparison_operator_code,'=') = '='
723: AND qualifier_attr_Value in
724: (select coupon_id from qp_coupons where coupon_number=p_coupon_number);
812: AND b.CREATED_FROM_LIST_LINE_ID = c.LIST_LINE_ID
813: AND b.CREATED_FROM_LIST_LINE_TYPE
814: = QP_COUPON_PVT.G_COUPON_ISSUE_LINE_TYPE
815: AND b.PRICING_PHASE_ID = p_pricing_phase_id
816: AND b.PRICING_STATUS_CODE = QP_PREQ_GRP.G_STATUS_NEW;
817:
818: l_number_of_coupons NUMBER := 1;
819: l_coupon_number VARCHAR2(240);
820: l_coupon_id NUMBER;
820: l_coupon_id NUMBER;
821: l_line_detail_index PLS_INTEGER;
822: l_return_status VARCHAR2(1);
823: BEGIN
824: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
825: x_return_status := FND_API.G_RET_STS_SUCCESS;
826:
827: IF l_debug = FND_API.G_TRUE THEN
828: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Process_Coupon_Issue...');
824: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
825: x_return_status := FND_API.G_RET_STS_SUCCESS;
826:
827: IF l_debug = FND_API.G_TRUE THEN
828: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Process_Coupon_Issue...');
829: QP_PREQ_GRP.engine_debug ('p_line_quantity: '||p_line_quantity);
830: END IF; -- END IF l_debug
831:
832: FOR i IN get_coupon_issue_lines
825: x_return_status := FND_API.G_RET_STS_SUCCESS;
826:
827: IF l_debug = FND_API.G_TRUE THEN
828: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Process_Coupon_Issue...');
829: QP_PREQ_GRP.engine_debug ('p_line_quantity: '||p_line_quantity);
830: END IF; -- END IF l_debug
831:
832: FOR i IN get_coupon_issue_lines
833: LOOP
831:
832: FOR i IN get_coupon_issue_lines
833: LOOP
834:
835: IF (i.price_break_type_code = QP_PREQ_GRP.G_RECURRING_BREAK) THEN
836:
837: IF l_debug = FND_API.G_TRUE THEN
838: QP_PREQ_GRP.engine_debug ('RECURRING BREAK ...');
839: QP_PREQ_GRP.engine_debug ('i.list_line_id: '||i.list_line_id);
834:
835: IF (i.price_break_type_code = QP_PREQ_GRP.G_RECURRING_BREAK) THEN
836:
837: IF l_debug = FND_API.G_TRUE THEN
838: QP_PREQ_GRP.engine_debug ('RECURRING BREAK ...');
839: QP_PREQ_GRP.engine_debug ('i.list_line_id: '||i.list_line_id);
840: END IF; -- END IF l_debug
841:
842: qp_process_other_benefits_pvt.calculate_recurring_quantity(
835: IF (i.price_break_type_code = QP_PREQ_GRP.G_RECURRING_BREAK) THEN
836:
837: IF l_debug = FND_API.G_TRUE THEN
838: QP_PREQ_GRP.engine_debug ('RECURRING BREAK ...');
839: QP_PREQ_GRP.engine_debug ('i.list_line_id: '||i.list_line_id);
840: END IF; -- END IF l_debug
841:
842: qp_process_other_benefits_pvt.calculate_recurring_quantity(
843: i.list_line_id,
849: x_return_status_txt
850: );
851:
852: IF l_debug = FND_API.G_TRUE THEN
853: QP_PREQ_GRP.engine_debug ('l_number_of_coupons: '||l_number_of_coupons);
854: END IF; -- END IF l_debug
855:
856: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
857: RAISE FND_API.G_EXC_ERROR;
861:
862: END IF;
863:
864: IF l_debug = FND_API.G_TRUE THEN
865: QP_PREQ_GRP.engine_debug ('p_simulation_flag: '||p_simulation_flag);
866: END IF; -- END IF l_debug
867:
868: FOR j IN 1..l_number_of_coupons
869: LOOP
918: */
919: UPDATE qp_npreq_ldets_tmp
920: SET PROCESSED_FLAG = 'Y',
921: LIST_LINE_NO = l_coupon_number,
922: PRICING_STATUS_CODE = QP_PREQ_GRP.G_STATUS_NEW,
923: PRICING_STATUS_TEXT = 'Coupon_Issue'
924: WHERE LINE_INDEX = i.LINE_INDEX
925: AND LINE_DETAIL_INDEX = i.LINE_DETAIL_INDEX;
926:
929: --SELECT max(line_detail_index)
930: --INTO l_line_detail_index
931: --FROM qp_npreq_ldets_tmp;
932:
933: l_line_detail_index := QP_PREQ_GRP.GET_LINE_DETAIL_INDEX;
934:
935: --DBMS_OUTPUT.PUT_LINE('max line detail'||l_line_detail_index);
936: -- 3. create adjustment line
937:
977: i.incompatability_grp_code,
978: i.process_code,
979: i.applied_flag,
980: i.modifier_level_code,
981: QP_PREQ_GRP.G_STATUS_NEW,
982: 'Coupon Issue');
983:
984: --DBMS_OUTPUT.PUT_LINE('Inserted adjustment line');
985:
1034: qp_coupons qpc
1035: WHERE qplat.line_index = qpd.line_index
1036: and qpl.line_index = qpd.line_index
1037: and qplat.line_detail_index = qpd.line_detail_index
1038: and qplat.attribute_type= QP_PREQ_GRP.G_QUALIFIER_TYPE
1039: and qplat.context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
1040: and qplat.attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
1041: and nvl(qplat.comparison_operator_type_code,'=') = '='
1042: and qplat.attribute_level = QP_PREQ_GRP.G_LINE_LEVEL
1035: WHERE qplat.line_index = qpd.line_index
1036: and qpl.line_index = qpd.line_index
1037: and qplat.line_detail_index = qpd.line_detail_index
1038: and qplat.attribute_type= QP_PREQ_GRP.G_QUALIFIER_TYPE
1039: and qplat.context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
1040: and qplat.attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
1041: and nvl(qplat.comparison_operator_type_code,'=') = '='
1042: and qplat.attribute_level = QP_PREQ_GRP.G_LINE_LEVEL
1043: and qpd.created_from_list_line_type <> QP_COUPON_PVT.G_COUPON_ISSUE_LINE_TYPE
1038: and qplat.attribute_type= QP_PREQ_GRP.G_QUALIFIER_TYPE
1039: and qplat.context= QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
1040: and qplat.attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
1041: and nvl(qplat.comparison_operator_type_code,'=') = '='
1042: and qplat.attribute_level = QP_PREQ_GRP.G_LINE_LEVEL
1043: and qpd.created_from_list_line_type <> QP_COUPON_PVT.G_COUPON_ISSUE_LINE_TYPE
1044: and qpd.APPLIED_FLAG = QP_PREQ_GRP.G_YES
1045: and qpd.pricing_status_code = QP_PREQ_GRP.G_STATUS_NEW
1046: and qpc.coupon_id = to_number(qplat.value_from);
1040: and qplat.attribute=QP_COUPON_PVT.G_COUPON_QUALIFIER
1041: and nvl(qplat.comparison_operator_type_code,'=') = '='
1042: and qplat.attribute_level = QP_PREQ_GRP.G_LINE_LEVEL
1043: and qpd.created_from_list_line_type <> QP_COUPON_PVT.G_COUPON_ISSUE_LINE_TYPE
1044: and qpd.APPLIED_FLAG = QP_PREQ_GRP.G_YES
1045: and qpd.pricing_status_code = QP_PREQ_GRP.G_STATUS_NEW
1046: and qpc.coupon_id = to_number(qplat.value_from);
1047:
1048: CURSOR get_coupons_line IS
1041: and nvl(qplat.comparison_operator_type_code,'=') = '='
1042: and qplat.attribute_level = QP_PREQ_GRP.G_LINE_LEVEL
1043: and qpd.created_from_list_line_type <> QP_COUPON_PVT.G_COUPON_ISSUE_LINE_TYPE
1044: and qpd.APPLIED_FLAG = QP_PREQ_GRP.G_YES
1045: and qpd.pricing_status_code = QP_PREQ_GRP.G_STATUS_NEW
1046: and qpc.coupon_id = to_number(qplat.value_from);
1047:
1048: CURSOR get_coupons_line IS
1049: SELECT DISTINCT coupon_number,
1054: qp_qualifiers qpq,
1055: qp_coupons qpc
1056: WHERE qplat.line_index = qpl.line_index
1057: and qplat.line_detail_index is null
1058: and qplat.attribute_type = QP_PREQ_GRP.G_QUALIFIER_TYPE
1059: and qplat.context = QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
1060: and qplat.attribute = QP_COUPON_PVT.G_COUPON_QUALIFIER
1061: and nvl(qplat.comparison_operator_type_code,'=') = '='
1062: and qpq.qualifier_context = qplat.context
1055: qp_coupons qpc
1056: WHERE qplat.line_index = qpl.line_index
1057: and qplat.line_detail_index is null
1058: and qplat.attribute_type = QP_PREQ_GRP.G_QUALIFIER_TYPE
1059: and qplat.context = QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
1060: and qplat.attribute = QP_COUPON_PVT.G_COUPON_QUALIFIER
1061: and nvl(qplat.comparison_operator_type_code,'=') = '='
1062: and qpq.qualifier_context = qplat.context
1063: and qpq.qualifier_attribute = qplat.attribute
1064: and qpq.QUALIFIER_ATTR_VALUE = qplat.value_from
1065: and qpc.coupon_id = to_number(qplat.value_from)
1066: and qpq.list_line_id = qpd.CREATED_FROM_LIST_LINE_ID
1067: and qpd.APPLIED_FLAG = QP_PREQ_PUB.G_YES
1068: and qpd.pricing_status_code = QP_PREQ_GRP.G_STATUS_NEW;
1069:
1070: l_return_status VARCHAR2(1);
1071: l_satis_quals_opt VARCHAR2(1);
1072:
1071: l_satis_quals_opt VARCHAR2(1);
1072:
1073: BEGIN
1074:
1075: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
1076: x_return_status := FND_API.G_RET_STS_SUCCESS;
1077:
1078: IF l_debug = FND_API.G_TRUE THEN
1079: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Redeem_Coupons');
1075: l_debug :=QP_PREQ_GRP.G_DEBUG_ENGINE;
1076: x_return_status := FND_API.G_RET_STS_SUCCESS;
1077:
1078: IF l_debug = FND_API.G_TRUE THEN
1079: QP_PREQ_GRP.engine_debug ('Entering QP_COUPON_PVT.Redeem_Coupons');
1080: END IF;
1081:
1082: --dbms_output.put_line('inside redeem coupon');
1083: IF (p_simulation_flag = 'N') THEN
1083: IF (p_simulation_flag = 'N') THEN
1084:
1085: l_satis_quals_opt := nvl(fnd_profile.VALUE('QP_SATIS_QUALS_OPT'), 'Y');
1086: IF l_debug = FND_API.G_TRUE THEN
1087: QP_PREQ_GRP.engine_debug('QP_SATIS_QUALS_OPT: ' || l_satis_quals_opt);
1088: END IF;
1089:
1090: -- [julin/4136528] drive off ldet attr if available (more performant),
1091: -- otherwise, use line attr and verify that coupon benefit (ldet) is applied.
1092: IF l_satis_quals_opt <> 'N' THEN
1093: FOR i IN get_coupons_ldet
1094: LOOP
1095: IF l_debug = FND_API.G_TRUE THEN
1096: QP_PREQ_GRP.engine_debug ('found coupon'||i.coupon_number);
1097: END IF;
1098:
1099: Mark_Coupon_Redeemed(i.Coupon_Number
1100: , i.pricing_effective_date
1111: ELSE
1112: FOR i IN get_coupons_line
1113: LOOP
1114: IF l_debug = FND_API.G_TRUE THEN
1115: QP_PREQ_GRP.engine_debug ('found coupon'||i.coupon_number);
1116: END IF;
1117:
1118: Mark_Coupon_Redeemed(i.Coupon_Number
1119: , i.pricing_effective_date