Входные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
ADATE  | 
    TIMESTAMP  | 
    
  | 
  
AOPERATION  | 
    INTEGER  | 
    
  | 
  
NEWQUALITYID  | 
    INTEGER  | 
    
  | 
  
OLDQUALITYID  | 
    INTEGER  | 
    
  | 
  
INVENTORYID  | 
    INTEGER  | 
    
  | 
  
INVOICEID  | 
    INTEGER  | 
    
  | 
  
SENDERQUALITYID  | 
    INTEGER  | 
    
  | 
  
COPYSENDERQUALITY  | 
    INTEGER  | 
    
  | 
  
Выходные параметры
(Нет выходных параметров)
Описание
(Нет описания для процедуры IT_SET_ANALYSIS_ID)
Определение
CREATE PROCEDURE IT_SET_ANALYSIS_ID(
    ADATE TIMESTAMP,
    AOPERATION INTEGER,
    NEWQUALITYID INTEGER,
    OLDQUALITYID INTEGER,
    INVENTORYID INTEGER,
    INVOICEID INTEGER,
    SENDERQUALITYID INTEGER,
    COPYSENDERQUALITY INTEGER)
AS
begin
-- COPYSENDERQUALITY: 1 - копировать 0 - не копировать
  if (:AOPERATION not in (7,45)) then begin --in (1, 5, 12, 29, 30, 31, 54, 10, 22)
    if (:OLDQUALITYID is null) then begin
      update IT
      set LABQUALITYID = :NEWQUALITYID
      where (INVENTORYID = :INVENTORYID);
      if (:COPYSENDERQUALITY = 1) then
        update ITTRANSPORT
        set SENDERQUALITYID = :SENDERQUALITYID
        where (INVENTORYID = :INVENTORYID);
    end
    else begin
      update IT
      set LABQUALITYID = :NEWQUALITYID
      where (OPERATIONID = :AOPERATION) and (REGDATE = :ADATE) and (LABQUALITYID = :OLDQUALITYID);
    end
    update UWOUTACTS
    set AFTERQUALITYID = :NEWQUALITYID
    where (INVOICEID = :INVOICEID);
  end
  if (:AOPERATION = 7) then begin
    if (:OLDQUALITYID is null) then
      update UWOUTACTS
      set AFTERQUALITYID = :NEWQUALITYID
      where (INVOICEID = :INVOICEID);
    else
      update UWOUTACTS
      set AFTERQUALITYID = :NEWQUALITYID
      where (REGDATE = :ADATE) and (AFTERQUALITYID = :OLDQUALITYID);
  end
  if (:AOPERATION = 45) then begin --in (45)
    if (:OLDQUALITYID is null) then begin
      update IT
      set LABQUALITYID = :NEWQUALITYID
      where (INVENTORYID = :INVENTORYID);
      if (:COPYSENDERQUALITY = 1) then
        update ITTRANSPORT
        set SENDERQUALITYID = :SENDERQUALITYID
        where (INVENTORYID = :INVENTORYID);
    end
    else begin
      update IT
      set LABQUALITYID = :NEWQUALITYID
      where (OPERATIONID in (45,46)) and (REGDATE = :ADATE) and (LABQUALITYID = :OLDQUALITYID);
    end
  end
END
         
         
         
       |