Vous êtes sur la page 1sur 10

CREATE OR REPLACE PACKAGE BODY APPS.

XHL_COLOMBIA_EFT_PKG AS -- *************************************************************************** --- Procedure Name : HL_COLOMBIA_BB_EFT & HL_COLOMBIA_BBVA_EFT --- Description : This procedure generates flat file ---- date author Version Description -- ------------ ----------------- ------- --------------------------------- 05-Nov-2010 Gopal 1.0 Created -- *************************************************************************** PROCEDURE hl_colombia_bb_eft ( errbuf IN OUT VARCHAR2, retcode IN OUT VARCHAR2, in_chr_payment_batch IN VARCHAR2 ) AS l_num_op_unit CONSTANT NUMBER := fnd_profile.VALUE ('ORG_ID'); v_file_record1 VARCHAR2 (1000); v_file_record2 VARCHAR2 (1000); v_file_record3_1 VARCHAR2 (1000); v_file_record3_2 VARCHAR2 (1000); l_num_file_counter PLS_INTEGER := 1; l_chr_file_name VARCHAR2(20); l_chr_ipaddress VARCHAR2 (50); l_chr_user VARCHAR2 (50); l_chr_password VARCHAR2 (50); l_chr_dest_directory VARCHAR2 (50); l_chr_arch_dir VARCHAR2 (50); l_chr_source_dir VARCHAR2 (50); l_chr_ftp_source VARCHAR2 (256); l_return_code NUMBER; l_num_total_checks PLS_INTEGER; v_file_handle UTL_FILE.file_type; l_exp_no_checks EXCEPTION; l_exit_program EXCEPTION; l_replace BOOLEAN := TRUE; /* check details in a payment batch */ CURSOR check_lines IS SELECT pv.num_1099 num_1099, abb.bank_number bank_number, abb.bank_num bank_num, abaa.attribute1 eft_swift_code, abaa.bank_account_num bank_account_num, abaa.attribute4, pv.global_attribute10, pv.global_attribute12, asica.check_amount, abaa.attribute2, abaa.attribute3, aia.attribute5, LPAD ((asica.check_amount * 100),16,'0') amt1, LPAD (asica.check_number,70,'0') check_number, substr(asica.vendor_name,1,40) vendor_name, pvsa.email_address email_address FROM ap_selected_invoice_checks_all asica,

WHERE AND AND AND AND AND AND AND AND AND and and and and and and AND AND AND

ap_inv_selection_criteria_all aisca, ap_bank_accounts_all abaa, po_vendors pv, po_vendor_sites_all pvsa, ap_bank_branches abb, ap_invoices_all aia, ap_selected_invoices_all asia 1 = 1 asica.checkrun_name = in_chr_payment_batch asica.checkrun_name = aisca.checkrun_name asica.external_bank_account_id = abaa.bank_account_id asica.vendor_id = pv.vendor_id pv.vendor_id = pvsa.vendor_id asica.selected_check_id = asia.pay_selected_check_id abaa.bank_branch_id = abb.bank_branch_id asica.ok_to_pay_flag <> 'N' asia.ok_to_pay_flag <> 'N' aia.set_of_books_id = asia.set_of_books_id aia.invoice_id = asia.invoice_id aia.org_id = asia.org_id aia.vendor_id = pv.vendor_id aia.vendor_site_id = pvsa.vendor_site_id aia.org_id = l_num_op_unit asica.org_id = l_num_op_unit pvsa.org_id = l_num_op_unit aisca.org_id = l_num_op_unit;

