Штрих-коды для домашнего бизнеса, и причём тут ChatGPT
Всем привет! С вами сегодня Лео, и я профессионально занимаюсь оцифровкой видеокассет уже больше 7 лет.
Скоро майские праздники, и поток клиентов возрастает. Да так, что с ними стало тяжело справляться — в сутки может прийти 7–8 человек, и попробуй их запомни. До этого дня использовал для учёта самописную панельку для учёта заказов на PHP, и программу «Бизнес Пак» для печати товарных чеков. В целом, их хватало. Но когда поток людей стал превышать все мыслимые нормы, было понятно, что надо с этим что-то делать.
Вот так выглядела панелька учёта заказов до внесения правок.
Для решения вопроса было принято решение перевести всё на систему штрих-кодов. Иду на известную площадку объявлений, и покупаю себе за 500 рублей самый дешёвый сканер.
Сканер этот работает в режиме эмуляции клавиатуры — навели на код, он распознал и пропечатал.
Дописал панельку таким вот образом: внизу расположил поля ввода, которые ведут на add.php, inwork.php, и т.п., которые выполняют запрос в базу. Максимально просто, но работает.
Максимально просто, но работает.
На радостях скачал шрифты для создания кодов, распечатал на бумаге… И ничего! Сканер просто не сканирует код, либо сканирует с 5–6 попытки.
…Напечатал на глянцевой бумаге — работает! Как выяснилось, дело было в стандарте — в Code128 нужно было добавлять управляющие символы в начале и конце строки. И если на глянцевой бумаге сканер кое-как, но понимал код с ошибкой, то на матовой бумаге уже не мог его отсканировать.
Проблему решил использованием стандарта Code 39 — он намного проще для печати из любого текстового редактора, чем другие виды штрих-кодов.
Для этого достаточно закодировать номер в формате *1234567890*.
Не вникая в теорию, проще говоря, звёздочки здесь — управляющие символы.
Печатаем, сканируем код… Всё работает!
Однако, сканер нам отдаёт код вида T000001.
Как я понял после чтения документации на сканер — символ T
здесь образуется из нескольких бит информации, которые он отдаёт софту, который должен понять что используется сканер.
Можно конечно перенастроить, но мы этот символ в PHP просто вырежем:
$num = htmlspecialchars($_POST["num"]);
$num = preg_replace('/[^0-9]/', '', $num);
if (strlen2($abc)<3)
{
echo "Номер заказа не может быть менее 3-х символов";
exit;
}
mysql_query ("UPDATE myloveclients SET `status` = 'open' WHERE `number` = '$num';");
«Пикаем» сканером по коду, и наш код успешно в базе!
Теперь при помощи штрих-кодов мы можем успешно менять номера заказов в базе, и даже смотреть телефона клиента :)
…Только вот как нам распечатать кучу кодов на одном листе? Можно конечно использовать специальный софт, но вот тащить 1,5 гб не очень хочется. В этом нам поможет Excel!
…Для этого просто скачем шрифт Code 39, и создадим 2 поля. Единичка в первом поле, двойка — во втором.
…Затем выделяем эти 2 ячейки и тянем вниз за вот этот уголок, насколько хватит.
Теперь у нас очень много циферок. Добавляем к концу кода символ »*» чтоб закрыть строку, и выбираем шрифт. Далее настраиваем столбцы и строки по вкусу. Ура, у нас есть пачка штриходов, которые можно напечатать!
Выглядит наша распечатка, кстати, так.
Теперь можно клеить штрих-код к клиентскому заказу, и обновлять его статус.
…Только вот снова проблема. Мы утыкаемся в ручное заполнение товаров в программе «Бизнес-пак». Нам надо как-то сделать это быстрее.
Берём нашу панельку в качестве основы, в таблице sales
создаём несколько полей — автоматический id строки, время добавления строки, id товара, id чека. Делаем интерфейс, заточенный исключительно под сканер.
В качестве товарных позиций — ID. Например, 0001 = «Оцифровка VHS», 0002 = «Оцифровка Video8», и т.д. Их мы распечатаем, чтоб повесить на стену.
Настало время для ChatGPT. Времени у меня было очень мало, поэтому написал индусский код в виде if-else, и попросил ChatGPT оптимизировать его. Она успешно справляется!
…Просим написать ещё кусок кода.
…В JS она тоже «умеет».
По итогу, с ChatGPT за час мы собрали вот такой товарный чек, который можно отправлять на печать :)
Формочки, заточенные под сканер, тоже есть.
В общем, теперь наш сканер штрих-кода «подружился» с PHP, а скорость обработки заказов увеличилась в несколько раз. Всем добра :)