"localhost:/firebird/data/ILICHEVSK2.FDB". Процедуры Previous topic Chapter index Next topic

SAMPLER_ORDER_UNLOADING

 

Входные параметры

Параметр

Тип

Описание

INVENTORYID

INTEGER

 

 

Выходные параметры

Параметр

Тип

Описание

CROPNAME

VARCHAR(255)

 

GLUTEN

NUMERIC(9,2)

 

GLUTENQUALITY

NUMERIC(9,2)

 

HUMIDITY

NUMERIC(9,2)

 

DIRT

NUMERIC(9,2)

 

SCREENING

NUMERIC(9,2)

 

INFECTION

VARCHAR(255)

 

SILAGENAME

VARCHAR(30)

 

PLATFORMNAME

VARCHAR(30)

 

TRANSPORTNUMBER_CAR

VARCHAR(31)

 

TRANSPORTNUMBER_TRAILER

VARCHAR(31)

 

CLIENTNAME

VARCHAR(30)

 

NET

INTEGER

 

TARE

INTEGER

 

GROSS

INTEGER

 

 

Описание

(Нет описания для процедуры SAMPLER_ORDER_UNLOADING)

 

Определение

CREATE PROCEDURE SAMPLER_ORDER_UNLOADING(
    INVENTORYID INTEGER)
RETURNS (
    CROPNAME VARCHAR(255),
    GLUTEN NUMERIC(9,2),
    GLUTENQUALITY NUMERIC(9,2),
    HUMIDITY NUMERIC(9,2),
    DIRT NUMERIC(9,2),
    SCREENING NUMERIC(9,2),
    INFECTION VARCHAR(255),
    SILAGENAME VARCHAR(30),
    PLATFORMNAME VARCHAR(30),
    TRANSPORTNUMBER_CAR VARCHAR(31),
    TRANSPORTNUMBER_TRAILER VARCHAR(31),
    CLIENTNAME VARCHAR(30),
    NET INTEGER,
    TARE INTEGER,
    GROSS INTEGER)
AS
DECLARE VARIABLE TRANSPORTTYPEID INTEGER;
DECLARE VARIABLE INVOICEID INTEGER;
DECLARE VARIABLE ASILAGENAME VARCHAR(30);
DECLARE VARIABLE TRANSPORTNUMBER1 VARCHAR(31);
DECLARE VARIABLE TRANSPORTNUMBER2 VARCHAR(31);
DECLARE VARIABLE ANET INTEGER;
DECLARE VARIABLE ATARE INTEGER;
DECLARE VARIABLE AGROSS INTEGER;
begin
  select quality_cropfullname.cropfullname, q.gluten, q.glutenquality, q.humidity,
    q.dirt, q.screening, infection.selectvalue infection, silage.name silagename,
    platforms.platformname, ittransport.transportnumber, clients.clientname, ittransport.transporttypeid,
    IT.invoiceid, IT.net, IT.tare, IT.gross
  from IT
    left join ittransport on IT.inventoryid = ittransport.inventoryid
    left join quality_select(IT.samplerqualityid) q on 0=0
    left join quality_cropfullname(q.cropid, q.classid, q.sortid, 1) on 0=0
    left join quality_select_values(19, q.infectionid, 1) infection on 0=0
    left join silage on it.silageid = silage.silageid
    left join routechema on it.routeid = routechema.routechemaid
    left join platforms on platforms.platformid = routechema.platformid
    left join clients on it.ownerid = clients.clientid
  where IT.inventoryid = :inventoryid
  into :cropname, :gluten, :glutenquality, :humidity, :dirt, :screening, :infection,
       :silagename, :platformname, :transportnumber1, :clientname, :transporttypeid, :invoiceid,
       :net, :tare, :gross;

  select first 1 silage.name, IT.net, IT.tare, IT.gross, ittransport.transportnumber
  from it
    left join silage on it.silageid = silage.silageid
    left join ittransport on it.inventoryid = ittransport.inventoryid
  where it.invoiceid = :invoiceid and it.inventoryid <> :inventoryid
  into :asilagename, :anet, :atare, :agross, :transportnumber2;

  if (coalesce(:silagename, '') = coalesce(:asilagename, '')) then begin
    net = coalesce(:net, 0) + coalesce(:anet, 0);
    tare = coalesce(:tare, 0) + coalesce(:atare, 0);
    gross = coalesce(:gross, 0) + coalesce(:agross, 0);
    if (:transporttypeid = 0) then begin
      transportnumber_car = :transportnumber1;
      transportnumber_trailer = :transportnumber2;
    end
    else begin
      transportnumber_car = :transportnumber2;
      transportnumber_trailer = :transportnumber1;
    end
  end
  else begin
    if (:transporttypeid = 0) then transportnumber_car = :transportnumber1;
    else transportnumber_trailer = :transportnumber1;
  end
  suspend;
end

 

     Previous topic Chapter index Next topic