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

Ценник за килограмм печатается, как за 100 грамм : Супермаг Плюс (Супермаг 2000)

19.04.2024 4:43


05.03.2015 08:08
[+kliN+]
 
Заметил, что на моем ценнике цена выходит как за 1кг. хотя в карточке стоит галка "ценник за 0,1 еденицы"
подсунул вместо своего price_card_example - в нём, тот же артикул, печатается как за 100 г.
не могу понять.
В price_card_exemple цена берется из
Код:
Pricefull from supermag.SVPriceCard
в моем ценнике
Код:
FROM supermag.SMPrices
Попробовал добавить в свой ценник
Код:
Pricefull from supermag.SVPriceCard
и разместил рядом на ценнике - получается что оде цены одинаковые как за 1 кг.

OlegON:
Новые вопросы заводите в новых темах!
05.03.2015 08:39
kadr
 
Само определение представления SVPriceCard смотрел?
Код:
create or replace view svpricecard as
select  t.Article Article, t.Name Name  , t.CardComment CardComment,
				t.Country Country, t.Price Price, t1.UnitName UnitName,
				t1.Qty Qty, t1.QtyPrint QtyPrint,
				t1.BarCode BarCode, t1.IsScale IsScale, t1.PLU PLU,
				russianspell.PriceCardString(0,t.Price) RubSum,
				russianspell.PriceCardString(1)         RubName,
				russianspell.PriceCardString(2,t.Price) KopSum,
				russianspell.PriceCardString(3)         KopName,
				russianspell.PriceCardString(4,t.Price) PriceShort,
				russianspell.PriceCardString(5,t.Price) PriceFull,
				to_number(russianspell.PriceCardString(6)) PricePrec
		from TTPriceCard t, TTPriceCard1 t1
		where t.article = t1.article;
Данные берутся из временных таблиц, которые в ценнике заполняются процедурой
Код:
 RepOracleRunner.ExecuteProcedure(host.Connection,"Supermag.russianspell.LoadPriceCard",
А ты как заполняешь эти таблицы чтобы получить данные из SVPriceCard?
05.03.2015 11:00
Mtirt
 
Цитата:
kadr А ты как заполняешь эти таблицы чтобы получить данные из SVPriceCard?
А он разве заполняет?
Процедура заполнения темповых таблиц не зависит от ценника.
Её сам Супермаг выполняет при вызове процедуры печати ценников, в зависимости от контекста.
05.03.2015 11:01
Mtirt
 
Цитата:
'[+kliN+ ;202238']Заметил, что на моем ценнике цена выходит как за 1кг. хотя в карточке стоит галка "ценник за 0,1 еденицы"
подсунул вместо своего price_card_example - в нём, тот же артикул, печатается как за 100 г.
не могу понять.
В price_card_exemple цена берется из
Код:
Pricefull from supermag.SVPriceCard
в моем ценнике
Код:
FROM supermag.SMPrices
Попробовал добавить в свой ценник
Код:
Pricefull from supermag.SVPriceCard
и разместил рядом на ценнике - получается что оде цены одинаковые как за 1 кг.
Покажи хотя бы полный запрос из ценника...
05.03.2015 11:18
kadr
 
Цитата:
Mtirt А он разве заполняет?
Процедура заполнения темповых таблиц не зависит от ценника.
Её сам Супермаг выполняет при вызове процедуры печати ценников, в зависимости от контекста.
в price_card_example заполняет, там в коде есть такой коммент
Цитата:
// заполнение временных таблиц для ценников
я в своих ценниках тоже использую пример от С+ со всеми его сервисными процедурами.

Ценники стандартные всегда сами для себя заполняли необходимые таблицы, что в OracleReports что в FastReports
05.03.2015 11:33
Mtirt
 
Я теперь поняла.
Ты пытаешься выяснить у автора, что указано в последней строчке вот здесь:
Код:
 // заполнение временных таблиц данными для ценников
      RepOracleRunner.ExecuteProcedure(host.Connection,"Supermag.russianspell.LoadPriceCard", 
        Report.GetParameterValue("P_COPIES"),
        Report.GetParameterValue("P_ARTICLE"),
        "",
        Report.GetParameterValue("P_DOC_TYPE"),
        Report.GetParameterValue("P_DOC_ID"),
        Report.GetParameterValue("P_LOC"),
        Report.GetParameterValue("P_PRICE_TYPE"),
        Report.GetParameterValue("P_NAME"),
        Report.GetParameterValue("P_QTY"),
        Report.GetParameterValue("P_TYPE"),
        1, // печать штрихового кода артикула штрихами (0 - печать ШК цифрами, -1 - без печати ШК)
        1  // печать в ценнике кол-ва артикула, за которое выводится цена
        );
