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. Коды полей в таблицах Продукция и Прайсы
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 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)