X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fgl_budget.php;fp=gl%2Fgl_budget.php;h=988e6026cb36c5c0f3ba86ba7ed8cd72a3304e2f;hb=37f4a02e0f4bea58e5b2097d583bf9395ffc515f;hp=0000000000000000000000000000000000000000;hpb=97023f8706bb7149c62ca49eaec123cca3c51fa0;p=fa-stable.git diff --git a/gl/gl_budget.php b/gl/gl_budget.php new file mode 100644 index 00000000..988e6026 --- /dev/null +++ b/gl/gl_budget.php @@ -0,0 +1,176 @@ + 0); +} + +function add_update_gl_budget_trans($date_, $account, $dimension, $dimension2, $amount) +{ + $date = date2sql($date_); + + if (exists_gl_budget($date, $account, $dimension, $dimension2)) + $sql = "UPDATE ".TB_PREF."budget_trans SET amount=$amount WHERE account='$account' AND + dimension_id=$dimension AND dimension2_id=$dimension2 AND tran_date='$date'"; + else + $sql = "INSERT INTO ".TB_PREF."budget_trans (tran_date, + account, dimension_id, dimension2_id, amount) VALUES ('$date', + '$account', $dimension, $dimension2, $amount)"; + + db_query($sql, "The GL budget transaction could not be saved"); +} + +function delete_gl_budget_trans($date_, $account, $dimension, $dimension2) +{ + $date = date2sql($date_); + + $sql = "DELETE FROM ".TB_PREF."budget_trans WHERE account='$account' AND + dimension_id=$dimension AND dimension2_id=$dimension2 AND tran_date='$date'"; + db_query($sql, "The GL budget transaction could not be deleted"); +} + +function get_only_budget_trans_from_to($from_date, $to_date, $account, $dimension=0, $dimension2=0) +{ + + $from = date2sql($from_date); + $to = date2sql($to_date); + + $sql = "SELECT SUM(amount) FROM ".TB_PREF."budget_trans + WHERE account='$account' AND tran_date >= '$from' AND tran_date <= '$to' + AND dimension_id = $dimension AND dimension2_id = $dimension2"; + $result = db_query($sql,"No budget accounts were returned"); + + $row = db_fetch_row($result); + return $row[0]; +} + +//------------------------------------------------------------------------------------- + +if (isset($_POST['add']) || isset($_POST['delete'])) +{ + begin_transaction(); + + for ($i = 0, $da = $_POST['begin']; date1_greater_date2($_POST['end'], $da); $i++) + { + if (isset($_POST['add'])) + add_update_gl_budget_trans($da, $_POST['account'], $_POST['dim1'], $_POST['dim2'], $_POST['amount'.$i]); + else + delete_gl_budget_trans($da, $_POST['account'], $_POST['dim1'], $_POST['dim2']); + $da = add_months($da, 1); + } + commit_transaction(); + + if (isset($_POST['add'])) + display_notification_centered(_("The Budget has been saved.")); + else + display_notification_centered(_("The Budget has been deleted.")); + + //meta_forward($_SERVER['PHP_SELF']); +} + +//------------------------------------------------------------------------------------- + +start_form(); + +if (db_has_gl_accounts()) +{ + $dim = get_company_pref('use_dimension'); + start_table($table_style2); + fiscalyears_list_row(_("Fiscal Year:"), 'fyear', null); + gl_all_accounts_list_row(_("Account Code:"), 'account', null); + if (!isset($_POST['dim1'])) + $_POST['dim1'] = 0; + if (!isset($_POST['dim2'])) + $_POST['dim2'] = 0; + if ($dim == 2) + { + dimensions_list_row(_("Dimension")." 1", 'dim1', $_POST['dim1'], true, null, false, 1); + dimensions_list_row(_("Dimension")." 2", 'dim2', $_POST['dim2'], true, null, false, 2); + } + else if ($dim == 1) + { + dimensions_list_row(_("Dimension"), 'dim1', $_POST['dim1'], true, null, false, 1); + hidden('dim2', 0); + } + else + { + hidden('dim1', 0); + hidden('dim2', 0); + } + submit_row('submit', _("Get")); + end_table(1); + start_table($table_style2); + $showdims = (($dim == 1 && $_POST['dim1'] == 0) || + ($dim == 2 && $_POST['dim1'] == 0 && $_POST['dim2'] == 0)); + if ($showdims) + $th = array(_("Period"), _("Amount"), _("Dim. incl."), _("Last Year")); + else + $th = array(_("Period"), _("Amount"), _("Last Year")); + table_header($th); + $year = $_POST['fyear']; + $sql = "SELECT * FROM ".TB_PREF."fiscal_year WHERE id=$year"; + + $result = db_query($sql, "could not get current fiscal year"); + + $fyear = db_fetch($result); + $begin = sql2date($fyear['begin']); + $end = sql2date($fyear['end']); + hidden('begin', $begin); + hidden('end', $end); + $total = $btotal = $ltotal = 0; + for ($i = 0, $date_ = $begin; date1_greater_date2($end, $date_); $i++) + { + start_row(); + $_POST['amount'.$i] = get_only_budget_trans_from_to($date_, $date_, $_POST['account'], $_POST['dim1'], $_POST['dim2']); + + label_cell($date_); + if (!isset($_POST['amount'.$i])) + $_POST['amount'.$i] = "0"; + text_cells(null, 'amount'.$i, null, 15); + if ($showdims) + { + $d = get_budget_trans_from_to($date_, $date_, $_POST['account'], $_POST['dim1'], $_POST['dim2']); + label_cell(number_format2($d, 0), "nowrap align=right"); + $btotal += $d; + } + $lamount = get_gl_trans_from_to(add_years($date_, -1), add_years(end_month($date_), -1), $_POST['account'], $_POST['dim1'], $_POST['dim2']); + $total += $_POST['amount'.$i]; + $ltotal += $lamount; + label_cell(number_format2($lamount, 0), "nowrap align=right"); + $date_ = add_months($date_, 1); + end_row(); + } + start_row(); + label_cell(""._("Total").""); + label_cell("".number_format2($total, 0).""); + if ($showdims) + label_cell("".number_format2($btotal, 0)."", "nowrap align=right"); + label_cell("".number_format2($ltotal, 0)."", "nowrap align=right"); + end_row(); + end_table(1); + submit_center_first('add', _("Save")); + submit_center_last('delete', _("Delete")); +} +end_form(); + +end_page(); + +?>