31.01.2015 10:16
Mtirt
 
Итак, как обещала, рассказываю о своем "пути, усеянном граблями".

Завожу в Супермаг+ вид цены Маркетинговая, привязываю один из работающих магазинов, рассылаю в него Вид Цены, делаю акт переоценки на тестовую карточку товара, жду её в УКМ4. Проверила всё что можно. Цены нет... Через какое-то время понимаю, что не разослала в магазин Склад, т.е. база магазина ничего не знает о новом виде цены. Разослала, товар в УКМ4 получил вторую цену.

Теперь мне надо завести в УКМ4 много-много клиентов и их дисконтных карт.
Создаю базу данных для конвертера Стандартный импорт 4.
У меня случается затык: я забываю, как в mysql писать скрипты, добавляющие много-много значений в цикле.
И не могу этого же и нагуглить.
В конце-концов, психую, пишу скрипт в oracle, выгружаю результат в текстовый файл, текстовый файл загружаю в mysql.
В базе импорта появляются значения.
Запускаю на СГО конвертер Стандартный импорт 4. Клиенты на СГО не появляются...
Всё работает - клиентов нет. В какой-то момент понимаю, что в signal надо правильно указать номер версии, после этого клиенты и их карты благополучно загружаются на СГО и спускаются на магазины.

Завожу и настраиваю на СГО в УКМ4 скидки, прошу ЦТО-шников запустить мне тестовую кассу, чтобы их проверить.
ЦТО-шники выясняют, что на тестовую базу данных у них закончилась лицензия, делают запрос в С+.
Получаем лицензию, проверяем скидку - всё проходит.
Меняю формат чека, всё замечательно.

Проставляю в Супермаге новый вид цены в остальные магазины, переводимые на новую систему.
Для запуска акции остается только перенастроить шаблоны ввода в УКМ4 с дисконтной карты на клиента...
Но оказалось, что не всё так просто.
31.01.2015 10:34
Mtirt
 
Акция начинается в понедельник.
В пятницу вечером звонит менеджер по ценам и говорит, что в том магазине, который я привязала первым, создаются акты переоценки на основании приходных накладных по виду цены Маркетинг.
Вздыхаю, понимаю, что не разослала вид цены после того как установила "Шаг цены". Рассылаю. Отбираю товары, которые успели "нацениться", делаю цену у них равной нулю.
Одновременно понимаю, что забыла разослать остальные магазины, после того, как их привязала. Делаю и это...
В воскресенье поздно вечером меняю шаблоны ввода на СГО по тем магазинам, которые мне нужны.
Засыпая, понимаю, что скидка может не сработать, так как в Супемаге надо убрать кучу "пределов скидок".

Понедельник, 8 утра. Еду на работу. Телефон начинает разрываться от звонков: не печатаются ценники.
Приезжая, понимаю, что маркетинговая акция устанавливает ценник на вид цены Маркетинг. А магазину надо распечатать тот же ценник на вид цены Розничная. Отбираю карточки товаров, поставляю в них правильные виды цен и ценники, рассылаю карточки магазинам. Ценники печатаются.
Магазин начинает жаловаться на то, что скидки не проходят. Вспоминаю про пределы скидок, убираю их по группам, рассылаю.
Скидка на проходит. Обнаруживаю в карточке товара персональный предел скидки, убираю его, рассылаю.
Убеждаюсь, что в карточке товара в УКМ4 везде минимальная цена 0.
Скидка не проходит.

Иду в настройку скидок в УКМ4 в базе магазина и вместо наименований групп товаров вижу непонятный набор цифр:
Миниатюры
Нажмите на изображение для увеличения
Название: Скидки.png
Просмотров: 600
Размер:	89.3 Кб
ID:	4330  
31.01.2015 10:53
Mtirt
 
