Входные параметры
Параметр | Тип | Описание |
---|---|---|
INVENTORYID |
INTEGER |
|
PARTYID |
INTEGER |
|
REGDATE |
DATE |
|
OPERATIONID |
INTEGER |
|
INVOICEID |
INTEGER |
|
ORDERLOADITEMID |
INTEGER |
|
OWNERID |
INTEGER |
|
PROVIDERID |
INTEGER |
|
SAMPLERQUALITYID |
INTEGER |
|
STORAGEID |
INTEGER |
|
CONTRACTID |
INTEGER |
|
STATE |
INTEGER |
|
BARCODE |
VARCHAR(31) |
|
TRANSPORTTYPEID |
INTEGER |
|
TRANSPORTNUMBER |
VARCHAR(31) |
|
CHECKPOINTINTIME |
TIMESTAMP |
|
CHECKPOINTOUTTIME |
TIMESTAMP |
|
INVOICEGROSS |
INTEGER |
|
INVOICETARE |
INTEGER |
|
INVOICENET |
INTEGER |
|
CHECKPOINTSESSION |
INTEGER |
|
Выходные параметры
(Нет выходных параметров)
Описание
(Нет описания для процедуры CHECKPOINT_UPDATE)
Определение
CREATE PROCEDURE CHECKPOINT_UPDATE(
INVENTORYID INTEGER,
PARTYID INTEGER,
REGDATE DATE,
OPERATIONID INTEGER,
INVOICEID INTEGER,
ORDERLOADITEMID INTEGER,
OWNERID INTEGER,
PROVIDERID INTEGER,
SAMPLERQUALITYID INTEGER,
STORAGEID INTEGER,
CONTRACTID INTEGER,
STATE INTEGER,
BARCODE VARCHAR(31),
TRANSPORTTYPEID INTEGER,
TRANSPORTNUMBER VARCHAR(31),
CHECKPOINTINTIME TIMESTAMP,
CHECKPOINTOUTTIME TIMESTAMP,
INVOICEGROSS INTEGER,
INVOICETARE INTEGER,
INVOICENET INTEGER,
CHECKPOINTSESSION INTEGER)
AS
declare variable ABARCODE varchar(31);
begin
if (not exists (select INVENTORYID from ITTRANSPORT where INVENTORYID = :INVENTORYID)) then begin
/*
if ((select bin_and(coalesce(ENVIRONMENTOPTIONS.BARCODE,0),32) from ENVIRONMENTOPTIONS) = 0) then begin
BARCODE = '';
BARCODE = cast(INVENTORYID as varchar(31));
while (char_length(:BARCODE) < 8) do
BARCODE = '0' || BARCODE;
select cast(cast(trunc(rand() * 9999) as integer) as varchar(31))
from rdb$database
into :ABARCODE;
BARCODE = ABARCODE || BARCODE;
while (char_length(:BARCODE) < 12) do
BARCODE = '0' || BARCODE;
end
*/
insert into ITTRANSPORT (INVENTORYID, BARCODE, TRANSPORTTYPEID, TRANSPORTNUMBER,
CHECKPOINTINTIME, CHECKPOINTOUTTIME, INVOICEGROSS, INVOICETARE, INVOICENET, CHECKPOINTSESSION)
values (:INVENTORYID, :BARCODE, :TRANSPORTTYPEID, :TRANSPORTNUMBER, :CHECKPOINTINTIME,
:CHECKPOINTOUTTIME, :INVOICEGROSS, :INVOICETARE, :INVOICENET, :CHECKPOINTSESSION);
/*
update ITTRANSPORT
set BARCODE = :BARCODE
where (INVENTORYID = :INVENTORYID);
*/
end
else begin
update ITTRANSPORT
set BARCODE = :BARCODE,
TRANSPORTTYPEID = :TRANSPORTTYPEID,
TRANSPORTNUMBER = :TRANSPORTNUMBER,
CHECKPOINTINTIME = :CHECKPOINTINTIME,
CHECKPOINTOUTTIME = :CHECKPOINTOUTTIME,
INVOICEGROSS = :INVOICEGROSS,
INVOICETARE = :INVOICETARE,
INVOICENET = :INVOICENET,
CHECKPOINTSESSION = :CHECKPOINTSESSION
where (INVENTORYID = :INVENTORYID);
end
if (not exists (select INVENTORYID from IT where INVENTORYID = :INVENTORYID)) then
insert into IT (INVENTORYID, PARTYID, REGDATE, OPERATIONID, INVOICEID, ORDERLOADITEMID,
OWNERID, PROVIDERID, SAMPLERQUALITYID, STORAGEID, CONTRACTID, STATE)
values (:INVENTORYID, :PARTYID, :REGDATE, :OPERATIONID, :INVOICEID, :ORDERLOADITEMID,
:OWNERID, :PROVIDERID, :SAMPLERQUALITYID, :STORAGEID, :CONTRACTID, :STATE);
else
update IT
set PARTYID = :PARTYID,
REGDATE = :REGDATE,
OPERATIONID = :OPERATIONID,
INVOICEID = :INVOICEID,
ORDERLOADITEMID = :ORDERLOADITEMID,
OWNERID = :OWNERID,
PROVIDERID = :PROVIDERID,
SAMPLERQUALITYID = :SAMPLERQUALITYID,
STORAGEID = :STORAGEID,
CONTRACTID = :CONTRACTID,
STATE = :STATE
where (INVENTORYID = :INVENTORYID);
end