1
Перешел на 1.9.5. Вопрос с воронкой.
Автор andypendy, 07 дек. 2011 09:45
Сообщений в теме: 9
#1
Отправлено 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!
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
Отправлено 07 Декабрь 2011 - 09:48
Т.е. у вас модифицированная таблица Контрагенты и соответственно код отчета тоже нестандартный, или нет?
#3
Отправлено 07 Декабрь 2011 - 10:02
Я и показал немного модифицированного кода отчета (Подготовка данных.
#4
Отправлено 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
Отправлено 07 Декабрь 2011 - 11:06
Да я уже это пробовал (брал (смотрел) код с чистой демо версии). Под кликом понимаете правильно. Все равно не фильтрует.
#6
Отправлено 07 Декабрь 2011 - 11:12
Вы пробовали заменять фрагмент кода на вышеприведенный мною? Он должен работать, в стандартной конфигурации у нас все работает. Если не работает - то нужно проверять весь ваш код, но для этого необходимо выслать бэкап через заявку. Надеюсь, вы обладаете платной лицензией?
#7
Отправлено 07 Декабрь 2011 - 11:13
Вернее по стаусу фильтрует, но не добавляет фильтр ТИП
#8
Отправлено 07 Декабрь 2011 - 11:15
Лицензия платная. но вот высылать базу не можем, инфа очень дорога, боимся утечки.
#9
Отправлено 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
Отправлено 07 Декабрь 2011 - 11:25
Спасибо! Вроде всё окей!
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных