Входные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
BEGDATE  | 
    DATE  | 
    
  | 
  
ENDDATE  | 
    DATE  | 
    
  | 
  
OPERATIONID  | 
    INTEGER  | 
    
  | 
  
Выходные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
REGDATE  | 
    DATE  | 
    
  | 
  
INVOICEID  | 
    INTEGER  | 
    
  | 
  
INVOICENUMBER  | 
    VARCHAR(31)  | 
    
  | 
  
CLASSID  | 
    INTEGER  | 
    
  | 
  
CROPID  | 
    INTEGER  | 
    
  | 
  
SORTID  | 
    INTEGER  | 
    
  | 
  
CROPCLASSNAME  | 
    VARCHAR(150)  | 
    
  | 
  
CLIENTID  | 
    INTEGER  | 
    
  | 
  
CLIENTFULLNAME  | 
    VARCHAR(150)  | 
    
  | 
  
NET  | 
    INTEGER  | 
    
  | 
  
CHECKPOINTINTIME  | 
    TIMESTAMP  | 
    
  | 
  
CHECKPOINTOUTTIME  | 
    TIMESTAMP  | 
    
  | 
  
TRANSPORTTYPEID  | 
    INTEGER  | 
    
  | 
  
TRANSPORTNUMBER  | 
    VARCHAR(30)  | 
    
  | 
  
DRIVERS  | 
    VARCHAR(30)  | 
    
  | 
  
BARCODE  | 
    VARCHAR(30)  | 
    
  | 
  
INVENTORYID  | 
    INTEGER  | 
    
  | 
  
STATE  | 
    INTEGER  | 
    
  | 
  
LABQUALITYID  | 
    INTEGER  | 
    
  | 
  
SESSION  | 
    INTEGER  | 
    
  | 
  
SAMPLERQUALITYID  | 
    INTEGER  | 
    
  | 
  
WEIGHTNUMBER  | 
    INTEGER  | 
    
  | 
  
Описание
(Нет описания для процедуры CHECKPOINT_JOURNAL)
Определение
CREATE PROCEDURE CHECKPOINT_JOURNAL(
    BEGDATE DATE,
    ENDDATE DATE,
    OPERATIONID INTEGER)
RETURNS (
    REGDATE DATE,
    INVOICEID INTEGER,
    INVOICENUMBER VARCHAR(31),
    CLASSID INTEGER,
    CROPID INTEGER,
    SORTID INTEGER,
    CROPCLASSNAME VARCHAR(150),
    CLIENTID INTEGER,
    CLIENTFULLNAME VARCHAR(150),
    NET INTEGER,
    CHECKPOINTINTIME TIMESTAMP,
    CHECKPOINTOUTTIME TIMESTAMP,
    TRANSPORTTYPEID INTEGER,
    TRANSPORTNUMBER VARCHAR(30),
    DRIVERS VARCHAR(30),
    BARCODE VARCHAR(30),
    INVENTORYID INTEGER,
    STATE INTEGER,
    LABQUALITYID INTEGER,
    SESSION INTEGER,
    SAMPLERQUALITYID INTEGER,
    WEIGHTNUMBER INTEGER)
AS
declare variable AINVOICEID integer;
begin
  for
    select IT.INVOICEID, INVOICES.INVOICENUMBER, INVOICES.DRIVERS,
        QUALITY.CROPID, QUALITY.CLASSID, QUALITY.SORTID,
        CLIENTS.CLIENTNAME, CLIENTS.CLIENTID, IT.NET,
        coalesce(ITTRANSPORT.CHECKPOINTINTIME, IT.GROSSTIME),
        coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME),
        IT.INVENTORYID, ITTRANSPORT.TRANSPORTTYPEID,
        ITTRANSPORT.TRANSPORTNUMBER, ITTRANSPORT.BARCODE, IT.STATE,
        QUALITY_CROPFULLNAME.CROPFULLNAME, IT.LABQUALITYID, IT.REGDATE,
        ITTRANSPORT.CHECKPOINTSESSION, IT.SAMPLERQUALITYID, IT.WEIGHTNUMBER
      from IT
        left join QUALITY on (QUALITY.QUALITYID = IT.SAMPLERQUALITYID)
        left join QUALITY_CROPFULLNAME(QUALITY.CROPID, QUALITY.CLASSID, QUALITY.SORTID, 1) on (0 = 0)
        left join CROPSORT on (CROPSORT.SORTID = QUALITY.SORTID)
        left join INVOICES on (INVOICES.INVOICEID = IT.INVOICEID)
        left join CLIENTS on (CLIENTS.CLIENTID = IT.PROVIDERID)
        left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT.INVENTORYID)
      where (((((IT.REGDATE between :BEGDATE and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is not null))
               or ((IT.REGDATE between :BEGDATE - 10 and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is null)))
              and (IT.STATE >= 0))
             or ((((IT.REGDATE between :BEGDATE and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is not null))
               or ((IT.REGDATE between :BEGDATE - 10 and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is null)))
              and (IT.STATE = -5))
             or ((IT.REGDATE between :BEGDATE and :ENDDATE) and (IT.STATE = -3)))
        and (IT.OPERATIONID = :OPERATIONID) and (ITTRANSPORT.TRANSPORTTYPEID < 2) and (IT.PARENTID <= 0)
    order by IT.REGDATE, IT.INVOICEID, ITTRANSPORT.TRANSPORTTYPEID, IT.INVENTORYID
    into :INVOICEID, :INVOICENUMBER, :DRIVERS, :CROPID, :CLASSID, :SORTID,
        :CLIENTFULLNAME, :CLIENTID, :NET, :CHECKPOINTINTIME, :CHECKPOINTOUTTIME,
        :INVENTORYID, :TRANSPORTTYPEID, :TRANSPORTNUMBER, :BARCODE, :STATE,
        :CROPCLASSNAME, :LABQUALITYID, :REGDATE, :SESSION, :SAMPLERQUALITYID,
        :WEIGHTNUMBER
  do
    if (STATE = -5) then begin
      select IT.INVOICEID
        from IT
          left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT.INVENTORYID)
        where ((((IT.REGDATE between :BEGDATE and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is not null))
                or ((IT.REGDATE between :BEGDATE - 10 and :ENDDATE) and (coalesce(ITTRANSPORT.CHECKPOINTOUTTIME, IT.TARETIME) is null)))
               and (IT.STATE >= 0))
          and (IT.INVOICEID = :INVOICEID)
      into :AINVOICEID;
      if (AINVOICEID is not null) then
        suspend;
    end
    else suspend;
end
         
         
         
       |