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

Нужна доработка пересчёта цен

Сейчас у нас пересчет цен работает таким образом:
можем выбрать приоритет выбора цены
но мы не можем выбрать приоритет выбора склада для выбора цены.

Например, у меня есть 5 уровней цен, которые должны работать для ЛК
Но для этих цен должен браться остаток только со склада 1. В дальнейшем будет склад 2 и 3, то есть их может быть много.

Нужна настройка, которая позволит брать цену для уровней цен, нужных мне, со склада, или поставщика.

Предлагаю такую настройку:
Для правил наценки https://cabinet.b2bframes.com/admin/shop/marginrule/ мы можем указать Склад или Поставщика, для которого правило должно сработать
Можем ли доработать галочку, что если выбран склад или поставщик, то брать цену с этого склада или от данного поставщика. Если включена галочка и правило по приоритетам должно быть выбрано, но на выбранном складе или у выбранного поставщика товара нет, то пропускать это правило, выбирать следующее.
Галочка нужна внутри правила, для каждого правила нужно отдельно ставить такую галочку.

Можем ли сделать, какая оценка?

Ответы:


Можем ли доработать галочку, что если выбран склад или поставщик, то брать цену с этого склада или от данного поставщика.

Вот тут немного не понятно - у тебя же если выбран в правиле поставщик и он подходит - то и берётся его цена и на неё делается наценка.
Со складом видимо аналогично? Не понятно в чем будет различие выбора цены от текущей
06.04.2021, 15:57

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович писал/а:

Можем ли доработать галочку, что если выбран склад или поставщик, то брать цену с этого склада или от данного поставщика.

Вот тут немного не понятно - у тебя же если выбран в правиле поставщик и он подходит - то и берётся его цена и на неё делается наценка.
Со складом видимо аналогично? Не понятно в чем будет различие выбора цены от текущей


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

Мы знаем, что бокс выбирает остаток по методу FIFO, то есть от самого первого прихода до самого позднего, что нам не подходит, так как нужно брать склад 1 и цену со склада 1, а сейчас если я поставлю фильтр в правиле по складу, то это правило вообще не будет учитываться, так как бокс будет брать цену с другого склада.

Я же хочу, чтобы приоритет правила определял, откуда брать цену, а не по раннему остатку. Возможно нужно добавить настройку дополнительно в настройку ?
06.04.2021, 18:24

Ну как бы если дорабатывать склады в правила и рефакторить пересчеты цен - это займёт часов так до 30...
08.04.2021, 16:50

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович писал/а:
Ну как бы если дорабатывать склады в правила и рефакторить пересчеты цен - это займёт часов так до 30...


Склады у нас уже есть в правилах
Нужно сделать, чтобы цена бралась со склада и по правилу
08.04.2021, 16:56


Склады у нас уже есть в правилах
Нужно сделать, чтобы цена бралась со склада и по правилу

да, но от этого не легче - ведь логика там простая - берет старый остаток, под него подбирает правило и считает

а теперь получается нужно сделать пересчет как по поставщикам - перебирать правила, под каждое получать остаток, считать что приоритетно - это очень много рефакторинга -я бы даже ближе к 40 часам оценил это
08.04.2021, 17:17

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

да, но от этого не легче - ведь логика там простая - берет старый остаток, под него подбирает правило и считает

а теперь получается нужно сделать пересчет как по поставщикам - перебирать правила, под каждое получать остаток, считать что приоритетно - это очень много рефакторинга -я бы даже ближе к 40 часам оценил это

У нас есть такой функционал https://cabinet.b2bframes.com/admin/shop/margin-periods/add/ - он не сможет вытаскивать наценки со справочника? Может мы сюда можем записать, чтобы со склада он брал цену?

Или мы можем в правиле сделать возможность взять цену для наценки с дом поля? Только сначала нужно запустить действие в товаре "Вычислить среднюю цену оприходования..." и доработать в это действие, чтобы оно по FIFO брало цену. Это должно быть меньше 40 часов точно.
14.04.2021, 18:11


