Цитата: Mtirt ➤ Придумать префикс и правила генерации?
Причем уложить всё это в 12 цифр штрих-кода ЕАN-13.
В шаблоне от них же отталкиваться.
Не понял, а почему обязательно EAN-13? У нас в различных программах лояльности используются 20-разрядные карты со штрих-кодами Code-128 (пластиковые карты) и 16-разрядные Code-39 (печатаемые на СП101ФР-К в отрывных талонах)..
Добавлено через 10 минут 1 секунду
Цитата: Оптический регион ➤ Возможно ли автоматизировать создание клиентов? 3000 бонусных карт для начала, 3000 клиентов, это ведь придётся дополнительно брать в штат пару сотрудников.
Мы заводим пул клиентов вот таким вот батником:
Код:
@echo off
:: разрядность номеров карт
Set Digits=7
:: id программы лояльности
Set PLID=129085
:: начало диапазона номеров карт
Set StartNumber=770500
:: конец диапазона
Set EndNumber=772200
:: название программы лояльности
Set PLName=CAST(CONCAT('ПЛ P'^,Char(38)^,'G')AS Char)
Setlocal enabledelayedexpansion
Set Name=client_importing_%StartNumber%-%EndNumber%.sql
Echo>%Name% SET NAMES `cp1251`;
Echo>>%Name% select @plname:=%PLName%,@ver:=ifnull(max(version),0)+1 from signal;insert into signal values('importing',@ver);
Echo>>%Name% insert into classifclients values(%PLID%,0,@plname,NULL,@ver,0);
For /L %%a In (%StartNumber%,1,%EndNumber%) Do (
Set A=000000000000000000%%a
If "!A:~-3,3!"=="000" Echo !A! complete...
Echo>>%Name% REPLACE INTO clients^(id,classifclient,sur_name,birthday,allow_paycash,active,`version`,deleted^)VALUES^('!A:~-%Digits%,%Digits%!',%PLID%,'!A:~-%Digits%,%Digits%!',null,1,1,@ver,0^);
Echo>>%Name% REPLACE INTO client_card VALUES^('!A:~-%Digits%,%Digits%!','!A:~-%Digits%,%Digits%!',@ver,0^);
)
Echo>>%Name% update signal set signal='incr' where version=@ver;
Который в итоге создаёт sql-файл такого содержания (конвертер Стандартный Импорт 4):
Код:
SET NAMES `cp1251`;
select @plname:=CAST(CONCAT('ПЛ P',Char(38),'G')AS Char),@ver:=ifnull(max(version),0)+1 from signal;insert into signal values('importing',@ver);
insert into classifclients values(129085,0,@plname,NULL,@ver,0);
REPLACE INTO clients(id,classifclient,sur_name,birthday,allow_paycash,active,`version`,deleted)VALUES('0770500',129085,'0770500',null,1,1,@ver,0);
REPLACE INTO client_card VALUES('0770500','0770500',@ver,0);
REPLACE INTO clients(id,classifclient,sur_name,birthday,allow_paycash,active,`version`,deleted)VALUES('0770501',129085,'0770501',null,1,1,@ver,0);
REPLACE INTO client_card VALUES('0770501','0770501',@ver,0);
REPLACE INTO clients(id,classifclient,sur_name,birthday,allow_paycash,active,`version`,deleted)VALUES('0770502',129085,'0770502',null,1,1,@ver,0);
REPLACE INTO client_card VALUES('0770502','0770502',@ver,0);
...
...
...
REPLACE INTO clients(id,classifclient,sur_name,birthday,allow_paycash,active,`version`,deleted)VALUES('0772200',129085,'0772200',null,1,1,@ver,0);
REPLACE INTO client_card VALUES('0772200','0772200',@ver,0);
update signal set signal='incr' where version=@ver;
Добавлено через 13 минут 46 секунд
Цитата: Оптический регион ➤ В целях экономии времени решено что клиент не будет заполнять бланк при получении карты, а будет вводить личные данные на сайте.
Карта планируется выдаваться в конверте с паролем к сайту. Логин номер карты, пароль сгенерированный на сайте.
WEB УКМа для этой задачи не годится, надёжнее всего проводить эти операции через внешний какой-нибудь WEB-сервер, который будет селектить данные по клиентам напрямую из БД ukmserver, а записывать изменения, например, через какой-нибудь конвертер стандартного УКМ4 импорта.. Например, у нас это возможно проводить через интернет-магазин. Пароли юзеров и прочие персональные данные (осторожно, Dura lex!!) хранить в "свойствах клиентов"..