396:
397: -- The fiscal years are not the same then return error.
398: IF (l_max_fiscal_year <> l_min_fiscal_year) THEN
399:
400: FND_MESSAGE.Set_Name('IGC','IGC_MULT_FISCAL_YEARS');
401: FND_MSG_PUB.Add;
402: x_return_status := FND_API.G_RET_STS_ERROR;
403:
404: END IF;
407: ,p_data => x_msg_data);
408:
409: EXCEPTION
410: WHEN e_document_not_found THEN
411: fnd_message.set_name('IGC','IGC_DOCUMENT_NOT_FOUND');
412: fnd_message.set_token('DOC_ID',p_document_id);
413: FND_MSG_PUB.Add;
414: x_return_status := FND_API.G_RET_STS_ERROR;
415: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
408:
409: EXCEPTION
410: WHEN e_document_not_found THEN
411: fnd_message.set_name('IGC','IGC_DOCUMENT_NOT_FOUND');
412: fnd_message.set_token('DOC_ID',p_document_id);
413: FND_MSG_PUB.Add;
414: x_return_status := FND_API.G_RET_STS_ERROR;
415: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
416: ,p_data => x_msg_data);
586:
587: -- Ensure the accounting date is not null
588:
589: IF (p_cbc_acct_date is NULL) THEN
590: FND_MESSAGE.SET_NAME('IGC','IGC_PO_ACCT_DATE_NULL');
591: FND_MSG_PUB.Add;
592: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
593: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
594: ,p_data => x_msg_data);
602: -- Check Fiscal year is not null
603:
604: IF l_fiscal_year is NULL THEN
605:
606: FND_MESSAGE.SET_NAME('IGC','IGC_FISCAL_YEAR_NOT_FOUND');
607: FND_MESSAGE.SET_TOKEN('CBC_DATE',p_cbc_acct_date);
608: FND_MSG_PUB.Add;
609: x_return_status := FND_API.G_RET_STS_ERROR;
610: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
603:
604: IF l_fiscal_year is NULL THEN
605:
606: FND_MESSAGE.SET_NAME('IGC','IGC_FISCAL_YEAR_NOT_FOUND');
607: FND_MESSAGE.SET_TOKEN('CBC_DATE',p_cbc_acct_date);
608: FND_MSG_PUB.Add;
609: x_return_status := FND_API.G_RET_STS_ERROR;
610: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
611: ,p_data => x_msg_data);
622: -- Check the accounting date is an open purchasing period
623:
624: IF l_po_prd_sts <> 'O'
625: THEN
626: FND_MESSAGE.SET_NAME('IGC','IGC_PO_PERIOD_NOT_OPEN');
627: FND_MSG_PUB.ADD;
628: x_return_status := FND_API.G_RET_STS_ERROR;
629: END IF;
630:
637: -- Check the accounting date is in an open or future entry GL period
638:
639: IF l_gl_prd_sts NOT IN ('O','F') THEN
640:
641: FND_MESSAGE.SET_NAME('IGC', 'IGC_GL_PERIOD_NOT_OPEN_OR_FE');
642: FND_MSG_PUB.ADD;
643: x_return_status := FND_API.G_RET_STS_ERROR;
644:
645: END IF;
675: -- later than the previous accounting date
676:
677: IF (p_cbc_acct_date < l_prev_cbc_acct_date) THEN
678:
679: FND_MESSAGE.SET_NAME('IGC','IGC_CC_ACCT_DATE_BEFORE_PREV');
680: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
681: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
682: FND_MSG_PUB.Add;
683: x_return_status := FND_API.G_RET_STS_ERROR;
676:
677: IF (p_cbc_acct_date < l_prev_cbc_acct_date) THEN
678:
679: FND_MESSAGE.SET_NAME('IGC','IGC_CC_ACCT_DATE_BEFORE_PREV');
680: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
681: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
682: FND_MSG_PUB.Add;
683: x_return_status := FND_API.G_RET_STS_ERROR;
684:
677: IF (p_cbc_acct_date < l_prev_cbc_acct_date) THEN
678:
679: FND_MESSAGE.SET_NAME('IGC','IGC_CC_ACCT_DATE_BEFORE_PREV');
680: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
681: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
682: FND_MSG_PUB.Add;
683: x_return_status := FND_API.G_RET_STS_ERROR;
684:
685: END IF;
691: -- The fiscal year must be the same as the previous accounting date fiscal year
692:
693: IF (l_prev_fiscal_year <> l_fiscal_year) THEN
694:
695: FND_MESSAGE.SET_NAME('IGC','IGC_FISCAL_YEAR_DIFF');
696: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
697: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
698: FND_MSG_PUB.Add;
699: x_return_status := FND_API.G_RET_STS_ERROR;
692:
693: IF (l_prev_fiscal_year <> l_fiscal_year) THEN
694:
695: FND_MESSAGE.SET_NAME('IGC','IGC_FISCAL_YEAR_DIFF');
696: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
697: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
698: FND_MSG_PUB.Add;
699: x_return_status := FND_API.G_RET_STS_ERROR;
700:
693: IF (l_prev_fiscal_year <> l_fiscal_year) THEN
694:
695: FND_MESSAGE.SET_NAME('IGC','IGC_FISCAL_YEAR_DIFF');
696: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
697: FND_MESSAGE.SET_TOKEN('PREV_DATE',l_prev_cbc_acct_date);
698: FND_MSG_PUB.Add;
699: x_return_status := FND_API.G_RET_STS_ERROR;
700:
701: END IF;
753: IF l_fiscal_year <> l_dist_max_fiscal_year
754: AND l_fiscal_year <> l_dist_min_fiscal_year
755: THEN
756:
757: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_AFTER_DISTS');
758: FND_MESSAGE.SET_TOKEN('ACCT_YEAR',l_fiscal_year);
759: FND_MESSAGE.SET_TOKEN('DIST_YEAR',l_dist_max_fiscal_year);
760: FND_MSG_PUB.Add;
761: x_return_status := FND_API.G_RET_STS_ERROR;
754: AND l_fiscal_year <> l_dist_min_fiscal_year
755: THEN
756:
757: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_AFTER_DISTS');
758: FND_MESSAGE.SET_TOKEN('ACCT_YEAR',l_fiscal_year);
759: FND_MESSAGE.SET_TOKEN('DIST_YEAR',l_dist_max_fiscal_year);
760: FND_MSG_PUB.Add;
761: x_return_status := FND_API.G_RET_STS_ERROR;
762:
755: THEN
756:
757: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_AFTER_DISTS');
758: FND_MESSAGE.SET_TOKEN('ACCT_YEAR',l_fiscal_year);
759: FND_MESSAGE.SET_TOKEN('DIST_YEAR',l_dist_max_fiscal_year);
760: FND_MSG_PUB.Add;
761: x_return_status := FND_API.G_RET_STS_ERROR;
762:
763: END IF;
764:
765: -- Accounting date should preferrably be before the least GL date
766: IF (p_cbc_acct_date > l_min_gl_date) THEN
767:
768: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_AFTER_GL_DATES');
769: FND_MSG_PUB.Add;
770:
771: END IF;
772:
824: AND l_min_cbc_acc_date IS NOT NULL
825: THEN
826: IF p_cbc_acct_date < l_max_cbc_acc_date
827: THEN
828: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_BEFORE_REQ_DATE');
829: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
830: FND_MSG_PUB.Add;
831: x_return_status := FND_API.G_RET_STS_ERROR;
832:
825: THEN
826: IF p_cbc_acct_date < l_max_cbc_acc_date
827: THEN
828: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_BEFORE_REQ_DATE');
829: FND_MESSAGE.SET_TOKEN('ACCT_DATE',p_cbc_acct_date);
830: FND_MSG_PUB.Add;
831: x_return_status := FND_API.G_RET_STS_ERROR;
832:
833: END IF;
841: -- the associated documents.
842: IF (l_fiscal_year <> l_max_req_fiscal_year) OR
843: (l_fiscal_year <> l_min_req_fiscal_year )
844: THEN
845: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_DIFF_REQ');
846: FND_MESSAGE.SET_TOKEN('ACCT_YEAR',l_fiscal_year);
847: FND_MSG_PUB.Add;
848: x_return_status := FND_API.G_RET_STS_ERROR;
849: END IF;
842: IF (l_fiscal_year <> l_max_req_fiscal_year) OR
843: (l_fiscal_year <> l_min_req_fiscal_year )
844: THEN
845: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_DIFF_REQ');
846: FND_MESSAGE.SET_TOKEN('ACCT_YEAR',l_fiscal_year);
847: FND_MSG_PUB.Add;
848: x_return_status := FND_API.G_RET_STS_ERROR;
849: END IF;
850: END IF;
862: and por.po_release_id = p_document_id;
863:
864: IF p_cbc_acct_date < l_po_cbc_acct_date THEN
865:
866: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_BEFORE_PO_DATE');
867: FND_MESSAGE.SET_TOKEN('ACCT_DATE', p_cbc_acct_date);
868: FND_MSG_PUB.Add;
869: x_return_status := FND_API.G_RET_STS_ERROR;
870:
863:
864: IF p_cbc_acct_date < l_po_cbc_acct_date THEN
865:
866: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_BEFORE_PO_DATE');
867: FND_MESSAGE.SET_TOKEN('ACCT_DATE', p_cbc_acct_date);
868: FND_MSG_PUB.Add;
869: x_return_status := FND_API.G_RET_STS_ERROR;
870:
871: END IF;
872:
873: -- ssmales 05-Feb-2003 bug 2784922 start
874: IF l_fiscal_year <> igc_cbc_po_grp.get_fiscal_year(
875: l_po_cbc_acct_date, l_sob_id) THEN
876: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_DIFF_PO');
877: FND_MESSAGE.SET_TOKEN('ACCT_DATE', l_fiscal_year);
878: FND_MSG_PUB.Add;
879: x_return_status := FND_API.G_RET_STS_ERROR;
880: END IF;
873: -- ssmales 05-Feb-2003 bug 2784922 start
874: IF l_fiscal_year <> igc_cbc_po_grp.get_fiscal_year(
875: l_po_cbc_acct_date, l_sob_id) THEN
876: FND_MESSAGE.SET_NAME('IGC','IGC_ACCT_DATE_FY_DIFF_PO');
877: FND_MESSAGE.SET_TOKEN('ACCT_DATE', l_fiscal_year);
878: FND_MSG_PUB.Add;
879: x_return_status := FND_API.G_RET_STS_ERROR;
880: END IF;
881: -- ssmales 05-Feb-2003 bug 2784922 end
935: AND l_min_bpa_accounting_date IS NOT NULL
936: THEN
937: IF p_cbc_acct_date < l_max_bpa_accounting_date
938: THEN
939: FND_MESSAGE.SET_NAME('IGC', 'IGC_ACCT_DATE_BEFORE_BPA_DATE');
940: FND_MESSAGE.SET_TOKEN('ACCT_DATE', p_cbc_acct_date);
941: FND_MSG_PUB.Add;
942: X_return_Status := FND_API.G_RET_STS_ERROR;
943: END IF;
936: THEN
937: IF p_cbc_acct_date < l_max_bpa_accounting_date
938: THEN
939: FND_MESSAGE.SET_NAME('IGC', 'IGC_ACCT_DATE_BEFORE_BPA_DATE');
940: FND_MESSAGE.SET_TOKEN('ACCT_DATE', p_cbc_acct_date);
941: FND_MSG_PUB.Add;
942: X_return_Status := FND_API.G_RET_STS_ERROR;
943: END IF;
944:
949:
950: IF (l_fiscal_year <> l_max_bpa_fiscal_year)
951: OR (l_fiscal_year <> l_min_bpa_fiscal_year)
952: THEN
953: FND_MESSAGE.SET_NAME('IGC', 'IGC_ACCT_DATE_FY_DIFF_BPA');
954: FND_MESSAGE.SET_TOKEN('ACCT_YEAR', l_fiscal_year);
955: FND_MSG_PUB.Add;
956: X_return_Status := FND_API.G_RET_STS_ERROR;
957: END IF;
950: IF (l_fiscal_year <> l_max_bpa_fiscal_year)
951: OR (l_fiscal_year <> l_min_bpa_fiscal_year)
952: THEN
953: FND_MESSAGE.SET_NAME('IGC', 'IGC_ACCT_DATE_FY_DIFF_BPA');
954: FND_MESSAGE.SET_TOKEN('ACCT_YEAR', l_fiscal_year);
955: FND_MSG_PUB.Add;
956: X_return_Status := FND_API.G_RET_STS_ERROR;
957: END IF;
958: END IF;
1395:
1396: EXCEPTION
1397: WHEN e_igc_doc_not_found THEN
1398: x_return_status := FND_API.G_RET_STS_ERROR ;
1399: FND_MESSAGE.SET_NAME('IGC','IGC_DOCUMENT_NOT_FOUND') ;
1400: FND_MESSAGE.SET_TOKEN('DOC_ID',p_document_id);
1401: FND_MSG_PUB.ADD ;
1402: FND_MSG_PUB.COUNT_AND_GET(
1403: p_count => x_msg_count,
1396: EXCEPTION
1397: WHEN e_igc_doc_not_found THEN
1398: x_return_status := FND_API.G_RET_STS_ERROR ;
1399: FND_MESSAGE.SET_NAME('IGC','IGC_DOCUMENT_NOT_FOUND') ;
1400: FND_MESSAGE.SET_TOKEN('DOC_ID',p_document_id);
1401: FND_MSG_PUB.ADD ;
1402: FND_MSG_PUB.COUNT_AND_GET(
1403: p_count => x_msg_count,
1404: p_data => x_msg_data
1587: ) ;
1588:
1589: WHEN e_igc_doc_not_found THEN
1590: x_return_status := FND_API.G_RET_STS_ERROR ;
1591: FND_MESSAGE.SET_NAME('IGC','IGC_DOCUMENT_NOT_FOUND') ;
1592: FND_MSG_PUB.ADD ;
1593: FND_MSG_PUB.COUNT_AND_GET(
1594: p_count => x_msg_count,
1595: p_data => x_msg_data