Входные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
DATE1  | 
    DATE  | 
    
  | 
  
DATE2  | 
    DATE  | 
    
  | 
  
CROPID  | 
    INTEGER  | 
    
  | 
  
CLASSID  | 
    INTEGER  | 
    
  | 
  
SORTID  | 
    INTEGER  | 
    
  | 
  
STORAGEID  | 
    INTEGER  | 
    
  | 
  
STORINGID  | 
    INTEGER  | 
    
  | 
  
NOTSHOWDRYING  | 
    INTEGER  | 
    
  | 
  
ALWAYSSHOWUWACTS  | 
    INTEGER  | 
    
  | 
  
PARTYID  | 
    INTEGER  | 
    
  | 
  
NEWEDITION  | 
    INTEGER  | 
    
  | 
  
Выходные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
UWACTDATE  | 
    DATE  | 
    
  | 
  
UWACTN  | 
    VARCHAR(31)  | 
    
  | 
  
CLEARINGKIND  | 
    VARCHAR(254)  | 
    
  | 
  
NET  | 
    INTEGER  | 
    
  | 
  
BEFORECLEANWEIGHT  | 
    INTEGER  | 
    
  | 
  
BEFOREDRYINGWEIGHT  | 
    INTEGER  | 
    
  | 
  
POB  | 
    INTEGER  | 
    
  | 
  
FORAGE3C  | 
    INTEGER  | 
    
  | 
  
DRYINGWEIGHT  | 
    INTEGER  | 
    
  | 
  
WORKTYPE  | 
    INTEGER  | 
    
  | 
  
LINENUMBER  | 
    INTEGER  | 
    
  | 
  
Описание
(Нет описания для процедуры ACN_FORMA30_UWACT)
Определение
CREATE PROCEDURE ACN_FORMA30_UWACT(
    DATE1 DATE,
    DATE2 DATE,
    CROPID INTEGER,
    CLASSID INTEGER,
    SORTID INTEGER,
    STORAGEID INTEGER,
    STORINGID INTEGER,
    NOTSHOWDRYING INTEGER,
    ALWAYSSHOWUWACTS INTEGER,
    PARTYID INTEGER,
    NEWEDITION INTEGER)
RETURNS (
    UWACTDATE DATE,
    UWACTN VARCHAR(31),
    CLEARINGKIND VARCHAR(254),
    NET INTEGER,
    BEFORECLEANWEIGHT INTEGER,
    BEFOREDRYINGWEIGHT INTEGER,
    POB INTEGER,
    FORAGE3C INTEGER,
    DRYINGWEIGHT INTEGER,
    WORKTYPE INTEGER,
    LINENUMBER INTEGER)
