Штрих-коды для домашнего бизнеса, и причём тут 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, а скорость обработки заказов увеличилась в несколько раз. Всем добра 🙂


ссылка на оригинал статьи https://habr.com/ru/articles/729642/