Заправка с выездом 8 800 550-55-42
График работы
с 900 до 1700
Сб, вс - выходной
Как я писал ранее, 2016 год оказался богатым на новых клиентов. Объем заправляемых картриджей в день вырос значительно. Возникает необходимость в дополнительных руках: есть смысл принять на работу заправщика картриджей. Однако, просто взять и передать всю информацию заправщику было бы верхом глупости. Заправщик всю клиентскую базу либо уведет с собой, либо продаст моим конкурентам. Дабы этого избежать, необходимо внедрить некую систему, которая будет отделять прочной информационной стеной заправщика от клиентов. Заправщик должен видеть только номера заявок, комментарии к ним и никакой дополнительной информации, раскрывающей личность заказчика.
Некую систему регистрации и работы с заявками ношу в голове уже около года. И первым шагом было приобретение SSL-сертификата для обеспечения информационной безопасности клиента.
Требования к программному средству небольшие.
Итак, программу для учета заявок решил писать сам. Жизнь меня давно научила не обращаться к внешним ресурсам и тем более не использовать различные существующие программные средства. Они либо глючные, либо не удовлетворяют моим требованиям.
Второе - для обеспечения «онлайности» стоит ее писать на php с хранением всех данных в базе данных MySQL. А регулирование прав доступа можно реализовать при помощи уже используемой CMS Joomla. Тем более Joomla позволяет создать многоуровневую систему прав доступа, которая позволит одним кликом добавить доступ к неким модулям существующему пользователю. Кроме того, у CMS Joomla есть хорошее средство для хранения переменных, но об этом в других статьях.
Начну, пожалуй, со справочников, которые будут участвовать в формировании заявок и неким образом автоматизировать их формирование. Первый справочник - клиентская база с привязкой серий картриджей. Каждому картриджу корпоративных клиентов присваивается свой уникальный номер, который используется на протяжении всего срока действия договора, в том числе с пролонгацией. Состоит номер из серии и номера картриджа. Серия - это учетный номер клиента. Так как основное внимание в нашей компании уделяется корпоративным клиентам, то и в системе основной интерес будет к ним. Заявки физических лиц будут оформляться общим потоком.
Для начала определимся со структурой таблицы базы данных, в которой будут храниться все сведения о клиенте. Считаю целесообразным учесть следующие сведения:
Создадим таблицу TABLE_SERIES в существующей базе данных printsvc со следующими полями:
Немного о полях. Поле 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 г.
Принт-Сервис - Выездная заправка картриджей © 2024
г. Балаково, ул. Бульвар Роз, 9
e-mail: info@print-svc.ru
Тел.: 8 800 550-55-42 (многоканальный)