Страница 2 из 3

Re: Как добавить сумму заказов поставщика

Добавлено: 19 май 2020, 13:15
aik
Я так и не понял, почему этот функционал не работает?

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 11:40
imamverdiyeveldar
aik писал(а): 19 май 2020, 13:15 Я так и не понял, почему этот функционал не работает?
поддерживаю. и так же жду ответа от знающих

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 14:38
sanys
С выходом обновления 2.7 это стало возможным.

На тестовой базе сделал вот такую структуру:
Структура.png
Структура.png (4.78 КБ) 3124 просмотра

Поля для Поставщиков
Постащики.png
Настройки поля Сумма заказов поставщика
Поставщики - Сумма заказаов поставщика.png

Поля для Заказов
Заказы.png
Настройки поля Стоимость заказа
Заказы - Стоимость заказа.png

Поля для Списка товаров
Список товаров.png
Действие автоматизации
Автоматизация 1.png
Автоматизация 2.png
*** Не забудьте указать группы пользователей, для которых будет доступно данное действие!!!!


Обратите внимание флаг "Выполнять динамически" для сущностей Поставщики и Заказы.

Как это работает:
1. При добавлении нового товара в заказ выполняется действие автоматизации, которое обновляет запись Заказа (через обновление служебного поля).
2. Сумма заказов поставщика обновляется динамически при открытии списка поставщиков или записи самого поставщика.

Почему не работало раньше?
1. Поле MySQL-запрос не умеет работать с динамическими полями (MySQL-функция, MySQL-запрос с установленным флагом "Выполнять динамически" и т.д.). На то он и запрос - запрос в Базу данных, где уже должны храниться некоторые значения, которые необходимо извлечь (и посчитать, например). Отчасти поэтому была ошибка.
2. Функция дополнения SUM() отлично суммирует поля записей дочерней сущности (Список товаров) - и там это работает. Но если надо просуммировать по сущности, связанной не структурой, а через поле типа "Сущность", то эта функция уже не будет действовать. Что бы она (функция) заработала по отношению к Поставщикам, необходим механизм некоторой фильтрации записей Заказов (а именно фильтр по текущему Поставщику), для которых эта функция будет выполняться. Да, у функций есть фильтры, но они, если так можно выразиться, статичные и под функционал ветки не подходят.
3. Если такую структуру сделать в версии 2.6 (там нельзя настроить действия автоматизации при создании записи), то запись Заказа надо обновлять вручную при каждом изменении списка товаров этого самого Заказа. Это крайне неправильно, т.к. сильно зависит от человеческого фактора (добавил товар, забыл обновить Заказ).

На сколько это верное решение конкретно в Вашем случае - судить Вам. Подозреваю, что если база поставщиков будет сильно большая, то страница со списком поставщиков может открывать сильно дольше.
Такая же ситуация может возникнуть при добавлении товаров с список заказов - каждое добавление товара будет обновлять поле Сумма заказа - а это тоже запрос в базу и обновление этого поля тоже может вызывать задержки.
Конкретно Ваш случай расставит точки над i.

Возможно есть более изящное решение, но я к нему не пришел.

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 15:15
imamverdiyeveldar
в данном примере все хорошо... только есть одно небольшое НО... удалении записи с нижней полки - верхние не меняются. остаются прежними.. до этого момента все было идеально))

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 15:18
imamverdiyeveldar
imamverdiyeveldar писал(а): 08 июн 2020, 15:15 в данном примере все хорошо... только есть одно небольшое НО... удалении записи с нижней полки - верхние не меняются. остаются прежними.. до этого момента все было идеально))
НАШЕЛ РЕШЕНИЕ. Сделал еще одну автоматизацию в верхний уровень.. назвал Изменить , действия те же. обновляется как надо!!

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 15:53
sanys
Да, про удаление я не подумал...
Если такое имеет место быть, то только с помощью подобной кнопки. Тогда надо не забывать про все тот же человеческий фактор.
Если удаление товара из списка было последним действием пользователя, то нажатие кнопки "Обновить" обязательно.
Если после удаления добавить еще один товар, то сумма заказа обновится автоматически.

))) Через костыли можно и это обойти. Есть идейка )

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 17:10
sanys
sanys писал(а): 08 июн 2020, 15:53 ))) Через костыли можно и это обойти. Есть идейка )
Нет, не получится.
Не хватает использования действий автоматизации для автостатуса. Когда-то уже поднимался подобный вопрос.
Сейчас через автостатус можно сообщать пользователю что необходимо обновить запись Заказа.

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 17:25
aik
Что-то мне подсказывает, что этот огород некорректен, и должно быть более логичное решение данной элементарной проблеме, просто не хватает компетенции.

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 20:10
imamverdiyeveldar
aik писал(а): 08 июн 2020, 17:25 Что-то мне подсказывает, что этот огород некорректен, и должно быть более логичное решение данной элементарной проблеме, просто не хватает компетенции.
Пока косяков не наблюдаю. Радует глаз даже. Все что нужно было сработало. Завтра буду тестировать нагрузку. Создам 200 - 300 записей. И отпишусь.

Re: Как добавить сумму заказов поставщика

Добавлено: 08 июн 2020, 20:18
aik
Вот-вот я имею ввиду нагрузку и человеческий фактор.