Входные параметры
Параметр | Тип | Описание |
---|---|---|
ISCURRENT |
INTEGER |
|
PARTYDATE |
DATE |
|
BEGINDATE |
DATE |
|
ENDDATE |
DATE |
|
AOWNERID |
INTEGER |
|
ATRANSPORTSUBTYPE |
INTEGER |
|
ACROPID |
INTEGER |
|
ACLASSID |
INTEGER |
|
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
INVOICEDATE |
DATE |
|
INVOICENUMBER |
VARCHAR(31) |
|
OWNERNAME |
VARCHAR(30) |
|
CROPFULLNAME |
VARCHAR(110) |
|
TRANSPORTNUMBER |
VARCHAR(64) |
|
TRTYPE |
VARCHAR(5) |
|
NET |
BIGINT |
|
WEIGHT |
BIGINT |
|
INVOICENET |
BIGINT |
|
INVOICEID |
INTEGER |
|
HUMIDITY |
NUMERIC(5,2) |
|
DIRT |
NUMERIC(5,2) |
|
SCREENING |
NUMERIC(5,2) |
|
PROTEIN |
NUMERIC(5,2) |
|
GRAINUNIT |
NUMERIC(5,2) |
|
ENTERPRISENAME |
VARCHAR(255) |
|
PARTYID |
INTEGER |
|
Описание
(Нет описания для процедуры ACC_INCOME_PROD_ADDON)
Определение
CREATE PROCEDURE ACC_INCOME_PROD_ADDON(
ISCURRENT INTEGER,
PARTYDATE DATE,
BEGINDATE DATE,
ENDDATE DATE,
AOWNERID INTEGER,
ATRANSPORTSUBTYPE INTEGER,
ACROPID INTEGER,
ACLASSID INTEGER)
RETURNS (
INVOICEDATE DATE,
INVOICENUMBER VARCHAR(31),
OWNERNAME VARCHAR(30),
CROPFULLNAME VARCHAR(110),
TRANSPORTNUMBER VARCHAR(64),
TRTYPE VARCHAR(5),
NET BIGINT,
WEIGHT BIGINT,
INVOICENET BIGINT,
INVOICEID INTEGER,
HUMIDITY NUMERIC(5,2),
DIRT NUMERIC(5,2),
SCREENING NUMERIC(5,2),
PROTEIN NUMERIC(5,2),
GRAINUNIT NUMERIC(5,2),
ENTERPRISENAME VARCHAR(255),
PARTYID INTEGER)
AS
declare variable TEMPNUMBER varchar(31);
begin
for
select
ITMAIN.INVOICEID, INVOICES.INVOICEDATE, INVOICES.INVOICENUMBER,
OWNER.CLIENTNAME OWNERNAME,
case TRANSPORTTYPE.TRANSPORTSUBTYPE
when 0 then
'авто'
else 'ж/д'
end,
QUALITY_SELECT.HUMIDITY, QUALITY_SELECT.DIRT,
case
when (CROP.CROPTYPEID <> 5) then
QUALITY_SELECT.SCREENING
else QUALITY_SELECT.OILSEED
end SCREENING,
QUALITY_SELECT.GRAINUNIT, QUALITY_SELECT.PROTEIN,
QUALITY_CROPFULLNAME_BYID.CROPFULLNAME || ' (' || coalesce(cast(YEARGR.QUALITYVALUE as integer), '') || ') ' CROPFULLNAME,
sum(ITTRANSPORT.INVOICENET) INVOICENET, sum(ITMAIN.NET) NET, sum(ITMAIN.WEIGHT) WEIGHT,
ENTERPRISE.ENTERPRISENAME, ITMAIN.PARTYID
from IT ITMAIN
join GETWORKPARTIES(:ISCURRENT, :PARTYDATE, null, null, null) on (GETWORKPARTIES.PARTYID = ITMAIN.PARTYID)
left join CLIENTS OWNER on (OWNER.CLIENTID = ITMAIN.OWNERID)
left join QUALITYDATA YEARGR on ((YEARGR.QUALITYID = ITMAIN.BUHQUALITYID) and (YEARGR.QUALITYTYPEID = 6))
left join INVOICES on (INVOICES.INVOICEID = ITMAIN.INVOICEID)
left join QUALITY_SELECT(ITMAIN.BUHQUALITYID) on (0 = 0)
left join CROP on (CROP.CROPID = QUALITY_SELECT.CROPID)
left join QUALITY_CROPFULLNAME_BYID(ITMAIN.BUHQUALITYID, 0) on (0=0)
left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = ITMAIN.INVENTORYID)
left join TRANSPORTTYPE on (TRANSPORTTYPE.TRANSPORTTYPEID = ITTRANSPORT.TRANSPORTTYPEID)
left join ENTERPRISE(ITMAIN.STORAGEID) on (0 = 0)
where (ITMAIN.REGDATE between :BEGINDATE and :ENDDATE)
and (ITMAIN.OPERATIONID = 1)
and ((ITMAIN.OWNERID = :AOWNERID) or (coalesce(:AOWNERID, -1) = -1))
and ((TRANSPORTTYPE.TRANSPORTSUBTYPE = :ATRANSPORTSUBTYPE) or (coalesce(:ATRANSPORTSUBTYPE, -1) = -1))
and ((QUALITY_SELECT.CROPID = :ACROPID) or (coalesce(:ACROPID, -1) = -1))
and ((QUALITY_SELECT.CLASSID = :ACLASSID) or (coalesce(:ACLASSID, -1) = -1))
and ((ITMAIN.STATE >= 0) and (ITMAIN.PARENTID <> -1))
and ((ITMAIN.NET is not null) and (ITMAIN.NET <> 0))
group by OWNER.CLIENTNAME, QUALITY_CROPFULLNAME_BYID.CROPFULLNAME,
TRANSPORTTYPE.TRANSPORTSUBTYPE, YEARGR.QUALITYVALUE, INVOICES.INVOICEDATE,
INVOICES.INVOICENUMBER, QUALITY_SELECT.HUMIDITY, QUALITY_SELECT.DIRT,
SCREENING, QUALITY_SELECT.GRAINUNIT, QUALITY_SELECT.PROTEIN,
ITTRANSPORT.TRANSPORTNUMBER, ITMAIN.INVOICEID, ENTERPRISE.ENTERPRISENAME,
ITMAIN.PARTYID
into :INVOICEID, :INVOICEDATE, :INVOICENUMBER, :OWNERNAME, :TRTYPE,
:HUMIDITY, :DIRT, :SCREENING, :GRAINUNIT, :PROTEIN, :CROPFULLNAME,
:INVOICENET, :NET, :WEIGHT, :ENTERPRISENAME, :PARTYID
do begin
TRANSPORTNUMBER = '';
for
select ITTRANSPORT.TRANSPORTNUMBER
from IT
left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT.INVENTORYID)
where (IT.INVOICEID = :INVOICEID)
and ((IT.OPERATIONID = 1) and (IT.STATE <> -1))
into :TEMPNUMBER
do begin
TRANSPORTNUMBER = TRANSPORTNUMBER || ' ' || :TEMPNUMBER;
end
suspend;
end
end