78089f5a4db6f59b56a0d5a128042c4bf1ff48c8
[fa-stable.git] / gl / bank_transfer.php
1 <?php
2
3 $path_to_root="..";
4 $page_security = 5;
5
6 include_once($path_to_root . "/includes/session.inc");
7
8 include_once($path_to_root . "/includes/date_functions.inc");
9 include_once($path_to_root . "/includes/data_checks.inc");
10
11 include_once($path_to_root . "/gl/includes/gl_db.inc");
12 include_once($path_to_root . "/gl/includes/gl_ui.inc");
13
14 $js = "";
15 if ($use_popup_windows)
16         $js .= get_js_open_window(800, 500);
17 if ($use_date_picker)
18         $js .= get_js_date_picker();
19 page(_("Transfer between Bank Accounts"), false, false, "", $js);
20
21 check_db_has_bank_accounts(_("There are no bank accounts defined in the system."));
22 check_db_has_bank_trans_types(_("There are no bank transfer types defined in the system."));
23
24 //----------------------------------------------------------------------------------------
25
26 if (isset($_GET['AddedID'])) 
27 {
28         $trans_no = $_GET['AddedID'];
29         $trans_type = systypes::bank_transfer();
30
31         display_notification_centered( _("Transfer has been entered"));
32
33         display_note(get_gl_view_str($trans_type, $trans_no, _("View the GL Journal Entries for this Transfer")));
34
35         hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter Another Transfer"));
36
37         safeExit();
38 }
39
40 if (isset($_POST['_DatePaid_changed'])) {
41         $Ajax->activate('_ex_rate');
42 }
43
44 //----------------------------------------------------------------------------------------
45
46 function gl_payment_controls()
47 {
48         global $table_style2;
49         $home_currency = get_company_currency();
50
51         start_form(false, true);
52
53         start_table($table_style2, 5, 7);
54         echo "<tr><td valign=top>"; // outer table
55
56         echo "<table>";
57         bank_accounts_list_row(_("From Account:"), 'FromBankAccount', null, true);
58
59     bank_accounts_list_row(_("To Account:"), 'ToBankAccount', null, true);
60
61     date_row(_("Transfer Date:"), 'DatePaid', '', null, 0, 0, 0, null, true);
62
63         $from_currency = get_bank_account_currency($_POST['FromBankAccount']);
64         $to_currency = get_bank_account_currency($_POST['ToBankAccount']);
65         if ($from_currency != "" && $to_currency != "" && $from_currency != $to_currency) 
66         {
67                 amount_row(_("Amount:"), 'amount', null, null, $from_currency);
68
69                 exchange_rate_display($from_currency, $to_currency, $_POST['DatePaid']);
70         } 
71         else 
72         {
73                 amount_row(_("Amount:"), 'amount');
74         }
75
76         echo "</table>";
77         echo "</td><td valign=top class='tableseparator'>"; // outer table
78         echo "<table>";
79
80         bank_trans_types_list_row(_("Transfer Type:"), 'TransferType', null);
81
82     ref_row(_("Reference:"), 'ref', '', references::get_next(systypes::bank_transfer()));
83
84     textarea_row(_("Memo:"), 'memo_', null, 40,4);
85
86         end_table(1);
87
88         echo "</td></tr>";
89         end_table(1); // outer table
90
91     submit_center('AddPayment',_("Enter Transfer"), true, '', true);
92
93         end_form();
94 }
95
96 //----------------------------------------------------------------------------------------
97
98 function check_valid_entries()
99 {
100         if (!is_date($_POST['DatePaid'])) 
101         {
102                 display_error(_("The entered date is invalid."));
103                 set_focus('DatePaid');
104                 return false;
105         }
106         if (!is_date_in_fiscalyear($_POST['DatePaid']))
107         {
108                 display_error(_("The entered date is not in fiscal year."));
109                 set_focus('DatePaid');
110                 return false;
111         }
112
113         if (!check_num('amount', 0)) 
114         {
115                 display_error(_("The entered amount is invalid or less than zero."));
116                 set_focus('amount');
117                 return false;
118         }
119
120         if (!references::is_valid($_POST['ref'])) 
121         {
122                 display_error(_("You must enter a reference."));
123                 set_focus('ref');
124                 return false;
125         }
126
127         if (!is_new_reference($_POST['ref'], systypes::bank_transfer())) 
128         {
129                 display_error(_("The entered reference is already in use."));
130                 set_focus('ref');
131                 return false;
132         }
133
134         if ($_POST['FromBankAccount'] == $_POST['ToBankAccount']) 
135         {
136                 display_error(_("The source and destination bank accouts cannot be the same."));
137                 set_focus('ToBankAccount');
138                 return false;
139         }
140
141     return true;
142 }
143
144 //----------------------------------------------------------------------------------------
145
146 function handle_add_deposit()
147 {
148         global $path_to_root;
149
150         $trans_no = add_bank_transfer($_POST['FromBankAccount'], $_POST['ToBankAccount'],
151                 $_POST['DatePaid'], input_num('amount'),
152                 $_POST['TransferType'], $_POST['ref'], $_POST['memo_']);
153
154         meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no");
155 }
156
157 //----------------------------------------------------------------------------------------
158
159 function safeExit()
160 {
161         global $path_to_root;
162         echo "<br><br>";
163         end_page();
164         exit;
165 }
166
167 //----------------------------------------------------------------------------------------
168
169 if (isset($_POST['AddPayment']))
170 {
171         if (check_valid_entries() == true) 
172         {
173                 handle_add_deposit();
174                 safeExit();
175         }
176 }
177
178 gl_payment_controls();
179
180 end_page();
181 ?>