Closed rnpoddor closed 5 years ago
Код пока не смотрел. Если принудительно записываешь - это плохо. Надо, чтобы работало с незаписанными.
При создании строки продукции нужно знать, с какой строкой мы работает, если строка была ранее создана и имеет характеристику, работаем с ней, в противном случае создаем новую строку продукции с новой характеристикой. Если изменить следующее условие, думаю изменится основная логика работы программы.
create_product_row({row_spec, elm, len_angl, params, create, grid}) {
const row = row_spec instanceof $p.DpBuyers_orderProductionRow && !row_spec.characteristic.empty() && row_spec.characteristic.calc_order === this ?
row_spec.characteristic.calc_order_row :
this.production.add({
qty: 1,
quantity: 1,
discount_percent_internal: $p.wsql.get_user_param('discount_percent_internal', 'number')
});
Если хотите решения, опишите шаги для воспроизведения проблемы. Без проверки, принять PR не могу.
Если хотите решения, опишите шаги для воспроизведения проблемы.
Я же написал в первом комментарии. Заходите в Аксессуары и услуги
, добавляете любую вставку и далее нажимаете несколько раз кнопку Рассчитать
, далее на кнопку Рассчитать и закрыть
, получаем несколько одинаковых строк продукции.
Исправление row_spec.characteristic = row_prod.characteristic;
- правильное.
Меня смущало имя переменной row_spec
- его поменяю на row_dp
. Речь ведь, не о какой-то невнятной спецификации, а о строках исходной обработки и строках заказа
Исправление проблемы порождения лишних строк продукции через диалог
Аксессуары и услуги
. Проявляется если добавить любую вставку и нажимать на кнопкуРассчитать
, а потомРассчитать и закрыть
, в продукции будет несколько одинаковых позиций равные кол-ву нажатий.В методе
process_add_product_list
модуляdoc_calc_order.js
, в расчете спецификации по текущей вставке, характеристика не записывается вrow_spec
, это ведет к повторному добавлению строки продукции, т.к. при попадании в методcreate_product_row
, характеристика будет не уникальной, а нулевой, следовательно будет создана заново.