|
Цитата |
---|
Александр Медведев написал: А для чего перезаписывать/расширять родной объект BX.CrmProductEditor?Или я просто не понял что делаешь) |
Ну у меня, откровенно говоря, стоит по ТЗ более широкая задача, чем была описана выше. вот 1-на из них: расширить таблицу товаров: было добавлено 11 доп. полей, такие как: - артикул,
- срок поставки,
- Цена закупа в локальной валюте (KZT),
- Цена закупа в валюте (с возможностью изменять валюту: RUR|EUR|USD),
- наценка,
- Цена для клиента в локальной валюте (KZT)
- Цена для клиента в валюте
- Маржа
- Срок поставки
- Гарантия
- Комментарий (Примечание)
А расчет ширины полей находится в BX.CrmProductEditor, причем жестко зашит в массиве, в относительных величинах В итоге из такого массива (штатный): Код |
---|
/** Original case, when added 0 cols*/
var setWidthTax = [ 0, 0, 0, 0, 0, 0, 0, 0, 0],
setWidthSale = [29, 5, 5,10,10,10,10,18, 3],
setWidthAll = [ 0, 0, 0, 0, 0, 0, 0, 0, 0],
resetWidth = [29, 8, 8,16,16, 0, 0,19, 3];
} |
получился такой массив: Код |
---|
var setWidthTax = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
setWidthSale = [ 5,24, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3,10,10, 5,18, 5, 8, 0, 3],
setWidthAll = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
resetWidth = [ 8,30, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5,19, 8,13, 0, 3],
setCalcMode = [10,14, 6, 0, 0, 0, 7, 7, 7, 7, 7, 7, 8, 0, 0, 0, 0, 6,11, 0, 0, 0, 3]; // shown with calc mode; |
Код |
---|
/** In SPECIAL CASE for XXXX, when added 11 cols (positions: 1st, 4-10 & 3 last cols)
* @description
* 0-2: P/N, Name, Quantity
* 3-5: w4a-crm-item-spacer ACHTUNG!! Spacer don't remove!!!
* 6-7: price_ddp_usd, total_ddp_usd
* 8-9: price_ddp_kzt, total_ddp_kzt
* 10: marge
* 11-12: price_usd, total_usd
*
* 13: Unit (ед. измерениия)
* 14-16: Discount (without Taxes Fields)
*
* 17-18: Price & Total for Client
*
* 19-20: delivery_time, warranty, comment
* 21: remove button
* */ |
т.к. колонок много, то пришлось еще вводить функционал отображения режима калькулятора. Так вот все эти доп. поля участвуют в пересчете значений других полей (в том числе и штатных) в процесе ввода значений поля.Опять же этот функционал сидит в BX.CrmProductEditor
Задача усложнилась тем, что в других сущностях: Лид, Предложение должен был остаться штатный функционал Поэтому, ни чего другого, как перенести штатный компонент: bitrix:crm.product_row.listв свое пространство имен: w4a.bitrix:crm.product_row.list.calc и там его кастомизировать, я не придумал. Если есть менее затратные способы кастомизации, прошу поделиться. PSСорри за офтоп, но эти доп. поля как раз и выносятся в последствии в генератор документов.
|