Перейти к содержимому


Перешел на 1.9.5. Вопрос с воронкой.


Сообщений в теме: 9

#1 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 09:45

перестала корректно работать воронка продаж. У меня есть поле "ТИП" (клиент и не клиент) в воронке учитывались только клиенты, а после перехода на новую версию вываливаются оба типа. Вот начало кода. (когда то Вы мне его корректировали)

if ($_REQUEST['_type'])
{
unset($_SESSION[$ses_id]['on_filter']);

if ($_REQUEST['_type']=="Клиент")
{
$_SESSION[$ses_id]['on_filter'][772] = 1;
$_SESSION[$ses_id]['term_filter'][772] = "=";
$_SESSION[$ses_id]['value_filter'][772] = "Клиент";
}
else
{
$_SESSION[$ses_id]['on_filter'][772] = 1;
$_SESSION[$ses_id]['term_filter'][772] = "=";
$_SESSION[$ses_id]['value_filter'][772] = "Клиент";
$_SESSION[$ses_id]['on_filter'][552] = 1;
$_SESSION[$ses_id]['term_filter'][552] = "=";
$_SESSION[$ses_id]['value_filter'][552] = $_REQUEST['_type'];
}

if ($_REQUEST['_manager'])
{
$_SESSION[$ses_id]['on_filter'][438] = 1;
$_SESSION[$ses_id]['term_filter'][438] = "=";
$_SESSION[$ses_id]['value_filter'][438] = $_REQUEST['_manager'];
}

header("Location: ".$config["site_root"]."/fields.php?table=42");
}

if ($_REQUEST['manager']) $manager = $_REQUEST['manager']; elseif ($user['group_id']==2) $manager = $user['id'];

$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['all'] = $row['cnt'];
и т.д.

Визуально воронка отображает правильно, но при клике выдает оба типа. Help!

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Декабрь 2011 - 09:48

Т.е. у вас модифицированная таблица Контрагенты и соответственно код отчета тоже нестандартный, или нет?

#3 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 10:02

Я и показал немного модифицированного кода отчета (Подготовка данных:).

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Декабрь 2011 - 10:47

Под "кликом" Вы имеете ввиду переход в таблицу Контрагенты? Не срабатывает фильтр по типу контрагента? Это связано с изменением формата поиска в новой версии. Замените верхнюю часть кода на следующую:
if ($_REQUEST['_type'])
{
unset($_SESSION[$ses_id]['search']);

if ($_REQUEST['_type']=="Клиент")
{
$_SESSION[$ses_id]['search'][42][0]['field'] = 772;
$_SESSION[$ses_id]['search'][42][0]['term'] = "=";
$_SESSION[$ses_id]['search'][42][0]['value_field'] = "Клиент";
$_SESSION[$ses_id]['search'][42][0]['union'] = " and ";
}
else
{
$_SESSION[$ses_id]['search'][42][0]['field'] = 772;
$_SESSION[$ses_id]['search'][42][0]['term'] = "=";
$_SESSION[$ses_id]['search'][42][0]['value_field'] = "Клиент";
$_SESSION[$ses_id]['search'][42][0]['union'] = " and ";
$_SESSION[$ses_id]['search'][42][0]['field'] = 552;
$_SESSION[$ses_id]['search'][42][0]['term'] = "=";
$_SESSION[$ses_id]['search'][42][0]['value_field'] = $_REQUEST['_type'];
$_SESSION[$ses_id]['search'][42][0]['union'] = " and ";
}

if ($_REQUEST['_manager'])
{
$_SESSION[$ses_id]['search'][42][1]['field'] = 438;
$_SESSION[$ses_id]['search'][42][1]['term'] = "=";
$_SESSION[$ses_id]['search'][42][1]['value_field'] = $_REQUEST['_manager'];
$_SESSION[$ses_id]['search'][42][1]['union'] = "";
}

header("Location: ".$config["site_root"]."/fields.php?table=42");
}

И просьба, помещайте код в сообщении в контейнер кода (как здесь), так читабельнее.

#5 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 11:06

Да я уже это пробовал (брал (смотрел) код с чистой демо версии). Под кликом понимаете правильно. Все равно не фильтрует.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Декабрь 2011 - 11:12

Вы пробовали заменять фрагмент кода на вышеприведенный мною? Он должен работать, в стандартной конфигурации у нас все работает. Если не работает - то нужно проверять весь ваш код, но для этого необходимо выслать бэкап через заявку. Надеюсь, вы обладаете платной лицензией?

#7 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 11:13

Вернее по стаусу фильтрует, но не добавляет фильтр ТИП

#8 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 11:15

Лицензия платная. но вот высылать базу не можем, инфа очень дорога, боимся утечки.

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Декабрь 2011 - 11:19

Просмотр сообщенияandypendy (07 Декабрь 2011 - 11:13) писал:

Вернее по стаусу фильтрует, но не добавляет фильтр ТИП

Да, действительно, моя ошибка в коде. Правильно так:

if ($_REQUEST['_type'])
{
unset($_SESSION[$ses_id]['search']);
if ($_REQUEST['_type']=="Клиент")
{
$_SESSION[$ses_id]['search'][42][0]['field'] = 772;
$_SESSION[$ses_id]['search'][42][0]['term'] = "=";
$_SESSION[$ses_id]['search'][42][0]['value_field'] = "Клиент";
$_SESSION[$ses_id]['search'][42][0]['union'] = " and ";
$n = 1;
}
else
{
$_SESSION[$ses_id]['search'][42][0]['field'] = 772;
$_SESSION[$ses_id]['search'][42][0]['term'] = "=";
$_SESSION[$ses_id]['search'][42][0]['value_field'] = "Клиент";
$_SESSION[$ses_id]['search'][42][0]['union'] = " and ";
$_SESSION[$ses_id]['search'][42][1]['field'] = 552;
$_SESSION[$ses_id]['search'][42][1]['term'] = "=";
$_SESSION[$ses_id]['search'][42][1]['value_field'] = $_REQUEST['_type'];
$_SESSION[$ses_id]['search'][42][1]['union'] = " and ";
$n = 2;
}
if ($_REQUEST['_manager'])
{
$_SESSION[$ses_id]['search'][42][$n]['field'] = 438;
$_SESSION[$ses_id]['search'][42][$n]['term'] = "=";
$_SESSION[$ses_id]['search'][42][$n]['value_field'] = $_REQUEST['_manager'];
$_SESSION[$ses_id]['search'][42][$n]['union'] = "";
}
header("Location: ".$config["site_root"]."/fields.php?table=42");
}


#10 andypendy

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений

Отправлено 07 Декабрь 2011 - 11:25

Спасибо! Вроде всё окей!





Количество пользователей, читающих эту тему: 5

0 пользователей, 5 гостей, 0 анонимных