Как вести учет затрат на колебания для одного продукта
В настоящее время меня просят разработать и улучшить веб-систему php & mysql. Системы привыкают управлять кол-во в руках, вести учет всех запасов и продаж продуктов питания для потребления. Мне прислали какой-то идентификатор авторизации в качестве хранителя admnistrator, который позволяет нам добавлять и обновлять существующие данные.
Каждая посылка поступает на склад, администратор должен вести ее учет (идентификатор товара, дата и время, стоимость, количество поставщиков и т. Д.)
Система внедрила некоторую функциональность для отслеживания количества товара, когда количество на складе ниже / меньше, чем эталонное количество, и оно автоматически сообщает администратору о создании заказа на поставку для конкретного товара и отправляет его поставщикам. Система должна обеспечивать, чтобы бизнес держал различные предметы для продажи.
Есть некоторый пример основанной записи, которой я манипулировал, чтобы сделать ее более простой,
ITEM_ID | DATETIME |COST ($)| QTY_IN_STOCK | BENCHMARK_QTY | SUPPLIER_ID |
20041 | 2012-04-12 10:49:20 | 12 | 120 | 140 | 40 |
Поскольку QTY_IN_STOCK
Эти случаи, как представляется, являются обычным явлением среди деловой активности как факторы роста экономики и колебания затрат со временем. Поскольку пакеты, которые мы заказали, доходят до склада, хранителям необходимо обновить записи (DATETIME(AUTO UPDATE), COST, QTY_IN_STOCK)
Как разрешить эту ситуацию, предотвратив несоответствие данных (COST), так как у компании остался QTY_IN_STOCK (120 штук, купленных по 12 долларов США за каждую). Невозможно добавить новые записи для этого, потому что мы хотим сохранить избыточность данных с аналогичным SUPPLIER_ID.
Любые идеи, комментарии или мысли будут полезны!
1 ответ
По сути, у вас есть данные в одной таблице, которые должны быть распределены по трем различным таблицам. Таблица 1 (ЧАСТИ) должна содержать стандартные данные о каждой детали: номер детали, наименование детали, минимальный запас, поставщик. Таблица 2 (ДВИЖЕНИЯ) должна содержать данные о движении каждой детали: дата, количество, тип движения, стоимость. Части могут либо войти в инвентарь, в этом случае "тип движения" будет "покупка", а "стоимость" будет стоимость единицы от поставщика, или они могут оставить запас, и в этом случае "тип движения" будет "использование" или продажи; "стоимость" не имеет значения. Таблица 3 (БАЛАНСЫ) должна содержать инвентарь каждой части - это будет то же самое, что и сумма из таблицы ДВИЖЕНИЙ. Вы можете либо суммировать движения каждый раз, когда появляется новое движение, либо обновлять общее количество.
Таким образом, вы сможете записывать покупки одной и той же детали по разным ценам. Стоимость вашего инвентаря может быть рассчитана различными способами - FIFO, LIFO или средняя; для каждого из них потребуется отдельный алгоритм обхода таблицы MOVEMENTS.