public function index() { $by = isset($_GET['by']) ? trim($_GET['by']) : ''; $p = isset($_GET['p']) ? intval($_GET['p']) : 1; $below_ids = getSubRoleId(false); $below_ids = empty($below_ids) ? -1 : $below_ids; $d_v_leads = D('LeadsView'); $outdays = M('config')->where('name="leads_outdays"')->getField('value'); $outdate = empty($outdays) ? time() : time() - 86400 * $outdays; $where = array(); $params = array(); $order = "create_time desc"; $where['have_time'] = array('egt', $outdate); if ($_GET['desc_order']) { $order = trim($_GET['desc_order']) . ' desc'; } elseif ($_GET['asc_order']) { $order = trim($_GET['asc_order']) . ' asc'; } switch ($by) { case 'today': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-d', time())) + 86400), array('gt', 0), 'and'); break; case 'week': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-d', time())) + (date('N', time()) - 1) * 86400), array('gt', 0), 'and'); break; case 'month': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-01', strtotime('+1 month')))), array('gt', 0), 'and'); break; case 'd7': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 6); break; case 'd15': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 14); break; case 'd30': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 29); break; case 'add': $order = 'create_time desc'; break; case 'update': $order = 'update_time desc'; break; case 'sub': $where['owner_role_id'] = array('in', implode(',', $below_ids)); break; case 'subcreate': $where['creator_role_id'] = array('in', implode(',', $below_ids)); break; case 'public': unset($where['have_time']); $where['_string'] = "leads.owner_role_id=0 or leads.have_time < {$outdate}"; break; case 'deleted': $where['is_deleted'] = 1; unset($where['have_time']); break; case 'transformed': $where['is_transformed'] = 1; break; case 'me': $where['owner_role_id'] = session('role_id'); break; default: $where['owner_role_id'] = array('in', implode(',', getSubRoleId())); break; } if ($by != 'deleted') { $where['is_deleted'] = array('neq', 1); } if ($by != 'transformed') { $where['is_transformed'] = array('neq', 1); } if (!isset($where['owner_role_id'])) { if (!isset($where['_string'])) { $where['owner_role_id'] = array('in', implode(',', getSubRoleId(true))); } else { $where['owner_role_id'] = array('in', '0,' . implode(',', getSubRoleId(true))); } } if ($_REQUEST["field"]) { if (trim($_REQUEST['field']) == "all") { $field = is_numeric(trim($_REQUEST['search'])) ? 'name|owner_role_id|company|position|saltname|phone|mobile|email|qq|fax|website|source|status|industry|state|zip_code|city|state|description|annual_revenue|no_of_employees|' : 'name|owner_role_id|company|position|saltname|phone|mobile|email|qq|fax|website|source|status|industry|state|zip_code|city|state|description'; } else { $field = trim($_REQUEST['field']); } $field_date = M('Fields')->where('is_main=1 and (model="" or model="leads") and form_type="datetime"')->select(); foreach ($field_date as $v) { if ($field == $v['field']) { $search = is_numeric($search) ? $search : strtotime($search); } } if ($this->_request('state')) { $search = $this->_request('state'); if ($this->_request('city')) { $search .= chr(10) . $this->_request('city'); } if ($search) { $search .= chr(10) . trim($_REQUEST['search']); } } $search = empty($_REQUEST['search']) ? '' : trim($_REQUEST['search']); $condition = empty($_REQUEST['condition']) ? 'is' : trim($_REQUEST['condition']); if ('create_time' == $field || 'update_time' == $field) { $search = is_numeric($search) ? $search : strtotime($search); } switch ($condition) { case "is": $where[$field] = array('eq', $search); break; case "isnot": $where[$field] = array('neq', $search); break; case "contains": $where[$field] = array('like', '%' . $search . '%'); break; case "not_contain": $where[$field] = array('notlike', '%' . $search . '%'); break; case "start_with": $where[$field] = array('like', $search . '%'); break; case "end_with": $where[$field] = array('like', '%' . $search); break; case "is_empty": $where[$field] = array('eq', ''); break; case "is_not_empty": $where[$field] = array('neq', ''); break; case "gt": $where[$field] = array('gt', $search); break; case "egt": $where[$field] = array('egt', $search); break; case "lt": $where[$field] = array('lt', $search); break; case "elt": $where[$field] = array('elt', $search); break; case "eq": $where[$field] = array('eq', $search); break; case "neq": $where[$field] = array('neq', $search); break; case "between": $where[$field] = array('between', array($search - 1, $search + 86400)); break; case "nbetween": $where[$field] = array('not between', array($search, $search + 86399)); break; case "tgt": $where[$field] = array('gt', $search + 86400); break; default: $where[$field] = array('eq', $search); } $params = array('field=' . trim($_REQUEST['field']), 'condition=' . $condition, 'search=' . $_REQUEST["search"]); } if (trim($_GET['act'] == 'sms')) { $customer_list = $d_v_leads->where($where)->select(); $contacts = array(); foreach ($customer_list as $k => $v) { $contacts[] = array('name' => $v['contacts_name'], 'customer_name' => $v['name'], 'telephone' => trim($v['mobile'])); } $this->contacts = $contacts; $this->alert = parseAlert(); $this->display('Setting:sendsms'); } elseif (trim($_GET['act']) == 'excel') { if (vali_permission('leads', 'export')) { $order = $order ? $order : 'create_time desc'; $leadsList = $d_v_leads->where($where)->order($order)->select(); $this->excelExport($leadsList); } else { alert('error', L('HAVE NOT PRIVILEGES'), $_SERVER['HTTP_REFERER']); } } else { $list = $d_v_leads->where($where)->page($p . ',15')->order($order)->select(); $count = $d_v_leads->where($where)->count(); import("@.ORG.Page"); $Page = new Page($count, 15); if (!empty($_GET['by'])) { $params[] = 'by=' . trim($_GET['by']); } $this->parameter = implode('&', $params); if ($_GET['desc_order']) { $params[] = "desc_order=" . trim($_GET['desc_order']); } elseif ($_GET['asc_order']) { $params[] = "asc_order=" . trim($_GET['asc_order']); } $Page->parameter = implode('&', $params); $this->assign('page', $Page->show()); if ($by == 'deleted') { foreach ($list as $k => $v) { $list[$k]["delete_role"] = getUserByRoleId($v['delete_role_id']); $list[$k]["owner"] = getUserByRoleId($v['owner_role_id']); $list[$k]["creator"] = getUserByRoleId($v['creator_role_id']); } } elseif ($by == 'transformed') { foreach ($list as $k => $v) { $list[$k]["owner"] = getUserByRoleId($v['owner_role_id']); $list[$k]["creator"] = getUserByRoleId($v['creator_role_id']); $list[$k]["transform_role"] = getUserByRoleId($v['transform_role_id']); $list[$k]["business_name"] = M('business')->where('business_id = %d', $v['business_id'])->getField('name'); $list[$k]["contacts_name"] = M('contacts')->where('contacts_id = %d', $v['contacts_id'])->getField('name'); $list[$k]["customer_name"] = M('customer')->where('customer_id = %d', $v['customer_id'])->getField('name'); } } else { foreach ($list as $k => $v) { $days = 0; $list[$k]["owner"] = D('RoleView')->where('role.role_id = %d', $v['owner_role_id'])->find(); $list[$k]["creator"] = D('RoleView')->where('role.role_id = %d', $v['creator_role_id'])->find(); $days = M('leads')->where('leads_id = %d', $v['leads_id'])->getField('have_time'); $list[$k]["days"] = $outdays - floor((time() - $days) / 86400); } } //get subordinate's and youself position list $d_role_view = D('RoleView'); $this->role_list = $d_role_view->where('role.role_id in (%s)', implode(',', $below_ids))->select(); $this->assign('leadslist', $list); $this->field_array = getIndexFields('leads'); $this->field_list = getMainFields('leads'); $this->alert = parseAlert(); $this->display(); } }
public function index() { $product = D('ProductView'); // 实例化User对象 import('@.ORG.Page'); // 导入分页类 $category = M('product_category'); $where = array(); $params = array(); $idArray = array(); if ($_GET['category_id']) { $categoryList = getSubCategory($_GET['category_id'], $category_list, ''); foreach ($categoryList as $value) { $idArray[] = $value['category_id']; } } $idList = empty($idArray) ? $_GET['category_id'] : $_GET['category_id'] . ',' . implode(',', $idArray); $p = isset($_GET['p']) ? $_GET['p'] : 1; if ($_REQUEST["field"]) { if (trim($_REQUEST['field']) == "all") { $field = is_numeric(trim($_REQUEST['search'])) ? 'product.name|cost_price|sales_price|link|pre_sale_count|stock_count' : 'product.name|link|development_team'; } else { $field = trim($_REQUEST['field']); } $search = empty($_REQUEST['search']) ? '' : trim($_REQUEST['search']); $condition = empty($_REQUEST['condition']) ? 'is' : trim($_REQUEST['condition']); $field_date = M('Fields')->where('(is_main=1 and model="product" and form_type="datetime") or(is_main=1 and model="" and form_type="datetime")')->select(); foreach ($field_date as $v) { if ($field == $v['field']) { $search = is_numeric($search) ? $search : strtotime($search); } } if ($this->_request('state')) { $search = $this->_request('state'); if ($this->_request('city')) { $search .= chr(10) . $this->_request('city'); } if ($search) { $search .= chr(10) . trim($_REQUEST['search']); } } if (!empty($field)) { switch ($condition) { case "is": $where[$field] = array('eq', $search); break; case "isnot": $where[$field] = array('neq', $search); break; case "contains": $where[$field] = array('like', '%' . $search . '%'); break; case "not_contain": $where[$field] = array('notlike', '%' . $search . '%'); break; case "start_with": $where[$field] = array('like', $search . '%'); break; case "end_with": $where[$field] = array('like', '%' . $search); break; case "is_empty": $where[$field] = array('eq', ''); break; case "is_not_empty": $where[$field] = array('neq', ''); break; case "gt": $where[$field] = array('gt', $search); break; case "egt": $where[$field] = array('egt', $search); break; case "lt": $where[$field] = array('lt', $search); break; case "elt": $where[$field] = array('elt', $search); break; case "eq": $where[$field] = array('eq', $search); break; case "neq": $where[$field] = array('neq', $search); break; case "between": $where[$field] = array('between', array($search - 1, $search + 86400)); break; case "nbetween": $where[$field] = array('not between', array($search, $search + 86399)); break; case "tgt": $where[$field] = array('gt', $search + 86400); break; default: $where[$field] = array('eq', $search); } } $params = array('field=' . trim($_REQUEST['field']), 'condition=' . $condition, 'search=' . $_REQUEST["search"]); } if ($_GET['category_id']) { $where['product.category_id'] = array('in', $idList); if (trim($_GET['act']) == 'excel') { if (vali_permission('product', 'export')) { $productList = $product->order('product_id desc')->where($where)->select(); $this->excelExport($productList); } else { alert('error', L('HAVE NOT PRIVILEGES'), $_SERVER['HTTP_REFERER']); } } $count = $product->where($where)->count(); $list = $product->order('product_id desc')->where($where)->Page($p . ',15')->select(); } else { if (trim($_GET['act']) == 'excel') { if (vali_permission('product', 'export')) { $productList = $product->order('product_id desc')->where($where)->select(); $this->excelExport($productList); } else { alert('error', L('HAVE NOT PRIVILEGES'), $_SERVER['HTTP_REFERER']); } } $count = $product->where($where)->count(); // 查询满足要求的总记录数 $list = $product->order('product_id desc')->where($where)->Page($p . ',15')->select(); } $m_product_images = M('productImages'); foreach ($list as $k => $v) { $list[$k]["creator"] = D('RoleView')->where('role.role_id = %d', $v['creator_role_id'])->find(); $list[$k]['path'] = $m_product_images->where('product_id = %d and is_main = 1', $v['product_id'])->getField('path'); } $Page = new Page($count, 15); // 实例化分页类 传入总记录数和每页显示的记录数 if (!empty($_GET['category_id'])) { $params['category_id'] = 'category_id=' . trim($_GET['category_id']); } $Page->parameter = implode('&', $params); $show = $Page->show(); // 分页显示输出 //获取下级和自己的岗位列表,搜索用 $category_list = $category->select(); $this->categoryList = getSubCategory(0, $category_list, ''); //类别选项 $this->field_array = getIndexFields('product'); $this->field_list = getMainFields('product'); $this->assign('list', $list); // 赋值数据集 $this->assign('page', $show); // 赋值分页输出 $this->alert = parseAlert(); $this->display(); // 输出模板 }
/** *商机列表页(默认页面) * **/ public function index() { $d_v_business = D('BusinessView'); $below_ids = getSubRoleId(false); $p = isset($_GET['p']) ? intval($_GET['p']) : 1; $by = isset($_GET['by']) ? trim($_GET['by']) : ''; $where = array(); $params = array(); $order = "create_time desc"; if ($_GET['desc_order']) { $order = trim($_GET['desc_order']) . ' desc'; } elseif ($_GET['asc_order']) { $order = trim($_GET['asc_order']) . ' asc'; } switch ($by) { case 'create': $where['creator_role_id'] = session('role_id'); break; case 'sub': $where['owner_role_id'] = array('in', implode(',', $below_ids)); break; case 'subcreate': $where['creator_role_id'] = array('in', implode(',', $below_ids)); break; case 'today': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-d', time())) + 86400), array('gt', 0), 'and'); break; case 'week': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-d', time())) + (8 - date('N', time())) * 86400), array('gt', 0), 'and'); break; case 'month': $where['nextstep_time'] = array(array('lt', strtotime(date('Y-m-01', strtotime('+1 month')))), array('gt', 0), 'and'); break; case 'd7': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 6); break; case 'd15': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 14); break; case 'd30': $where['update_time'] = array('lt', strtotime(date('Y-m-d', time())) - 86400 * 29); break; case 'deleted': $where['is_deleted'] = 1; break; case 'add': $order = 'create_time desc'; break; case 'update': $order = 'update_time desc'; break; case 'me': $where['business.owner_role_id'] = session('role_id'); break; default: $where['business.owner_role_id'] = array('in', implode(',', getSubRoleId())); break; } // if($by){ // if($by != 'deleted') { // if(!$_REQUEST["field"] || ($_REQUEST["field"] != 'status_id' && $_REQUEST["field"])) $where['business.status_id'] = array(array('neq', 99), array('neq', 100), 'and'); // } // }else{ // if(!$_REQUEST["field"] || ($_REQUEST["field"] != 'status_id' && $_REQUEST["field"])) $where['business.status_id'] = array(array('neq', 99), array('neq', 100), 'and'); // } if (!isset($where['is_deleted'])) { $where['business.is_deleted'] = 0; } if (!isset($where['business.owner_role_id'])) { $where['business.owner_role_id'] = array('in', implode(',', getSubRoleId())); } if ($_REQUEST["field"]) { if (trim($_REQUEST['field']) == "all") { $field = is_numeric(trim($_REQUEST['search'])) ? 'name|origin|type|description|estimate_price|gain_rate|gain_cycle|sales_price|product_amount|total_price|estimate_income' : 'name|origin|type|description'; } else { $field = trim($_REQUEST['field']); } $search = empty($_REQUEST['search']) ? '' : trim($_REQUEST['search']); $condition = empty($_REQUEST['condition']) ? 'is' : trim($_REQUEST['condition']); $field_date = M('Fields')->where('(is_main=1 and model="" and form_type="datetime") or (is_main=1 and model="business" and form_type="datetime")')->select(); foreach ($field_date as $v) { if ($field == $v['field']) { $search = is_numeric($search) ? $search : strtotime($search); } } if ($this->_request('state')) { $search = $this->_request('state'); if ($this->_request('city')) { $search .= chr(10) . $this->_request('city'); } if ($search) { $search .= chr(10) . trim($_REQUEST['search']); } } switch ($condition) { case "is": $where[$field] = array('eq', $search); break; case "isnot": $where[$field] = array('neq', $search); break; case "contains": $where[$field] = array('like', '%' . $search . '%'); break; case "not_contain": $where[$field] = array('notlike', '%' . $search . '%'); break; case "start_with": $where[$field] = array('like', $search . '%'); break; case "end_with": $where[$field] = array('like', '%' . $search); break; case "is_empty": $where[$field] = array('eq', ''); break; case "is_not_empty": $where[$field] = array('neq', ''); break; case "gt": $where[$field] = array('gt', $search); break; case "egt": $where[$field] = array('egt', $search); break; case "lt": $where[$field] = array('lt', $search); break; case "elt": $where[$field] = array('elt', $search); break; case "eq": $where[$field] = array('eq', $search); break; case "neq": $where[$field] = array('neq', $search); break; case "between": $where[$field] = array('between', array($search - 1, $search + 86400)); break; case "nbetween": $where[$field] = array('not between', array($search, $search + 86399)); break; case "tgt": $where[$field] = array('gt', $search + 86400); break; default: $where[$field] = array('eq', $search); } if ($this->_request('state') || $this->_request('city')) { $params = array('field=' . trim($_REQUEST['field']), 'state=' . trim($_REQUEST['field']), 'city=' . trim($_REQUEST['field']), 'condition=' . $condition, 'search=' . $where); } else { $params = array('field=' . trim($_REQUEST['field']), 'condition=' . $condition, 'search=' . $search); } } $order = empty($order) ? 'business.update_time desc' : $order; if (trim($_GET['act']) == 'excel') { if (vali_permission('business', 'export')) { $businessList = $d_v_business->where($where)->order($order)->select(); $this->excelExport($businessList); } else { alert('error', L('HAVE NOT PRIVILEGES'), $_SERVER['HTTP_REFERER']); } } $list = $d_v_business->where($where)->order($order)->page($p . ',15')->select(); $count = $d_v_business->where($where)->count(); import("@.ORG.Page"); $Page = new Page($count, 15); if (!empty($_GET['by'])) { $params[] = "by=" . trim($_GET['by']); } $this->parameter = implode('&', $params); if ($_GET['desc_order']) { $params[] = "desc_order=" . trim($_GET['desc_order']); } elseif ($_GET['asc_order']) { $params[] = "asc_order=" . trim($_GET['asc_order']); } $Page->parameter = implode('&', $params); $this->assign('page', $Page->show()); foreach ($list as $key => $value) { $list[$key]['owner'] = D('RoleView')->where('role.role_id = %d', $value['owner_role_id'])->find(); $list[$key]['creator'] = D('RoleView')->where('role.role_id = %d', $value['creator_role_id'])->find(); $list[$key]['customer_name'] = M('customer')->where('customer_id = %s', $value['customer_id'])->getField('name'); $list[$key]['status_name'] = M('BusinessStatus')->where('status_id = %d', $value['status_id'])->getField('name'); if ($by == 'deleted') { $list[$key]["delete_role"] = D('RoleView')->where('role.role_id = %d', $value['delete_role_id'])->find(); } } $d_role_view = D('RoleView'); $this->role_list = $d_role_view->where('role.role_id in (%s)', implode(',', $below_ids))->select(); $this->customer_list = M('customer')->where('owner_role_id in (%s)', implode(',', getSubRoleId()))->select(); $this->assign('list', $list); $this->search_field_array = getMainFields('business'); $this->field_array = getIndexFields('business'); $this->alert = parseAlert(); $this->display(); }
public function listDialog() { $m_customer = M('Customer'); $m_contacts = M('Contacts'); $m_r_contacts_customer = M('RContactsCustomer'); $underling_ids = getSubRoleId(); $business_id = intval($_GET['bid']); if (!empty($business_id)) { $customer_id = M('business')->where('business_id = %d', $business_id)->getField('customer_id'); $customer = $m_customer->where('customer_id = %d and is_deleted = 0', $customer_id)->order('create_time desc')->limit(10)->select(); } else { $customer = $m_customer->where('owner_role_id in (%s) and is_deleted = 0', implode(',', $underling_ids))->order('create_time desc')->limit(10)->select(); } foreach ($customer as $k => $v) { //如果存在首要联系人,则查出首要联系人。否则查出联系人中第一个。 if (!empty($v['contacts_id'])) { $contacts = $m_contacts->where('is_deleted = 0 and contacts_id = %d', $v['contacts_id'])->find(); $customer[$k]['contacts_name'] = $contacts['name']; } else { $contacts_customer = $m_r_contacts_customer->where('customer_id = %d', $v['customer_id'])->limit(1)->order('id desc')->select(); $contacts = $m_contacts->where('is_deleted = 0 and contacts_id = %d', $contacts_customer[0]['contacts_id'])->find(); $customer[$k]['contacts_id'] = $contacts['contacts_id']; $customer[$k]['contacts_name'] = $contacts['name']; } } $this->customerList = $customer; $count = $m_customer->where('owner_role_id in (%s) and is_deleted = 0', implode(',', $underling_ids))->count(); $this->total = $count % 10 > 0 ? ceil($count / 10) : $count / 10; $data = getIndexFields('customer'); $this->count_num = $count; $this->field_num = sizeof($data) + 1; $this->field_array = $data; $this->display(); }