Example #1
0
define('ROOTDIR', '..');
require ROOTDIR . "/include/manage/mgmt_funs.php";
require ROOTDIR . "/include/manage/mgmt_start.php";
$GLOBALS['end_require_time'] = microtime();
if (isset($_REQUEST['orderby'])) {
    $orderby = $_REQUEST['orderby'];
    $_SESSION['orderby'] = $orderby;
} elseif (isset($_SESSION['orderby'])) {
    $orderby = $_SESSION['orderby'];
}
if (!access_allowed(USER_BIT_ACCOUNTING)) {
    $command = 'access_denied';
}
switch ($command) {
    case 'access_denied':
        echo access_denied_admin();
        break;
    case "show_all":
        main_header();
        table_general($orderby, "show_all", 6);
        break;
    case "income_collapse":
        main_header();
        table_general($orderby, "income_collapse", 5);
        break;
    case "show_only":
        if (isset($_GET['show_only'])) {
            $show_only = $_GET['show_only'];
            $_SESSION['show_only'] = $show_only;
        } elseif (isset($_POST['show_only'])) {
            $show_only = $_POST['show_only'];
    function admin_page($class, $command, $start_data)
    {
        global $tpl;
        if (defined('SECURITY_STOP')) {
            $command = 'access_denied';
        }
        switch ($command) {
            case 'access_denied':
                if (!$this->silent) {
                    $tmp = access_denied_admin();
                    $tpl->append("messages", $tmp);
                }
                break;
            case 'new':
                $tpl->set_admin_template_file('standard');
                $obj = new $class();
                $tmp = $obj->form();
                $tpl->assign("content", $tmp);
                break;
            case 'insert':
                $obj = new $class();
                if (!$obj->insert($start_data)) {
                    if (method_exists($obj, 'post_insert_page')) {
                        $obj->post_insert_page($class);
                    } else {
                        $obj->admin_list_page($class);
                    }
                }
                break;
            case 'edit':
                if (!isset($this->templates['edit'])) {
                    $this->templates['edit'] = 'menu';
                }
                $tpl->set_admin_template_file($this->templates['edit']);
                $obj = new $class($start_data['id']);
                $tmp = $obj->form();
                $tpl->assign("content", $tmp);
                if (method_exists($obj, 'post_edit_page')) {
                    $obj->post_edit_page($class);
                }
                break;
            case 'update':
                $obj = new $class($start_data['id']);
                if ($err = $obj->update($start_data)) {
                    if (!$this->silent) {
                        $tmp = '<span class="error_msg">Error updating: ' . $err . '</span><br>';
                        $tpl->append("messages", $tmp);
                    }
                }
                if (method_exists($obj, 'post_update_page')) {
                    $obj->post_update_page($class);
                } else {
                    $obj->admin_list_page($class);
                }
                break;
            case 'update_field':
                $obj = new $class($start_data['id']);
                if (method_exists($obj, 'update_field')) {
                    if ($err = $obj->update_field($start_data['field'])) {
                        if (!$this->silent) {
                            $tmp = '<span class="error_msg">Error updating: ' . $err . '</span><br>';
                            $tpl->append("messages", $tmp);
                        }
                    }
                }
                $obj->admin_list_page($class);
                break;
            case "delete":
                if (isset($_GET['deleteconfirm'])) {
                    $deleteconfirm = $_GET['deleteconfirm'];
                } elseif (isset($_POST['deleteconfirm'])) {
                    $deleteconfirm = $_POST['deleteconfirm'];
                }
                if ($deleteconfirm) {
                    $tpl->set_admin_template_file('menu');
                    $delete = $_SESSION["delete"];
                    unset($_SESSION["delete"]);
                    if (is_array($delete)) {
                        for (reset($delete); list($key, $value) = each($delete);) {
                            $obj = new $class($value);
                            if ($err = $obj->delete($start_data)) {
                                if (!$this->silent) {
                                    $tmp = '<span class="error_msg">Error deleting: ' . $err . '</span><br>';
                                    $tpl->append("messages", $tmp);
                                }
                            }
                            unset($rate);
                        }
                    }
                    if (count($delete) == 1) {
                        if (method_exists($obj, 'post_delete_page')) {
                            $obj->post_delete_page($class);
                        } else {
                            $obj->admin_list_page($class);
                        }
                    } else {
                        $obj = new $class();
                        $obj->admin_list_page($class);
                    }
                } else {
                    $tpl->set_admin_template_file('standard');
                    if (isset($_REQUEST['delete'])) {
                        $delete = $_REQUEST['delete'];
                    }
                    if (is_array($delete) || $delete == 'all') {
                        if ($delete == 'all') {
                            $query = "SELECT `id` FROM " . $this->table;
                            if ($this->flag_delete) {
                                $query .= " WHERE `deleted`=0";
                            }
                            if ($this->db == 'common') {
                                $res = common_query($query, __FILE__, __LINE__);
                            } else {
                                $res = accounting_query($query, __FILE__, __LINE__);
                            }
                            if (!$res) {
                                return ERR_MYSQL;
                            }
                            $delete_all = true;
                            unset($delete);
                            while ($arr = mysql_fetch_array($res)) {
                                $delete[] = $arr['id'];
                            }
                        }
                        $tmp = '<div align=center>';
                        if ($delete_all) {
                            $tmp .= ucphr('DELETE_ALL_CONFIRM');
                        } else {
                            $tmp .= ucphr('DELETE_RECORD_CONFIRM');
                        }
                        $tmp .= ' (' . count($delete) . ' ' . ucphr('RECORDS') . ')';
                        $tmp .= "<br>\n";
                        $tmp .= ucphr('ACTION_IS_DEFINITIVE') . ".<br><br>\n";
                        $_SESSION["delete"] = $delete;
                        if (!$delete_all) {
                            for (reset($delete); list($key, $value) = each($delete);) {
                                $obj = new $class($value);
                                if (!$obj->no_name) {
                                    $description = $obj->name($_SESSION['language']);
                                    unset($obj);
                                    $tmp .= "<LI>" . $description . "</LI>";
                                }
                            }
                        }
                        $tmp .= '
		<table>
			<tr>
				<td>
					<form action="' . $this->file . '?" method="GET">
					<input type="hidden" name="class" value="' . $class . '">
					<input type="hidden" name="command" value="delete">
					<input type="hidden" name="deleteconfirm" value="1">';
                        foreach ($start_data as $key => $value) {
                            $tmp .= '
					<input type="hidden" name="data[' . $key . ']" value="' . $value . '">';
                        }
                        $tmp .= '
					<input type="submit" value="' . ucphr('YES') . '">
					</form>
				</td>
				<td>
					<form action="' . $this->file . '?" method="GET">
					<input type="hidden" name="class" value="' . $class . '">
					<input type="submit" onclick="history.go(-1);return false;" value="' . ucphr('NO') . '">
					</form>
				</td>
			</tr>
		</table>';
                        $tmp .= '</div>';
                        $tpl->assign("content", $tmp);
                    } else {
                        if (!$this->silent) {
                            $tmp = '<span class="error_msg">' . ucphr('NO_RECORD_SELECTED') . '.</span><br>';
                            $tpl->append("messages", $tmp);
                        }
                    }
                }
                break;
            case 'stop':
                break;
            default:
                $obj = new $class();
                $obj->admin_list_page($class);
                break;
        }
        if ($command != "delete") {
            unset($_SESSION["delete"]);
        }
    }