AS
declare variable MAXLINENUMBER integer = 5;
begin
  LINENUMBER = 0;
  if (:NEWEDITION = 1) then
    MAXLINENUMBER = 3;
  for
    select
        UWACTS.UWACTDATE, cast(UWACTS.UWACTN as varchar(31)),
        case
          when (position('_', PATH.UWFULLNAME) > 0) then
            substring(PATH.UWFULLNAME from 1 for (position('_', PATH.UWFULLNAME) - 1))
          else PATH.UWFULLNAME
        end,
        UWORDERS.BEFORECLEANINGWEIGHT, UWORDERS.BEFORECLEANINGWEIGHT, 0,
        cast(coalesce(UWACTS.FORAGE_BY_PRODUCT_A,0) + coalesce(UWACTS.FORAGE_BY_PRODUCT_B,0) +
          coalesce(UWACTS.FORAGE1C_A,0) + coalesce(UWACTS.FORAGE1C_B,0) +
          coalesce(UWACTS.FORAGE2C,0) as integer),
        UWACTS.FORAGE3C, 0, 1
      from UWORDERS
        left join UWACTS on (UWACTS.UWORDERID = UWORDERS.UWORDERID)
        left join UWTYPES on (UWTYPES.UWTYPEID = UWORDERS.UWTYPEID)
        left join UWTYPES PATH on (PATH.UWTYPEID = UWORDERS.PATHID)
        left join QUALITY Q on (UWORDERS.BEFOREQUALITYID = Q.QUALITYID)
      where (UWORDERS.UWTYPEID in (1,2,3,34,90,91))
        and (UWACTS.UWACTDATE between :DATE1 and :DATE2)
        and (coalesce(UWORDERS.PARTYID,:PARTYID) = :PARTYID)
        and (UWORDERS.STATE >= 0)
        and (UWACTS.CLEAN > 0)
        and ((Q.CROPID = :CROPID) and ((Q.CLASSID = :CLASSID) or (coalesce(:CLASSID,-1) = -1)))
        and ((Q.SORTID = :SORTID) or (coalesce(:SORTID,-1) = -1))
        and (UWORDERS.STORAGEID = :STORAGEID)
        and ((UWORDERS.STORINGID = :STORINGID) or (coalesce(:STORINGID,-1) = -1))
    union
      select
          UWACTS.UWACTDATE, cast(UWACTS.UWACTN as varchar(31)),
          case
            when (position('_', PATH.UWFULLNAME) > 0) then
              substring(PATH.UWFULLNAME from (position('_', PATH.UWFULLNAME) + 1))
            else PATH.UWFULLNAME
          end,
          UWORDERS.BEFOREDRYINGWEIGHT, 0, UWORDERS.BEFOREDRYINGWEIGHT,
          0, 0, (UWORDERS.BEFOREDRYINGWEIGHT - UWACTS.AFTERDRYINGWEIGHT), 2
        from UWORDERS
          left join UWACTS on (UWACTS.UWORDERID = UWORDERS.UWORDERID)
          left join UWTYPES on (UWTYPES.UWTYPEID = UWORDERS.UWTYPEID)
          left join UWTYPES PATH on (PATH.UWTYPEID = UWORDERS.PATHID)
          left join QUALITY Q on (UWORDERS.BEFOREQUALITYID = Q.QUALITYID)
        where (UWORDERS.UWTYPEID in (1,2,3,5,34,90))
          and (UWACTS.UWACTDATE between :DATE1 and :DATE2)
          and (coalesce(UWORDERS.PARTYID,:PARTYID) = :PARTYID)
          and (UWORDERS.STATE >= 0)
          and ((UWACTS.DRYING > 0) and (:NOTSHOWDRYING = 0))
          and ((Q.CROPID = :CROPID) and ((Q.CLASSID = :CLASSID) or (coalesce(:CLASSID,-1) = -1)))
          and ((Q.SORTID = :SORTID) or (coalesce(:SORTID,-1) = -1))
          and (UWORDERS.STORAGEID = :STORAGEID)
          and ((UWORDERS.STORINGID = :STORINGID) or (coalesce(:STORINGID,-1) = -1))
     order by 1, 2, 10
    into :UWACTDATE, :UWACTN, :CLEARINGKIND,
          :NET, :BEFORECLEANWEIGHT, :BEFOREDRYINGWEIGHT,
          :POB, :FORAGE3C, :DRYINGWEIGHT, :WORKTYPE
  do begin
    LINENUMBER = :LINENUMBER + 1;
    suspend;
  end
  if ((:LINENUMBER < MAXLINENUMBER) and (:ALWAYSSHOWUWACTS < 2)) then begin
    UWACTDATE = null;
    UWACTN = null;
    CLEARINGKIND = null;
    NET = null;
    BEFORECLEANWEIGHT = null;
    BEFOREDRYINGWEIGHT = null;
    POB = null;
    FORAGE3C = null;
    DRYINGWEIGHT = null;
    WORKTYPE = null;
    while (:LINENUMBER < MAXLINENUMBER) do begin
      LINENUMBER = :LINENUMBER + 1;
      suspend;
    end
  end
end
         
         
         
       |