1<?php 2/********************************************************************** 3 Copyright (C) FrontAccounting, LLC. 4 Released under the terms of the GNU General Public License, GPL, 5 as published by the Free Software Foundation, either version 3 6 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/gpl-3.0.html>. 11***********************************************************************/ 12$page_security = 'SA_BUDGETENTRY'; 13$path_to_root = ".."; 14include_once($path_to_root . "/includes/session.inc"); 15 16add_js_file('budget.js'); 17 18page(_($help_context = "Budget Entry")); 19 20include_once($path_to_root . "/includes/ui.inc"); 21include_once($path_to_root . "/gl/includes/gl_db.inc"); 22include_once($path_to_root . "/includes/data_checks.inc"); 23include_once($path_to_root . "/admin/db/fiscalyears_db.inc"); 24 25 26check_db_has_gl_account_groups(_("There are no account groups defined. Please define at least one account group before entering accounts.")); 27 28//------------------------------------------------------------------------------------- 29 30if (isset($_POST['add']) || isset($_POST['delete'])) 31{ 32 begin_transaction(); 33 34 for ($i = 0, $da = $_POST['begin']; date1_greater_date2($_POST['end'], $da); $i++) 35 { 36 if (isset($_POST['add'])) 37 add_update_gl_budget_trans($da, $_POST['account'], $_POST['dim1'], $_POST['dim2'], input_num('amount'.$i)); 38 else 39 delete_gl_budget_trans($da, $_POST['account'], $_POST['dim1'], $_POST['dim2']); 40 $da = add_months($da, 1); 41 } 42 commit_transaction(); 43 44 if (isset($_POST['add'])) 45 display_notification_centered(_("The Budget has been saved.")); 46 else 47 display_notification_centered(_("The Budget has been deleted.")); 48 49 //meta_forward($_SERVER['PHP_SELF']); 50 $Ajax->activate('budget_tbl'); 51} 52if (isset($_POST['submit']) || isset($_POST['update'])) 53 $Ajax->activate('budget_tbl'); 54 55//------------------------------------------------------------------------------------- 56 57start_form(); 58 59if (db_has_gl_accounts()) 60{ 61 $dim = get_company_pref('use_dimension'); 62 start_table(TABLESTYLE2); 63 fiscalyears_list_row(_("Fiscal Year:"), 'fyear', null); 64 gl_all_accounts_list_row(_("Account Code:"), 'account', null); 65 if (!isset($_POST['dim1'])) 66 $_POST['dim1'] = 0; 67 if (!isset($_POST['dim2'])) 68 $_POST['dim2'] = 0; 69 if ($dim == 2) 70 { 71 dimensions_list_row(_("Dimension")." 1", 'dim1', $_POST['dim1'], true, null, false, 1); 72 dimensions_list_row(_("Dimension")." 2", 'dim2', $_POST['dim2'], true, null, false, 2); 73 } 74 else if ($dim == 1) 75 { 76 dimensions_list_row(_("Dimension"), 'dim1', $_POST['dim1'], true, null, false, 1); 77 hidden('dim2', 0); 78 } 79 else 80 { 81 hidden('dim1', 0); 82 hidden('dim2', 0); 83 } 84 submit_row('submit', _("Get"), true, '', '', true); 85 end_table(1); 86 div_start('budget_tbl'); 87 start_table(TABLESTYLE2); 88 $showdims = (($dim == 1 && $_POST['dim1'] == 0) || 89 ($dim == 2 && $_POST['dim1'] == 0 && $_POST['dim2'] == 0)); 90 if ($showdims) 91 $th = array(_("Period"), _("Amount"), _("Dim. incl."), _("Last Year")); 92 else 93 $th = array(_("Period"), _("Amount"), _("Last Year")); 94 table_header($th); 95 $year = $_POST['fyear']; 96 if (get_post('update') == '') { 97 $fyear = get_fiscalyear($year); 98 $_POST['begin'] = sql2date($fyear['begin']); 99 $_POST['end'] = sql2date($fyear['end']); 100 } 101 hidden('begin'); 102 hidden('end'); 103 $total = $btotal = $ltotal = 0; 104 for ($i = 0, $date_ = $_POST['begin']; date1_greater_date2($_POST['end'], $date_); $i++) 105 { 106 start_row(); 107 if (get_post('update') == '') 108 $_POST['amount'.$i] = number_format2(get_only_budget_trans_from_to( 109 $date_, $date_, $_POST['account'], $_POST['dim1'], $_POST['dim2']), 0); 110 111 label_cell($date_); 112 amount_cells(null, 'amount'.$i, null, 15, null, 0); 113 if ($showdims) 114 { 115 $d = get_budget_trans_from_to($date_, $date_, $_POST['account'], $_POST['dim1'], $_POST['dim2']); 116 label_cell(number_format2($d, 0), "nowrap align=right"); 117 $btotal += $d; 118 } 119 $lamount = get_gl_trans_from_to(add_years($date_, -1), add_years(end_month($date_), -1), $_POST['account'], $_POST['dim1'], $_POST['dim2']); 120 $total += input_num('amount'.$i); 121 $ltotal += $lamount; 122 label_cell(number_format2($lamount, 0), "nowrap align=right"); 123 $date_ = add_months($date_, 1); 124 end_row(); 125 } 126 start_row(); 127 label_cell("<b>"._("Total")."</b>"); 128 label_cell(number_format2($total, 0), 'align=right style="font-weight:bold"', 'Total'); 129 if ($showdims) 130 label_cell("<b>".number_format2($btotal, 0)."</b>", "nowrap align=right"); 131 label_cell("<b>".number_format2($ltotal, 0)."</b>", "nowrap align=right"); 132 end_row(); 133 end_table(1); 134 div_end(); 135 submit_center_first('update', _("Update"), '', null); 136 submit('add', _("Save"), true, '', 'default'); 137 submit_center_last('delete', _("Delete"), '', true); 138} 139end_form(); 140 141end_page(); 142 143?> 144