Скрипт CRM Клиентская База

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
415
Реакции
436
Всем привет!

Представляю вашему вниманию CRM с очень широким функционалом. Достойнее не видел. Конструктор таблиц с любыми полями и зависимостями!!!
От авторов:
Функционал, дающий максимальную гибкость.
Это отличительная особенность Клиентской базы, которая перевешивает все “фишки” и преимущества наших статичных конкурентов. Не ограничивайте себя в развитии! Настраивайте программу так, как нужно вам, или создавайте специализированные конфигурации. Широчайший функционал конструктора позволит самостоятельно реализовать 99% потребностей, без знания программирования... Сильно? Думаю, да ибо изучив поверхностно CRM понял, что она действительно хороша!
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
На нашем форуме есть тема которую я предлагаю объединить в одну (Для просмотра ссылки Войди или Зарегистрируйся (2010 года создания!!!)) На усмотрение модераторов

Как установить на локальный сервер, а именно DENWER и пролечить CRM?

Установка программы КБ на web-сервер Denwer
1. Скачиваем Для просмотра ссылки Войди или Зарегистрируйся (версия с 5.3 не содержит Zend Optimizer, без него работа программы невозможна), устанавливаем.

2. Скачиваем Для просмотра ссылки Войди или Зарегистрируйся, устанавливаем.

3. В папке программы "Denwer" WebServers/usr/local/php5 открываем файл php.ini. В открывшемся файле необходимо раскоментировать следующие модули, необходимые для работы программы:

  • gd2
  • imap
  • mbstring
  • mhash
  • openssl
  • zip
5. Запускаем Denwer.

6. Скачиваем web-версию программы "Клиентская база". Внимание! Версия должна быть для PHP5.2 (ссылка выше).

7. Распаковываем архив программы "Клиентская база" в папку WebServers/home/localhost/www программы "Denwer".

8. Запускаем установку программы "Клиентская база".

Лечение: Заменям содержимое файла! из лекарства в iclude/snoopy.class.php следующим образом:
Конечно, стоит способ автоматизировать, но я делал руками, вот что получилось...
1. Деактивируем программу.
2. Обновляем ревизию.
3. Копируем на комп файлик snoopy.class.php (обновленная ревизия) файл (А).
4. Создаем на компе файлик snoopy.class.php вылеченный (файл Б).
5. Заменяем на сервере файл файл (А) на файл (Б).
6. Активируем программу.
7. Открываем в редакторе файл snoopy.class.php (обновленная ревизия) файл (А).
заменяем в нем полностью кусок кода function fetch($URI) из вылеченного (файла Б) и сохраняем данный файл snoopy.class.php (файл С).
8. Заменяем на сервере файл файл (Б) на файл (С).
9. Наслаждаемся...

Далее, заходим в CRM, нажимаем Активация и вводим
1234-5678-9876

ВНИМАНИЕ! ВО ИЗБЕЖЕНИЕ ГЛУПЫХ ВОПРОСОВ:
1. НА OPENSERVER CТАВИТСЯ ВЕРСИЯ С IONCUBE.
8df73db496ae.png

2. ВЕРСИЯ СКРИПТА ДЛЯ PHP 5.2, КАК СТАВИТЬ НА ДРУГУЮ ВЕРСИЮ НЕ ЗНАЮ!!!

Если слетает активация при обновлении ревизии! Решение, предложенное на одном из форумов. ( Не проверял!) Отпишитесь, у кого получилось, есть вопросы по решению.
Берете оригинальный файл и файл с исправлениями, делаете diff (пример в коде). Результат записываете в файл. md5 патченного файла также записываете. На последней ревизии патч выглядит так:
Код:
*** ./snoopy.class.php    2015-02-13 12:33:54.000000000 +0300
--- ./snoopy.class.php.patched    2015-02-13 12:33:07.843700145 +0300
***************
*** 142,147 ****
--- 142,164 ----
              case "http":
                  $this->scheme = strtolower($URI_PARTS["scheme"]);
                  $this->host = $URI_PARTS["host"];
