s2doorders.php /// Art: Online Auftragsverwaltung /// Inhalt: Aufträge /// Beschreibung: Alle Funktionen zu Aufträgen /// Benötigt: Alle, siehe init /// CCML-Parsing: notwendig /// ////////////////////////////////////////////////////////////////////////////////////////// /// /// Letzte Änderungen: /// 07.12.2008 Suchfunktion umgestellt /// 02.11.2009 Korrektur Suche nach Auftragsnummer /// 31.07.2010 Anpassung Parameter Suche /// ////////////////////////////////////////////////////////////////////////////////////////// ///<31.07.2010/7.0.1.4/> define('ROOT', './'); define('ASSETS', ROOT.'assets/'); require(ASSETS.'s2diconf.php'); require(CC_INCLUDE_INIT); if (!$session->is_shopadmin()) { $session->unset_client(); redirect(CC_URL_LOGIN, CC_URL_OSORDERS.'?'.$_SERVER['QUERY_STRING']); } require(CC_BLOGIC_CONFIG); require(CC_INCLUDE_OSFUNCTIONS); $config = new config('orders'); $config_items = new config('items'); $config_search = new config('search'); //////////////////////////////////////////////////////////////////////////// // Template vorbereiten $template = new template(CC_TPL_OSORDERS, true); $template->ressources(CC_INCLUDE_OSLANG); $template->show('orders'); $template->show('searchmenu'); $template->show('viewmenu'); $template->show('pagination'); myorder($config, array('firstname', 'lastname', 'email', 'order_date', 'status')); mydirection($config); myperpage($config, $template); mypage($config); // Status if (is_get(PARAMETER_STATUS)) { $status = get(PARAMETER_STATUS, CHECK_ALPHANUM); if (in_array($status, array_merge($orderstatus, array('0', '1')))) $config->set('status', $status); } // Status Filter entfernen, falls zum Auftrag gesprungen werden soll if (get(PARAMETER_MODE, CHECK_ALPHA_) == 'id') $config->set('status', 1); if ($config->status == '1') $where = array(); else if ($config->status == '0') $where = array("status != '".$orderstatus[ORDERSTATUS_SHIPPED]."'"); else $where = array('status' => $config->status); $order = new order(); $count = $order->db_numrows($where); $max_page = max(1, ceil($count / $config->perpage)); // Suche $mode = get(PARAMETER_MODE, CHECK_ALPHA_); $search = rawurldecode(get(PARAMETER_TEXT, CHECK_ALL)); if ($mode && $search) { switch($mode) { case 'name': $where = array_merge($where, array("firstname LIKE '%$search%' OR lastname LIKE '$search'")); break; case 'email': $where = array_merge($where, array('email' => $seach)); break; case 'id': $search = preg_replace('/[^\d]/', '', $search); $where = array_merge($where, array('t1.order_id' => $search)); break; } $searching = true; $config->set('searchmode', $mode); $config->set('searchexpr', $search); $max_page = max(1, ceil($order->db_numrowsjoin($where, 'clients', 'order_id') / $config->perpage)); } else $searching = false; pagination($config, $template, $max_page); // Anreden foreach (get_salutations() as $s) $template->loop('salutation', array( 'value' => $s, 'option' => $s, )); // Länder foreach (get_countries() as $c) $template->loop('country', array( 'value' => $c, 'option' => substr($c, 11), )); // Status foreach ($orderstatus_ressources as $status => $status_long) $template->loop('status', array( 'short' => substr($s = $status_long, 0, STATUSCUT).(strlen($s) > STATUSCUT ? '...' : ''), 'long' => $status_long, 'status' => $status, 'img' => CC_ICON_OK, 'selected' => $config->status == $status ? 'selected="selected"' : '', )); // Aufträge einlesen while($o = $order->getjoin(array('*'), $where, array($config->order.' '.$config->direction, 'order_time '.$config->direction), $config->page, $config->perpage)) { $template->loop('order', array( 'formatteddate' => date(CC_SITE_DATEFORMAT, strtotime($o->order_date)), 'icon' => constant('CC_ICON_STATUS'.strtoupper($o->status)), 'statusshort' => substr($s = $orderstatus_ressources[$o->status], 0, STATUSCUT).(strlen($s) > STATUSCUT ? '...' : ''), 'statuslong' => $orderstatus_ressources[$o->status], 'bold' => $o->status == $orderstatus[ORDERSTATUS_NEW] ? 'bold' : 'normal', 'first' => $config->order == 'lastname' ? $o->lastname.',' : $o->firstname, 'last' => $config->order == 'lastname' ? $o->firstname : $o->lastname, ), $o); } // Vorlagen $mailtemplate = new abstractdb(TABLE_TEMPLATES); while($t = $mailtemplate->get(array('*'), array('status' => null), array('name asc'))) $template->loop('template', array(), $t); if ($searching) $template->show('searching'); // Template befüllen und fertig $template->assign(array( '_headline1' => $template->vars['orders'], '_orders_selected' => 'selected', '_selected_entry' => $config->selected, '_order_x' => $config->x, '_order_y' => $config->y, '_item_x' => $config_items->x, '_item_y' => $config_items->y, '_search_x' => $config_search->x, '_search_y' => $config_search->y, '_max_page' => $max_page, '_search_param' => $mode ? PARAMETER_MODE."=$mode&".PARAMETER_TEXT."=$search&" : '', '_search_mode' => $mode ? $mode : '', '_search_expr' => $search ? $search : '', '_search_expr_value' => $config->searchexpr, '_search_id_checked' => $config->searchmode == 'id' ? 'checked="checked"' : '', '_search_name_checked' => $config->searchmode == 'name' ? 'checked="checked"' : '', '_search_email_checked' => $config->searchmode == 'email' ? 'checked="checked"' : '', '_email_selected' => $config->order == 'email' ? 'selected="selected"' : '', '_firstname_selected' => $config->order == 'firstname' ? 'selected="selected"' : '', '_lastname_selected' => $config->order == 'lastname' ? 'selected="selected"' : '', '_status_selected' => $config->order == 'status' ? 'selected="selected"' : '', '_orderdate_selected' => $config->order == 'order_date' ? 'selected="selected"' : '', '_desc_checked' => $config->direction == 'desc' ? 'checked="checked"' : '', '_status1_selected' => $config->status == '1' ? 'selected="selected"' : '', '_status0_selected' => $config->status == '0' ? 'selected="selected"' : '', )); $template->out(); ?>