Страница 1 из 2
Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 15:46
alexinc
Добрый день.
Знаю, что такой вопрос пробегал, но не нашел в форума.
Как при заполнении вложенной сущности дернуть общую сумму в родительскую? Ведь элемент еще пока не записан и через базу брать - бессмысленно.
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 16:00
nruslan2
Если я правильно понял вопрос, то стандартными средствами никак! но зато есть доработка)
viewtopic.php?p=20602#p20602
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 16:10
alexinc
Да, я знаю - я видел доработку, вроде она, но в текущий момент не имею возможности вложиться.
Там еще один момент, поскольку это форма счета, то общую сумму нужно собирать с нескольких вкладок - вкладка материалов и вкладка услуг. И эта доработка нуждается в доработке

(простите за каламбур)
А вообще, странно, что достаточно употребительную функцию не реализовали из коробки. Собирание в кучу сумм - первое дело в CRM
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 16:18
nruslan2
Собирание вкучу это хорошо, но не в поле Вложенные сущности на форме! А собирать данные из нескольких это вообще утопия, так как фактически данные не хранятся! но как говорится придумать всегда что-то можно)
Создаем запись, а потом клепаем сколь угодно вложенных записей и тогда все прекрасно работает! если надо ограничить ввод во вложенных, то на это есть инфа в документации.
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 16:27
alexinc
nruslan2 писал(а): 04 июл 2022, 16:18
Собирание вкучу это хорошо, но не в поле Вложенные сущности на форме! А собирать данные из нескольких это вообще утопия, так как фактически данные не хранятся! но как говорится придумать всегда что-то можно)
Создаем запись, а потом клепаем сколь угодно вложенных записей и тогда все прекрасно работает! если надо ограничить ввод во вложенных, то на это есть инфа в документации.
Создаем запись - это несколько другое. Пример. Сидим манагер на звонках. Звонит клиент(существующий уже) - запрашивает ценник на работы. Манагер в разговоре с ним быстренько набрасывает КП в крупную клетку. Клиент - не, дорого, материалы, оборудование не то или еще чего. И все. манагер сбросил звонок, сбросил форму, в форме отчете на звонок - отметил дорого, оборудование не то. понятно, что лучше сохранить, но у нас проходит таких набросков - около 20 на человека, я даже боюсь представить какой бедлам будет, если все сохранять, и все это будет полуброшенным лежать в базе.
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 16:38
nruslan2
хммм интересный подход. Согласен с Вами - мой способ не вариант!
будет время подумаю над доработкой доработки)
Re: Заполнение вложенной сущности.
Добавлено: 04 июл 2022, 18:09
alexinc
nruslan2 писал(а): 04 июл 2022, 16:38
хммм интересный подход. Согласен с Вами - мой способ не вариант!
будет время подумаю над доработкой доработки)
И еще одно применение данного функционала - расчет на сайте с помощью публичных форм. Человек делает собирает себе заказ, и видит до сохранения суммы итоговые. Не понравилось - бросил, ушел. Если все это сохранять, при потоке человек 100-200 в день, я даже боюсь представить что будет, если сохранять

Re: Заполнение вложенной сущности.
Добавлено: 05 июл 2022, 13:56
Vladzimir
Это все реализуется через банальный JQuery
Re: Заполнение вложенной сущности.
Добавлено: 05 июл 2022, 15:05
alexinc
Vladzimir писал(а): 05 июл 2022, 13:56
Это все реализуется через банальный JQuery
Не подскажите, если не сложно?
Re: Заполнение вложенной сущности.
Добавлено: 05 июл 2022, 16:47
Vladzimir
У себя реализовал так
Код: Выделить всё
sumjq = function(selector) {
var sum = 0;
$(selector).each(function() {
var txt = $(this).text();
sum += Number(parseFloat(txt));
});
return sum;
}
$("td#fields_474").val(sumjq("#subentity-form-id-472"));
$(document).ajaxComplete(function (event, xhr, settings) { //Используется для пересчета при внесении изменения в любое поле
$("#fields_474").val(sumjq("td#subentity-form-id-472"));
form_handle_js_formula_467();
});
Единственно что, нужно модифицировать файл fieldtype_subentity_form.php чтоб в нем подставлялся id дива
После $items = $subentity_form->render_items();
первый $html .= ... заменить на
Код: Выделить всё
$html .= '<div id="subentity_form' . $field['id'] . '" class="subentity_form">' . $items['html'] . '</div>';