Quad.Wiki

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

В запросах нужно заменять код поля, в которое сохраняется информация, например вот это:

Запрос выполняется через действие Quad.Magic “Выполнить запрос БД”, запрос вставляется в Настройка 1.

Установить в поле цену и наличие других поставщиков

В поле сохраняется информация в виде:

Пост1 ц:120.5 ост:*** | Пост2 ц:81 ост:5

т.е. название поставщика, цена после слова “ц:” , остаток после слова “ост:”, если поставщиков несколько то они разделены вертикальной чертой.

update product set f_3v8q42ftv = 
(select string_agg(concat(pr.title, ' ц:', 
round(case pd.price_curr_id 
when 3 then pd.price * ###EUR### 
when 2 then pd.price * ###USD### 
when 4 then pd.price * ###RUB### 
else pd.price end)::varchar, 
' ост:', pd.exists_text), ' | ') 
from price_detail pd, price pr where
pr.id = pd.price_id and pd.is_exists <> 2 
and pr.price_type in (1, 3) and pd.product_id = product.id 
and pd.price_id <> product.price_id)

f_3v8q42ftv - код поля, в которое сохраняется информация, его нужно заменить на ваше

В запросе так же указана конвертация цен в белорусские рубли, если в прайсе цена в другой валюте - это нужно изменить, если ваша основная валюта не BYN. Код валюты российских рублей должен быть RUB, а не RUR.

Если ваша основная валюта российские рубля, то удалите из запроса строку

when 4 then pd.price * ###RUB###

Установить в поле название поставщика с РЦ

update product set f_401gs0okc = null;
update product set f_401gs0okc = 
  (select pr.title
from price_detail pd, price pr, price_detail_category pdc
where pd.product_id = product.id
	and pd.price_id = pr.id
	and pr.is_active = 1
	and pr.use_rc = 1
	and pd.category_id = pdc.id
	and pdc.is_active = 1
	and ((pd.is_active is null) or (pd.is_active = 0))
	and pd.fixed_price > 0 limit 1)

f_401gs0okc - код поля, в которое сохраняется информация, его нужно заменить на ваше, в двух местах.

Очистить переносы строк в поле

update product set title = replace(title, concat(chr(13), chr(10)), '') 
where title like concat('%', chr(10), '%')

title - название поля в котором нужно очистить (Название товара).

Установить в поле QID товаров привязанных поставщиков

В поле устанавливаются ИД товаров из прайсов поставщиков, через запятую

update product set f_3v8q42ftv = null;
update product set f_3v8q42ftv = 
(select string_agg(pd.id, ',') 
from price_detail pd, price pr where
pr.id = pd.price_id 
and pd.is_exists <> 2 
and pr.is_active = 1
and pr.price_type in (1, 3) 
and pd.product_id = product.id 
and pd.price_id <> product.price_id)

f_3v8q42ftv - поле в которое устанавливается значение

pd.id - поле которое берется из прайсов, в данном случае ИД товара, но можно например объединять и другие поля, например Код, в этом случае заменить pd.id на pd.code

and pd.is_exists <> 2 - условие, что добавляется только товар который не в статусе “Нет в наличии”, если нужно все товары, то эту строку можно удалить из запроса

and pr.is_active = 1 - условие, что добавляется только товар из активных прайсов. если прайс выключен, то его товары не добавляются, даже если привязаны.

  • No labels