jl_ar_ar_rect_dm_trx_num_ins
BEFORE INSERT
ON ra_customer_trx_all
FOR EACH ROW
Type
BEFORE EACH ROW
Event
INSERT
Column
When
new.created_from = 'ARXRWRCT' and new.batch_source_id = 11
AND ((sys_context('JG','JGZZ_COUNTRY_CODE') in ('AR'))
OR (to_char(new.org_id) <> nvl(sys_context('JG','JGZZ_ORG_ID'),'XX')))
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
DECLARE
l_document_letter VARCHAR2(1);
l_branch_number VARCHAR2(4);
l_last_trx_date DATE;
l_trx_num_cursor INTEGER;
l_imported_source_id ra_batch_sources_all.batch_source_id%TYPE;
l_auto_trx_numbering_flag ra_batch_sources_all.auto_trx_numbering_flag%TYPE;
l_trx_number ra_customer_trx_all.trx_number%TYPE;
l_count NUMBER;
l_country_code VARCHAR2(100);
BEGIN
IF (to_char(:new.org_id) <> nvl(sys_context('JG','JGZZ_ORG_ID'),'XX')) THEN
l_country_code := JG_ZZ_SHARED_PKG.GET_COUNTRY(:new.org_id,NULL,NULL);
JG_CONTEXT.name_value('JGZZ_COUNTRY_CODE',l_country_code);
JG_CONTEXT.name_value('JGZZ_ORG_ID',to_char(:new.org_id));
END IF;
IF (sys_context('JG','JGZZ_COUNTRY_CODE') = 'AR') THEN
l_imported_source_id :=
jl_ar_doc_numbering_pkg.get_imported_batch_source(:new.batch_source_id);
SELECT substr(a.global_attribute2,1,4),
substr(a.global_attribute3,1,1),
a.auto_trx_numbering_flag,
fnd_date.canonical_to_date(a.global_attribute4)
INTO l_branch_number,
l_document_letter,
l_auto_trx_numbering_flag,
l_last_trx_date
FROM ra_batch_sources_all a
WHERE a.batch_source_id = l_imported_source_id;
IF l_auto_trx_numbering_flag = 'Y' AND
substr(:new.trx_number,1,6) <> l_document_letter || '-' ||
l_branch_number THEN
l_trx_num_cursor := dbms_sql.open_cursor;
dbms_sql.parse(l_trx_num_cursor,
'select ra_trx_number_' ||
to_char(l_imported_source_id) ||
'_' ||
to_char(:new.org_id)||
'_s.nextval trx_number ' ||
'from dual ',
dbms_sql.NATIVE);
dbms_sql.define_column(l_trx_num_cursor, 1, l_trx_number, 20);
l_count := dbms_sql.execute_and_fetch(l_trx_num_cursor,TRUE);
dbms_sql.column_value(l_trx_num_cursor, 1, l_trx_number);
dbms_sql.close_cursor(l_trx_num_cursor);
:new.trx_number := l_document_letter || '-' ||
l_branch_number || '-' ||
lpad(l_trx_number,8,'0');
IF :new.trx_date < l_last_trx_date THEN
:new.trx_date := l_last_trx_date;
ELSE
UPDATE ra_batch_sources
SET global_attribute4 = to_char(:new.trx_date)
WHERE batch_source_id = l_imported_source_id;
END IF;
END IF;
END IF;
END;