function arrival_list() { global $admin_config; $_SESSION['arrival_remind'] = (int) $_SESSION['arrival_remind']; if (!$_SESSION['arrival_remind']) { return ''; } $where = "!z.basket AND z.annul=''" . get_arrival_cond($admin_config); $where .= " AND z.date_from - INTERVAL " . $_SESSION['arrival_remind'] . " DAY <= CURDATE()\n\t\t\t\tAND z.date_from >= CURDATE()"; $sql = mysql_query("\n\t\tSELECT \n\t\t\tz.order_id, z.date, z.status as orderstatus, z.date_from, z.fio,\n\t\t\tr.region,\n\t\t\tob.name as object_name, u.name as user_name\n\t\tFROM \n\t\t\t" . TABLE_ORDER . " z \n\t\t\tLEFT JOIN " . TABLE_OFFICE . " r on (r.office_id=z.office_id) \n\t\t\tLEFT JOIN " . TABLE_OBJECT . " ob on (ob.object_id=z.object_id) \n\t\t\tLEFT JOIN " . TABLE_USER . " u on (u.user_id=z.user_id) \n\t\tWHERE\n\t\t\t{$where}\n\t\tGROUP BY\n\t\t\tz.order_id\n\t\tORDER BY \n\t\t\tz.date_from asc\n\t\tLIMIT " . ARRIVAL_LIMIT) or Error(1, __FILE__, __LINE__); $list = array(); while ($info = @mysql_fetch_array($sql)) { if (strlen($info['object_name']) > 20) { $info['object_name'] = substr($info['object_name'], 0, 20) . "..."; } $info['object_name'] = htmlspecialchars($info['object_name'], ENT_COMPAT, 'cp1251'); //$info['edit_link'] = ADMIN_URL."?p=order&order_id=$info[order_id]&page=$current_page"; $info['office'] = htmlspecialchars($info['region'], ENT_COMPAT, 'cp1251'); $info['date'] = sql_to_text_date($info['date']); $info['date_from'] = sql_to_text_date($info['date_from']); $fio = split("[((\r)?\n)|,]", $info['fio']); $info['fio'] = $fio[0]; if (strlen($info['fio']) > 20) { $info['fio'] = substr($info['fio'], 0, 20) . "..."; } $list[] = $info; } return $list; }
function get_order_cond($admin_config, $mode='order') { $where = '1'; $mode1 = $mode=='card' ? 'order' : $mode; if($admin_config[$mode1.'_status']) { $arr = explode(",", $admin_config[$mode1.'_office']); $where .= " AND ("; foreach($arr as $k=>$v) { if($k) $where .= " OR "; $where .= "z.office_id='$v'"; } $where .= ")"; } else { $where .= " AND z.user_id=$_SESSION[admin_id]"; } if($mode=='order') $where = " AND (($where) OR (1 ".get_arrival_cond($admin_config)."))"; else $where = " AND ($where)"; return $where; }
<?php $sort_arr = array('z.order_id' => '№ заявки', 'city_name' => 'городу', 'object_name' => 'объекту', 'z.date_from' => 'дате заезда', 'z.date' => 'дате добавления', 'z.client' => 'заказчику', 'provider' => 'поставщику', 'z.inall' => 'сумме к оплате', 'z.provider_sum' => 'сумме оплаты поставщику', 'z.fio' => 'ФИО', 'balance' => 'балансу', 'user_name' => 'сотруднику', 'region' => 'офису', 'schet_date' => 'счет и договор', 'provider_bill' => 'Счет поставщика', 'debt' => 'долг', 'note' => 'примечания', 'annul' => 'аннуляция'); $sort_direct_arr = array('desc' => 'убывание', 'asc' => 'возрастание'); $arrival_arr = array('sort', 'sortdirect'); if (@$search) { $arr = array(); foreach ($arrival_arr as $v) { $arr[$v] = from_form(@${$v}); } $_SESSION['arrival_data'] = serialize($arr); Header("Location: ?p={$part}"); exit; } $where = "!z.basket AND z.annul=''" . get_arrival_cond($admin_config); $data = @unserialize($_SESSION['arrival_data']); foreach ($arrival_arr as $v) { ${$v} = @$data[$v]; } $replace = array(); $sort = isset($sort_arr[$sort]) ? $sort : 'z.date_from'; $s = $sort == 'z.order_id' ? 'z.order_id + 0' : $sort; $sortdirect = isset($sort_direct_arr[$sortdirect]) ? $sortdirect : 'asc'; $replace['sort'] = $sort; $replace['sortdirect'] = $sortdirect; $ord = "{$s} {$sortdirect}"; $where .= " AND z.date_from - INTERVAL " . ARRIVAL_REMINDER . " DAY <= CURDATE()\n\t\t\tAND z.date_from >= CURDATE()"; $sql = mysql_query("SELECT COUNT(*) FROM " . TABLE_ORDER . " z \n\t\tLEFT JOIN " . TABLE_OBJECT . " ob on (ob.object_id=z.object_id) \n\t\tWHERE {$where}") or Error(1, __FILE__, __LINE__); $arr = mysql_fetch_array($sql); $replace['all'] = $all = $arr[0]; list($limit, $replace['pages']) = pages($all, ADMIN_URL . "?p={$part}&");