Воронка+тип
Автор andypendy, 05 мая 2011 15:40
Сообщений в теме: 12
#1
Отправлено 05 Май 2011 - 15:40
Добрый день. При нажатии в воронке продаж на любое поле выдача идет только по статусу. Хотя считает она правильно с учетом типа. Как сделать в Редактирование представления "Воронка продаж" Отображение: с учетом Типа клиента!
#2
Отправлено 05 Май 2011 - 16:16
Статус имеет смысл только для строк с типом "Обзвон", поэтому собственно он и не фильтруется при нажатии на плашку со статусом.
Или у Вас как то иначе?
Или у Вас как то иначе?
#3
Отправлено 05 Май 2011 - 16:18
Кстати считает он по тому же принципу, поэтому странно что у Вас наблюдаются расхождения.
#4
Отправлено 05 Май 2011 - 17:29
Я в Типе оставил только два типа Клиент и Не клиент. Оба эти типа имеют статусы (был клиентом дошел до какого-то статуса потом отказался от услуг и мы его перевели в тип Не клиент, а статус оставляем для статистики что бы знать на каком этапе клиенты отваливаюся + продублировал воронку с типом Не клиент, основная с типом Клиент(вместо Обзвон)). Так цифры в воронке правильные, а ссылки идут с фильтром Статус и показывают и клиентов и Не клиентов.
#5
Отправлено 05 Май 2011 - 17:46
Т.е. Вы переписывали код подготовки данных отчета для изменения расчета?
Если "да" - выложите код сюда.
Если "да" - выложите код сюда.
#6
Отправлено 05 Май 2011 - 18:03
Разработчик (5.5.2011, 17:46) писал:
Т.е. Вы переписывали код подготовки данных отчета для изменения расчета?
Если "да" - выложите код сюда.
Если "да" - выложите код сюда.
Подготовка данных
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'][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'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Постановка задачи' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['new'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Подбор объектов' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['KP'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Подготовка к поездке' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['notified'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Поездка' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['interest'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Пауза после поездки' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['pppez'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Обсуждение условий' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['wish'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Сделка' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['important'] = $row['cnt'];
$sqlQuery = "SELECT count(*) as cnt FROM ".DATA_TABLE."42 WHERE status=0 and f552='Деньги получены' and f772='Клиент'".($manager?(" AND f438='".$manager."'"):"");
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['dpluch'] = $row['cnt'];
if ($user['group_id']!=2) $sel_manager = "<option value=''>Все</option>\r\n";
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE ".(($user['group_id']==2)?("id='".$manager."'"):"(group_id=1 or group_id=2) and arc=0");
$result = mysql_query($sqlQuery);
while ($row = mysql_fetch_array($result))
{
$sel_manager.= "<option value='".$row['id']."'".(($row['id']==$manager)?" selected":"").">".$row['fio']."</option>\r\n";
}
$smarty->assign("data", $data);
$smarty->assign("manager", $manager);
$smarty->assign("sel_manager", $sel_manager);
Отображение
{literal}
<style>
.title {
margin: 20px 0;
font-size: 23px;
font-weight: bold;
}
.top {
border-top: 1px solid #E3E3E3;
border-bottom: 1px solid #E3E3E3;
background-color: #F5F5F5;
text-align: center;
padding: 12px 0px 12px 0px;
}
.main {
margin-top: 25px;
margin-bottom: 25px;
}
.mainTable {
border-collapse: collapse;
text-align: center;
height: 70px;
}
</style>
<script type="text/javascript">
function go_clients(type)
{
document.getElementById('_type').value = type;
document.getElementById('report_form').submit();
}
</script>
{/literal}
<div class="title">Воронка продаж</div>
<div class="top">
<b>Менеджеры:</b> <select name="manager">{$sel_manager}</select>
<input type="submit" value="Обновить">
</div>
<div class="main">
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:90%; background-color:#007fff;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Клиент')">Клиенты: <b>{$data.all}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:80%; background-color:#E3E3E3;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Постановка задачи')">Постановка задачи: <b>{$data.new}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:70%; background-color:#DDDDDD;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Подбор объектов')">Подбор объектов: <b>{$data.KP}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:60%; background-color:#D2D2D2;">
<tr >
<td style="cursor:pointer" onclick="go_clients('Подготовка к поездке')">Подготовка к поездке: <b>{$data.notified}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:50%; background-color:#C1C1C1;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Поездка')">Поездка: <b>{$data.interest}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:40%; background-color:#e13c3c;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Пауза после поездки')">Пауза после поездки: <b>{$data.pppez}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:30%; background-color:#B1B1B1;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Обсуждение условий')">Обсуждение условий: <b>{$data.wish}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:20%; background-color:#A5A5A5;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Сделка')">Сделка: <b>{$data.important}</b></td>
</tr>
</table>
<table class="mainTable print_border" align="center" cellspacing="0" cellpadding="0" style="width:12%; background-color:#41ff7b;">
<tr>
<td style="cursor:pointer" onclick="go_clients('Деньги получены')">Деньги получены: <b>{$data.dpluch}</b></td>
</tr>
</table>
</div>
<input type=hidden name="_manager" value="{$manager}">
<input type=hidden name="_type" id="_type">
#7
Отправлено 05 Май 2011 - 18:13
Добавьте перед кодом
$_SESSION[$ses_id]['on_filter'][552] = 1;
$_SESSION[$ses_id]['term_filter'][552] = "=";
$_SESSION[$ses_id]['value_filter'][552] = $_REQUEST['_type'];
код
$_SESSION[$ses_id]['on_filter'][772] = 1;
$_SESSION[$ses_id]['term_filter'][772] = "=";
$_SESSION[$ses_id]['value_filter'][772] = "Клиент";
В результате получите 2 критерия отбора записей: по типу и статусу.
P.S. Большие куски кода лучше помещать в тэги "code" - так лучше читается сообщение:
$_SESSION[$ses_id]['on_filter'][552] = 1;
$_SESSION[$ses_id]['term_filter'][552] = "=";
$_SESSION[$ses_id]['value_filter'][552] = $_REQUEST['_type'];
код
$_SESSION[$ses_id]['on_filter'][772] = 1;
$_SESSION[$ses_id]['term_filter'][772] = "=";
$_SESSION[$ses_id]['value_filter'][772] = "Клиент";
В результате получите 2 критерия отбора записей: по типу и статусу.
P.S. Большие куски кода лучше помещать в тэги "code" - так лучше читается сообщение:
echo 111;
#8
Отправлено 05 Май 2011 - 18:20
Ура! Теперь всё ОК!
Сегодня перечислили вам деньги за лицензию. Спасибо.
Сегодня перечислили вам деньги за лицензию. Спасибо.
#9
Отправлено 05 Май 2011 - 18:31
Да забыл спросить, если я делаю "контрагенты-все" с фильтром по менеджерам или по типу, то воронка учитывает этот фильтр и опять не корректно выдает. Если "контрагенты-все" фильтр пуст , то всё ок. Как отменить все фильтры для воронки?
#10
Отправлено 06 Май 2011 - 10:18
Не совсем понял, что за фильтры Вы имеете ввиду. "Все" - это все записи, причем тут фильтры по менеджеру и типу?
#11
Отправлено 06 Май 2011 - 11:25
Все -это все записи, но если я в все записи добавлю условие например `Менеджер`='{current}', то в воронке при нажатии при всех менеджерах любое поле будет фильтроваться по менеджеру который вошел в систему.
#12
Отправлено 06 Май 2011 - 11:45
Ну дак это естественно, если в фильтре по умолчанию (который и открывается при нажатии на плашку в отчете Воронка) стоит какое-либо ограничение на доступ, то результат поиска наложится на него. Согласитесь было бы странно, если бы вдруг менеджер увидел то что ему видеть не положено. А если он все же должен видеть все, тогда какой смысл задавать эти ограничения в фильтре по умолчанию? Просто уберите их.
Кстати, если в стандартной конфигурации Вы заходите под пользователем группы Менеджеры, то он и в отчете всех записей не увидит, а только свои. Так что тут никакого противоречия нет. Насколько я вижу, в Вашем коде в этом плане ничего не изменено.
Кстати, если в стандартной конфигурации Вы заходите под пользователем группы Менеджеры, то он и в отчете всех записей не увидит, а только свои. Так что тут никакого противоречия нет. Насколько я вижу, в Вашем коде в этом плане ничего не изменено.
#13
Отправлено 06 Май 2011 - 12:06
Спасибо.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных













