X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fgl_setup.php;h=aeae18d98da92513b120b824aa709182de6f4a49;hb=467e72b8d92b1fd86ac1dd4945f996ae06dc0d48;hp=161888547bdcb8c072563ac40258a940badf1a9b;hpb=da8311619dd73feae101d246a1957b972e00cbd2;p=fa-stable.git diff --git a/admin/gl_setup.php b/admin/gl_setup.php index 16188854..aeae18d9 100644 --- a/admin/gl_setup.php +++ b/admin/gl_setup.php @@ -1,38 +1,62 @@ . +***********************************************************************/ +$page_security = 'SA_GLSETUP'; $path_to_root=".."; include($path_to_root . "/includes/session.inc"); -page(_("System and General GL Setup")); +page(_($help_context = "System and General GL Setup")); include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/ui.inc"); +include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/admin/db/company_db.inc"); //------------------------------------------------------------------------------------------------- -function can_process() +function can_process() { - if (!is_numeric($_POST['po_over_receive']) || ($_POST['po_over_receive'] < 0) - || ($_POST['po_over_receive'] > 100)) + if (!check_num('po_over_receive', 0, 100)) { display_error(_("The delivery over-receive allowance must be between 0 and 100.")); + set_focus('po_over_receive'); return false; } - if (!is_numeric($_POST['po_over_charge']) || ($_POST['po_over_charge'] < 0) - || ($_POST['po_over_charge'] > 100)) + if (!check_num('po_over_charge', 0, 100)) { display_error(_("The invoice over-charge allowance must be between 0 and 100.")); + set_focus('po_over_charge'); return false; } - if (!is_numeric($_POST['past_due_days']) || ($_POST['past_due_days'] < 0) - || ($_POST['past_due_days'] > 100)) + if (!check_num('past_due_days', 0, 100)) { display_error(_("The past due days interval allowance must be between 0 and 100.")); + set_focus('past_due_days'); + return false; + } + + $grn_act = get_company_pref('grn_clearing_act'); + if ((get_post('grn_clearing_act') != $grn_act) && db_num_rows(get_grn_items(0, '', true))) + { + display_error(_("Before GRN Clearing Account can be changed all GRNs have to be invoiced")); + $_POST['grn_clearing_act'] = $grn_act; + set_focus('grn_clearing_account'); + return false; + } + if (!is_account_balancesheet(get_post('retained_earnings_act')) || is_account_balancesheet(get_post('profit_loss_year_act'))) + { + display_error(_("The Retained Earnings Account should be a Balance Account or the Profit and Loss Year Account should be an Expense Account (preferred the last one in the Expense Class)")); return false; } return true; @@ -40,27 +64,18 @@ function can_process() //------------------------------------------------------------------------------------------------- -if (isset($_POST['submit']) && can_process()) +if (isset($_POST['submit']) && can_process()) { - update_company_gl_setup($_POST['debtors_act'], $_POST['pyt_discount_act'], - $_POST['creditors_act'], $_POST['grn_act'], - $_POST['exchange_diff_act'], $_POST['purch_exchange_diff_act'], - $_POST['retained_earnings_act'], $_POST['freight_act'], - $_POST['default_sales_act'], - $_POST['default_sales_discount_act'], - $_POST['default_prompt_payment_act'], - $_POST['default_inventory_act'], - $_POST['default_cogs_act'], - $_POST['default_adj_act'], - $_POST['default_inv_sales_act'], - $_POST['default_assembly_act'], $_POST['payroll_act'], - check_value('allow_negative_stock'), - $_POST['po_over_receive'], - $_POST['po_over_charge'], - $_POST['past_due_days'], - $_POST['default_credit_limit'], - $_POST['default_workorder_required'], - $_POST['default_dim_required']); + update_company_prefs( get_post( array( 'retained_earnings_act', 'profit_loss_year_act', + 'debtors_act', 'pyt_discount_act', 'creditors_act', 'freight_act', + 'exchange_diff_act', 'bank_charge_act', 'default_sales_act', 'default_sales_discount_act', + 'default_prompt_payment_act', 'default_inventory_act', 'default_cogs_act', + 'default_adj_act', 'default_inv_sales_act', 'default_assembly_act', 'legal_text', + 'past_due_days', 'default_workorder_required', 'default_dim_required', + 'default_delivery_required', 'default_quote_valid_days', 'grn_clearing_act', + 'allow_negative_stock'=> 0, 'accumulate_shipping'=> 0, + 'po_over_receive' => 0.0, 'po_over_charge' => 0.0, 'default_credit_limit'=>0.0 +))); display_notification(_("The general GL setup has been updated.")); @@ -69,20 +84,32 @@ if (isset($_POST['submit']) && can_process()) //------------------------------------------------------------------------------------------------- start_form(); -start_table("class='tablestyle'"); + +start_outer_table(TABLESTYLE2); + +table_section(1); + +if (get_company_pref('grn_clearing_act') === null) { // available from 2.3.1, can be not defined on pre-2.4 installations + set_company_pref('grn_clearing_act', 'glsetup.purchase', 'varchar', 15, 0); + refresh_sys_prefs(); +} + +if (get_company_pref('default_quote_valid_days') === null) { // available from 2.3.23, can be not defined on pre-2.4 installations + set_company_pref('default_quote_valid_days', 'glsetup.sales', 'smallint', 6, 30); + refresh_sys_prefs(); +} $myrow = get_company_prefs(); +$_POST['retained_earnings_act'] = $myrow["retained_earnings_act"]; +$_POST['profit_loss_year_act'] = $myrow["profit_loss_year_act"]; $_POST['debtors_act'] = $myrow["debtors_act"]; $_POST['creditors_act'] = $myrow["creditors_act"]; -$_POST['grn_act'] = $myrow["grn_act"]; -$_POST['retained_earnings_act'] = $myrow["retained_earnings_act"]; $_POST['freight_act'] = $myrow["freight_act"]; -$_POST['exchange_diff_act'] = $myrow["exchange_diff_act"]; - -$_POST['purch_exchange_diff_act'] = $myrow["purch_exchange_diff_act"]; $_POST['pyt_discount_act'] = $myrow["pyt_discount_act"]; +$_POST['exchange_diff_act'] = $myrow["exchange_diff_act"]; +$_POST['bank_charge_act'] = $myrow["bank_charge_act"]; $_POST['default_sales_act'] = $myrow["default_sales_act"]; $_POST['default_sales_discount_act'] = $myrow["default_sales_discount_act"]; $_POST['default_prompt_payment_act'] = $myrow["default_prompt_payment_act"]; @@ -92,29 +119,38 @@ $_POST['default_cogs_act'] = $myrow["default_cogs_act"]; $_POST['default_adj_act'] = $myrow["default_adj_act"]; $_POST['default_inv_sales_act'] = $myrow['default_inv_sales_act']; $_POST['default_assembly_act'] = $myrow['default_assembly_act']; -$_POST['payroll_act'] = $myrow['payroll_act']; $_POST['allow_negative_stock'] = $myrow['allow_negative_stock']; -$_POST['po_over_receive'] = $myrow['po_over_receive']; -$_POST['po_over_charge'] = $myrow['po_over_charge']; +$_POST['po_over_receive'] = percent_format($myrow['po_over_receive']); +$_POST['po_over_charge'] = percent_format($myrow['po_over_charge']); $_POST['past_due_days'] = $myrow['past_due_days']; +$_POST['grn_clearing_act'] = $myrow['grn_clearing_act']; + $_POST['default_credit_limit'] = $myrow['default_credit_limit']; +$_POST['legal_text'] = $myrow['legal_text']; +$_POST['accumulate_shipping'] = $myrow['accumulate_shipping']; $_POST['default_workorder_required'] = $myrow['default_workorder_required']; $_POST['default_dim_required'] = $myrow['default_dim_required']; - -//echo ""; +$_POST['default_delivery_required'] = $myrow['default_delivery_required']; +$_POST['default_quote_valid_days'] = $myrow['default_quote_valid_days']; //--------------- table_section_title(_("General GL")); -gl_all_accounts_list_row(_("Retained Earning Clearing Account:"), 'retained_earnings_act', $_POST['retained_earnings_act']); -gl_all_accounts_list_row(_("Payroll Account:"), 'payroll_act', $_POST['payroll_act']); -text_row(_("Past Due Days Interval:"), 'past_due_days', $_POST['past_due_days'], 6, 6, "", _("days")); +text_row(_("Past Due Days Interval:"), 'past_due_days', $_POST['past_due_days'], 6, 6, '', "", _("days")); + +gl_all_accounts_list_row(_("Retained Earnings:"), 'retained_earnings_act', $_POST['retained_earnings_act']); + +gl_all_accounts_list_row(_("Profit/Loss Year:"), 'profit_loss_year_act', $_POST['profit_loss_year_act']); + +gl_all_accounts_list_row(_("Exchange Variances Account:"), 'exchange_diff_act', $_POST['exchange_diff_act']); + +gl_all_accounts_list_row(_("Bank Charges Account:"), 'bank_charge_act', $_POST['bank_charge_act']); //--------------- @@ -122,22 +158,36 @@ table_section_title(_("Customers and Sales")); text_row(_("Default Credit Limit:"), 'default_credit_limit', $_POST['default_credit_limit'], 12, 12); -gl_all_accounts_list_row(_("Sales Exchange Variances Account:"), 'exchange_diff_act', $_POST['exchange_diff_act']); +check_row(_("Accumulate batch shipping:"), 'accumulate_shipping', null); + +textarea_row(_("Legal Text on Invoice:"), 'legal_text', $_POST['legal_text'], 32, 3); gl_all_accounts_list_row(_("Shipping Charged Account:"), 'freight_act', $_POST['freight_act']); //--------------- table_section_title(_("Customers and Sales Defaults")); +// default for customer branch +gl_all_accounts_list_row(_("Receivable Account:"), 'debtors_act'); + +gl_all_accounts_list_row(_("Sales Account:"), 'default_sales_act', null, + false, false, true); -gl_all_accounts_list_row(_("Accounts Receivable Account:"), 'debtors_act', $_POST['debtors_act']); +gl_all_accounts_list_row(_("Sales Discount Account:"), 'default_sales_discount_act'); -gl_all_accounts_list_row(_("Sales Account:"), 'default_sales_act', $_POST['default_sales_act']); +gl_all_accounts_list_row(_("Prompt Payment Discount Account:"), 'default_prompt_payment_act'); + +text_row(_("Quote Valid Days:"), 'default_quote_valid_days', $_POST['default_quote_valid_days'], 6, 6, '', "", _("days")); + +text_row(_("Delivery Required By:"), 'default_delivery_required', $_POST['default_delivery_required'], 6, 6, '', "", _("days")); + +//---------------- -gl_all_accounts_list_row(_("Sales Discount Account:"), 'default_sales_discount_act', $_POST['default_sales_discount_act']); +table_section(2); -gl_all_accounts_list_row(_("Prompt Payment Discount Account:"), 'default_prompt_payment_act', $_POST['default_prompt_payment_act']); +table_section_title(_("Dimension Defaults")); +text_row(_("Dimension Required By After:"), 'default_dim_required', $_POST['default_dim_required'], 6, 6, '', "", _("days")); //--------------- table_section_title(_("Suppliers and Purchasing")); @@ -146,26 +196,24 @@ percent_row(_("Delivery Over-Receive Allowance:"), 'po_over_receive'); percent_row(_("Invoice Over-Charge Allowance:"), 'po_over_charge'); -gl_all_accounts_list_row(_("Purchases Exchange Variances Account:"), 'purch_exchange_diff_act', $_POST['purch_exchange_diff_act']); - -gl_all_accounts_list_row(_("Goods Received Clearing Account:"), 'grn_act', $_POST['grn_act']); - table_section_title(_("Suppliers and Purchasing Defaults")); -gl_all_accounts_list_row(_("Accounts Payable Account:"), 'creditors_act', $_POST['creditors_act']); +gl_all_accounts_list_row(_("Payable Account:"), 'creditors_act', $_POST['creditors_act']); gl_all_accounts_list_row(_("Purchase Discount Account:"), 'pyt_discount_act', $_POST['pyt_discount_act']); -//--------------- +gl_all_accounts_list_row(_("GRN Clearing Account:"), 'grn_clearing_act', get_post('grn_clearing_act'), true, false, _("No postings on GRN")); -table_section_title(_("Inventory Defaults")); +table_section_title(_("Inventory")); check_row(_("Allow Negative Inventory:"), 'allow_negative_stock', null); +label_row(null, _("Warning: This may cause a delay in GL postings"), "", "class='stockmankofg' colspan=2"); +table_section_title(_("Items Defaults")); gl_all_accounts_list_row(_("Sales Account:"), 'default_inv_sales_act', $_POST['default_inv_sales_act']); gl_all_accounts_list_row(_("Inventory Account:"), 'default_inventory_act', $_POST['default_inventory_act']); - +// this one is default for items and suppliers (purchase account) gl_all_accounts_list_row(_("C.O.G.S. Account:"), 'default_cogs_act', $_POST['default_cogs_act']); gl_all_accounts_list_row(_("Inventory Adjustments Account:"), 'default_adj_act', $_POST['default_adj_act']); @@ -176,19 +224,14 @@ gl_all_accounts_list_row(_("Item Assembly Costs Account:"), 'default_assembly_ac table_section_title(_("Manufacturing Defaults")); -text_row(_("Default Work Order Required By After:"), 'default_workorder_required', $_POST['default_workorder_required'], 6, 6, "", _("days")); - -//---------------- - -table_section_title(_("Dimension Defaults")); +text_row(_("Work Order Required By After:"), 'default_workorder_required', $_POST['default_workorder_required'], 6, 6, '', "", _("days")); -text_row(_("Default Dimension Required By After:"), 'default_dim_required', $_POST['default_dim_required'], 6, 6, "", _("days")); //---------------- -end_table(1); +end_outer_table(1); -submit_center('submit', _("Update")); +submit_center('submit', _("Update"), true, '', 'default'); end_form(2);