public function testDestroy() { $project = Factory::create('Project'); $this->action('DELETE', 'Admin\\ProjectsController@destroy', $project->slug); $this->assertRedirectedToRoute('admin.projects.index'); $this->assertEquals(0, Project::count()); }
public function postProjectsSort($param) { $lang = Cookie::get('lang', 'ru'); $sort = Cookie::get("sort_{$param}", 'ASC'); $load = Input::get('load'); $projects = Project::select('project_id', 'project_alias', "project_keywords_{$lang}", "project_description_{$lang}", "project_name_{$lang}", "project_text_{$lang}", "project_image_preview", "project_date_start", "project_date_stop", "updated_at")->orderBy($param, $sort)->limit($load)->get(); $projects_count = Project::count(); if ($sort == 'ASC') { Cookie::queue("sort_{$param}", 'DESC'); } else { Cookie::queue("sort_{$param}", 'ASC'); } $tpl = View::make('layouts.projects')->with(array('projects' => $projects, 'projects_count' => $projects_count, 'lang' => $lang))->render(); return Response::json(array('success' => true, 'status' => 200, 'tpl' => $tpl, 'param' => $param, 'sort' => $sort)); }
function filter($year = FALSE) { if (!$year) { $year = date('Y', time()); } $tax = $this->view_data['core_settings']->tax; $this->load->database(); $sql = "select invoices.paid_date, ROUND(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount)+(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount))/100*{$tax},0) as summary FROM invoices, invoice_has_items where invoices.id = invoice_has_items.invoice_id AND invoices.`status` = 'Paid' AND paid_date between '{$year}-01-01'\nAND '{$year}-12-31' GROUP BY SUBSTR(invoices.paid_date,1,7)"; $query = $this->db->query($sql); $this->view_data["stats"] = $query->result(); $this->view_data["year"] = $year; //Projects //open $this->view_data["projects_open"] = Project::count(array('conditions' => array('progress < ?', 100))); //all $this->view_data["projects_all"] = Project::count(); //invoices //open $this->view_data["invoices_open"] = Invoice::count(array('conditions' => array('status != ?', 'Paid'))); //all $this->view_data["invoices_all"] = Invoice::count(); //payments open $thismonth = date('m'); $this->view_data["month"] = date('M'); $sql = "select invoices.paid_date, ROUND(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount)+(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount))/100*{$tax},0) as summary FROM invoices, invoice_has_items where invoices.id = invoice_has_items.invoice_id AND invoices.`status` = 'Paid' AND paid_date between '{$year}-{$thismonth}-01'\nAND '{$year}-{$thismonth}-31' "; $query = $this->db->query($sql); $this->view_data["payments"] = $query->result(); //payments outstanding $thismonth = date('m'); $this->view_data["month"] = date('M'); $sql = "select invoices.paid_date, ROUND(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount)+(sum(invoice_has_items.value*invoice_has_items.amount)-if(SUBSTR(invoices.discount,-1)='%',(sum(invoice_has_items.value*invoice_has_items.amount)/100*(SUBSTRING(invoices.discount, 1, CHAR_LENGTH(invoices.discount) - 1))), invoices.discount))/100*{$tax},0) as summary FROM invoices, invoice_has_items where invoices.id = invoice_has_items.invoice_id AND invoices.`status` != 'Paid' "; $query = $this->db->query($sql); $this->view_data["paymentsoutstanding"] = $query->result(); //Events $events = array(); $date = date('Y-m-d', time()); $eventcount = 0; foreach ($this->view_data['menu'] as $key => $value) { if ($value->link == "invoices") { $sql = 'SELECT * FROM invoices WHERE status != "Paid" AND due_date < "' . $date . '" ORDER BY due_date'; $res = $this->db->query($sql); $res = $res->result(); foreach ($res as $key2 => $value2) { $eventline = str_replace("{invoice_number}", '<a href="' . base_url() . 'invoices/view/' . $value2->id . '">#' . $value2->reference . '</a>', $this->lang->line('event_invoice_overdue')); $events[$value2->due_date . "." . $value2->id] = $eventline; $eventcount = $eventcount + 1; } } if ($value->link == "projects") { $sql = 'SELECT * FROM projects WHERE progress != "100" AND end < "' . $date . '" ORDER BY end'; $res = $this->db->query($sql); $res = $res->result(); foreach ($res as $key2 => $value2) { if ($this->user->admin == 0) { $sql = "SELECT id FROM `project_has_workers` WHERE project_id = " . $value->id . " AND user_id = " . $this->user->id; $query = $this->db->query($sql); $res = $query->result(); if ($res) { $eventline = str_replace("{project_number}", '<a href="' . base_url() . 'projects/view/' . $value2->id . '">#' . $value2->reference . '</a>', $this->lang->line('event_project_overdue')); $events[$value2->end . "." . $value2->id] = $eventline; $eventcount = $eventcount + 1; } } else { $eventline = str_replace("{project_number}", '<a href="' . base_url() . 'projects/view/' . $value2->id . '">#' . $value2->reference . '</a>', $this->lang->line('event_project_overdue')); $events[$value2->end . "." . $value2->id] = $eventline; $eventcount = $eventcount + 1; } } } if ($value->link == "subscriptions") { $sql = 'SELECT * FROM subscriptions WHERE status != "Inactive" AND end_date > "' . $date . '" AND next_payment <= "' . $date . '" ORDER BY next_payment'; $res = $this->db->query($sql); $res = $res->result(); foreach ($res as $key2 => $value2) { $eventline = str_replace("{subscription_number}", '<a href="' . base_url() . 'subscriptions/view/' . $value2->id . '">#' . $value2->reference . '</a>', $this->lang->line('event_subscription_new_invoice')); $events[$value2->next_payment . "." . $value2->id] = $eventline; $eventcount = $eventcount + 1; } } if ($value->link == "messages") { $sql = 'SELECT privatemessages.id, privatemessages.`status`, privatemessages.subject, privatemessages.message, privatemessages.`time`, privatemessages.`recipient`, clients.`userpic` as userpic_c, users.`userpic` as userpic_u , users.`email` as email_u , clients.`email` as email_c , CONCAT(users.firstname," ", users.lastname) as sender_u, CONCAT(clients.firstname," ", clients.lastname) as sender_c FROM privatemessages LEFT JOIN clients ON CONCAT("c",clients.id) = privatemessages.sender LEFT JOIN users ON CONCAT("u",users.id) = privatemessages.sender GROUP by privatemessages.id HAVING privatemessages.recipient = "u' . $this->user->id . '"AND privatemessages.status != "deleted" ORDER BY privatemessages.`time` DESC LIMIT 6'; $query = $this->db->query($sql); $this->view_data["message"] = array_filter($query->result()); } if ($value->link == "projects") { $sql = 'SELECT * FROM project_has_tasks WHERE status != "done" AND user_id = "' . $this->user->id . '" ORDER BY project_id'; $taskquery = $this->db->query($sql); $this->view_data["tasks"] = $taskquery->result(); } } krsort($events); $this->view_data["events"] = $events; $this->view_data["eventcount"] = $eventcount; $this->content_view = 'dashboard/dashboard'; }
use Agil\Config\Config; $request = View::route($_GET); if (isset($_FILES['image']) && !empty($_FILES['image']) && !empty($request['pk']) && is_numeric($request['pk'])) { $logado = Session::get('logado'); $id_admin = $logado['id_member']; $pk = $request['pk']; $name = md5(sha1(date("Y-m-d H:m:s"))); $file = $_FILES['image']; $ds = Config::get('ds'); $media = Config::get('media'); $extensions = Config::get('images'); $ext = explode(".", $file['name']); $ext = $ext[count($ext) - 1]; $sql = array("id_project" => $pk, "id_admin" => $id_admin); $project = new Project(); $row = $project->count($sql); if ($row == 1 && in_array($ext, $extensions)) { $user = $media . $id_admin; if (!is_dir($user)) { $mkdir = mkdir($user, 0700); $chmod = chmod($user, 0700); } $project = $media . $id_admin . $ds . $pk; if (!is_dir($project)) { $mkdir = mkdir($project, 0700); $chmod = chmod($project, 0700); } $tmp = $file['tmp_name']; $name .= "." . $ext; $source = $project . $ds . $name; if (move_uploaded_file($tmp, $source)) {
if ($logado['email'] == $email) { ?> <script> html = "<div style=\"padding:20px;text-align:center;\"><kbd><?php echo $email; ?> </kbd> já é colaborador.</div>"; window.parent.boss.popup('Erro 42', html); </script> <?php die; } try { $sql = array('id_project' => $pk, 'id_admin' => $logado['id_member'], 'status' => '1'); $project = new Project(); $count = $project->count($sql); if ($count == 1) { $project = $project->get($sql); $project = $project[0]; $sql = array('email' => $email); $member = new Member(); $member->fields = array('id_member', 'name', 'email'); $count = $member->count($sql); if ($count == 1) { $rs = $member->get($sql); $rs = $rs[0]; $id_project = $pk; $id_member = $rs['id_member']; $sql = array('id_project' => $id_project, 'id_member' => $id_member, 'status' => 1); $member_set = new ProjectMemberSet($sql); $countMemberSetSend = $member_set->count($sql);
/** * @usage jqgrid 显示 */ public function listAction() { $this->view->disable(); $page = $this->request->get('page'); $rows = $this->request->get('rows'); $offset = $rows * ($page - 1); $limit = $rows; $sidx = $this->request->getQuery('sidx', 'string'); $sord = $this->request->getQuery('sord', 'string'); if ($sidx != null) { $sort = $sidx; } else { $sort = 'id'; $sord = 'desc'; } if ($sord != null) { $sort = $sort . ' ' . $sord; } //default get $search_state = $this->request->get('_search'); if ($search_state == 'false') { $result = $this->modelsManager->createBuilder()->columns(array('Project.id as id', 'Project.begintime as begintime', 'Project.endtime as endtime', 'Project.description as description', 'Project.name as name', 'Manager.name as manager_name', 'Manager.username as manager_username', 'Manager.password as manager_password', 'COUNT(Examinee.id) as user_count'))->from('Project')->join('Manager', 'Project.manager_id = Manager.id ')->leftJoin('Examinee', 'Project.id = Examinee.project_id AND Examinee.type = 0')->groupBy('Project.id')->limit($limit, $offset)->orderBy($sort)->getQuery()->execute(); $rtn_array = array(); $count = Project::count(); $rtn_array['total'] = ceil($count / $rows); $rtn_array['records'] = $count; $rtn_array['rows'] = array(); foreach ($result as $value) { $rtn_array['rows'][] = $value; } $rtn_array['page'] = $page; $this->dataReturn($rtn_array); return; } else { //处理search情况 $search_field = $this->request->get('searchField'); $search_string = $this->request->get('searchString'); $search_oper = $this->request->get('searchOper'); #分情况讨论 #先取出最特殊情况 if ($search_field == 'user_count') { $oper = ''; switch ($search_oper) { case 'eq': $oper = '='; break; case 'lt': $oper = '<'; break; case 'le': $oper = '<='; break; case 'gt': $oper = '>'; break; case 'ge': $oper = '>='; break; } $filed = 'COUNT(Examinee.id)'; $value = $search_string; $result = $this->modelsManager->createBuilder()->columns(array('Project.id as id', 'Project.begintime as begintime', 'Project.endtime as endtime', 'Project.description as description', 'Project.name as name', 'Manager.name as manager_name', 'Manager.username as manager_username', 'Manager.password as manager_password', 'COUNT(Examinee.id) as user_count'))->from('Project')->join('Manager', "Project.manager_id = Manager.id")->leftJoin('Examinee', 'Project.id = Examinee.project_id AND Examinee.type = 0')->groupBy('Project.id')->having("{$filed} {$oper} {$value}")->orderBy($sort)->getQuery()->execute(); $rtn_array = array(); $count = count($result); $rtn_array['total'] = ceil($count / $rows); $rtn_array['records'] = $count; $rtn_array['rows'] = array(); foreach ($result as $value) { $rtn_array['rows'][] = $value; } $rtn_array['page'] = $page; $this->dataReturn($rtn_array); return; } if ($search_field == 'id' || $search_field == 'manager_username') { //equal $oper = '='; if ($search_field == 'id') { $field = 'Project.' . $search_field; } else { if ($search_field == 'manager_username') { $field = 'Manager.username'; } else { // } } $value = "'{$search_string}'"; } else { if ($search_field == 'name' || $search_field == 'manager_name') { $oper = 'LIKE'; if ($search_field == 'name') { $field = 'Project.' . $search_field; } else { if ($search_field == 'manager_name') { $field = 'Manager.name'; } else { // } } $value = "'%{$search_string}%'"; } else { if ($search_field == 'begintime' || $search_field == 'endtime') { $oper = ''; if ($search_oper == 'bw') { $oper = '>='; } else { if ($search_oper == 'ew') { $oper = '<='; } } $field = 'Project.' . $search_field; $value = "'{$search_string}'"; } else { //waiting add... } } } $result = $this->modelsManager->createBuilder()->columns(array('Project.id as id', 'Project.begintime as begintime', 'Project.endtime as endtime', 'Project.description as description', 'Project.name as name', 'Manager.name as manager_name', 'Manager.username as manager_username', 'Manager.password as manager_password', 'COUNT(Examinee.id) as user_count'))->from('Project')->join('Manager', "Project.manager_id = Manager.id AND {$field} {$oper} {$value}")->leftJoin('Examinee', 'Project.id = Examinee.project_id AND Examinee.type = 0')->groupBy('Project.id')->orderBy($sort)->getQuery()->execute(); $rtn_array = array(); $count = count($result); $rtn_array['total'] = ceil($count / $rows); $rtn_array['records'] = $count; $rtn_array['rows'] = array(); foreach ($result as $value) { $rtn_array['rows'][] = $value; } $rtn_array['page'] = $page; $this->dataReturn($rtn_array); return; } }
<?php require_once 'init.php'; use Agil\View\View; use Agil\Session\Session; $logado = Session::get('logado'); $request = View::route($_GET); $pk = $request['pk']; $model = new Project(); $admin = $model->is_admin($request['pk'], $logado['id_member']); $sql = array('id_project' => $pk, 'status' => 1); $project = null; $fields = array('id_project', 'title'); $model->fields = $fields; $projects = $model->get($sql); $count = $model->count($sql); $project = $projects[0]; ?> <div class="app-pane"> <div class="app-pane-header"> <div class="col-6 pull-left"> <div id="btn_group_options" class="btn-group"> <a class="btn btn-primary" onclick="boss.bookmark.remove('tab_project_<?php echo $request['pk']; ?> ');boss.ajax.load('/app/project/view_project_graph/?pk=<?php echo $request['pk']; ?> ', '#app_conteiner');">Projeto</a> <a class="btn" onclick="boss.bookmark.set('tab_project_<?php echo $request['pk'];