Как выполнить расчёт при условии?

Все вопросы/проблемы по установке и использовании.
Ответить
pikardo
Сообщения: 7
Зарегистрирован: 22 мар 2025, 14:33
Имя: Михаил
Откуда: Барнаул

Как выполнить расчёт при условии?

Сообщение 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 - Процент от суммы

Подскажите как реализовать данный момент?
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1085
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Как выполнить расчёт при условии?

Сообщение Fait »

Конечно ошибка будет!
[294>331] - такое вообще не применимо)
Скажите, сущность 2 - это отдельная сущность или вложенная в сущность 1?
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1085
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Как выполнить расчёт при условии?

Сообщение Fait »

И объясните не технически, как должно считаться, если выбрано значение "Процент от суммы"?
То есть я вижу, что сумма из сущности 1 умножается на [НЕПОНЯТНО_ЧТО] из сущности 2 и делится на 100.
А если выбрано "Фиксированная цифра", то просто [НЕПОНЯТНО_ЧТО] из сущности 2.
pikardo
Сообщения: 7
Зарегистрирован: 22 мар 2025, 14:33
Имя: Михаил
Откуда: Барнаул

Re: Как выполнить расчёт при условии?

Сообщение 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.



Второй вариант при этом соответственно подставляет фиксированную цифру, а не считает процент
pikardo
Сообщения: 7
Зарегистрирован: 22 мар 2025, 14:33
Имя: Михаил
Откуда: Барнаул

Re: Как выполнить расчёт при условии?

Сообщение pikardo »

Fait писал(а): 22 мар 2025, 20:11 [294>331] - такое вообще не применимо)
Даже если изменить на

Код: Выделить всё

IF(
  [382] = '1878',
  ([311] * [294] / 100),
  IF(
    [382] = '1877',
    [294],
    0
  )
)
Так же получаем ошибку, вместо значения в поле...
pikardo
Сообщения: 7
Зарегистрирован: 22 мар 2025, 14:33
Имя: Михаил
Откуда: Барнаул

Re: Как выполнить расчёт при условии?

Сообщение pikardo »

Fait писал(а): 22 мар 2025, 20:11 Конечно ошибка будет!
[294>331] - такое вообще не применимо)
Спасибо! Решение основное действительно в этой ошибке оказалось.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1085
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Как выполнить расчёт при условии?

Сообщение Fait »

Так получается проблема решена?
Или всё же с кодом помочь?
Если нужно помочь, то напишите пожалуйста ID обеих сущностей
pikardo
Сообщения: 7
Зарегистрирован: 22 мар 2025, 14:33
Имя: Михаил
Откуда: Барнаул

Re: Как выполнить расчёт при условии?

Сообщение pikardo »

Переписал чуть код и всё сработало.

Код: Выделить всё

IF(
  [382] = '1878',
  ([311] * [565] / 100),
  IF(
    [382] = '1877',
    [565],
    0
  )
)

382 - тип оплаты
565 - процент или сумма фиксированная
311 - сумма от которой расчёт

1878 - значение как процент
1877 - значение как фиксированное число
Ответить