[Home] [Help]
PACKAGE BODY: APPS.PAY_JP_MAGTAPE_FORMAT_PKG
Source
1 package body pay_jp_magtape_format_pkg as
2 /* $Header: payjpmgf.pkb 120.0 2005/05/29 02:38:11 appldev noship $ */
3 --
4 -- Global variables.
5 --
6 g_bank_code pay_jp_banks.bank_code%TYPE;
7 g_transaction_type hr_lookups.lookup_code%TYPE;
8 --------------------------------------------------------------------------------
9 function header_record(
10 p_data in pay_jp_magtape_pkg.header) return varchar2
11 --------------------------------------------------------------------------------
12 is
13 begin
14 --
15 -- Set global variable G_BANK_CODE and G_TRANSACTION_TYPE.
16 --
17 g_bank_code := p_data.bank_code;
18 g_transaction_type := p_data.transaction_type;
19 --
20 -- When source account is post office, not bank.
21 --
22 if g_bank_code = '9900' then
23 return '1' ||
24 p_data.transaction_type ||
25 ' ' ||
26 /* Bug#2657901 p_data.character_set_code || */
27 p_data.company_code ||
28 rpad(p_data.company_name,40,' ') ||
29 to_char(p_data.direct_deposit_date,'MMDD') ||
30 p_data.bank_code ||
31 rpad(p_data.bank_name_kana,15,' ') ||
32 rpad(' ',20,' ') ||
33 substr(p_data.account_number,-6,6) ||
34 rpad(' ',17,' ');
35 --
36 -- When source account is bank.
37 --
38 else
39 return '1' ||
40 p_data.transaction_type ||
41 p_data.character_set_code ||
42 p_data.company_code ||
43 rpad(p_data.company_name,40,' ') ||
44 to_char(p_data.direct_deposit_date,'MMDD') ||
45 p_data.bank_code ||
46 rpad(p_data.bank_name_kana,15,' ') ||
47 p_data.branch_code ||
48 rpad(p_data.branch_name_kana,15,' ') ||
49 p_data.account_type ||
50 p_data.account_number ||
51 rpad(' ',17,' ');
52 end if;
53 end header_record;
54 --------------------------------------------------------------------------------
55 function data_record(
56 p_data in pay_jp_magtape_pkg.data) return varchar2
57 --------------------------------------------------------------------------------
58 is
59 begin
60 --
61 -- When source account is post office, not bank.
62 --
63 if g_bank_code = '9900' then
64 return '2' ||
65 p_data.bank_code ||
66 rpad(p_data.bank_name_kana,15,' ') ||
67 p_data.branch_code ||
68 rpad(' ',17,' ') ||
69 g_transaction_type ||
70 ' ' ||
71 p_data.account_number ||
72 rpad(p_data.account_name,30,' ') ||
73 to_char(p_data.payment,'FM0000000000') ||
74 lpad(' ',30,' ');
75 --
76 -- When source account is bank.
77 --
78 else
79 if g_transaction_type = 21 then
80 return '2' ||
81 p_data.bank_code ||
82 rpad(p_data.bank_name_kana,15,' ') ||
83 p_data.branch_code ||
84 rpad(p_data.branch_name_kana,15,' ') ||
85 rpad(' ',4,' ') ||
86 p_data.account_type ||
87 p_data.account_number ||
88 rpad(p_data.account_name,30,' ') ||
89 to_char(p_data.payment,'FM0000000000') ||
90 '0' ||
91 lpad('0',20,'0') ||
92 ' ' ||
93 ' ' ||
94 rpad(' ',7,' ');
95 else
96 return '2' ||
97 p_data.bank_code ||
98 rpad(p_data.bank_name_kana,15,' ') ||
99 p_data.branch_code ||
100 rpad(p_data.branch_name_kana,15,' ') ||
101 rpad(' ',4,' ') ||
102 p_data.account_type ||
103 p_data.account_number ||
104 rpad(p_data.account_name,30,' ') ||
105 to_char(p_data.payment,'FM0000000000') ||
106 '0' ||
107 lpad('0',20,'0') ||
108 rpad(' ',9,' ');
109 end if;
110 end if;
111 end data_record;
112 --------------------------------------------------------------------------------
113 function trailer_record(
114 p_data in pay_jp_magtape_pkg.trailer) return varchar2
115 --------------------------------------------------------------------------------
116 is
117 begin
118 --
119 -- When source account is post office, not bank.
120 --
121 if g_bank_code = '9900' then
122 return '8' ||
123 to_char(p_data.total_count,'FM000000') ||
124 to_char(p_data.total_payment,'FM000000000000') ||
125 rpad(' ',36,' ') ||
126 lpad('0',6,'0') ||
127 rpad(' ',59,' ');
128 --
129 -- When source account is bank.
130 --
131 else
132 return '8' ||
133 to_char(p_data.total_count,'FM000000') ||
134 to_char(p_data.total_payment,'FM000000000000') ||
135 rpad(' ',101,' ');
136 end if;
137 end trailer_record;
138 --------------------------------------------------------------------------------
139 function end_record return varchar2
140 --------------------------------------------------------------------------------
141 is
142 begin
143 return '9' ||
144 rpad(' ',119,' ');
145 end end_record;
146 --
147 end pay_jp_magtape_format_pkg;