! -> Note
$ -> Affected files
+28-Apr-2009 Joe Hunt
+! Changed so the close of fiscal years also closes the balances and brings forward retained earnings.
+$ /admin/gl_setup.ph
+ /admin/fiscalyears.php
+ /admin/db/company_db.inc
+ /sql/en_US-new.sql
+ /sql/en_US-demo.sql
+ /sql/alter2.2.sql
+
25_Apr-2009 Janusz Dobrowolski
# Fixed ambigous sql
$ /inventory/manage/item_categories.php
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
-function update_company_gl_setup($debtors_act, $pyt_discount_act, $creditors_act,
+function update_company_gl_setup($retained_act, $profit_loss_act, $debtors_act, $pyt_discount_act, $creditors_act,
$freight_act,
$exchange_diff_act,
$default_sales_act,
$default_delivery_required)
{
$sql = "UPDATE ".TB_PREF."company SET
+ retained_earnings_act=".db_escape($retained_act).", profit_loss_year_act=".db_escape($profit_loss_act).",
debtors_act=".db_escape($debtors_act).", pyt_discount_act=".db_escape($pyt_discount_act).",
creditors_act=".db_escape($creditors_act).",
freight_act=".db_escape($freight_act).",
return true;
}
//---------------------------------------------------------------------------------------------
+function close_year($year)
+{
+ $myrow = get_fiscalyear($year);
+ $to = $myrow['end'];
+ // retrieve total balances from balance sheet accounts
+ $sql = "SELECT SUM(amount) FROM ".TB_PREF."gl_trans INNER JOIN ".TB_PREF."chart_master ON account=account_code
+ INNER JOIN ".TB_PREF."chart_types ON account_type=id INNER JOIN ".TB_PREF."chart_class ON class_id=cid
+ WHERE balance_sheet=1 AND tran_date <= '$to'";
+ $result = db_query($sql, "The total balance could not be calculated");
+
+ $row = db_fetch_row($result);
+ $balance = round2($row[0], user_price_dec());
+ if ($balance != 0.0)
+ {
+ $co = get_company_prefs();
+ $to = sql2date($to);
+
+ begin_transaction();
+ $trans_type = systypes::journal_entry();
+ $trans_id = get_next_trans_no($trans_type);
+
+ add_gl_trans($trans_type, $trans_id, $to, $co['retained_earnings_act'],
+ 0, 0, _("Closing Year"), -$balance);
+ add_gl_trans($trans_type, $trans_id, $to, $co['profit_loss_year_act'],
+ 0, 0, _("Closing Year"), $balance);
+
+ commit_transaction();
+ }
+}
+
function handle_submit()
{
global $selected_id, $Mode;
if ($selected_id != -1)
{
+ if ($_POST['closed'] == 1)
+ close_year($selected_id);
update_fiscalyear($selected_id, $_POST['closed']);
display_notification(_('Selected fiscal year has been updated'));
}
if (isset($_POST['submit']) && can_process())
{
- update_company_gl_setup($_POST['debtors_act'], $_POST['pyt_discount_act'],
+ update_company_gl_setup($_POST['retained_earnings_act'], $_POST['profit_loss_year_act'],
+ $_POST['debtors_act'], $_POST['pyt_discount_act'],
$_POST['creditors_act'], $_POST['freight_act'],
$_POST['exchange_diff_act'],
$_POST['default_sales_act'],
$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['freight_act'] = $myrow["freight_act"];
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']);
//---------------
//----------------
+table_section(2);
+
table_section_title(_("Dimension Defaults"));
text_row(_("Dimension Required By After:"), 'default_dim_required', $_POST['default_dim_required'], 6, 6, '', "", _("days"));
//---------------
-table_section(2);
-
table_section_title(_("Suppliers and Purchasing"));
percent_row(_("Delivery Over-Receive Allowance:"), 'po_over_receive');
ALTER TABLE `0_company` DROP COLUMN `custom3_value`;
ALTER TABLE `0_company` ADD COLUMN `default_delivery_required` SMALLINT(6) NULL DEFAULT '1';
+ALTER TABLE `0_company` ADD COLUMN `version_id` VARCHAR(11) NOT NULL DEFAULT '';
+ALTER TABLE `0_company` CHANGE `purch_exchange_diff_act` `profit_loss_year_act` VARCHAR(11) NOT NULL DEFAULT '';
+INSERT INTO `0_chart_master` VALUES ('8900', '', 'Profit and Loss this year', '52', '0');
+UPDATE `0_company` SET `profit_loss_year_act`='8900' WHERE `coy_code`=1;
ALTER TABLE `0_stock_category` DROP COLUMN `stock_act`;
ALTER TABLE `0_stock_category` DROP COLUMN `cogs_act`;
INSERT INTO `0_chart_master` VALUES ('6600', '', 'Repairs and Maintenance Office', '5', '0');
INSERT INTO `0_chart_master` VALUES ('6730', '', 'phone', '5', '0');
INSERT INTO `0_chart_master` VALUES ('8200', '', 'Bank Interest', '52', '0');
+INSERT INTO `0_chart_master` VALUES ('8900', '', 'Profit and Loss this year', '52', '0');
INSERT INTO `0_chart_master` VALUES ('6840', '', 'Credit Control', '5', '0');
INSERT INTO `0_chart_master` VALUES ('7040', '', 'Depreciation Office Equipment', '51', '0');
INSERT INTO `0_chart_master` VALUES ('3800', '', 'Freight Outwards', '5', '0');
`creditors_act` varchar(11) NOT NULL default '',
`grn_act` varchar(11) NOT NULL default '',
`exchange_diff_act` varchar(11) NOT NULL default '',
- `purch_exchange_diff_act` varchar(11) NOT NULL default '',
+ `profit_loss_year_act` varchar(11) NOT NULL default '',
`retained_earnings_act` varchar(11) NOT NULL default '',
`freight_act` varchar(11) NOT NULL default '',
`default_sales_act` varchar(11) NOT NULL default '',
`accumulate_shipping` tinyint(1) NOT NULL default '0',
`legal_text` tinytext NOT NULL,
`default_delivery_required` smallint(6) NOT NULL default '1',
+ `version_id` varchar(11) NOT NULL default '',
PRIMARY KEY (`coy_code`)
) TYPE=MyISAM ;
INSERT INTO `0_chart_master` VALUES ('6600', '', 'Repairs and Maintenance Office', '5', '0');
INSERT INTO `0_chart_master` VALUES ('6730', '', 'phone', '5', '0');
INSERT INTO `0_chart_master` VALUES ('8200', '', 'Bank Interest', '52', '0');
+INSERT INTO `0_chart_master` VALUES ('8900', '', 'Profit and Loss this year', '52', '0');
INSERT INTO `0_chart_master` VALUES ('6840', '', 'Credit Control', '5', '0');
INSERT INTO `0_chart_master` VALUES ('7040', '', 'Depreciation Office Equipment', '51', '0');
INSERT INTO `0_chart_master` VALUES ('3800', '', 'Freight Outwards', '5', '0');
`creditors_act` varchar(11) NOT NULL default '',
`grn_act` varchar(11) NOT NULL default '',
`exchange_diff_act` varchar(11) NOT NULL default '',
- `purch_exchange_diff_act` varchar(11) NOT NULL default '',
+ `profit_loss_year_act` varchar(11) NOT NULL default '',
`retained_earnings_act` varchar(11) NOT NULL default '',
`freight_act` varchar(11) NOT NULL default '',
`default_sales_act` varchar(11) NOT NULL default '',
`accumulate_shipping` tinyint(1) NOT NULL default '0',
`legal_text` tinytext NOT NULL,
`default_delivery_required` smallint(6) NOT NULL default '1',
+ `version_id` varchar(11) NOT NULL default '',
PRIMARY KEY (`coy_code`)
) TYPE=MyISAM ;