daramal Опубликовано 21 августа, 2016 Жалоба Поделиться Опубликовано 21 августа, 2016 Приветствую всех! Друзья, такая ситуация.Стало необходимо сделать отдельный доступ для Курьера. Чтоб он смог войти под свой логин и только в раздел "Приняты" в Заказах и что самое главное -не мог редактировать принятые заказы, а лишь только нажав на иконку Принтера для просмотра самой Квитанции. Как такое реализовать? Где копать и вообще любые ценные Ваши советы. Спасибо большое! Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 21 августа, 2016 Жалоба Поделиться Опубликовано 21 августа, 2016 Я бы реализовал через экшены, но тогда нужно переделать всю систему разграничения прав менеджеров.Такое кого-то давно Wizard (он же Davinci) делал, еще до того как в симпле появилась система разграничения прав. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 21 августа, 2016 Жалоба Поделиться Опубликовано 21 августа, 2016 Стало необходимо сделать отдельный доступ для Курьера. Чтоб он смог войти под свой логин и только в раздел "Приняты" в Заказах и что самое главное -не мог редактировать принятые заказы, а лишь только нажав на иконку Принтера для просмотра самой Квитанции. По-моему, проще всего - сделать в админке новый модуль, переделав текущий модуль заказов и при этом удалив всю ненужную для курьера функциональность. Бесплатно вряд ли кто сделает... Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 21 августа, 2016 Автор Жалоба Поделиться Опубликовано 21 августа, 2016 а нельзя сделать, например, если это Вася, то ему видны такие-то разделы и т.д. ? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 21 августа, 2016 Жалоба Поделиться Опубликовано 21 августа, 2016 А разве нельзя условиями сделать? В orders.tpl условие для 1 менеджера, если да -- подгрузить данные в виде таблицы, если нет -- грузить как есть. Для бесплатного решения думаю можно запилить Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 23 августа, 2016 Жалоба Поделиться Опубликовано 23 августа, 2016 а нельзя сделать, например, если это Вася, то ему видны такие-то разделы и т.д. ? Конечно, можно."если это Вася, то ему видны такие-то разделы" - ставите в админке в нужных местах нужный if"и т.д." - и т.д. Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 23 августа, 2016 Автор Жалоба Поделиться Опубликовано 23 августа, 2016 (изменено) Конечно, можно."если это Вася, то ему видны такие-то разделы" - ставите в админке в нужных местах нужный if"и т.д." - и т.д.Спасибо большое. Я сделал практически все, только возник последний вопрос.В общем добавил пользователя с логином: kurier и открыл доступ только к Заказамдалее вписал там, где необходимо в файле orders.tpl и получилось следующее: {* Вкладки *} {capture name=tabs} {if in_array('orders', $manager->permissions)} {if $manager->login == 'kurier'} <li {if $status==1}class="active"{/if}> <a href="{url module=OrdersAdmin status=1 keyword=null id=null page=null label=null}">Приняты</a> </li> {else} <li {if $status===0}class="active"{/if}><a href="{url module=OrdersAdmin status=0 keyword=null id=null page=null label=null}">Новые</a></li> <li {if $status==1}class="active"{/if}><a href="{url module=OrdersAdmin status=1 keyword=null id=null page=null label=null}">Приняты</a></li> <li {if $status==2}class="active"{/if}><a href="{url module=OrdersAdmin status=2 keyword=null id=null page=null label=null}">Выполнены</a></li> <li {if $status==3}class="active"{/if}><a href="{url module=OrdersAdmin status=3 keyword=null id=null page=null label=null}">Удалены</a></li> {/if} {if $keyword} <li class="active"><a href="{url module=OrdersAdmin keyword=$keyword id=null label=null}">Поиск</a></li> {/if} {/if} {if in_array('labels', $manager->permissions)} <li><a href="{url module=OrdersLabelsAdmin keyword=null id=null page=null label=null}">Метки</a></li> {/if} {/capture} {* Title *} {$meta_title='Заказы' scope=parent} {* Поиск *} <form method="get"> <div id="search"> <input type="hidden" name="module" value="OrdersAdmin"> <input class="search" type="text" name="keyword" value="{$keyword|escape}"/> <input class="search_button" type="submit" value=""/> </div> </form> {* Заголовок *} <div id="header"> <h1>{if $orders_count}{$orders_count}{else}Нет{/if} заказ{$orders_count|plural:'':'ов':'а'}</h1> <a class="add" href="{url module=OrderAdmin}" style="{if $manager->login == 'kurier'}display:none;{/if}">Добавить заказ</a> <a href="{url module=ExportXLAdmin}" style="float: right; margin-right: 44px; {if $manager->login == 'kurier'}display:none;{/if}" title="Выгрузить все заказы"><img src="./design/images/export_excel.png"></a> </div> {if $message_error} <!-- Системное сообщение --> <div class="message message_error"> <span class="text">{if $message_error=='error_closing'}Нехватка некоторых товаров на складе{else}{$message_error|escape}{/if}</span> {if $smarty.get.return} <a class="button" href="{$smarty.get.return}">Вернуться</a> {/if} </div> {/if} {if $orders} <div id="main_list"> <!-- Листалка страниц --> {include file='pagination.tpl'} <!-- Листалка страниц (The End) --> <form id="form_list" method="post"> <input type="hidden" name="session_id" value="{$smarty.session.id}"> <div id="list"> {foreach $orders as $order} <div class="{if $order->paid}green{/if} row {foreach $order->labels as $l} class="order_label" style="background-color:#{$l->color};" title="{$l->name}{/foreach}"> <div class="checkbox cell" {if $manager->login == 'kurier'}style='display:none;'{/if}> <input type="checkbox" name="check[]" value="{$order->id}"/> </div> <div class="order_date cell"> {$order->date|date} в {$order->date|time} </div> <div class="order_name cell"> <a href="{url module=OrderAdmin id=$order->id return=$smarty.server.REQUEST_URI}">Заказ №{$order->id}</a> {$order->name|escape} {if $order->note} <div class="note">{$order->note|escape}</div> {/if} </div> <div class="icons cell"> <a href='{url module=OrderAdmin id=$order->id view=print}' target="_blank" class="print" title="Печать заказа"></a> <a href='#' class=delete title="Удалить" style="{if $manager->login == 'kurier'}display:none;{/if}"></a> </div> <div class="name cell" style='white-space:nowrap;'> {$order->total_price|escape} {$currency->sign} </div> <div class="icons cell" style="{if $manager->login == 'kurier'}display:none;{/if}"> {if $order->paid} <img src='design/images/cash_stack.png' alt='Оплачен' title='Оплачен'> {else} <img src='design/images/cash_stack_gray.png' alt='Не оплачен' title='Не оплачен'> {/if} </div> {if $keyword} <div class="icons cell"> {if $order->status == 0} <img src='design/images/new.png' alt='Новый' title='Новый'> {/if} {if $order->status == 1} <img src='design/images/time.png' alt='Принят' title='Принят'> {/if} {if $order->status == 2} <img src='design/images/tick.png' alt='Выполнен' title='Выполнен'> {/if} {if $order->status == 3} <img src='design/images/cross.png' alt='Удалён' title='Удалён'> {/if} </div> {/if} <div class="clear"></div> </div> {/foreach} </div> <div id="action" {if $manager->login == 'kurier'}style='display:none;'{/if}> <label id='check_all' class="dash_link">Выбрать все</label> <span id="select"> <select name="action"> {if $status!==0}<option value="set_status_0">В новые</option>{/if} {if $status!==1}<option value="set_status_1">В принятые</option>{/if} {if $status!==2}<option value="set_status_2">В выполненные</option>{/if} {foreach $labels as $l} <option value="set_label_{$l->id}">Отметить «{$l->name}»</option> {/foreach} {foreach $labels as $l} <option value="unset_label_{$l->id}">Снять «{$l->name}»</option> {/foreach} <option value="delete">Удалить выбранные заказы</option> </select> </span> <input id="apply_action" class="button_green" type="submit" value="Применить"> </div> </form> <!-- Листалка страниц --> {include file='pagination.tpl'} <!-- Листалка страниц (The End) --> </div> {/if} <!-- Меню --> <div id="right_menu"> {if $labels} <!-- Метки --> <ul id="labels"> <li {if !$label}class="selected"{/if}><span class="label"></span> <a href="{url label=null}">Все заказы</a></li> {foreach $labels as $l} <li data-label-id="{$l->id}" {if $label->id==$l->id}class="selected"{/if}> <span style="background-color:#{$l->color};" class="order_label"></span> <a href="{url label=$l->id}">{$l->name}</a></li> {/foreach} </ul> <!-- Метки --> {/if} </div> <!-- Меню (The End) --> {* On document load *} {literal} <script> $(function() { // Сортировка списка $("#labels").sortable({ items: "li", tolerance: "pointer", scrollSensitivity: 40, opacity: 0.7 }); $("#main_list #list .row").droppable({ activeClass: "drop_active", hoverClass: "drop_hover", tolerance: "pointer", drop: function(event, ui){ label_id = $(ui.helper).attr('data-label-id'); $(this).find('input[type="checkbox"][name*="check"]').attr('checked', true); $(this).closest("form").find('select[name="action"] option[value=set_label_'+label_id+']').attr("selected", "selected"); $(this).closest("form").submit(); return false; } }); // Раскраска строк function colorize() { $("#list div.row:even").addClass('even'); $("#list div.row:odd").removeClass('even'); } // Раскрасить строки сразу colorize(); // Выделить все $("#check_all").click(function() { $('#list input[type="checkbox"][name*="check"]').attr('checked', $('#list input[type="checkbox"][name*="check"]:not(:checked)').length>0); }); // Удалить $("a.delete").click(function() { $('#list input[type="checkbox"][name*="check"]').attr('checked', false); $(this).closest(".row").find('input[type="checkbox"][name*="check"]').attr('checked', true); $(this).closest("form").find('select[name="action"] option[value=delete]').attr('selected', true); $(this).closest("form").submit(); }); // Подтверждение удаления $("form").submit(function() { if($('#list input[type="checkbox"][name*="check"]:checked').length>0) if($('select[name="action"]').val()=='delete' && !confirm('Подтвердите удаление')) return false; }); }); </script> {/literal} После этого получается, что проходишь авторизацию и попадаешь в Заказы. Убрал все ненужные табы, оставил только Принятые. Теперь самое главное - где и что нужно добавить, чтоб при авторизации логина kurier отобразился список "Приняты", а то дефолтно открывает список "Новых" ?Но если нажимаешь на единственный таб, которые отображается, а это у нас Принятые, то тогда попадаешь в нужный раздел. Нужно чтоб этот раздел открывался деволтно под этот логин. Спасибо! Изменено 23 августа, 2016 пользователем DarAmal Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 24 августа, 2016 Жалоба Поделиться Опубликовано 24 августа, 2016 Можно в simpla/design/html/index.tpl или через OrdersAdmin.php А вообще Ваш вопрос должен бы уже натолкнуть Вас на мысль: а что я, собственно, делаю - чтобы курьеру НЕ ПОКАЗЫВАТЬ ссылки? Видимо, чтобы он не видел лишнего. А если курьер чуть сообразительнее окажется и введет ссылку сам? Там ведь ума много не надо - приписал в адресе status=0 и готово. Особенно если вдруг этот курьер сейчас работает и в админке видит все заказы. И все усилия - впустую... Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 24 августа, 2016 Автор Жалоба Поделиться Опубликовано 24 августа, 2016 Можно в simpla/design/html/index.tpl или через OrdersAdmin.php А вообще Ваш вопрос должен бы уже натолкнуть Вас на мысль: а что я, собственно, делаю - чтобы курьеру НЕ ПОКАЗЫВАТЬ ссылки? Видимо, чтобы он не видел лишнего. А если курьер чуть сообразительнее окажется и введет ссылку сам? Там ведь ума много не надо - приписал в адресе status=0 и готово. Особенно если вдруг этот курьер сейчас работает и в админке видит все заказы. И все усилия - впустую...Нее. с этим проблем не возникнет ))мне главное сделать задуманное ) Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 24 августа, 2016 Автор Жалоба Поделиться Опубликовано 24 августа, 2016 Не подскажите, как через simpla/design/html/index.tpl или через OrdersAdmin.php сделать это?я попытался сделать в index.tpl прописать <li> {if $manager->login == 'kurier'} <a href="index.php?module=OrdersAdmin&status=1"><img src="design/images/menu/orders.png"><b>Заказы</b></a> {else} <a href="index.php?module=OrdersAdmin"><img src="design/images/menu/orders.png"><b>Заказы</b></a> {if $new_orders_counter}<div class='counter'><span>{$new_orders_counter}</span></div>{/if} {/if} </li> Но это совсем не то. он только ссылку в меню меняет.Как сделать, чтоб сразу открылась страница "Принятые" ?! Спасибо большое! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.