???
05.03.2015 11:42
kadr
 
Мне сам факт любопытен, в его экземпляре ценника используется ли данный кусок кода.
Потому что в стандартном алгоритме мы нигде не можем указать что надо печатать ценник за 0,1 единицу или за 1 единицу.
Т.е. если установлено на карточку, то по стандартному алгоритму мы просто обязаны распечатать за 0,1.
А если не используем заполнение временных таблиц, то берем артикул из входящих параметров и сами уже колдуем с тем какой вывод цены использовать, ну или не колдуем
01.12.2015 15:00
[+kliN+]
 
вот запрос ценника

Код:
SELECT t.ARTICLE, t.NAME, t.COUNTRY, t.UNITNAME,
 t.RUBSUM||','||t.KOPSUM PRICE, 
 t.BARCODE, t.QTYPRINT,
decode(t.PLU,null,'','Весы: '||t.PLU) PLU,
(select supermag.russianspell.PriceCardString(0,p.SavedPrice)||','||supermag.russianspell.PriceCardString(2,p.SavedPrice)
FROM supermag.SMPrices p
where p.Article=t.Article 
and p.StoreLoc=:pLoc
and p.PriceType=:pPriceType
and p.SavedPrice is not null) OldPrice
FROM SUPERMAG.SVPRICECARD t
order by 1
отредактированный price_card_example
Ценник для акционного товара.
Если ставлю "1" на странице CODE, то PRICE печатается как за "0,1 кг", а OldPrice как за "1 кг"
Видимо мне нужно как то OldPrice переделать, чтоб он тоже изменялся вслед за PRICE, но в SVPRICECARD нет старой цены.
откуда мне её лучше взять?
02.12.2015 11:51
[+kliN+]
 
Сделали вот как:
Код:
SELECT t.ARTICLE, t.NAME, t.COUNTRY, t.UNITNAME,
 t.RUBSUM||','||t.KOPSUM PRICE, 
 t.BARCODE, t.QTYPRINT,
decode(t.PLU,null,'','Весы: '||t.PLU) PLU,

(select case DECODE(bitand(s.Flags,4),0,0,1) 
when 1 then 

(select  p.SavedPrice / 10
FROM supermag.SMPrices p
where p.Article=t.Article 
and p.StoreLoc=:pLoc
and p.PriceType=:pPriceType
and p.SavedPrice is not null) 

when 0 then

(select  p.SavedPrice
FROM supermag.SMPrices p
where p.Article=t.Article 
and p.StoreLoc=:pLoc
and p.PriceType=:pPriceType
and p.SavedPrice is not null) 

end 

from supermag.smcard s
where s.article=t.article) oldprice

FROM SUPERMAG.SVPRICECARD t
order by 1
работает.
"новая" цена меняется сама сабой (вкюлчен параметр 1)
старая цена считается case.
прокомментируйте пожалуйста
как улучшить/упростить?
02.12.2015 12:43
vdm
 
Упростить можно (в правильность всего этого не вникал).

Так пойдет?
Код:
SELECT t.ARTICLE, t.NAME, t.COUNTRY, t.UNITNAME,
 t.RUBSUM||','||t.KOPSUM PRICE, 
 t.BARCODE, t.QTYPRINT,
decode(t.PLU,null,'','Весы: '||t.PLU) PLU,

(select  p.SavedPrice / DECODE(bitand(s.Flags,4),0,1,10) 
  from supermag.smcard s, supermag.SMPrices p
where s.article=t.article
and p.Article=s.Article 
and p.StoreLoc=:pLoc
and p.PriceType=:pPriceType
and p.SavedPrice is not null) oldprice

FROM SUPERMAG.SVPRICECARD t
order by 1
Часовой пояс GMT +3, время: 04:43.

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