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

INQUIRYUPDATE

 

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

Параметр

Тип

Описание

INVOICEID

INTEGER

 

STATE

INTEGER

 

COMMENT

VARCHAR(250)

 

FROMOWNERID

INTEGER

 

TOOWNERID

INTEGER

 

FROMCONTRACTID

INTEGER

 

TOCONTRACTID

INTEGER

 

REGDATE

DATE

 

STORAGEID

INTEGER

 

STORINGID

INTEGER

 

PACKID

INTEGER

 

NET

INTEGER

 

FROMQUALITYID

INTEGER

 

TOQUALITYID

INTEGER

 

TRANSPORTTYPEID

INTEGER

 

 

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

(Нет выходных параметров)

 

Описание

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

 

Определение

CREATE PROCEDURE INQUIRYUPDATE(
    INVOICEID INTEGER,
    STATE INTEGER,
    COMMENT VARCHAR(250),
    FROMOWNERID INTEGER,
    TOOWNERID INTEGER,
    FROMCONTRACTID INTEGER,
    TOCONTRACTID INTEGER,
    REGDATE DATE,
    STORAGEID INTEGER,
    STORINGID INTEGER,
    PACKID INTEGER,
    NET INTEGER,
    FROMQUALITYID INTEGER,
    TOQUALITYID INTEGER,
    TRANSPORTTYPEID INTEGER)
AS
DECLARE VARIABLE FROMIT INTEGER;
DECLARE VARIABLE TOIT INTEGER;
DECLARE VARIABLE TEMP INTEGER;
begin

select first 1 it.inventoryid from it
where
  (it.invoiceid = :INVOICEID or (it.invoiceid is null)) and it.operationid in (49,51)
order by it.inventoryid
into
:FROMIT;

select first 1 it.inventoryid from it
where
  (it.invoiceid = :INVOICEID or (it.invoiceid is null)) and it.operationid in (50,53)
order by it.inventoryid desc
into
:toIT;

if (:STATE is null) then
state = 0;

update IT
set
  it.COMMENT = :COMMENT,
  it.CONTRACTID = :FROMCONTRACTID,
  it.NET = :NET,
  it.OWNERID = :FROMOWNERID,
  it.providerid = :TOOWNERID,
  it.REGDATE = :REGDATE,
  it.invoiceid = :INVOICEID,
  it.STATE = :STATE,
  it.STORAGEID = :STORAGEID,
  it.storingid = :STORINGID,
  it.packid = :PACKID,
  it.WEIGHT = :NET,
  it.labqualityid = :FROMQUALITYID,
  it.samplerqualityid = :FROMQUALITYID
where
it.inventoryid = :FROMIT;

if (:transporttypeid is not null) then
begin
  select ittransport.inventoryid from ittransport where
   ittransport.inventoryid = :FROMIT
  into :TEMP;

  if (:TEMP is null) then
    insert into ittransport (ittransport.inventoryid, ittransport.transporttypeid)
    values (:FROMIT, :transporttypeid);
  else
    update ittransport set
    ittransport.transporttypeid = :transporttypeid
  where
    ittransport.inventoryid = :FROMIT; --,:TOIT);
end

update IT
set
  it.COMMENT = :COMMENT,
  it.CONTRACTID = :TOCONTRACTID,
  it.NET = :NET*-1,
  it.OWNERID = :TOOWNERID,
  it.providerid = :FROMOWNERID,
  it.invoiceid = :INVOICEID,
  it.REGDATE = :REGDATE,
  it.STATE = :STATE,
  it.storingid = :STORINGID,
  it.packid = :PACKID,
--  it.transporttypeid = :transporttypeid,
  it.STORAGEID = :STORAGEID,
  it.WEIGHT = :NET*-1,
  it.labqualityid = :TOQUALITYID,
  it.samplerqualityid = :TOQUALITYID
where
  it.inventoryid = :TOIT;
end

 

     Previous topic Chapter index Next topic