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

« Previous Version 19 Next »

1. Удалить историю цен, начиная с какой-то даты

delete from price_history where upd_date > '2021-03-19'

где 2021-03-19 - дата в формате год-месяц-число

2. Очистить положение окон

если вдруг вы использовали какой-то большой монитор и на другом компьютере окна перестали быть видны (сохранились за пределами экрана)

update users set user_options = null, all_cnct_qnet = null, 
	all_cnct_prod = null, all_cnct_price = null, wwp_quad_connect = null, 
	post_konk_view = null, suppl_view = null

3. Установить код товара запросом

update product set 
code = concat('ml', LPAD(id::text, 6, '0'))
where code is null;
update product set 
extsrch = left(concat(upper(code), extsrch), 255)
where extsrch not like(concat('%', upper(code), '%'))

где 'ml' - префикс кода, тексту внутри '' вы можете поменять на свой. Код формируется из префикса + QID товара, например ml000012

4. Коды полей в таблицах Продукция и Прайсы

 Развернуть

id - уникальный идентификатор товара (qid)

code - код товара

article - модель товара

title - название товара

manuf - производитель (только для прайсов поставщиков, в таблице Продукция поставщик определяется по коду поставщика)

garanty - гарантия

price - основная цена товара

price_curr_id - ИД валюты основной цены

info - полное описание

shortinfo - краткое описание

is_exists - наличия (1 - в наличии, 2 - нет в наличии, 3 - под заказ, 4 - склад, …)

exists_text - текст наличия

url - ссылка

fix_price - цены фиксированы (1) или нет (0) (только для таблицы Продукция)

is_fixed_exists - наличия фиксированы (1) или нет (0) (только для таблицы Продукция)

price_compare - код сравнения с конкурентами (0 - нет конкурентов, 1 - дешевле, 2 - равно, 3 - дороже конкурентов) (только для таблицы Продукция)

min_margin - цена с минимальной наценкой для основной цены (только для таблицы Продукция)

mi[КодПоляЦены] - цена с минимальной наценкой для дополнительных цен, например mif_qwerty (только для таблицы Продукция)

input_price - оптовая цена выбранного поставщика для основной цены в основной валюте

blue_flag - синий флажок в прайсах, может быть 0 или 1

red_flad - красный флажок в прайсах, может быть 0 или 1

set_price_date - дата последнего изменения цены (основной цены)

price_from - название прайса выбранного поставщика для основной цены

pd_id - ид выбранного товара из прайса поставщика

price_id - ид прайса выбранного поставщика

cat_1_id - ИД каталога BY (onliner)

cat_2_id - ИД каталога RU (яндекс.маркет)

5. Добавить товар в дополнительные группы из текстового поля

insert into product_category_connect(prod_id, cat_id, is_main)
SELECT  p.id, c.id, 0
FROM   product p, unnest(string_to_array(p.f_43df536rp, ',')) cat_id_one, product_category c
WHERE  c.code = cat_id_one
on conflict do nothing;

6. Убрать из названий фото папки

for i = 2 to sheets(1).usedrange.rows.count
    new_img = ""
    s_img = Trim(sheets(1).cells(i, 4).value)   
    if s_img <> "" then
        arr_img = Split(s_img, "|")
        for j = lbound(arr_img) to ubound(arr_img)
            one_img = Split(arr_img(j), "\")
            
            if new_img = "" then 
                new_img = one_img(1)
            else
                new_img = new_img & ", " & one_img(1)            
            end if
        next j 
        
        sheets(1).cells(i, 4).value = new_img
    end if
next i     

7. Создать аналоги товаров из поля

В поле с кодом f_43nssf1rp должны быть указаны Коды товаров аналогов, через запятую, код товара аналог должен совпадать с Кодом товара из вкладки Продукция

insert into product_analog(first_id, second_id)
select p.id, p2.id 
from product p, unnest(string_to_array(p.f_43nssf1rp, ',')) as an(code),
	product p2
where p.f_43nssf1rp <> '' and p2.code = an.code 
and not exists (select 1 from product_analog pa2 where 
                  (pa2.first_id = p.id and pa2.second_id = p2.id)
					or (pa2.first_id = p2.id and pa2.second_id = p.id))

8. Создать сопутствующие товары из поля

В поле с кодом f_43nssebq9 должны быть указаны Коды сопутствующих товаров, через запятую, код сопутствующего товара должен совпадать с Кодом товара из вкладки Продукция

insert into product_connect(prod_id, conn_prod_id)
select p.id, p2.id 
from product p, unnest(string_to_array(p.f_43nssebq9, ',')) as an(code),
	product p2
where p.f_43nssebq9 <> '' and p2.code = an.code 
and not exists (select 1 from product_connect pa2 where 
                  (pa2.prod_id = p.id and pa2.conn_prod_id = p2.id))

9. Указать в поле товара правило наценки

Если вы хотите видеть во вкладке Продукция у каждого товара правило наценки, по которому он расценен, создайте пользовательское поле с типом Число, если нужно видеть ИД правила, или Строка, если нужно видеть название правила. Код поля подставьте в запросы ниже (в 2х местах в запросе):

Установить ИД правила:

update product set КодПоля = null;
update product set КодПоля = 
 	(select case ph.rule_id when -1 then 0 else ph.rule_id end  from price_history ph 
		 where ph.prod_id = product.id and product.is_exists <> 2 and ph.field_id = 0
			   order by ph.id desc limit 1)

ИД правила может установиться 0 в случае, когда товар не в статусе "Нет в наличии" и при этом на него нет правила наценки, т.е. например наличие установлено вручную и зафиксировано

Установить Название правила:

update product set КодПоля = null;
update product set КодПоля = 
 	(select spt.title from price_history ph, 
        set_price_type spt 
		 where ph.prod_id = product.id and ph.rule_id = spt.id
				and product.is_exists <> 2 and ph.field_id = 0
			   order by ph.id desc limit 1)

10. Удалить у товаров все характеристики, которые не соответствуют типу товара

Данный запрос может понадобится когда вы часто переносите товары из одной группы в другую, при этом Тип товара у групп указан разный.

delete from product_values where id in (
         select pv2.id from product_values pv2, param_items pi, 
          param_item_values piv, product_category_connect pcc, product_category pg 
         where pv2.val_id = piv.id and piv.item_id = pi.id and 
         pcc.prod_id = pv2.quad_product_id and pcc.cat_id = pg.id and pcc.is_main = 1 
         and (pg.product_type_id <> pi.pi_product_type and pi.pi_product_type <> 1) 
         and pi.param_id = 777)

вместо 777 указать ID набора характеристик, которые нужно удалить

11. Заполнить пользовательское поле минимальной РРЦ из прайсов поставщиков

update product set f_41d1umnts = 0;
update product set f_41d1umnts = 
  (select min(round(price_to_base(pd.fixed_price, pd.fix_price_curr_id), 2))
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 and pd.is_exists <> 2) 

вместо f_41d1umnts указать код вашего числового пользовательского поля, в который запишется минимальная РРЦ

12. Проверить, что в текстовом поле число

(case when p.garanty ~ '^\-?\d+(\.\d+)?$' then ceil(p.garanty) else 0 end)
  • No labels