Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Акты переоценки не отражаются в истории цен : Супермаг Плюс (Супермаг 2000)

23.11.2024 7:32


17.06.2008 09:47
трейсером параметры запроса не получается посмотреть? видимо где то при связке таблиц данных не хватает?
17.06.2008 09:56
И вообще напрямую в запросе из истории цен есть данные по артикулу с этими АС?

select * from SMPriceHistory where article='10500'

Если нет, то тогда надо смотреть, по чему она не пишется?


код вьюшки простой:

Select h.StoreLoc, h.Article, h.PriceType, h.EventTime,
h.Price, to_number(null) PricePlan,
h.DocType, h.DocID,
(select a.Reason from SmActs a
where a.DocType=h.DocType and a.ID=h.DocID
) Reason,
h.Employee, h.WSName, h.UserName, h.OsUser,
(select s.Surname from SmStaff s
where s.ID = h.Employee) Surname
from SMPriceHistory h
UNION ALL
Select -3 StoreLoc, p.Article, p.PriceType, p.PlanTime EventTime,
to_number(null) Price, p.Price PricePlan,
to_char(null) DocType, to_char(null) DocID, to_number(null) Reason,
to_number(null) Employee, to_char(null) WSName, to_char(null) UserName, to_char(null) OsUser,
to_char(null) Surname
from SMPricePlan p
where PlanState > 1

трэйс запроса из СМ:

select StoreLoc,Article,EventTime,PriceType,PricePlan,Price,DocType,DocID,Reason,Employee,Surname,WSName,UserName,OsUser
from Supermag.SVPriceHistoryPlan TMain where Article='005382'
and (StoreLoc=16 or StoreLoc=-3)
order by EventTime desc,PriceType


Скорее всего не пишеться хистори при применении актов
17.06.2008 10:54
Цитата:
Mtirt Какие параметры установлены для места хранения на закладке "Цены"?
Учетная цена, цена для кассы заданы?
Там вообще красота, одна цена... Она и везде протыкана... Так я и говорю, актом переоценки она меняется, но в истории цен не отражается. Пакеты все целые, потом прогоню, конечно, пока возможности нет. И раньше работало... Что сделали...
2isi, вьюшка это хорошо, только знать бы, какой пакет заполняет smpricehistory, не заполняется она...
17.06.2008 11:57
Цитата:
OlegON Там вообще красота, одна цена... Она и везде протыкана... Так я и говорю, актом переоценки она меняется, но в истории цен не отражается. Пакеты все целые, потом прогоню, конечно, пока возможности нет. И раньше работало... Что сделали...
2isi, вьюшка это хорошо, только знать бы, какой пакет заполняет smpricehistory, не заполняется она...
Во, все таки хистори физически не заполняеться, ну так просто, создай переоценку и в момент принятия трейсером... не получается? я если успею сегодня, посмотрю...
17.06.2008 12:12
OLEGON, проверь тригер на smprices

begin
insert into SMPriceHistory(StoreLoc,Article,PriceType,Price)
values(:old.StoreLoc,:old.Article,:old.PriceType,0);
end;

Собственно он ценами и заполняет хисторипрайс
17.06.2008 12:15
А имя его? Я просто сразу его искал, но его нет ни там, ни у меня на рабочей базе.
17.06.2008 12:20
Мне тут сейчас сотрудники напомнили, что причиной этому было то, что в локальных базах данных была открыта возможность отредактировать цену прямо в карточке товара, видимо такие изменения как-то не корректно передавлились в центральную базу, в результате чего в ней перестала изменяться история по тому месту хранения, по которому в локальной базе было сделано такое изменение цены. Избавились от этого тем, что закрыли возможность изменения цен в локальных базах без создания акта переоценки. А последствия лечили тем, что в центральной базе на такие товары прямо в карточке выставляли цену 0.00руб, после чего создавали акте переоценки с этой нулевой цены до нормальной и он уже отображался в истории цен. Покрайней мере так было у нас.
17.06.2008 12:34
Цитата:
OlegON А имя его? Я просто сразу его искал, но его нет ни там, ни у меня на рабочей базе.
Имя то имя, но он не заполняет документ, по которому переоценка, вот DDL:

Код:
CREATE OR REPLACE TRIGGER smpriced
 AFTER
  DELETE
 ON smprices
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
begin
	insert into SMPriceHistory(StoreLoc,Article,PriceType,Price)
		values(:old.StoreLoc,:old.Article,:old.PriceType,0);
end;
/
17.06.2008 12:49
Нашел.
Пэкэдж боди "prices":

вот код:
Код:
PROCEDURE LOGOP( ASTORELOC IN SUPERMAG.SMPRICES.STORELOC%TYPE, AARTICLE IN SUPERMAG.SMPRICES.ARTICLE%TYPE, APRICETYPE IN SUPERMAG.SMPRICES.PRICETYPE%TYPE, AOLDPRICE IN SUPERMAG.SMPRICES.PRICE%TYPE, ADOCTYPE IN SUPERMAG.SMPRICEHISTORY.DOCTYPE%TYPE := NULL, ADOCID IN SUPERMAG.SMPRICEHISTORY.DOCID%TYPE := NULL )
    IS
      ANEWPRICE SUPERMAG.SMPRICES.PRICE%TYPE;
    BEGIN
      BEGIN
         SELECT
            PRICE
            INTO ANEWPRICE
            FROM SMPRICES
            WHERE STORELOC = ASTORELOC AND ARTICLE = AARTICLE AND PRICETYPE = APRICETYPE;
       EXCEPTION
         WHEN NO_DATA_FOUND THEN
            RETURN;
      END;
      IF ( ANEWPRICE != AOLDPRICE ) THEN
         INSERT 
            INTO SMPRICEHISTORY
            ( STORELOC, ARTICLE, PRICETYPE, PRICE, DOCTYPE, DOCID )
            VALUES( ASTORELOC, AARTICLE, APRICETYPE, ANEWPRICE, ADOCTYPE, ADOCID );
      END IF;
   END;
END PRICES;
проверяй, живой ли

и по условию он может не отработать, если не найдет по первому запросу цену
20.06.2008 15:57
Проблема решена? Как?
Часовой пояс GMT +3, время: 07:32.

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