Пример #1
0
function attention_list($limit = 0)
{
    global $settings, $attention_win;
    global $admin_config;
    $where = "!z.basket AND z.status!=0 AND !z.noatten" . get_order_cond($admin_config, 'attention');
    $where_tr = array();
    $where_tr[] = "(z.inall+z.debt < z.provider_sum AND z.provider_sum>0 AND z.inall>0)";
    $where_tr[] = "(z.inall+z.debt>z.provider_sum AND z.provider_sum>0 AND (z.inall+z.debt-z.provider_sum)>z.inall*" . ATTENTION_PERCENT . ")";
    $where_tr[] = "z.provider_id=0";
    //$where_tr[] = "((cl.birthday_city='' OR cl.birthday_city IS NULL) AND !cl.city_id AND !z.porder_id)";
    $where_tr[] = "(!cl.city_id AND !z.porder_id)";
    $where_tr1 = " (" . implode(' OR ', $where_tr) . " ) AND z.date > CURDATE() - INTERVAL " . (int) $settings['attention_days'] . " DAY ";
    $where_tr = array();
    $where_tr[] = "(!z.paid AND !z.prepaid)";
    $where_tr[] = "( (!z.paid AND z.prepaid AND z.inall>z.prepayment) AND !z.nameste)";
    $where_tr[] = " (!z.paytoprovider AND !z.paid_provider)";
    $where_tr2 = " (" . implode(' OR ', $where_tr) . " ) AND z.date_from < CURDATE() + INTERVAL " . (int) $settings['nopay_days'] . " DAY \n\t\t  AND z.date_from > CURDATE() - INTERVAL 3 MONTH ";
    $where .= " AND ( ({$where_tr1}) OR ({$where_tr2}) )";
    $provider_sum = get_sql_provider_sum();
    if (!$limit) {
        $limit = ATTENTION_LIMIT;
    }
    $sql = mysql_query("\n\t\tSELECT \n\t\t\tz.order_id, z.paid, z.prepaid, z.user_id,\n\t\t\tz.provider_id, z.inall, z.provider_sum, z.debt,\n\t\t\tob.name as object_name, u.name as user_name, cl.city_id,\n\t\t\t({$where_tr2}) as nopaid\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\t\tLEFT JOIN " . TABLE_CLIENT . " cl on (cl.client_id=SUBSTRING_INDEX( z.clients, ',', 1 )) \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 desc, z.porder_id, z.order_id desc\n\t\tLIMIT " . $limit) or Error(1, __FILE__, __LINE__);
    $list = array();
    while ($info = @mysql_fetch_array($sql)) {
        $info['object_name'] = htmlspecialchars($info['object_name'], ENT_COMPAT, 'cp1251');
        $info['problem'] = '';
        if ($info['inall'] + $info['debt'] < $info['provider_sum'] && $info['inall'] > 0) {
            $info['problem'] = 'отриц. баланс';
        } elseif ($info['inall'] + $info['debt'] > $info['provider_sum'] && $info['provider_sum'] > 0 && $info['inall'] + $info['debt'] - $info['provider_sum'] > $info['inall'] * ATTENTION_PERCENT) {
            $pr = (int) (($info['inall'] + $info['debt'] - $info['provider_sum']) * 100 / $info['inall']);
            $info['problem'] = 'сверхпр.' . " {$pr}% ";
        } elseif ($info['provider_id'] == 0) {
            $info['problem'] = 'без постав.';
        } elseif ($info['nopaid']) {
            $info['problem'] = 'неоплачена';
        } elseif (!$info['city_id']) {
            $info['problem'] = 'не указан город';
        }
        if ($admin_config['attention_status']) {
            $info['edit'] = "?p=search&noatten={$info['order_id']}";
        }
        if ($info['user_id'] == $_SESSION['admin_id']) {
            $attention_win[$info['order_id']] = "<a href=\"?p=order&order_id={$info['order_id']}\">{$info['order_id']}</a>  {$info['problem']}";
        }
        $list[] = $info;
    }
    return $list;
}
Пример #2
0
 $replace['sort'] = $sort;
 $d_field = $datesel == 1 ? 'date_from' : 'date';
 if (!$mindate) {
     $arr = $maxdate ? $maxdate : date("Y-m-d");
     list($y, $m, $d) = split("-", $arr);
     $mindate = date("Y-m-d", mktime(0, 0, 0, $m - 6, $d, $y));
 }
 if ($mindate) {
     $where .= " AND z.{$d_field}>='{$mindate}'";
 }
 if ($maxdate) {
     $where .= " AND z.{$d_field}<='{$maxdate}'";
 }
 $replace['mindate'] = $mindate ? sql_to_text_date($mindate, 0, 1) : '';
 $replace['maxdate'] = $maxdate ? sql_to_text_date($maxdate, 0, 1) : '';
 $sql_provider_sum = get_sql_provider_sum();
 $sql_balance = get_sql_balance();
 $sql = mysql_query("\n\t\tSELECT \n\t\t\tcount(distinct order_id) as allcount\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_CITY . " ct ON (ob.city_id=ct.city_id)\n\t\t\tLEFT JOIN " . TABLE_AGENCY . " ag ON (ag.agency_id=z.agency_id)\n\t\t\tLEFT JOIN " . TABLE_CORPORATE . " cr ON (cr.corporate_id=z.corporate_id)\n\t\t\tLEFT JOIN " . TABLE_USER . " u on (u.user_id=z.user_id) \n\t\t\tLEFT JOIN " . TABLE_CLIENT . " cl on (cl.client_id=SUBSTRING_INDEX( z.clients, ',', 1 )) \n\t\tWHERE\n\t\t\t1 {$where}") or Error(1, __FILE__, __LINE__);
 $arr = mysql_fetch_array($sql);
 $replace['all'] = $all = $arr['allcount'];
 list($limit, $replace['pages']) = pages($all, ADMIN_URL . "?p={$part}&all=1&");
 $replace['current_page'] = $current_page;
 $sql = mysql_query("\n\t\tSELECT \n\t\t\tz.order_id, z.date, z.status as orderstatus, z.date_from, z.note, {$sql_balance} as balance,\n\t\t\tz.client,\n\t\t\tz.annul, z.tphone, z.fio, z.tphone, z.card_id, z.card_vip,  \n\t\t\tcl.phone as client_phone, cl.name as client_name, cl.birthday_city,\n\t\t\tr.region,\n\t\t\tob.name as object_name, \n\t\t\tct.city_id, ct.name as city_name, c.name as country_name, u.name as user_name,\n\t\t\tag.name as agency_name, cr.name as corporate_name, z.agency_id, cr.corporate_id\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_CITY . " ct ON (ob.city_id=ct.city_id)\n\t\t\tLEFT JOIN " . TABLE_COUNTRY . " c ON (ct.country_id=c.country_id)\n\t\t\tLEFT JOIN " . TABLE_AGENCY . " ag ON (ag.agency_id=z.agency_id)\n\t\t\tLEFT JOIN " . TABLE_CORPORATE . " cr ON (cr.corporate_id=z.corporate_id)\n\t\t\tLEFT JOIN " . TABLE_USER . " u on (u.user_id=z.user_id) \n\t\t\tLEFT JOIN " . TABLE_CLIENT . " cl on (cl.client_id=SUBSTRING_INDEX( z.clients, ',', 1 )) \n\t\tWHERE\n\t\t\t1 {$where}\n\t\tGROUP BY\n\t\t\tz.order_id\n\t\tORDER BY \n\t\t\t{$ord}\n\t\tLIMIT {$limit}") or Error(1, __FILE__, __LINE__);
 $list = array();
 $i = ($current_page - 1) * $_SESSION['on_page'];
 $j = 0;
 while ($info = @mysql_fetch_array($sql)) {
     $i++;
     $j++;
     $info['i'] = $i;
     $info['j'] = $j;