Необходимо модернизировать скрипт на perl. Часть 6
Здравствуйте джентльмены
Цель:
Идентификация товара в "мультивалютных" прайс-листах.
Краткое описание:
Алгоритм предназначается для определения надлежащей цены в строке "мультивалютного" прайс-листа.
Мультивалютный прайс-лист содержит цены в нескольких валютах, необходимо создать инструментарий позволяющий:
*Настраивать систему для обработки каждого подобного прайс-листа, учетом любого количества используемых валют;
*Обеспечить простую и понятную надлежащую идентификацию всех строк прайс-листа (как существующих на момент заведения в систему так и новых) в валюте категории;
Описание:
Модернизация системы
Модернизация системы заключается:
*в дополнении карточки прайс-листа учитывающем специфику парсинга (обработки) мультивалютного прайс-листа;
*добавления в БД необходимого столбца для хранения информации о валюте товара в прайс-листе дистрибьютора.
В карточку прайс-листа необходимо добавить следующие элементы управления:
Флаг "Мультивалютность" - флаг предназначается для указания системе что прайс-лист содержит информацию в нескольких валютах. По умолчанию сброшен. В карточке прайс-листа расположен левее дропбока "Валюта", открывающегося только если флаг "Мультивалютность" сброшен.
Флаг "Привязка валют" - флаг предназначен для первоначальной привязки надлежащей валюты к каждой обрабатываемой строке прайс-листа. По умолчанию сброшен. Флаг может быть поднят только системой после привязки валют к строкам (первой идентификации по диапазонам строк), сброс флаг возможен руками под правами администратора. В карточке прайс-листа расположен ниже поля "Курс из прайс-листа", открывается только если флаг "Мультивалютность" установлен.
Группа полей "Диапазоны валют" - текстовые поля для указания диапазонов адресов строк с одной валютой. Левее поля каждого из полей, дропбокс "Валюта" определяющий валюту всех строк данного диапазона. Количество полей соответствует количеству валют используемых системой. Синтаксис диапазонов по аналогии с полем "Диапазоны строк для обработки".
Группа дропбоксов "Тэги определяющие валюту" -группа из четырех строк дропбокосов однозначно идентифицирующих тэг (Категория.MD.AD.Наименование), предназначается для автоматического отнесения новых товаров (появившихся в прайс-листе после привязки) к той или иной валюте
Алгоритм идентификации
Система проверяет состояние флагов "Мультивалютность" и "Привязка валют":
Мультивалютность - OFF Привязка валют - * (не определяется): система работает по существующему алгоритму, те без учета мультивалютности.
Мультивалютность - ON Привязка валют - OFF: система переходит в режим обработки прайс-листа содержащего несколько валют. Обрабатываются только строки входящие в диапазоны валют, система исходит из того что валюта этих строк определяется выбранным в карточки прайс-листа значением валюты диапазона. По завершении обработки флаг "Привязка валют" карточки прайс-листа поднимется.
Мультивалютность - ON Привязка валют - ON: система переходит в режим обработки прайс-листа содержащего несколько валют. Обрабатываются все строки прайс листа, валюта для каждой строки прайс-листа этого дистрибьютора берется из БД (таблица актуальная цена предположительно), если встречается новая строка (строка для которой в БД не установлено значение валюты для данного дистрибьютора) система определяет валюту строки исходя из установленных в карточке прайс-листа "тэгов определяющих валюту". Метод определения такой, валюта строки считается идентифицированной если тэги определяющие валюту карточки товара с которой идентифицирована строка прайс-листа, полностью совпадают с какой либо другой карточкой товара у которой валюта для данного дистрибьютора идентифицирована.
По умолчанию значение валюты для всех строк таблицы "актуальная цена" не установлено.
Готов к вопросам по ICQ
Условия сотрудничества:
*Удаленная работа по договору;
*Подписание соглашения о неразглашении (NDA);
*Работы проводятся под девелоперским аккаунтом с соответсвующей БД;
*Синтаксис кода должен удовлетворять http://linux.opennet.ru/base/dev/perlstyle.txt
*Финальный результат, после согласования со мной, должен быть помещен в репозиторий.
*Оплата по завершении работы;
Пожалуйста, не отвечайте пустыми фразами типа "Сделаю качественно" или "Готов взяться за проект", если готовы взяться за проект без дополнительных вопросов сразу озвучивайте срок/стоимость.