18.01.2024 07:02
GritsenkoIvan
 
Всем доброго времени суток!
Столкнулись с проблемой изменения наценок в СМ. Суть такова, что необходимо изменить наценку на +2% от текущей. Т.е. если стоит наценка на группу/подгруппу 30%, то новая наценка на эту группу/подгруппу должна стать 32%. При этом внутри подгрупп могут быть товары с индивидуальной наценкой, например 25%. Т.е. она теперь должна измениться на 27% и т.д.
Сложность заключается в том, что необходимо проходить по всему классификатору товаров и проверять где стоят наценки, а это ну очень долго, т.к. в добавок на каждое МХ заведены свои виды цен (розничная и акционная).
С+ отписались, что для оптимизации данного процесса необходимо доработка.
Может кто сталкивался с подобной задачей - есть идеи как можно реализовать например через запрос к БД?
18.01.2024 09:52
DMaslov
 
Том 25. Структура базы данных (версия 1.046).docx

SQL код:
update SMMarkupClass set EXTRACHARGE EXTRACHARGE 2 where IDCLASS in (
  
select ID from SACARDCLASS where TREE like '34.%' or (what do you need)
); 
19.01.2024 08:53
GritsenkoIvan
 
Спасибо!
Но это ведь только подгруппы, а есть ещё индивидуальные наценки на товары. Как с ними быть?

Правка: GritsenkoIvan, 19.01.2024 08:56
19.01.2024 09:00
Mtirt
 
Также. Таблица SMEXTRACHARGE, поле EXTRACHARGE.

Ну и надо помнить, что изменение наценки саму цену не меняет.
Для изменения цены надо по новым правилам сделать акт переоценки.
22.01.2024 08:59
GritsenkoIvan
 
Всем спасибо! Вроде разобрался.
Если кому интересно - родилось вот такое:
SQL код:
DECLARE
    -- 
процент изменения наценки
    extra_change INT 
:= 3;
    -- 
группа классификатора
    id_class varchar2
(32767) := '27.78.1.%';
BEGIN
    
-- изменение индивидуальной наценки для артикула в группе
    UPDATE 
        smextracharge
    SET 
        smextracharge
.extracharge smextracharge.extracharge extra_change
    WHERE
        smextracharge
.article IN 
            
(
                
SELECT ca.article
                FROM smcard ca
                LEFT JOIN smextracharge ext ON ext
.article ca.article
                WHERE ca
.idclass in (select ID from SACARDCLASS where TREE like id_class)
            );
    -- 
изменение наценки для групп
    UPDATE 
        SMMarkupClass 
    SET 
        SMMarkupClass
.extracharge SMMarkupClass.extracharge extra_change
    WHERE
        smmarkupclass
.idclass IN 
            
(
                
select ID from SACARDCLASS where TREE like id_class
            
);
END
22.01.2024 09:01
GritsenkoIvan
 
Цитата:
Mtirt Также. Таблица SMEXTRACHARGE, поле EXTRACHARGE.

Ну и надо помнить, что изменение наценки саму цену не меняет.
Для изменения цены надо по новым правилам сделать акт переоценки.
Это понятно. Речь шла конкретно о массовом изменении наценок относительно установленных ранее.
Часовой пояс GMT +3, время: 16:51.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.