Страница 1 из 1
Как выполнить расчёт при условии?
Добавлено: 22 мар 2025, 14:48
pikardo
Дано:
Сущность 1
Имя
Тип
Число
Расчёт
Сумма
Сущность 2
Имя
Тип
Число
Требуется в сущности 1 произвести расчёт.
Есть 2 варианта расчёта, конкретно который указывается в поле "тип":
1. Фиксированная цифра
2. Процент от суммы
Пробовал как настроить:
Брал поле "имя", делал его выпадающим списком ajax с связью сущности 2 и копирование в поля "тип" и "число".
В поле "расчёт" делал mysql формулу:
Код: Выделить всё
IF(
[382] = '1878',
([311] * [294>331] / 100),
IF(
[382] = '1877',
[294>331],
0
)
)
и получаю ошибку.
382 - тип в сущности 1
331 - тип в сущности 2
294 - имя в сущности 1
311 - сумма в сущности 1
Тип это выпадающий список который является глобальным
1877 - Фиксированная цифра
1878 - Процент от суммы
Подскажите как реализовать данный момент?
Re: Как выполнить расчёт при условии?
Добавлено: 22 мар 2025, 20:11
Fait
Конечно ошибка будет!
[294>331] - такое вообще не применимо)
Скажите, сущность 2 - это отдельная сущность или вложенная в сущность 1?
Re: Как выполнить расчёт при условии?
Добавлено: 22 мар 2025, 20:20
Fait
И объясните не технически, как должно считаться, если выбрано значение "Процент от суммы"?
То есть я вижу, что сумма из сущности 1 умножается на [НЕПОНЯТНО_ЧТО] из сущности 2 и делится на 100.
А если выбрано "Фиксированная цифра", то просто [НЕПОНЯТНО_ЧТО] из сущности 2.
Re: Как выполнить расчёт при условии?
Добавлено: 23 мар 2025, 05:39
pikardo
Fait писал(а): 22 мар 2025, 20:11
Конечно ошибка будет!
[294>331] - такое вообще не применимо)
Скажите, сущность 2 - это отдельная сущность или вложенная в сущность 1?
Это отдельная сущность со списком контрагентов.
И объясните не технически, как должно считаться, если выбрано значение "Процент от суммы"?
То есть я вижу, что сумма из сущности 1 умножается на [НЕПОНЯТНО_ЧТО] из сущности 2 и делится на 100.
А если выбрано "Фиксированная цифра", то просто [НЕПОНЯТНО_ЧТО] из сущности 2.
Формула ([311] * [294>331] / 100) берет значение из поля 311 (например, сумму заказа) и умножает его на значение из поля 331 партнёра (которое мы получаем через связь [294>331]). Затем результат делится на 100, чтобы получить процент от суммы.
Например, если:
[311] = 5000 (сумма заказа),
[294>331] = 10 (то есть, процентная ставка партнёра равна 10%),
то вычисление будет следующим:
5000 * 10 = 50000,
50000 / 100 = 500.
Таким образом, при этих значениях формула вернет 500, что означает, что 10% от 5000 составляет 500.
Второй вариант при этом соответственно подставляет фиксированную цифру, а не считает процент
Re: Как выполнить расчёт при условии?
Добавлено: 23 мар 2025, 06:22
pikardo
Fait писал(а): 22 мар 2025, 20:11
[294>331] - такое вообще не применимо)
Даже если изменить на
Код: Выделить всё
IF(
[382] = '1878',
([311] * [294] / 100),
IF(
[382] = '1877',
[294],
0
)
)
Так же получаем ошибку, вместо значения в поле...
Re: Как выполнить расчёт при условии?
Добавлено: 23 мар 2025, 07:07
pikardo
Fait писал(а): 22 мар 2025, 20:11
Конечно ошибка будет!
[294>331] - такое вообще не применимо)
Спасибо! Решение основное действительно в этой ошибке оказалось.
Re: Как выполнить расчёт при условии?
Добавлено: 23 мар 2025, 22:15
Fait
Так получается проблема решена?
Или всё же с кодом помочь?
Если нужно помочь, то напишите пожалуйста ID обеих сущностей
Re: Как выполнить расчёт при условии?
Добавлено: 26 мар 2025, 06:31
pikardo
Переписал чуть код и всё сработало.
Код: Выделить всё
IF(
[382] = '1878',
([311] * [565] / 100),
IF(
[382] = '1877',
[565],
0
)
)
382 - тип оплаты
565 - процент или сумма фиксированная
311 - сумма от которой расчёт
1878 - значение как процент
1877 - значение как фиксированное число