Better layout. Copyright notes. Mailto links. (2. run)
[fa-stable.git] / admin / gl_setup.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU Affero General Public License,
5         AGPL, as published by the Free Software Foundation, either version 
6         3 of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/agpl-3.0.html>.
11 ***********************************************************************/
12 $page_security =10;
13 $path_to_root="..";
14 include($path_to_root . "/includes/session.inc");
15
16 page(_("System and General GL Setup"));
17
18 include_once($path_to_root . "/includes/date_functions.inc");
19 include_once($path_to_root . "/includes/ui.inc");
20 include_once($path_to_root . "/includes/data_checks.inc");
21
22 include_once($path_to_root . "/admin/db/company_db.inc");
23
24 //-------------------------------------------------------------------------------------------------
25
26 function can_process()
27 {
28         if (!check_num('po_over_receive', 0, 100))
29         {
30                 display_error(_("The delivery over-receive allowance must be between 0 and 100."));
31                 set_focus('po_over_receive');
32                 return false;
33         }
34
35         if (!check_num('po_over_charge', 0, 100))
36         {
37                 display_error(_("The invoice over-charge allowance must be between 0 and 100."));
38                 set_focus('po_over_charge');
39                 return false;
40         }
41
42         if (!check_num('past_due_days', 0, 100))
43         {
44                 display_error(_("The past due days interval allowance must be between 0 and 100."));
45                 set_focus('past_due_days');
46                 return false;
47         }
48         return true;
49 }
50
51 //-------------------------------------------------------------------------------------------------
52
53 if (isset($_POST['submit']) && can_process())
54 {
55         update_company_gl_setup($_POST['debtors_act'], $_POST['pyt_discount_act'],
56                 $_POST['creditors_act'], $_POST['freight_act'],
57                 $_POST['exchange_diff_act'],
58                 $_POST['default_sales_act'],
59                 $_POST['default_sales_discount_act'],
60                 $_POST['default_prompt_payment_act'],
61                 $_POST['default_inventory_act'],
62                 $_POST['default_cogs_act'],
63                 $_POST['default_adj_act'],
64                 $_POST['default_inv_sales_act'],
65                 $_POST['default_assembly_act'],
66                 check_value('allow_negative_stock'),
67                 input_num('po_over_receive'),
68                 input_num('po_over_charge'),
69                 $_POST['past_due_days'],
70                 $_POST['default_credit_limit'],
71                 $_POST['default_workorder_required'],
72                 $_POST['default_dim_required']);
73
74         display_notification(_("The general GL setup has been updated."));
75
76 } /* end of if submit */
77
78 //-------------------------------------------------------------------------------------------------
79
80 start_form();
81
82 start_outer_table("class='tablestyle'");
83
84 table_section(1);
85
86 $myrow = get_company_prefs();
87
88 $_POST['debtors_act']  = $myrow["debtors_act"];
89 $_POST['creditors_act']  = $myrow["creditors_act"];
90 $_POST['freight_act'] = $myrow["freight_act"];
91 $_POST['pyt_discount_act']  = $myrow["pyt_discount_act"];
92
93 $_POST['exchange_diff_act'] = $myrow["exchange_diff_act"];
94 $_POST['default_sales_act'] = $myrow["default_sales_act"];
95 $_POST['default_sales_discount_act']  = $myrow["default_sales_discount_act"];
96 $_POST['default_prompt_payment_act']  = $myrow["default_prompt_payment_act"];
97
98 $_POST['default_inventory_act'] = $myrow["default_inventory_act"];
99 $_POST['default_cogs_act'] = $myrow["default_cogs_act"];
100 $_POST['default_adj_act'] = $myrow["default_adj_act"];
101 $_POST['default_inv_sales_act'] = $myrow['default_inv_sales_act'];
102 $_POST['default_assembly_act'] = $myrow['default_assembly_act'];
103
104 $_POST['allow_negative_stock'] = $myrow['allow_negative_stock'];
105
106 $_POST['po_over_receive'] = percent_format($myrow['po_over_receive']);
107 $_POST['po_over_charge'] = percent_format($myrow['po_over_charge']);
108 $_POST['past_due_days'] = $myrow['past_due_days'];
109
110 $_POST['default_credit_limit'] = $myrow['default_credit_limit'];
111
112 $_POST['default_workorder_required'] = $myrow['default_workorder_required'];
113 $_POST['default_dim_required'] = $myrow['default_dim_required'];
114
115 //---------------
116
117
118 table_section_title(_("General GL"));
119
120 // Not used in FA2.0.
121 //gl_all_accounts_list_row(_("Retained Earning Clearing Account:"), 'retained_earnings_act', $_POST['retained_earnings_act']);
122 // Not used in FA2.0.
123 //gl_all_accounts_list_row(_("Payroll Account:"), 'payroll_act', $_POST['payroll_act']);
124
125 text_row(_("Past Due Days Interval:"), 'past_due_days', $_POST['past_due_days'], 6, 6, '', "", _("days"));
126
127 gl_all_accounts_list_row(_("Exchange Variances Account:"), 'exchange_diff_act', $_POST['exchange_diff_act']);
128
129 //---------------
130
131 table_section_title(_("Customers and Sales"));
132
133 text_row(_("Default Credit Limit:"), 'default_credit_limit', $_POST['default_credit_limit'], 12, 12);
134
135 gl_all_accounts_list_row(_("Shipping Charged Account:"), 'freight_act', $_POST['freight_act']);
136
137 //---------------
138
139 table_section_title(_("Customers and Sales Defaults"));
140 // default for customer branch
141 gl_all_accounts_list_row(_("Receivable Account:"), 'debtors_act');
142
143 gl_all_accounts_list_row(_("Sales Account:"), 'default_sales_act', null,
144         false, false, false, true);
145
146 gl_all_accounts_list_row(_("Sales Discount Account:"), 'default_sales_discount_act');
147
148 gl_all_accounts_list_row(_("Prompt Payment Discount Account:"), 'default_prompt_payment_act');
149
150 //---------------
151
152 table_section_title(_("Suppliers and Purchasing"));
153
154 percent_row(_("Delivery Over-Receive Allowance:"), 'po_over_receive');
155
156 percent_row(_("Invoice Over-Charge Allowance:"), 'po_over_charge');
157 // Not used in FA2.0.
158 //gl_all_accounts_list_row(_("Purchases Exchange Variances Account:"), 'purch_exchange_diff_act', $_POST['purch_exchange_diff_act']);
159 // Not used in FA2.0.
160 //gl_all_accounts_list_row(_("Goods Received Clearing Account:"), 'grn_act', $_POST['grn_act']);
161
162 //---------------
163 table_section(2);
164 table_section_title(_("Suppliers and Purchasing Defaults"));
165
166 gl_all_accounts_list_row(_("Payable Account:"), 'creditors_act', $_POST['creditors_act']);
167
168 gl_all_accounts_list_row(_("Purchase Discount Account:"), 'pyt_discount_act', $_POST['pyt_discount_act']);
169
170 table_section_title(_("Inventory"));
171
172 check_row(_("Allow Negative Inventory:"), 'allow_negative_stock', null);
173
174 table_section_title(_("Items Defaults"));
175 gl_all_accounts_list_row(_("Sales Account:"), 'default_inv_sales_act', $_POST['default_inv_sales_act']);
176
177 gl_all_accounts_list_row(_("Inventory Account:"), 'default_inventory_act', $_POST['default_inventory_act']);
178 // this one is default for items and suppliers (purchase account)
179 gl_all_accounts_list_row(_("C.O.G.S. Account:"), 'default_cogs_act', $_POST['default_cogs_act']);
180
181 gl_all_accounts_list_row(_("Inventory Adjustments Account:"), 'default_adj_act', $_POST['default_adj_act']);
182
183 gl_all_accounts_list_row(_("Item Assembly Costs Account:"), 'default_assembly_act', $_POST['default_assembly_act']);
184
185 //----------------
186
187 table_section_title(_("Manufacturing Defaults"));
188
189 text_row(_("Work Order Required By After:"), 'default_workorder_required', $_POST['default_workorder_required'], 6, 6, '', "", _("days"));
190
191 //----------------
192
193 table_section_title(_("Dimension Defaults"));
194
195 text_row(_("Dimension Required By After:"), 'default_dim_required', $_POST['default_dim_required'], 6, 6, '', "", _("days"));
196
197 //----------------
198
199 end_outer_table(1);
200
201 submit_center('submit', _("Update"), true, '', true);
202
203 end_form(2);
204
205 //-------------------------------------------------------------------------------------------------
206
207 end_page();
208
209 ?>