+                 // -------------- ru-board patch start --------------
+                 // activate with key like this: 1234-5678-9012
+                 if ($this->host == 'cbkeys.ru')
+                 {
+                     if ($URI_PARTS["path"] == '/activ_check.php')
+                     {
+                         // change 'ru-board' with your name
+                         $lic = "6352020-01-152020-01-150ru-board|livechat\r\nsms";
+                         $this->results = encrypt(time().$lic, 'Fr36SWjU40cFqD8h');
+                     }
+                     elseif ($URI_PARTS["path"] == '/register.php' || $URI_PARTS["path"] == '/deactivate2.php')
+                     {
+                         $this->results = "ok";
+                     }
+                     return true;
+                 }
+                 // --------------- ru-board patch end ---------------
                  if (!empty($URI_PARTS["port"]))
                      $this->port = $URI_PARTS["port"];
                  if ($this->_connect($fp)) {

Следующий код записываете в файл check_activation.sh, делаете его исполняемым и подвешиваете на cron. Все. После каждого обновления snoopy патчится автоматом.
Код:
#!/bin/bash
FILE="/path_to_clientbase/include/snoopy.class.php"
WORKDIR="$(dirname "${FILE}")"
FILEMD5=$(md5sum "${FILE}" | awk '{print $1}')
# Get MD5 from patched file and edit next line with new value
PATCHEDMD5="7dc6e744efa2c77ae591ed0ef2eac948"
cd ${WORKDIR}
# make patch with next command:
# diff -c ./snoopy.class.php ./snoopy.class.php.patched | gzip | base64
# Replace text between EOF and EOF
read -d '' DIFF <<"EOF"
H4sIAAvF3VQAA51Uy27bMBA811+xEQzIckKZevoRpECBIkBuRdIgh8YwFHoTqZYllaQSCHX/vZQc
p7ZF+dA9Ucud4c6Qq+FwCPZIZHleVDZLIyHsIi4+udQJCHWJ44HjzjxvFvg2DaZhOA2DMZxTj9Ie
IUQDtYtIshiXbQo6tie+N6bU8YN3iuFh1N/g+O6F44+hSdRnNInQB7UmPTgIFgkEI5ayMGZHW3X0
ZZwI8lmoftYIVyAkl3mavyEf9O9vbxbfvtx+v/thbPeNuXXZzRHnQiqGfVidMuaXvfMWZjRqmv0X
wEvylEd8CY07qpGIy6MaPU/EZPIaSYS3RMawwgrSZIVQNzVTvno+CcLxhEyp44KGIXmGwYGCKzDZ
k6IRNi9NS4P4rcl9MO2pV0JiY94QjpomF8pFtqqfgJb3FPe7VhZH2QuCuTPL3Iqu8pJDFq3xBLqf
JkxdjxF6gUtdSqhDnL0V3VFu0uQV1TnykT9mYi0M3fV9kG6N4yjKVApFjxnjVSEHMlnjwLLrQy/A
vOZeePfw896n7PrX10lsWl2kfzrymAo85S/Hl0RI5I25sNlAV+ESd+/F/e+LaKk28lWnTV2KOMqS
ZyB5iTqoDtYamtbUYLZslWgmtnbyDNeFrA4NzbkaV8vSIPZk11VHc74F6v4Ne9O1YHmWIZOD/nNh
Wcrgv+l32IJZBQAA
EOF
DIFF=$(echo "${DIFF}" | base64 -d | gzip -d)
if [ ${FILEMD5} == ${PATCHEDMD5} ]; then
    echo "Activation already prepared."
else
    if [[ -f ${FILE}.bak ]]; then
         rm -f "${FILE}.bak"
    fi
    cp "${FILE}" "${FILE}.bak"
    if [[ -f ${FILE} ]]; then
        # patch snoopy.class.php
        echo "${DIFF}" | patch >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            echo "Something wrong. Activation not prepared!"
            exit 1
        fi
        echo "Activation prepared succeful."
    else
        echo "Target file not exist. Activation not prepared!"
        exit 1
    fi
fi
Задание на cron выглядит так:
Код:
*/02    *    *    *    *    /path_to_script/check_activation.sh >/dev/null 2>&1

Активатор для КБ 3.0.4 (ссылка на пост).
 
В фунционале скрипта есть импорт товаров ? или он только по клиентам?
 
Напишите у кого какая версия скрипта сейчас стоит?



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




опишите конкретней задачу

у меня ревизия 21631 от 2020-01-14

Нужно, чтоб например сотрудник заходил в определенный раздел и там видно кто когда и по сколько часов работает, в случаи подмены сотрудников менять им кол-во часов или дни работы например.
А так же чтоб часы автоматом считались за месяц в общем по каждому сотруднику и умножались например на стоимость часа работы.
У каждой группы сотрудников разная стоимость оплаты за час.
Ну вот как то так.
Покамесь сделал таблицу, где сотрудники при начале работы отмечаются что на работе и когда уходят ставят отметку, часы считаются в общем сколько за смену и внизу таблице в общем за месяц.
Но сам график общий работы как сделать на месяц вперед например и т.д. не понятно как.
Чтоб не добавлять каждую строчку отдельно на каждого сотрудника и на каждый день.

Так себе конечно объяснил, ну как смог)))))

