| Цитата |
|---|
| Александр Медведев написал: А для чего перезаписывать/расширять родной объект BX.CrmProductEditor?Или я просто не понял что делаешь) |
вот 1-на из них:
расширить таблицу товаров:
было добавлено 11 доп. полей, такие как:
- артикул,
- срок поставки,
- Цена закупа в локальной валюте (KZT),
- Цена закупа в валюте (с возможностью изменять валюту: RUR|EUR|USD),
- наценка,
- Цена для клиента в локальной валюте (KZT)
- Цена для клиента в валюте
- Маржа
- Срок поставки
- Гарантия
- Комментарий (Примечание)
В итоге из такого массива (штатный):
| Код |
|---|
/** 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Сорри за офтоп, но эти доп. поля как раз и выносятся в последствии в генератор документов.