1b.app
Скопирована ссылка -

Сортировка в шаблоне отгрузочного листа по значению при чтении из массива suborder

Ранее помогали с созданием шаблона отгрузочного листа через переменную suborder. https://crm-onebox.com/ru/support/documents/10402-peremennaya-suborder-v-dokumen...
Все работает! При большом количестве отгрузок нужна сортировка в таблице по определенной переменной, например по транспортной компании: ТК {|$suborder.customOrder_transportnayakompaniya24|} . Сортировка по умолчанию идет по номеру подпроцесса.
Как при чтении из массива suborder сделать сортировку по определеноой переменной?

Шаблон отгрузочного листа: https://more-moto.crm-onebox.com/admin/shop/document/templates/37/control/
Процесс Отгрузка для проверки: https://more-moto.crm-onebox.com/admin/customorder/dostavka/5786/edit/

Ответы:


Как при чтении из массива suborder сделать сортировку по определеноой переменной?

Не думаю что в HTML вы можете подобным образом отсортировать массив.
Тут разве что дорабатывать как-то непосредственно в генерации документа, где глобально задавать сортироку - но это не особо очервидно..

Вам нужно это чисто для 1 БП и 1 шаблона?
06.09.2021, 17:52

Нашел пример решения сортировки для многомерного массива с помощью функций usort() и array_multisort()
https://world-hello.ru/php/how-to-php/otsortirovat-mnogomernyj-massiv.html
По идее можно прочитать массив и вывести его обратно с сортировкой по нужному значению. Но мне в этом не разобраться.

Нужно все это для создания списка заказов к отгрузке. Для БП Отгрузки и шаблона Отгрузочный лист.
По идее это вообще типовая задача каждого пользователя Crm - создавать отгрузочный лист и должно быть проверенное решение как это сделать. Возможно есть решение проще, типа экспорта в гугл таблицу. Но вариант с массивом удобнее. И оно уже готово, осталось с сортировкой разобраться и надеюсь всё :)
07.09.2021, 22:51

Придумал, можно даже проще и удобней без сортировки. Вывести в шаблоне документа несколько таблиц подряд под каждую транспортную компанию.
При чтении массива сделать фильтр по значению ТК транспортная компания {|$suborder.customOrder_transportnayakompaniya24|}.
Если значение ТК=ПЭК выводить в таблицу только заказы в ПЭК, Если значение ТК=СДЭК выводить в следущую таблицу и т.д.
Как можно сделать фильтр?
08.09.2021, 07:45


Нашел пример решения сортировки для многомерного массива с помощью функций usort() и array_multisort()
https://world-hello.ru/php/how-to-php/otsortirovat-mnogomernyj-massiv.html
По идее можно прочитать массив и вывести его обратно с сортировкой по нужному значению. Но мне в этом не разобраться.

Нужно все это для создания списка заказов к отгрузке. Для БП Отгрузки и шаблона Отгрузочный лист.
По идее это вообще типовая задача каждого пользователя Crm - создавать отгрузочный лист и должно быть проверенное решение как это сделать. Возможно есть решение проще, типа экспорта в гугл таблицу. Но вариант с массивом удобнее. И оно уже готово, осталось с сортировкой разобраться и надеюсь всё :)

Я знаю как отсортировать массивы на стороне веб-сервера )
Но вы должны понимать, что это нужно делать какой-то настройкой для шаблона документа - по какому дополнительному полю сортировать подпроцессы. Чтобы такое сделать - это займёт порядка 4ч


Придумал, можно даже проще и удобней без сортировки. Вывести в шаблоне документа несколько таблиц подряд под каждую транспортную компанию.
При чтении массива сделать фильтр по значению ТК транспортная компания {|$suborder.customOrder_transportnayakompaniya24|}.
Если значение ТК=ПЭК выводить в таблицу только заказы в ПЭК, Если значение ТК=СДЭК выводить в следущую таблицу и т.д.
Как можно сделать фильтр?

Не особо это просто сделать на smarty, ведь у вас данные значения будут не постоянны и в разных количествах.
Ну а вообще вы можете if`ать условия на smarty - может что-то и получиться)
09.09.2021, 17:22

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий