Заправка с выездом 8 800 550-55-42

Выезд курьера:Бесплатно

Цены на заправку

Canon
HP
Samsung
Xerox
Oki
 

График работы

с 900 до 1700

Сб, вс - выходной

Информационная система - Часть 1

Как я писал ранее, 2016 год оказался богатым на новых клиентов. Объем заправляемых картриджей в день вырос значительно. Возникает необходимость в дополнительных руках: есть смысл принять на работу заправщика картриджей. Однако, просто взять и передать всю информацию заправщику было бы верхом глупости. Заправщик всю клиентскую базу либо уведет с собой, либо продаст моим конкурентам. Дабы этого избежать, необходимо внедрить некую систему, которая будет отделять прочной информационной стеной заправщика от клиентов. Заправщик должен видеть только номера заявок, комментарии к ним и никакой дополнительной информации, раскрывающей личность заказчика.

Некую систему регистрации и работы с заявками ношу в голове уже около года. И первым шагом было приобретение SSL-сертификата для обеспечения информационной безопасности клиента.

Требования к программному средству небольшие.

  1. Регистрация всех заявок (юридических и физических лиц).
  2. Сборка нескольких картриджей в одну заявку. Некоторые клиенты (особенно по корпоративным договорам) приносят по несколько картриджей и хотелось бы их регистрировать в одну заявку.
  3. Регистрация статусов заявок (в работе, выполнено и т.п.).
  4. Оповещение клиента о статусе заявок по запросу на сайте в онлайне.
  5. Печать отчетных документов для клиентов. Здесь это возможно сделать только для клиентов, предпочитающих наличный расчет.
  6. Отправка SMS о статусе заявки. Эту функция существенным образом освободит менеджера от звонков, так как каждое утро менеджер тратит по 40-60 минут на обзвон клиентов, картриджи которых готовы.
  7. Главное условие - работа со штрих-кодированием.

Итак, программу для учета заявок решил писать сам. Жизнь меня давно научила не обращаться к внешним ресурсам и тем более не использовать различные существующие программные средства. Они либо глючные, либо не удовлетворяют моим требованиям.

Второе - для обеспечения «онлайности» стоит ее писать на php с хранением всех данных в базе данных MySQL. А регулирование прав доступа можно реализовать при помощи уже используемой CMS Joomla. Тем более Joomla позволяет создать многоуровневую систему прав доступа, которая позволит одним кликом добавить доступ к неким модулям существующему пользователю. Кроме того, у CMS Joomla есть хорошее средство для хранения переменных, но об этом в других статьях.

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

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

  1. Наименование и порядковый номер клиента.
  2. Вид расчетов.
  3. Статус договора и примечание к нему.
  4. Флаг отправки SMS-сообщения.
  5. Номера телефонов для SMS-информирования.
  6. Стартовый и конечный номера этикеток.

Создадим таблицу TABLE_SERIES в существующей базе данных printsvc со следующими полями:

  1. id (int) AI NULL - системный идентификатор
  2. series_client (TINYTEXT) - серии картриджей
  3. name_client (TEXT) - наименование клиента
  4. type_payment (TINYINT) - вид расчетов
  5. status_contract (TINYINT) - статус договора
  6. desc_contract (TEXT) - примечание к договору
  7. send_sms (TINYINT) - отправка SMS
  8. number_sms (TINYTEXT) - номер телефона
  9. start_num (TINYTEXT) - стартовый номер этикетки
  10. end_num (TINYTEXT) - конечный номер этикетки

Немного о полях. Поле id с автоинкрементом является внутренним системным идентификатором и каждую запись автоматически нумерует. Тип INT дает возможность создавать записи диапазоном от 0 до 4294967295 без знака. Нулевую запись оставим под наименование клиента “Частный клиент”. Обработчик частных клиентов напишу позже, логика работы там своя будет.

В поле series_client хранятся данные о серии картриджей определенного клиента. Так как значение в этом поле больше текстовое, нежели числовое, был выбран тип поля TINYTEXT с максимальной длиной 255 символов (писать же будем только 3).

В поле name_client пишутся наименования клиентов, к которым присвоена соответствующая серия. Типа поля выбрал TEXT с длиной 65535 символов.

Поле type_payment отражает только выбранный клиентом тип расчетов и принимает только три значения (1 - без оплаты; 2 - наличная; 3 - безналичная). Тип поля TINYINT с длиной в 255 символов.

В поле status_contract отражается статус договора и принимает два значения (1 - не активен, расторгнут; 2 - активен). Тип поля TINYINT с длиной в 255 символов.

Поле desc_contract - примечание к договору (номер, срок действия и т.п.). Тип поля TEXT с длиной 65535 символов.

Поле send_sms показывает системе нужно ли отправлять SMS о статусе заявки на номер клиента. Поле принимает два значения (1 - не отправлять; 2 - отправлять) и имеет тип TINYINT с длиной 255 символов.

В поле number_sms пишутся номера телефонов через точку с запятой и необходимо для формирования очереди SMS-сообщений. Длины в 65535 символов вполне хватит для записи двух-трех номеров телефона, поэтому выберем самый минимальный размер TINYTEXT.

Поля start_num и end_num обозначают номера готовых этикеток и служат для отражения свободных мест для нумерации картриджей. Так как формат трехзначный и в одно- и двузначном формате свободные старшие разряды забиваются нулем, стоит выбрать текстовый тип поля TINYTEXT с длиной в 65535 символов.

Кодировку во всех текстовых полях используем utf8_general_ci.

Таблицу в базе данных создавал при помощи phpMyAdmin, следуя инструкциям скрипта, поэтому SQL-команду описывать не буду.

Теперь необходимо содержимое таблицы TABLE_SERIES вывести в виде удобочитаемой таблицы. PHP-скрипт буду размещать в материалах Joomla, а исполняться скрипты будут при помощи бесплатного плагина Sourcerer для Joomla. Подробную информацию о плагине найдете сами в интернете.

Публиковать код скрипта я, естественно, не буду, дабы не подвергать свой сайт угрозам. Опишу в виде блок-схемы.

MACTEP, 02 января 2017 г.

г. Балаково, ул. Бульвар Роз, 9
e-mail: info@print-svc.ru
Тел.: 8 800 550-55-42 (многоканальный)