Входные параметры
Параметр | Тип | Описание |
---|---|---|
OWNERID |
INTEGER |
|
STORINGID |
INTEGER |
|
CONTRACTID |
INTEGER |
|
STORAGEID |
INTEGER |
|
CLASSID |
INTEGER |
|
DATE1 |
DATE |
|
PARTY_ID |
INTEGER |
|
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
RESULT |
NUMERIC(18,0) |
|
Описание
(Нет описания для процедуры COMMONSTORINGREMINDER)
Определение
CREATE PROCEDURE COMMONSTORINGREMINDER(
OWNERID INTEGER,
STORINGID INTEGER,
CONTRACTID INTEGER,
STORAGEID INTEGER,
CLASSID INTEGER,
DATE1 DATE,
PARTY_ID INTEGER)
RETURNS (
RESULT NUMERIC(18,0))
AS
DECLARE VARIABLE WEIGHT NUMERIC(18,0);
DECLARE VARIABLE STARTDATE DATE;
DECLARE VARIABLE INCOME NUMERIC(18,0);
DECLARE VARIABLE OUTCOME NUMERIC(18,0);
DECLARE VARIABLE INCOMEBEFORE NUMERIC(18,0);
DECLARE VARIABLE OUTCOMEBEFORE NUMERIC(18,0);
BEGIN
income = 0 ;
outcome = 0;
select parties.begindate from parties where partyid = :party_id
into :startdate;
SELECT SUM( IT.NET )
FROM IT
LEFT OUTER JOIN OPERATION ON (IT.OPERATIONID = OPERATION.OPERATIONID)
WHERE IT.RegDATE >= :startdate
and IT.LabQualityid in (select qualityid from quality where classid = :classid)
and (IT.Storingid = :storingid or :storingid=0)
and IT.Partyid = :party_id
and IT.Ownerid = :ownerid
and (IT.storageid = :storageid or :storageid = 0)
and it.state >= 0
and it.parentid >= 0
and (IT.contractid = :contractid or :contractid=0)
and operation.operationsubtype = 3
INTO :result;
if (:result is null) then result = 0;
SELECT SUM( IT.NET )
FROM IT
LEFT OUTER JOIN OPERATION ON (IT.OPERATIONID = OPERATION.OPERATIONID)
WHERE IT.RegDATE = :startdate
and IT.LabQualityid in (select qualityid from quality where classid = :classid)
and (IT.Storingid = :storingid or :storingid=0)
and IT.Partyid = :party_id
and IT.Ownerid = :ownerid
and (IT.storageid = :storageid or :storageid = 0)
and it.state >= 0
and it.parentid >= 0
and (IT.contractid = :contractid or :contractid=0)
and operation.operationsubtype = 0
INTO :incomebefore;
if (:incomebefore is null) then
incomebefore = 0;
SELECT SUM( IT.NET )
FROM IT
LEFT OUTER JOIN OPERATION ON (IT.OPERATIONID = OPERATION.OPERATIONID)
WHERE IT.RegDATE = :startdate
and IT.LabQualityid in (select qualityid from quality where classid = :classid)
and (IT.Storingid = :storingid or :storingid=0)
and it.state >= 0
and it.parentid >= 0
and IT.Partyid = :party_id
and IT.Ownerid = :ownerid
and (IT.storageid = :storageid or :storageid = 0)
and (IT.contractid = :contractid or :contractid=0)
and operation.operationsubtype = 1
INTO :outcomebefore;
if (:outcomebefore is null) then
outcomebefore = 0;
while (:startdate <= :date1) do begin
SELECT SUM( IT.NET )
FROM IT
LEFT OUTER JOIN OPERATION ON (IT.OPERATIONID = OPERATION.OPERATIONID)
WHERE IT.RegDATE = :startdate
and IT.LabQualityid in (select qualityid from quality where classid = :classid)
and (IT.Storingid = :storingid or :storingid=0)
and IT.Partyid = :party_id
and IT.Ownerid = :ownerid
and (IT.storageid = :storageid or :storageid = 0)
and it.state >=0
and it.parentid >= 0
and (IT.contractid = :contractid or :contractid=0)
and operation.operationsubtype = 0
INTO :weight;
if (:weight is not null) then
income = :income + :weight;
SELECT SUM( IT.NET )
FROM IT
LEFT OUTER JOIN OPERATION ON (IT.OPERATIONID = OPERATION.OPERATIONID)
WHERE IT.RegDATE = :startdate
and IT.LabQualityid in (select qualityid from quality where classid = :classid)
and (IT.Storingid = :storingid or :storingid=0)
and it.state >= 0
and it.parentid >= 0
and IT.Partyid = :party_id
and IT.Ownerid = :ownerid
and (IT.storageid = :storageid or :storageid = 0)
and (IT.contractid = :contractid or :contractid=0)
and operation.operationsubtype = 1
INTO :weight;
if (:weight is not null) then
outcome = :outcome + :weight;
startdate = :startdate + 1;
result = :result + (:income - :outcome);
end
result = :result - (:incomebefore - :outcomebefore);
SUSPEND;
END