Как вести учет затрат на колебания для одного продукта

В настоящее время меня просят разработать и улучшить веб-систему 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 , система автоматически сообщает хранителю, чтобы он сделал некоторую форму заказа на покупку. Сегодня SUPPLIER_ID (40) уведомили нас, что они принимают какую-то форму, содержащую "Candy Bar", заказанный по 100 штук, который стоит около 10 долларов за штуку.

Эти случаи, как представляется, являются обычным явлением среди деловой активности как факторы роста экономики и колебания затрат со временем. Поскольку пакеты, которые мы заказали, доходят до склада, хранителям необходимо обновить записи (DATETIME(AUTO UPDATE), COST, QTY_IN_STOCK)

Как разрешить эту ситуацию, предотвратив несоответствие данных (COST), так как у компании остался QTY_IN_STOCK (120 штук, купленных по 12 долларов США за каждую). Невозможно добавить новые записи для этого, потому что мы хотим сохранить избыточность данных с аналогичным SUPPLIER_ID.

Любые идеи, комментарии или мысли будут полезны!

1 ответ

По сути, у вас есть данные в одной таблице, которые должны быть распределены по трем различным таблицам. Таблица 1 (ЧАСТИ) должна содержать стандартные данные о каждой детали: номер детали, наименование детали, минимальный запас, поставщик. Таблица 2 (ДВИЖЕНИЯ) должна содержать данные о движении каждой детали: дата, количество, тип движения, стоимость. Части могут либо войти в инвентарь, в этом случае "тип движения" будет "покупка", а "стоимость" будет стоимость единицы от поставщика, или они могут оставить запас, и в этом случае "тип движения" будет "использование" или продажи; "стоимость" не имеет значения. Таблица 3 (БАЛАНСЫ) должна содержать инвентарь каждой части - это будет то же самое, что и сумма из таблицы ДВИЖЕНИЙ. Вы можете либо суммировать движения каждый раз, когда появляется новое движение, либо обновлять общее количество.

Таким образом, вы сможете записывать покупки одной и той же детали по разным ценам. Стоимость вашего инвентаря может быть рассчитана различными способами - FIFO, LIFO или средняя; для каждого из них потребуется отдельный алгоритм обхода таблицы MOVEMENTS.

Другие вопросы по тегам