Пытаюсь заново настроить скидку прямо в магазине, и, о чудо, скидка начинает проходить.
Понимаю, что теперь эту операцию надо повторить для каждого из 20 магазинов :(
От нервного срыва меня спасают ЦТО-шники, которые приезжают и помогают поменять настройки скидки.
(Мне очень хочется верить, что данная проблема не повторяется в новых версиях УКМ4. И классификатор товаров на СГО и в магазинах как-то объединяется. У нас сейчас 50 сп2. Но сюрприз оказался очень неприятный.)

Тут звонит магазин, который настраивали первым и говорит, что у них на товар касса дала скидку 100%.
Мы идем в УКМ4 и видим в карточке товара маркетинговую цену 0. Я сама поставила это значение в пятницу вечером.
И касса успешно дает скидку, продавая товар по этой цене. Удаляю нулевые значения из базы данных, прогружаю кассу.
Проблема снимается, хотя я тут же задумываюсь, а что мы будем делать при окончании маркетинговой акции.
Через 15 минут выясняется (ценообразование ошиблось и решило завершить одну из акций, запущенных утром), что после завершения маркетинговой акции цена остается той же, что и во время акции. Пишу здесь, ищу в документации, в конце-концов vdm подтверждает, что теперь маркетинговые акции работают именно так.

На следующее утро собираюсь с мыслями и делаю следующий job:
Код:
begin
  sys.dbms_scheduler.create_job(job_name            => 'SYS.SMPRICES_51',
                                job_type            => 'PLSQL_BLOCK',
                                job_action          => 'insert into supermag.SMCashQueue (enqseq,Locid,Article) select distinct rownum,p.locid,t.article from supermag.smprices t, supermag.smcashdesks p where t.pricetype=51 and t.savedprice is null and (p.locid, t.article) not in (select  c.locid, c.article from supermag.smcashqueue c);
commit;
delete from supermag.smprices t where t.pricetype=51 and t.savedprice is null;
commit;',
                                start_date          => to_date('27-01-2015 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                                repeat_interval     => 'Freq=Minutely;Interval=15',
                                end_date            => to_date(null),
                                job_class           => 'DEFAULT_JOB_CLASS',
                                enabled             => true,
                                auto_drop           => false,
                                comments            => '');
end;
/
31.01.2015 10:58
Mtirt
 
И начинаю разбираться с шаблонами ценников. Мучаюсь я с ними 3 дня, в итоге, подсказка kadr приводит к написанию вот такого тригера:
Код:
create or replace trigger SMDocumentsMAPr
    after insert or update of docstate ON SMDocuments
    for each row
    
when (old.DocType = 'MA')
declare
    vType integer;
  begin

    if (:old.docstate = 2) and (:new.docstate = 3) then
      select distinct a.pricetype
        into vType
        from smauctionatoms a, svlocalshops l
       where a.doctype = :old.doctype
         and a.aucid = :old.id
         and a.locid = l.ID and a.pricetype not in (список служебных видов цен);
      if vType = 51 then
        merge into supermag.smpricerArticle x
        using (select distinct s.article,
                               pr.pricetype,
                               p.pricercategory,
                               p.pricertype
                 from supermag.smauctionatoms  a,
                      supermag.smauctionpricer p,
                      supermag.smspec        s,
                      supermag.smlocprices     pr,
                      supermag.svlocalshops    l
                where a.doctype = :old.doctype
                  and a.aucid = :old.id
                  and :old.doctype = p.doctype
                  and :old.id = p.docid
                  and s.doctype = :old.doctype
                  and s.docid = :old.id
                  and a.locid = pr.locid
                  and l.ID = a.locid
                  and pr.flags = 3
                  and a.locid not in (список служебных мест хранения)
                  and pr.pricetype not in (список служебных видов цен, 51)) z
        on (x.article = z.Article and x.pricetype = z.pricetype and x.pricercategory = z.pricercategory)
        when matched then
          update set x.pricertype = z.pricertype
        when not matched then
          insert
            (x.article, x.pricetype, x.pricercategory, x.pricertype)
          values
            (z.article, z.pricetype, z.pricercategory, z.pricertype);
      end if;
    end if;
    if (:old.docstate = 3) and (:new.docstate = 0) then
      select distinct a.pricetype
        into vType
        from smauctionatoms a, svlocalshops l
       where a.doctype = :old.doctype
         and a.aucid = :old.id
         and a.locid = l.ID and a.pricetype not in (список служебных видов цен);
      if vType = 51 then
        delete from supermag.smpricerarticle x
         where (x.article, x.pricetype, x.pricercategory, x.pricertype) in
               (select distinct s.article,
                                pr.pricetype,
                                p.pricercategory,
                                p.pricertype
                  from supermag.smauctionatoms  a,
                       supermag.smauctionpricer p,
                       supermag.smspec        s,
                       supermag.smlocprices     pr
                 where a.doctype = :old.doctype
                   and a.aucid = :old.id
                   and :old.doctype = p.doctype
                   and :old.id = p.docid
                   and s.doctype = :old.doctype
                   and s.docid = :old.id
                   and a.locid = pr.locid
                   and pr.flags = 3
                   and a.locid not in (список служебных мест хранения)
                   and pr.pricetype not in (список служебных видов цен,51));
      end if;
    end if;
  end;
Есть надежда, что это была последняя проблема.
01.02.2015 17:32
vdm
 
Насчет соответствия классификатора товаров на СГО и в магазинах.
Если магазинные базы УКМ получают классификатор локально от магазинных СМ, то номенклатуру на СГО нужно импортировать снизу, с магазинов. Правда в моей версии оно действует на серверы и терминалы одновременно, из-за чего однажды был глюк - с какой-то кассы на сервер магазина поднялся старый классификатор. С тех пор держу импорт отключенным и включаю вручную, когда на СГО становятся нужны новые группы/артикулы. М.б. в 50+ это пофикшено/улучшено.
17.02.2015 14:11
Mtirt
 
Нашла новую проблему. На товары, которые поучаствовали в акции, начинают создаваться акцты переоценки по виду цены Маркетинговая. По тем товарам, по которым акции не было - акты переоценки по этому виду цены не создаются.
Есть идеи, почему так?
17.02.2015 15:04
kadr
 
А можно сузить круг идей?
Нужны идеи почему создаются акты или идеи почему не создаются?

По смыслу тобой описано обратное поведение опции "Игнорировать порог при нулевой цене"
17.02.2015 15:13
Mtirt
 
Галочку "Игнорировать порог при нулевой цене" я убрала давно.
Т.е. по логике акты создаваться не должны.
И не создаются для тех товаров, которые в МА не участвовали.
17.02.2015 17:58
vdm
 
Попробовал воспроизвести на тестовой 1030.3 - не получается.
18.02.2015 10:10
Mtirt
 
Я нашла причину.
Сижу и смеюсь...
Человеческий фактор.
Хоть я и поставила очень большой шаг цены на группу всё, но некоторые товарищи зашли в карточку товара и поставили в ней шаг цены =0.
Пойду писать триггер на эту тему.
Часовой пояс GMT +3, время: 10:45.

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