18.01.2024 07:02
Всем доброго времени суток!
Столкнулись с проблемой изменения наценок в СМ. Суть такова, что необходимо изменить наценку на +2% от текущей. Т.е. если стоит наценка на группу/подгруппу 30%, то новая наценка на эту группу/подгруппу должна стать 32%. При этом внутри подгрупп могут быть товары с индивидуальной наценкой, например 25%. Т.е. она теперь должна измениться на 27% и т.д.
Сложность заключается в том, что необходимо проходить по всему классификатору товаров и проверять где стоят наценки, а это ну очень долго, т.к. в добавок на каждое МХ заведены свои виды цен (розничная и акционная).
С+ отписались, что для оптимизации данного процесса необходимо доработка.
Может кто сталкивался с подобной задачей - есть идеи как можно реализовать например через запрос к БД?
18.01.2024 09:52
Том 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
Спасибо!
Но это ведь только подгруппы, а есть ещё индивидуальные наценки на товары. Как с ними быть?
19.01.2024 09:00
Также. Таблица SMEXTRACHARGE, поле EXTRACHARGE.

Ну и надо помнить, что изменение наценки саму цену не меняет.
Для изменения цены надо по новым правилам сделать акт переоценки.
22.01.2024 08:59
Всем спасибо! Вроде разобрался.
Если кому интересно - родилось вот такое:
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
Цитата:
Mtirt Также. Таблица SMEXTRACHARGE, поле EXTRACHARGE.

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

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