Это бизнес-проблема, а не ИТ, поэтому из этого следует, что вам нужно бизнес-решение, а не ИТ-решение. Не похоже, что вы работаете на особо проницательного клиента. По сути, вы возвращаете комиссию обратно в расходы и пересчитываете комиссию 100 раз. Таким образом, продавец зарабатывает комиссионные на основе их комиссии?!? Шутки в сторону? : -)
Я бы попытался убедить их рассчитать расходы и комиссионные отдельно. В профессиональных организациях с хорошими практиками бухгалтерского учета я работал до того, как эти затраты часто делятся на операционные и неоперационные или затраты на сырье, что должно улучшить их понимание их бизнеса. Чтобы сообщить об общих затратах позже, добавьте комиссионные и затраты на сырье. Нет круговых петель и хорошие бухгалтерские отчеты.
В банках, где я работал, эти затраты часто называют такими вещами, как стоимость (без комиссий или сборов), чистая стоимость (стоимость + комиссия), а затем невероятно чистая чистая стоимость (стоимость + комиссия + сборы). В зависимости от бизнес-модели разбивка затрат может стать довольно интересной.
Вот два разумных варианта, которые вы можете предложить для расчета цены продажи.
Вариант 1: Если вы собираетесь рассчитать маржу для исключения комиссии, тогда
Цена до комиссии = Стоимость + (Стоимость * (1 - Прогнозируемая маржа))
Цена продажи = Цена до комиссии + (Цена до комиссии * Комиссия)
Вариант 2: Если ваш клиент настаивает на расчете маржи, включающей комиссию (что, как кажется, они могут захотеть), тогда
Себестоимость = Стоимость + (Стоимость * Комиссия)
Прибыль на единицу или вклад на единицу = себестоимость * (1-прогнозируемая маржа)
Цена продажи = Себестоимость + Прибыль за единицу
Это разумно с точки зрения бухгалтерского учета и является пустяком для реализации с помощью SQL или любого другого программного инструмента. Это также означает, что у вашего клиента есть возможность проанализировать свои продажи, чтобы выделить затраты на единицу продукции и прибыль на единицу продукции, если прогнозируемая маржа отличается для каждого продукта. Это неизменно происходит по мере роста бизнеса.
Не принимайте слепо вычисления из электронных таблиц. Продумайте их и не бойтесь спросить своего клиента, чего он пытается достичь. Слишком часто нарушенные бизнес-процессы доходят до ИТ-отдела до того, как его подвергают сомнению. Не бойтесь делать хорошую работу, а это иногда означает оспаривание запросов клиентов, когда они не имеют смысла.
Удачи!