У нас есть такой функционал https://cabinet.b2bframes.com/admin/shop/margin-periods/add/ - он не сможет вытаскивать наценки со справочника? Может мы сюда можем записать, чтобы со склада он брал цену?

Вроде нет, только указанные цены.
Это вроде как делалось для проекта-отеля, где каждый день были разные цены на номера.

Не думаю что мы будем сюда пихать твою логику со складами - то же самое по факту, но в другое место)

Или мы можем в правиле сделать возможность взять цену для наценки с дом поля? Только сначала нужно запустить действие в товаре "Вычислить среднюю цену оприходования..." и доработать в это действие, чтобы оно по FIFO брало цену. Это должно быть меньше 40 часов точно.

Ну дак не делай пересчет цен (если брать цену с доп.поля), а делай как-то периодическое обновление товаров, чтобы действия запускались (либо доработать такое действие раз в час) и ставь действие чтобы копировать доп.поле в цену. Городить подобные костыли в пересчет цен мы не будем.
По доработке в действие "Вычислить среднюю цену оприходования..." - дак в действии же речь о средней цене, но брать не среднюю? Ну можно сделать - но как склад определять приоритетный?
15.04.2021, 15:21

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия
ТЗ будет выглядеть так:
Для действия "Вычислить среднюю цену оприходования продукта и записать в дополнительное поле" https://take.ms/PZy5q
Доработать возможность указывать приоритеты складов:
- Добавляем галочку "Брать цену оприходование по методу FIFO (вместо средней цены)"
- Если галочка установлена - показываем 2 колонки: Склад (со списка складов), Приоритет (указываем вручную целое число, чем выше число, тем выше приоритет).
- Делаем настройку "Добавить настройку приоритета" - при нажатии добавляется ещё одна строка со складом и приоритетом

В итоге ставим, например, 2 склада
Склад 1 - Приоритет 2
Склад 2 - Приоритет 1
Работать должно так - если есть остаток на складе с высшим приоритетом (в данном случае Склад 1), то берем цену с него до тех пор, пока товар на нём не закончится по FIFO
Если товар закончился на Склад 1, то начитаем от самого раннего прихода вытягивать цену со Склад 2 и так по всем приоритетам. Делить в цене ничего не нужно, берем только цену, по которой оприходован товар, то есть в переменных НЕ применять суммирование и деление

Остальное - делаем справочник, в него пишем условие для товара + значения наценок, данные значения вытягиваем в карточку товара по условию, а затем формулой делаем расчет каждого уровня цен.

___________________________________
У нас уже есть 40+ действий при сохранении карточки товара, что может повлечь за собой долгую обработку товаров + добавить действия для просчета цен (5 действий) и заполнение со справочника (5 действий)

Если мы сделаем такие доработки:
1) Для действия "Посчитать значение по формуле и записать в указанное поле" https://take.ms/e1wSt
добавить возможность указать несколько строк для записи разных значений в разные поля https://take.ms/lv9FU
как в настройке ниже

2) Для действия "Заполнить дополнительное поле на основании дополнительных полей и данных справочника" https://take.ms/g1eNC
Добавить возможность взять несколько значений со справочника и заполнить разные поля продукта https://take.ms/tOsZl

Оптимизирует ли это время на обработку всех действий? С помощью этих доработок я смогу сократить количество действий до 10-20.

Оцени это, пожалуйста?
15.04.2021, 18:19


Для действия "Вычислить среднюю цену оприходования продукта и записать в дополнительное поле" https://take.ms/PZy5q
Доработать возможность указывать приоритеты складов:
- Добавляем галочку "Брать цену оприходование по методу FIFO (вместо средней цены)"
- Если галочка установлена - показываем 2 колонки: Склад (со списка складов), Приоритет (указываем вручную целое число, чем выше число, тем выше приоритет).
- Делаем настройку "Добавить настройку приоритета" - при нажатии добавляется ещё одна строка со складом и приоритетом