BEGIN retcode := 0; errbuf := NULL; BEGIN SELECT b.attribute1, b.attribute2, b.attribute3, b.attribute4, b.attribute5, b.attribute6 INTO l_chr_ipaddress, l_chr_user, l_chr_password, l_chr_source_dir, l_chr_dest_directory, l_chr_arch_dir FROM fnd_lookup_types a, fnd_lookup_values b WHERE a.lookup_type = 'XHL_AP_EFT_DETAILS' AND b.lookup_type = a.lookup_type AND b.lookup_code = 'XHL_CO' AND LANGUAGE = USERENV ('LANG') AND b.enabled_flag = 'Y'; fnd_file.put_line (fnd_file.LOG, 'Successful in fetching the Server Details from the Lookup XHL_AP_ EFT_DETAILS' ); EXCEPTION WHEN OTHERS THEN errbuf := 'Unable to fetch the FTP Details of the server from the Lookup XH L_AP_EFT_DETAILS'; fnd_file.put_line (fnd_file.LOG, errbuf); END; /** see if there are any checks for given payment batch **/ SELECT COUNT (*) INTO l_num_total_checks FROM ap_selected_invoice_checks_all asica, ap_inv_selection_criteria_all aisca,

WHERE AND AND AND AND AND AND AND AND AND AND AND AND

ap_bank_accounts_all abaa, po_vendors pv, po_vendor_sites_all pvsa, ap_bank_branches abb, ap_selected_invoices_all asia 1 = 1 asica.checkrun_name = in_chr_payment_batch asica.checkrun_name = aisca.checkrun_name asica.external_bank_account_id = abaa.bank_account_id asica.vendor_id = pv.vendor_id pv.vendor_id = pvsa.vendor_id asica.selected_check_id = asia.pay_selected_check_id abaa.bank_branch_id = abb.bank_branch_id asica.ok_to_pay_flag <> 'N' asia.ok_to_pay_flag <> 'N' asica.org_id = l_num_op_unit pvsa.org_id = l_num_op_unit aisca.org_id = l_num_op_unit;

IF l_num_total_checks = 0 THEN retcode := 2; fnd_file.put_line (fnd_file.LOG, 'No Checks To Print and the Program Will Error Out' ); RAISE l_exp_no_checks; END IF; /* Opening cursor for check details */ FOR rec IN check_lines LOOP l_chr_file_name := LPAD (rec.bank_account_num, 4, '0')|| 'VE'|| LPA D (l_num_file_counter, 4, '0')|| '.txt'; SELECT 1 || TO_CHAR (SYSDATE, 'YYYYMMDD') || '000000000000000000000000' ||1 ||'000000' ||lpad(rec.bank_account_num,11,'0') ||'HLF Colombia LTDA' ||(select GLOBAL_ATTRIBUTE11||GLOBAL_ATTRIBUTE12

from HR_LOCATIONS where location_id = (select location_id from HR_ORGANIZATION_UNITS where organization_id = fnd_profile.value('ORG_ID')) ) || '002' ||rec.attribute2 ||TO_CHAR (SYSDATE, 'YYYYMMDD') ||substr(rec.bank_account_num,1,3) ||'N' ||lpad(' ',48,' ') ||' ' ||lpad(' ',80,' ') INTO v_file_record1 FROM DUAL; fnd_file.put_line (fnd_file.LOG,'At Start of File :');

