Я делаю систему учета для фирмы. Сейчас занимаюсь складом, продажами, закупками и расходами про складу. Ищу лучшее решение для подсчета актуального количества товара. Система связана с интернет-магазином.
Предположим, что фирма занимается продажей маек и иногда сама на них печатает картинки. Помимо маек на складе есть расходники фирмы, которые иногда продаются - например, картриджи.
В системе ведется учет всех закупок, продаж, перемещений и прочих действий со складом. В системе есть несколько "складов", то есть местоположений товара.
- У товара есть обязательные параметры, которые нужно выбрать при продаже или закупке.
У маек это размер и цвет. У картриджей есть параметр "кол-во краски" (может быть "пустой" или "полный"). Даже пустые надо учитывать, а полные можно использовать или продавать.
- Набор параметров зависит от категории, в которой находится товар. В данном примере, категорий только 2 - майки и картриджи.
- Товар может иметь ограниченный набор цветов. Например, майка "Металлика №3" бывает только черного цвета и нельзя ни продать, ни случайно закупить таких маек, скажем, в розовом варианте.
- Помимо этого у товара (наименования, если быть точнее) есть набор свойств, по которым их находит пользователь через фильтр на сайте магазина: бренд, тип печати.
Действия:
- Продажи, закупки, перемещения между складами
- Заправка картриджей - был "пустой", стал "полный"
Что нужно считать:
- Нужно знать, сколько на данный момент маек "Hello Kitty" зеленого цвета размера XXL на складе #1.
- Нужно знать, сколько маек "Metallica" всех размеров было продано за последние 16 дней (со дня последней закупки). Или за прошлый месяц. Или с 30 декабря по 1 января. В общем, вы поняли :)
- Желательно, показывать актуальное количество сразу в списке товаров (если склад не выбран, то сумма по всем складам) (да, в каждой строке будет свой набор параметров (это лишь вопрос быстродействия алгоритма выборки из базы)
Например: Зеленая, XL = 3шт | Зеленая, L = 4шт | Красная, L = 5 шт
- По каждому наименованию нужно иметь историю событий - когда, сколько и какого типа было продано-куплено-перемещено единиц товара. Нужно знать тип события и id.
Интересует именно как считать количество товара с кучей параметров имея сведения о закупках и прочем.
Буду рад если сможете подсказать хороший пример реализации подобной системы, где подробно описано, что тут и для чего.
PS. БД - MySql, PHP-движок — Laravel 4.2
PSS. 1С не предлагать! Спасибо :)