В итоге ставим, например, 2 склада
Склад 1 - Приоритет 2
Склад 2 - Приоритет 1
Работать должно так - если есть остаток на складе с высшим приоритетом (в данном случае Склад 1), то берем цену с него до тех пор, пока товар на нём не закончится по FIFO
Если товар закончился на Склад 1, то начитаем от самого раннего прихода вытягивать цену со Склад 2 и так по всем приоритетам. Делить в цене ничего не нужно, берем только цену, по которой оприходован товар, то есть в переменных НЕ применять суммирование и деление

14ч

1) Для действия "Посчитать значение по формуле и записать в указанное поле" https://take.ms/e1wSt
добавить возможность указать несколько строк для записи разных значений в разные поля https://take.ms/lv9FU
как в настройке ниже

2) Для действия "Заполнить дополнительное поле на основании дополнительных полей и данных справочника" https://take.ms/g1eNC
Добавить возможность взять несколько значений со справочника и заполнить разные поля продукта https://take.ms/tOsZl

Оптимизирует ли это время на обработку всех действий? С помощью этих доработок я смогу сократить количество действий до 10-20.

Не думаю что это даст какой-то прирост в быстродействии.
Ты то же количество просчетов будешь делать - хоть в рамке одного действия, хоть в рамках нескольких.
16.04.2021, 15:08

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович писал/а:
Не думаю что это даст какой-то прирост в быстродействии.
Ты то же количество просчетов будешь делать - хоть в рамке одного действия, хоть в рамках нескольких.

как минимум не нужно будет делать одинаковую проверку примерно 5-7 раз, а сделать только раз, а дальше уже сделать подсчеты, то же и со справочниками, не искать постоянно справочник и условия, а 1 раз найти и достать все значения.

Если это никак не влияет, то что можно сделать?


Суханицкий Андрей
Интегратор Premium-партнер
Integrator CRM писал/а:
В итоге ставим, например, 2 склада
Склад 1 - Приоритет 2
Склад 2 - Приоритет 1
Работать должно так - если есть остаток на складе с высшим приоритетом (в данном случае Склад 1), то берем цену с него до тех пор, пока товар на нём не закончится по FIFO
Если товар закончился на Склад 1, то начитаем от самого раннего прихода вытягивать цену со Склад 2 и так по всем приоритетам. Делить в цене ничего не нужно, берем только цену, по которой оприходован товар, то есть в переменных НЕ применять суммирование и деление

что если та же настройка с приоритетами по складам, только берем среднюю цену, как сейчас
16.04.2021, 16:39


как минимум не нужно будет делать одинаковую проверку примерно 5-7 раз, а сделать только раз, а дальше уже сделать подсчеты, то же и со справочниками, не искать постоянно справочник и условия, а 1 раз найти и достать все значения.

Если это никак не влияет, то что можно сделать?

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

Для "Заполнить дополнительное поле на основании дополнительных полей и данных справочника" сделать мультинастройку какое поле заполнить - часа 3
16.04.2021, 17:12

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович писал/а:
Делать мультинастройку в действие "Посчитать значение по формуле и записать в указанное поле" - ценность какая? я вроде не вижу в твоём примере каких-то проверок.. И какую часть ты хочешь занести в мультинастройку - со всякими галочками и точностью, а проверка одна для всех формул?

Я об этих условиях
У меня на это условие стоит 5-6 действий
16.04.2021, 17:17

Ну дак мультинастройку ты же хочешь по просчету формул - там только просчет и куда заполнять нужно?
16.04.2021, 17:25

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович писал/а:
Ну дак мультинастройку ты же хочешь по просчету формул - там только просчет и куда заполнять нужно?

Да, получается, что один раз мы проверили выполнение условия и посчитал все формулы, если будет мультинастройка, а сейчас в каждом действии проверяем - считаем, проверяем - считаем...
Я думал, это влияет на скорость.
16.04.2021, 17:29


Да, получается, что один раз мы проверили выполнение условия и посчитал все формулы, если будет мультинастройка, а сейчас в каждом действии проверяем - считаем, проверяем - считаем...
Я думал, это влияет на скорость.

Ну если считать в миллисекундах - то да.
Сделать в действии мультинастройку просчета - 6ч
16.04.2021, 17:33

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия
Спасибо за консультацию
16.04.2021, 17:35

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