All Activity

This stream auto-updates   

  1. Yesterday
  2. Earlier
  3. Как автоматизировать процесс создание контактов из визиток?

    Доброго времени суток! Хочу поделиться практикой по автоматизации одного из бизнеспроцессов в нашей SuiteCRM В данный момент используеммобильное приложение Business Card Reader for Suite CRM https://play.google.com/store/apps/details?id=com.magneticonemobile.businesscardreader.suitecrm. Коротко: приложение сканирует визитку исоздаетконтакт вCRM - жизненно необходимая вещь на выставках, семинарах,встречах вне офиса и тп.,позволяет фактически мгновенно вступить вдиалог с клиентом ну или партнером (у кого кто), отправить нужные предложения или материалы. Приложение решает наши задачи, но все же хочу спросить, может кто интересовался сканерами визиток, ибо время не стоит на месте и нужно быть в курсе всего нового и полезного. Подскажите кто, чтоиспользует в данное время для получения контактов с визиток и какие есть нюансы? Заранее благодарен!
      • контакт
      • лид
      • (and 2 more)

        Tagged with:

        • контакт
        • лид
        • сканирование визиток
        • автоматизация продаж
  4. Модули

    Спасибо, понял!
  5. Модули

    Скидки указываются при создании предложения или счета. там при указании продуктов подставляются их цены, и к ним можно применить скидку: в процентах или в цифрах. это не модуль отдельный, а просто возможность при работе с набором продуктов.
  6. Модули

    Правильно понимаю что все перечисленные модули уже есть в SuiteCRM на демо сервере здесьhttp://s001.demo.crmhosting.ru/? не смог найти там модуля со скидками, не подскажете где он ?
  7. Live: Название проекта собирать автоматом

    Упс, небольшая поправка: Пункт 3 - неправильно рассмотрел название поля - должен выглядеть так; $bean->name = $bean->code_inc.'-'.$bean->account_c.'-'.$bean->name_temp;
  8. Live: Название проекта собирать автоматом

    Посмотрел чтобы научиться извлекать значения из связанного поля - спасибо автору, разобрался =)) В качестве благодарности, пример того, какможно категорически упростить хук. 1. Создатьчерез студию дополнительное поле "name_temp" и поставить его в макетередактирования на место оригинального "name" 2. Оригинальному полю "name", там же в студиизадатьзначение по умолчанию к примеру "не задано" 3. Весь хук теперь будет из одной строчки: $bean->name = $bean->code_inc.'-'.$bean->projects_accounts_name.'-'.$bean->name_temp;
  9. Пользовательский вид в зависимости от роли

    Всем привет! Нужно было, чтобы в зависимости от роли, по разному отображались модули.Долго искал решение вопроса, как на забугорных, так и на наших сайтах, полного решения нигде не нашел. Даже имея под рукой готовую систему как образец кастомизированную профи (а я таким себяне считаю =))) ), нашел в ней только вариант с использованием js скриптов, что меня не совсем устраивало. В итоге пришлось самому с помощью разных источников, красных глаз и многих сигарет создавать свое. Все работает =)))) как на родных, так и на своих модулях. Вид просмотра делается аналогично. Кому надо - берите Если найдете ошибки или идеи для оптимизации - пишите сюда - буду рад видеть. getUserRoles($GLOBALS['current_user']->id); if(in_array('ZakupControl',$roles)){ $viewDef = 'editviewdefs2'; } else{ $viewDef = 'editviewdefs'; } $coreMetaPath = 'modules/'.$this->module.'/metadata/' . $viewDef . '.php'; $metadataFile = 'custom/' . $coreMetaPath; return $metadataFile; } }
  10. Создание графических схем. Workflow.

    Нашел одну CRM c безплатным графическим дизайнером.. Что бы не было рекламой вопросы в личку )
    • 2 replies
  11. Ошибка в crm

    Проблемы две Первая - это ошибки на страницах crm Предупреждение: пожалуйста, обновите систему до версии Chart Data Cache, используя ссылку "Восстановление" в панели администратора Предупреждение: пожалуйста, обновите систему до версии htaccess, используя ссылку "Восстановление" в панели администратора Вторая - в списке отображаются не все записи из бд. Проблема возникла после восстановления бд.
  12. Связь один-ко-многим: как добавлять в форме редактирования несколько товаров, например, в заказ?

    В SuiteCRM новичок, но разбираюсь потихоньку. 1. В Студии в модуле Заказы создали связь "Один ко многим" с модулем Товары. Появилась таблица в базе данных и доп. панель в Студии у модуля Заказы. Заходим в нашу форму просмотра заказа и видим доп. панель "Товары"! Как просто! Чудесная система SuiteCRM! :-)
    • 1 reply
  13. Связь один-ко-многим: как добавлять в форме редактирования несколько товаров, например, в заказ?

    Создан модуль заказов. Нужно теперь установить связь между ним и уже существуующим модулем товары: один заказ - много товаров. Связь создана в процессе создания модуля заказов в Конструкторе модулей. Вопрос: как объяснить SuiteCRM, что при создании или редактировании Заказа нужно НЕСКОЛЬКО товаров иметь возможность выбрать через связь и записать к этому заказу? Если в модуль товаров добавить поле Relate "order_product_id" - то при редактировании заказа можно выбрать ему один товар. А как сделать, чтобы можно было выбирать несколько товаров в этот заказ? Спасибо заранее!
    • 1 reply
  14. Как при логине посмотреть группу пользователя и его роль

    Да, собственно и нужно определить какая у пользователя роль и к какой группе он принадлежит чтобы выводить ему его интерфейс. Админ/Не админ, это да - в первемнной is_admin проверяется. Спасибо за подсказку. буду пробовать.
    • 2 replies
      • роль
      • права доступа
      • (and 1 more)

        Tagged with:

        • роль
        • права доступа
        • распределение доступа
  15. Как при логине посмотреть группу пользователя и его роль

    Уровень прав доступа - это что? Администратор/не администратор? если да, то определяется это функцией is_admin($current_user) или is_admin($GLOBALS['current_user']) по ролям можно посмотреть в файл: modules/ACLRoles/ACLRole.php: /** * static getUserRoles($user_id) * returns a list of ACLRoles for a given user id * * @param GUID $user_id * @return a list of ACLRole objects */ function getUserRoles($user_id, $getAsNameArray = true){ //if we don't have it loaded then lets check against the db $additional_where = ''; $query = "SELECT acl_roles.* ". "FROM acl_roles ". "INNER JOIN acl_roles_users ON acl_roles_users.user_id = '$user_id' ". "AND acl_roles_users.role_id = acl_roles.id AND acl_roles_users.deleted = 0 ". "WHERE acl_roles.deleted=0 "; $result = $GLOBALS['db']->query($query); $user_roles = array(); while($row = $GLOBALS['db']->fetchByAssoc($result) ){ $role = new ACLRole(); $role->populateFromRow($row); if($getAsNameArray) $user_roles[] = $role->name; else $user_roles[] = $role; } return $user_roles; } /** * static getUserRoleNames($user_id) * returns a list of Role names for a given user id * * @param GUID $user_id * @return a list of ACLRole Names */ function getUserRoleNames($user_id){ $user_roles = sugar_cache_retrieve("RoleMembershipNames_".$user_id); if(!$user_roles){ //if we don't have it loaded then lets check against the db $additional_where = ''; $query = "SELECT acl_roles.* ". "FROM acl_roles ". "INNER JOIN acl_roles_users ON acl_roles_users.user_id = '$user_id' ". "AND acl_roles_users.role_id = acl_roles.id AND acl_roles_users.deleted = 0 ". "WHERE acl_roles.deleted=0 "; $result = $GLOBALS['db']->query($query); $user_roles = array(); while($row = $GLOBALS['db']->fetchByAssoc($result) ){ $user_roles[] = $row['name']; } sugar_cache_put("RoleMembershipNames_".$user_id, $user_roles); } return $user_roles; } /** * static getAllRoles($returnAsArray = false) * * @param boolean $returnAsArray - should it return the results as an array of arrays or as an array of ACLRoles * @return either an array of array representations of acl roles or an array of ACLRoles */ function getAllRoles($returnAsArray = false){ $db = DBManagerFactory::getInstance(); $query = "SELECT acl_roles.* FROM acl_roles WHERE acl_roles.deleted=0 ORDER BY name"; $result = $db->query($query); $roles = array(); while($row = $db->fetchByAssoc($result) ){ $role = new ACLRole(); $role->populateFromRow($row); if($returnAsArray){ $roles[] = $role->toArray(); }else{ $roles[] = $role; } } return $roles; } может эти функции помогут.
    • 2 replies
      • роль
      • права доступа
      • (and 1 more)

        Tagged with:

        • роль
        • права доступа
        • распределение доступа
  16. Как при логине посмотреть группу пользователя и его роль

    В общем ситуация такая: Необходимо стало в зависимости от уровня прав доступа и названия роли переводить пользователя на нужные экраны для работы с системой, но никак не могу найти где это регулируется. Кто знает, подскажите?
    • 2 replies
      • роль
      • права доступа
      • (and 1 more)

        Tagged with:

        • роль
        • права доступа
        • распределение доступа
  17. Вопрос по SQLyog

    Спасибо.
    • 2 replies
  18. При правке звонка ошибка

    В логе такие ошибки: Tue May 10 17:59:45 2016 [1590][930b1248-144c-f31f-eeb0-5716279e1e37][ERROR] Unable to load related bean by id Tue May 10 17:59:45 2016 [1590][930b1248-144c-f31f-eeb0-5716279e1e37][ERROR] fromUser: Conversion of from user format d.m.Y H:i failed Ошибка возникает под пользователем с ограниченными правами. У администратора - нет.
      • calls log error
      • unable to load related bean by id
      • (and 1 more)

        Tagged with:

        • calls log error
        • unable to load related bean by id
        • fromuser: conversion of  from user format d.m.y h:i failed
  19. Добавление связи Многие-ко-Многим в модулях

    Предположу что в файле .htaccess в корне проекта. php_flag display_errors off
    • 3 replies
      • связь
      • многие-ко-многим
      • (and 2 more)

        Tagged with:

        • связь
        • многие-ко-многим
        • добавление связи
        • php
  20. Проблемы со связью и relate полем

    По идее должен быть. Ну или в исходниках возьмите. Например тут:https://github.com/sugarcrm/sugarcrm_dev/blob/master/modules/Accounts/views/view.detail.php
    • 14 replies
  21. Проблемы со связью и relate полем

    Подскажите, пожалуйста, а как сделать такой список? Это же, получается, не dropdown list, должна быть связь с модулем как-то..
    • 14 replies
  22. Назначение задач от Постановщика Исполнителю и обратно

    Максим: Добрый день 11:25:26 Евгений: 11:25:41 добрый! У меня такой вопрос, например у нас IT компания. Нужно чтобы клиенты ставили задачи исполнителям и сами могли менять статус задачи, например "Не выполнена" если они недовольны решением исполнителя 11:27:29 возможно такое? 11:27:35 11:28:22 для этого надо или клиентов пускать в CRM в виде пользователей 11:28:35 или писать на сайте личный кабинет, интегрированный с CRM 11:28:53 ну или просто интегрировать личный кабинет, если он уже написан и там есть такой функционал нет, писать что то лишнее и тратить на это время не хотелось бы. А возможность разделения ролей или создание своих присутствует? 11:29:53 11:30:11 да, есть разделение по ролям 11:30:31 в рамках роли можно либо разрешить править все записи в модуле, либо только свои, либо не править вовсе 11:30:59 с видимостью записей тоже самое 11:31:03 чтобы не видел чужие 11:31:29 только тут вот особенность. под "Своей" подразумевается задача, за которую ответственный текущий пользователь 11:31:51 если клиент назначил кому то задачу, то он сделал ответственным другого пользователя, и сам теряет доступ к этой задаче и не может отслеживать ее статус? 11:32:13 11:32:28 можно хотя немного "допилить" систему, чтобы под "своей" записью подразумевалось кто поставил задачу и кто ответственный за нее 11:33:06 не, статус может отслеживать 11:33:15 например можно сделать, что видит все заявки 11:33:19 но править может только свои 11:33:31 но тогда будет видеть и все заявки других клиентов вот смотрите, я - недовольный клиент, мне не нравится как меня обслужили. Я являясь пользователем этой crm ставлю задачу исполнителю - доделать такой то глюк и назначаю на него. Исполнитель сделал и ставит статус - "Сделано", но я как заказчик недоволен исходом этой правки и опять этой же задаче хочу поставить статус "Не сделано". Возможен такой сценарий? 11:35:57 11:36:42 да 11:36:48 и причем кучей разных способов 11:37:08 от бесплатных но менее удобных до более удобных и доработанных в коде 11:37:37 например когда клиент не доволен и делаю заявку я сразу назначаю исполнителя 11:37:45 у исполнителя в его задачах эта появляется 11:38:02 он по ней отрабатывает и пишет что все. и ответственным за задачу ставит того, кто создал задачу 11:38:13 она возвращается постановщику. он за нее ответственный и видит ее 11:38:16 ему не нравится 11:38:30 он пишет комментарий и опять делает ответственным исполнителя 11:38:40 исполнителю опять эта задача прилетает 11:38:53 и так они могут футболить задачу пока не достигнут дзена 11:39:12 а как все- постановщик ее закрывает и задача улетает в архив вот, то что нужно) 11:39:26 и еще вопрос, последний 11:39:45 например нужны роли 1. Супер Админ, который все может 2. Заявитель 3 Исполнитель. С этими тремя понятно. Но нужен 4ый - менеджер, который просто следит за процессом и смотрит, как исполнитель обслуживает его(менеджера) клиентов, наверное ему должны быть доступны все заявки, может быть даже их редактирование, но согласитесь права супер админа ему давать тоже не дело. 11:42:41 11:43:05 да, можно 11:43:15 сделать роль, которая будет видеть все, но ничего не удалять и не править 11:43:18 без супер-прав 11:44:16 смотрите: роль позволяет для каждого модуля настроить действия: создание/редактирование + просмотр карточки + просмотр в списчке + удаление + импорт + экспорт + массовое обновление 11:44:47 каждое из этих действий можно настроить чтобы был к ним доступ: 1 - к любым записям 2 - вообще не было доступа 3 - к "своим" записям 11:44:53 ну и еще по группам Тоесть можно создавать свои любые роли и гибко настраивать их возможности? 11:45:04 подождите, а модуль - что за сущность? 11:45:17 11:45:24 ну на сколько гибко это конечно понятие относительное... 11:45:33 зачастую гибкости не хватает 11:45:39 но пока из услышанного да, можно 11:45:48 Задачи - это модуль 11:45:55 содержит список записей с задачами а - понятно 11:45:59 тоесть все это можно сделать при помощи стандартных средств - верно? пусть и не крайне удобно, но зато ничего не допиливая 11:46:38 11:46:43 ну по сути пока да ну, все, что я перечислил 11:47:00 пока нам нужно только это, но я думаю мы будем в дальнейшем работать с этой crm. А вы я так понимаю специализируетесь и предлагаете услуги по доработке под дополнительные нужды? 11:48:05 11:48:19 да 11:48:45 SugarCRM/SuiteCRM по сути просто основа с некоторым функционалом, который можно заточить под любой вид деятельности 11:48:52 там только базовые основы и нет как правило специфики 11:48:57 ее я и дописываю понятно, я буду иметь вас в виду. Может быть где то есть прайс? 11:49:47 или каждый раз цена обсуждается в зависимости от задачи 11:50:02 11:50:11 каждый раз обсуждается 11:50:26 это же не товар с фиксированной стоимостью и сроком изготовления... 11:50:35 фиксирована только цена моих услуг = 1500 рублей час согласен 11:50:35 11:50:39 от нее и пляшу понятно, спасибо Евгений 11:51:24 кстати не подскажете какой нибудь гайд по работе? 11:51:50 лучше всего с постановкой задач 11:51:58 даже приемущественно 11:52:11 11:52:44 нет, не подскажу к сожалению 11:53:05 в планах его создать... но это пока планы... времени не хватает понятно, спасибо, всего доброго 11:54:15 11:54:53 спасибо! хорошего дня! нашел мануал, может быть в качестве ликбеза вам будет удобно раздавать своим клиентам http://www.call-center.su/call-center/crm/SugarCRM_manual.pdf 11:58:51 11:59:17 да, был такой 11:59:29 это они дернули из SugarCRM 11:59:39 он не актуальный, но в целом основные вещи отражает 11:59:41 спасибо что, сильно не актуальный?) своё то я там найду? 12:00:13 12:00:22 да, найдете!
  23. Как добавить дополнительные условия в выводе списка?

    Подскажите, пожалуйста, как в формах списка добавлять дополнительные условия вывода записей. Например, выводить только записи, содержащие значение false кастомного поля Client в модуле Accounts. Нужно это сделать непременно в форме, а не в поиске, т.к. этот фильтр должен работать всегда и никто его не смог отключить.
  24. Как создавать совмещенные поля в модулях?

    Для удобства работы, можно объединить по названию. Например, добавив к полю префикс: apt_area_common, apt_area_kitchen , и т.д. И расположить их на отдельной панели (или вкладке) в формах edit и view в студии.
  25. Как создавать совмещенные поля в модулях?

    Не могу до конца понять логику смежных полей в модуле Контрагентов: Фактический адрес и Отгрузочный адрес Как они вообще определены в системе и как создать свой набор полей? к примеру Площадь квартиры и три поля: 1 - Общая (common), 2 - Жилая (resedential), 3 - Кухня (kitchen) чтобы можно было по этим полям производить поиск
  26. Live: Название проекта собирать автоматом

    Хорошо бы сделать небольшой гайд по Хукам и как их можно использовать в различных применениях
  27. Удаление стандартных полей нового модуля в конструкторе

    В 99% случаев при добавлении полей приходится так делать. А что если не удалять поля, а, к примеру, записывать в них сгенерированые значения перед сохранением в базу? Тогда отпадает вопрос что делать с ненужными полями по-умолчанию. Это тогда в каком месте движка надо смотреть чтобы такую функцию реализовать? Помнится в видео было что-то подобное, когда Вы рассказывали про генерацию имени на лету на основе данных соседних полей.
    • 5 replies
      • модуль
      • конструктор
      • (and 1 more)

        Tagged with:

        • модуль
        • конструктор
        • удаление полей
  1. Load more activity