v_file_handle := UTL_FILE.fopen (l_chr_source_dir, l_chr_file_name, 'W '); UTL_FILE.put_line (v_file_handle, v_file_record1); SELECT 'C') || rec.num_1099||rec.global_attribute12 || rpad(rec.vendor_name,40,' ') ||'0' || rec.attribute4 ||lpad(rec.bank_account_num,11,'0') || rec.amt1 ||'A' ||'000' ||rec.attribute3 ||rec.attribute2 ||' FILENAME' ||' ' || rec.check_number ||'0' ||rec.attribute5 ||case when rec.email_address is not null then 'C' else 'N' end ||' ' ||lpad('0',16,'0') ||lpad(' ',11,' ') ||lpad(' ',11,' ') ||'N' || lpad(' ',8,' ') INTO v_file_record2 FROM DUAL; '3' ||lpad(' ',10,' ') ||lpad(rec.email_address,50,' ') ||'0000' ||case when rec.email_address is not null then lpad('Transferenc ia desde HLF Colombia realizada el '||to_char(sysdate,'DD-MM-YYYY'),160,' ') els e lpad(' ',160,' ') end ||lpad(' ',25,' ') INTO v_file_record3_1 FROM DUAL; SELECT '3' ||lpad(' ',10,' ') ||lpad(rec.email_address,50,' ') ||'0000' ||lpad(' ',160,' ') ||lpad(' ',25,' ') INTO v_file_record3_2 FROM DUAL; (v_file_handle, (v_file_handle, (v_file_handle, (v_file_handle, v_file_record2); v_file_record3_1); v_file_record3_2); v_file_record3_2); SELECT '2' ||decode(rec.global_attribute10,'LEGAL ENTITY','N','INDIVIDUAL',

UTL_FILE.put_line UTL_FILE.put_line UTL_FILE.put_line UTL_FILE.put_line

fnd_file.put_line (fnd_file.LOG,'After Printing Lines for file:'); UTL_FILE.fclose (v_file_handle);

fnd_file.put_line (fnd_file.LOG, );

'In End of File :'

-- Fetch the Source Directory path (TO FTP) from Direcotry Name SELECT directory_path INTO l_chr_ftp_source FROM all_directories WHERE directory_name = l_chr_source_dir; fnd_file.put_line (fnd_file.LOG, 'Source Directory to FTP the File' || l_chr_ftp_source ); BEGIN l_return_code := xhl_herbalife_utilities_pkg.xhl_num_ftp_main (in_chr_server => l_chr_ipaddress, in_chr_username => l_chr_user, in_chr_password => l_chr_password, in_chr_sourcedirectory => l_chr_ftp_source, in_chr_sourcefilename => l_chr_file_name, in_chr_destinationdirectory => l_chr_dest_director y, in_chr_destinationfilename => l_chr_file_name, in_chr_transfer_type => 'ASCII', in_chr_ftp_type => 'PUT' ); fnd_file.put_line (fnd_file.LOG,'Return Code : ' || l_return_code ); IF l_return_code = 0 THEN fnd_file.put_line (fnd_file.LOG,'FTP Sucessful'); fnd_file.put_line (fnd_file.LOG, 'FTP of file ' || l_chr_file_name || ' Successful from ' || l_chr_ftp_source || ' to ' || l_chr_dest_directory ); ELSE fnd_file.put_line (fnd_file.LOG,'Unable to FTP'); fnd_file.put_line (fnd_file.LOG, 'FTP of file ' || l_chr_file_name || ' Unsuccessful from ' || l_chr_ftp_source || ' to ' || l_chr_dest_directory ); END IF; EXCEPTION WHEN OTHERS THEN fnd_file.put_line (fnd_file.LOG,'Error while sending : ' || SQ LERRM); fnd_file.put_line (fnd_file.LOG, 'FTP of file '

|| || || || || ); END;

l_chr_file_name ' Failed from ' l_chr_ftp_source ' to ' l_chr_dest_directory

---------------------------------------------------------------------------------------------------------------------------- Archive Colombia EFT file -- -----------------------------------------------------------------------------------------------------------------------l_replace := TRUE; BEGIN UTL_FILE.frename (l_chr_source_dir, l_chr_file_name, l_chr_arch_dir, l_chr_file_name, l_replace ); fnd_file.put_line (fnd_file.LOG, 'The following is the renamed f ile ' || l_chr_file_name ); fnd_file.put_line (fnd_file.LOG, 'Archiving of file ' || l_chr_file_name || ' Successful to ' || l_chr_arch_dir || ' from ' || l_chr_source_dir ); EXCEPTION WHEN OTHERS THEN fnd_file.put_line (fnd_file.LOG,'SQLERRM: ' || SQLERRM); fnd_file.put_line (fnd_file.LOG, 'Archiving of file ' || l_chr_file_name || ' Failed to ' || l_chr_arch_dir || ' from ' || l_chr_source_dir ); END; l_num_file_counter := l_num_file_counter + 1; EXIT WHEN check_lines%NOTFOUND; END LOOP; fnd_file.put_line (fnd_file.LOG,'Byeee'); /***************************** Update the Status to Formatted on Successfu l Completion ************************/ BEGIN UPDATE ap_inv_selection_criteria_all aisca SET aisca.status = 'FORMATTED' WHERE aisca.checkrun_name = in_chr_payment_batch

AND aisca.org_id = l_num_op_unit; COMMIT; fnd_file.put_line (fnd_file.LOG, 'Sucessful in Changing the Status to FORMATTED' ); EXCEPTION WHEN OTHERS THEN errbuf := 'Error While Updating the status to FORMATTED'; retcode := 2; fnd_file.put_line (fnd_file.LOG, errbuf); END; COMMIT; EXCEPTION WHEN l_exp_no_checks THEN errbuf := 'No checks to pay. Please built payment batch'; retcode := 2; fnd_file.put_line (fnd_file.LOG, errbuf); WHEN OTHERS THEN errbuf := 'Unexpected Error'; retcode := 2; fnd_file.put_line (fnd_file.LOG,'SQLERRM ' || SQLERRM); fnd_file.put_line (fnd_file.LOG, errbuf); END hl_colombia_bb_eft; PROCEDURE hl_colombia_bbva_eft ( errbuf IN OUT retcode IN OUT in_chr_payment_batch IN ) AS begin null; end hl_colombia_bbva_eft; END xhl_colombia_eft_pkg; / VARCHAR2, VARCHAR2, VARCHAR2

xhl_colombia_eft_pkg.HL_COLOMBIA_BB_EFT & HL_COLOMBIA_BBVA_EFT select sysdate from dual SELECT * FROM HR_OPERATING_UNITS WHERE NAME LIKE '%Colo%' SELECT * FROM HR_OPERATING_UNITS WHERE NAME LIKE '%Ve%' SELECT * FROM XHL_DM_COUNTRY_MAPPING WHERE COUNTRY_NAME LIKE '%CO%' SELECT * FROM XHL_DM_COUNTRY_MAPPING WHERE COUNTRY_NAME LIKE '%VE%' select trunc(sysdate) from dual select to_char(sysdate,'DAY') from dual select * from AP_SELECTED_INVOICE_CHECKS WHERE ORG_ID='260'

SELECT distinct STATUS FROM ap_inv_selection_criteria_all WHERE ORG_ID='260' select * from fnd_lookup_types where LOOKUP_TYPE like '%XHL%' select * from fnd_lookup_values where LOOKUP_CODE like '%XHL%'----20044 fnd_application l_num_op_unit XHL_COLOMBIAN_EFT select * from ap_selected_invoice_checks select * from ap_inv_selection_critera select * from ap_selected_invoices select * from ap_bank_accounts_all where org_id='260' select * from ap_bank_accounts_all where org_id='1935'

hl_venezuela_eft

select * from fnd_lookup_values where lookup_type like 'XHL_AP_EFT_DETAILS' select * from fnd_lookup_values WHERE LOOKUP_CODE LIKE 'XHL_CO'

Payables value set ---------------XXHL_EFT_COLOMBIA XXHL_COLOMBIA_EFT_CITY_CODES XXHL_COLOMBIA_EFT_COMPENSATION_CODE XXHL_COLOMBIA_EFT_BEN_ACC_TYPE XXHL_COLOMBIA_EFT_BBVA_OFFICE_CODES Purchasing value sets -----------------XXHL_COL_BBVA_EFT_BENEFICIARY_ID_TYPE

SELECT DISTINCT checkrun_name FROM ap_selected_invoices_all WHERE checkrun_name= 'BB'

Vous aimerez peut-être aussi