MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
-$page_security = 9;
-$path_to_root="..";
+$page_security = 'SA_FISCALYEARS';
+$path_to_root = "..";
include_once($path_to_root . "/includes/session.inc");
include_once($path_to_root . "/includes/date_functions.inc");
include_once($path_to_root . "/admin/db/company_db.inc");
include_once($path_to_root . "/includes/ui.inc");
+include_once($path_to_root . "/sales/includes/db/cust_trans_db.inc");
include_once($path_to_root . "/admin/db/maintenance_db.inc");
$js = "";
if ($use_date_picker)
//---------------------------------------------------------------------------------------------
function close_year($year)
{
+ $co = get_company_prefs();
+ if ($co['retained_earnings_act'] == '' || $co['profit_loss_year_act'] == '')
+ {
+ display_error(_("The Retained Earnings Account or the Profit and Loss Year Account has not been set in System and General GL Setup"));
+ return false;
+ }
+ begin_transaction();
+
$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'";
+ WHERE ctype>=".CL_ASSETS." AND ctype <=".CL_EQUITY." 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());
- begin_transaction();
$to = sql2date($to);
if ($balance != 0.0)
{
- $co = get_company_prefs();
-
- $trans_type = systypes::journal_entry();
+ $trans_type = ST_JOURNAL;
$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);
}
- close_transactions($to);
- commit_transaction();
+ close_transactions($to);
+
+ commit_transaction();
+ return true;
}
function open_year($year)
{
global $selected_id, $Mode;
+ $ok = true;
if ($selected_id != -1)
{
if ($_POST['closed'] == 1)
set_focus('closed');
return false;
}
- close_year($selected_id);
+ $ok = close_year($selected_id);
}
else
open_year($selected_id);
- update_fiscalyear($selected_id, $_POST['closed']);
- display_notification(_('Selected fiscal year has been updated'));
+ if ($ok)
+ {
+ update_fiscalyear($selected_id, $_POST['closed']);
+ display_notification(_('Selected fiscal year has been updated'));
+ }
}
else
{
$ref = _("Open Balance");
$myrow = get_fiscalyear($selected_id);
$to = $myrow['end'];
- $sql = "SELECT order_no FROM ".TB_PREF."sales_orders WHERE ord_date <= '$to'";
+ $sql = "SELECT order_no, trans_type FROM ".TB_PREF."sales_orders WHERE ord_date <= '$to' AND type <> 1"; // don't take the templates
$result = db_query($sql, "Could not retrieve sales orders");
while ($row = db_fetch($result))
{
- $sql = "SELECT SUM(qty_sent), SUM(quantity) FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']}";
+ $sql = "SELECT SUM(qty_sent), SUM(quantity) FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
$res = db_query($sql, "Could not retrieve sales order details");
$row2 = db_fetch_row($res);
if ($row2[0] == $row2[1])
{
- $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']}";
+ $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
db_query($sql, "Could not delete sales order details");
- $sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no = {$row['order_no']}";
+ $sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
db_query($sql, "Could not delete sales order");
- delete_attachments_and_comments(systypes::sales_order(), $row['order_no']);
+ delete_attachments_and_comments($row['trans_type'], $row['order_no']);
}
}
$sql = "SELECT order_no FROM ".TB_PREF."purch_orders WHERE ord_date <= '$to'";
db_query($sql, "Could not delete purchase order details");
$sql = "DELETE FROM ".TB_PREF."purch_orders WHERE order_no = {$row['order_no']}";
db_query($sql, "Could not delete purchase order");
- delete_attachments_and_comments(systypes::po(), $row['order_no']);
+ delete_attachments_and_comments(ST_PURCHORDER, $row['order_no']);
}
}
$sql = "SELECT id FROM ".TB_PREF."grn_batch WHERE delivery_date <= '$to'";
$result = db_query($sql, "Could not retrieve debtor trans");
while ($row = db_fetch($result))
{
+ if ($row['type'] == 10)
+ {
+ $deliveries = get_parent_trans(10,$row['trans_no']);
+ foreach ($deliveries as $delivery)
+ {
+ $sql = "DELETE FROM ".TB_PREF."debtor_trans_details WHERE debtor_trans_no = $delivery AND debtor_trans_type = 13";
+ db_query($sql, "Could not delete debtor trans details");
+ $sql = "DELETE FROM ".TB_PREF."debtor_trans WHERE trans_no = $delivery AND type = 13";
+ db_query($sql, "Could not delete debtor trans");
+ }
+ }
$sql = "DELETE FROM ".TB_PREF."cust_allocations WHERE trans_no_from = {$row['trans_no']} AND type_no_from = {$row['type']}";
db_query($sql, "Could not delete cust allocations");
$sql = "DELETE FROM ".TB_PREF."debtor_trans_details WHERE debtor_trans_no = {$row['trans_no']} AND debtor_trans_type = {$row['type']}";
$result = get_all_fiscalyears();
start_form();
+ display_note(_("Warning: During fiscal year removal all transactions
+ are removed and converted into relevant balances. This process is irreversible!"),
+ 0, 0, "class='currentfg'");
start_table($table_style);
$th = array(_("Fiscal Year Begin"), _("Fiscal Year End"), _("Closed"), "", "");
label_cell($to);
label_cell($closed_text);
edit_button_cell("Edit".$myrow['id'], _("Edit"));
- if ($myrow["id"] != $company_year)
+ if ($myrow["id"] != $company_year) {
delete_button_cell("Delete".$myrow['id'], _("Delete"));
- else
+ submit_js_confirm("Delete".$myrow['id'],
+ sprintf(_("Are you sure you want to remove fiscal year
+ '%s'-'%s'? All transactions are removed and converted into relevant
+ balances. Do you want to continue ?"), $from, $to));
+ } else
label_cell('');
end_row();
}