Спасибо!
 
Нужно, чтоб например сотрудник заходил в определенный раздел и там видно кто когда и по сколько часов работает, в случаи подмены сотрудников менять им кол-во часов или дни работы например
Спасибо!

а зачем так усложнять?
у вас задача какая основная? учет рабочих часов? и достаточно знать общий объем отработанных часов за каждым сотрудником?

Если да то достаточно фиксировать дату начала работы и доту окончания. И дальше вычислениями высчитывать объем работы, и умножать на нормочасы.

Завезти таблицу "Таблица работы"
каждое утром каждый сотруник должен нажать кнопку создать запись
а вечером зайти в эту же таблицу и в своей записи поставить работу закончил.
вычисление записывает когда ставится галочка начата работа и когда она закончена
фильтр настроен на текущий день
далее с этими данными можно творить что угодно, делить, суммировать, умножать на нормочасы, собирать в аналитические отчеты.
 
а зачем так усложнять?
у вас задача какая основная? учет рабочих часов? и достаточно знать общий объем отработанных часов за каждым сотрудником?

Если да то достаточно фиксировать дату начала работы и доту окончания. И дальше вычислениями высчитывать объем работы, и умножать на нормочасы.

Завезти таблицу "Таблица работы"
каждое утром каждый сотруник должен нажать кнопку создать запись
а вечером зайти в эту же таблицу и в своей записи поставить работу закончил.
вычисление записывает когда ставится галочка начата работа и когда она закончена
фильтр настроен на текущий день
далее с этими данными можно творить что угодно, делить, суммировать, умножать на нормочасы, собирать в аналитические отчеты.

Уже вроде настроил как надо, в вычислениях прописал чтоб считала разницу между датами (приход - уход), но почему-то считает если например пришел на смену 18:15 - через 5 минут закрываю смену, все норм, не считает не чего, а если через 30 минут сразу считает час времени отработанных. А нужно, чтоб если менее 59 минут, чтоб не считала не чего, то есть только по факту, если час есть значит считаем, если меньше, не считать. Толи округляет, только еще что, не понятно :(
 

Вложения

  • 1234.jpg
    1234.jpg
    110,8 KB · Просмотры: 14
Последнее редактирование:
Уже вроде настроил как надо, в вычислениях прописал чтоб считала разницу между датами (приход - уход), но почему-то считает если например пришел на смену 18:15 - через 5 минут закрываю смену, все норм, не считает не чего, а если через 30 минут сразу считает час времени отработанных. А нужно, чтоб если менее 59 минут, чтоб не считала не чего, то есть только по факту, если час есть значит считаем, если меньше, не считать. Толи округляет, только еще что, не понятно :(

да округляет
поставте число знаков после запятой 2
покажите настройки поля отработанные часы

если не поможет нужно построить другое вычисление, сначала собирать отработанное время в поле, а потом с ним производить вычисления (пример: при условии что чисто в поле более 60 минт произвести умножение на)
 
да округляет
поставте число знаков после запятой 2
покажите настройки поля отработанные часы

если не поможет нужно построить другое вычисление, сначала собирать отработанное время в поле, а потом с ним производить вычисления (пример: при условии что чисто в поле более 60 минт произвести умножение на)

Уже пробовал ставить 2 знака после запятой в вычислении и менял в настройке поля "Отработанные часы" знаков всего 5, из них после запятой 2.
Но после запятой не знаю есть ли смысл? Нужно ведь чтоб подсчет шел не по минутам а по часам
 

Вложения

  • 1234.jpg
    1234.jpg
    91,3 KB · Просмотры: 5
Уже пробовал ставить 2 знака после запятой в вычислении и менял в настройке поля "Отработанные часы" знаков всего 5, из них после запятой 2.
Но после запятой не знаю есть ли смысл? Нужно ведь чтоб подсчет шел не по минутам а по часам

Сейчас поставил после запятой 2 знака в настройках поля и в вычислениях, закрыл смену и почему-то считает не верно, если сравнить дату открытия и дату закрытия смены, должно быть другое кол-во минут :(
 

Вложения

  • 1234.jpg
    1234.jpg
    25,8 KB · Просмотры: 2
да округляет
поставте число знаков после запятой 2
покажите настройки поля отработанные часы

если не поможет нужно построить другое вычисление, сначала собирать отработанное время в поле, а потом с ним производить вычисления (пример: при условии что чисто в поле более 60 минт произвести умножение на)

И еще момент, возможно ли настроить так, что если например смена в сутки хоть раз была открыта, затем закрыта, чтоб ее в этот же день повторно открыть не было возможности?
 
Назад
Сверху