View Issue Details

IDProjectCategoryView StatusLast Update
0000795Общие вопросыGeneralpublic2015-05-14 11:45
Reporterruslan Assigned Tobarry  
PriorityurgentSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Summary0000795: +БД-Добавить поцедуру WORKLINK_PRICE в БД
Descriptioncreate or alter procedure WORKLINK_PRICE (
    GID integer)
returns (
    GDSKEY integer,
    QUANT double precision)
as
declare variable WMID integer;
declare variable QNT double precision;
BEGIN
qnt=0.0;
for select wl.godsid, wl.quant --,lp.price, lp.nds
,(select wm.id from workmain wm where wm.godsid=wl.godsid)
--,g.kprice
from worklink wl
join workmain w on w.id=wl.owner
--join goods g on wl.godsid=g.id
--left join GOODS_LASTINPPRICE(:CURORGNID,null,wl.godsid) lp on 0=0
where w.godsid=:GID
into :gdskey, :quant, --:lst_price, :lst_nds,
  :wmid
  --, :nprice
do begin
qnt= :quant;
if (:wmid is null) then suspend;
-- только конечные состовляющие без ПФ
 for select wp.gdskey, wp.quant*:qnt --,lp.price, lp.nds, g.kprice
 from worklink_price(:gdskey) wp
-- join goods g on wp.gdskey = g.id
-- left join GOODS_LASTINPPRICE(:CURORGNID,null,wp.gdskey) lp on 0=0
 into :gdskey, :quant --, :lst_price, lst_nds, :nprice
 do begin
 suspend;
 end
end
END^

SET TERM ; ^

COMMENT ON PROCEDURE WORKLINK_PRICE IS
'Процедура извлекает количество комплектующих в изделии, с учетом всех комплектующих в ПФ(комплектующие в ПФ расчитываются как Кол-во ПФ* Кол-во комплектующего)в ПФ';
Additional InformationСначала хотел ее сделать с извлечением последних цен по закупке, для формирования плановой себестоимости, однако это серьезно отяжеляет запрос, эффективнее джойнить в самом запросе в отчете для плановой себестоимости, а процедера извлечения комплектующих из ПФ, очень нужна.
TagsNo tags attached.

Activities

ruslan

2015-04-02 12:58

manager   ~0001973

Добавь в базу, а то хочу сделать обновление, а там я ее в отчете юзаю...

ruslan

2015-04-24 12:36

manager   ~0001989

Еще одна служебная процедура:
Описание: Получение списка убыточных позиций по месяцам периода по группе складов
create or alter procedure GDDDT_LOSSPOS (
    BPERIOD timestamp,
    EPERIOD timestamp,
    GRPSTORID integer)
returns (
    BCDATE timestamp,
    ECDATE timestamp,
    GNAME varchar(80),
    DELTA double precision,
    KNK double precision)
as
declare variable KSUMMA double precision;
declare variable DSUMMA double precision;
declare variable GID integer;
begin
 for select edate, bdate from f_months_dataset(:bperiod, :eperiod)
 into :ECDATE, :BCDATE
 do begin
-- suspend ;
 for select sum((gk.price-gk.nds)*gd.quant),
 sum((gd.price-gd.nds)*gd.quant), g.id, g.name,
 sum((gk.price-gk.nds)*gd.quant)-sum((gd.price-gd.nds)*gd.quant),
 w.knk
 from dgvdt d
 join storlist s on s.id=d.stor and d.stor in (select sg.storid from storgrpref sg where
 sg.grpid = :grpstorid)
 join gdddt gd on gd.dgvkey=d.id
 join gddkt gk on gd.gddkey = gk.id
 join goods g on g.id = gk.gdskey
 join workmain w on g.id = w.godsid
 where d.out_date >=:bcdate and d.out_date<=:ecdate
 and d.typ in(0,10)
 group by g.id, g.name, w.knk
 having sum((gk.price-gk.nds)*gd.quant)-sum((gd.price-gd.nds)*gd.quant) > 0.0
 into :ksumma, :dsumma, :gid, :gname, :delta, :knk
 do begin
 suspend;
 end
 end
 end

Issue History

Date Modified Username Field Change
2015-03-10 15:15 ruslan New Issue
2015-04-02 12:56 ruslan Priority normal => urgent
2015-04-02 12:58 ruslan Note Added: 0001973
2015-04-24 12:36 ruslan Note Added: 0001989
2015-04-29 18:26 barry Status new => resolved
2015-04-29 18:26 barry Resolution open => fixed
2015-04-29 18:26 barry Assigned To => barry
2015-05-14 11:45 ruslan Status resolved => closed