"localhost:/firebird/data/ILICHEVSK2.FDB". ��������� Previous topic Chapter index Next topic

IT_MOVEGRAIN

 

������� ���������

��������

���

��������

REGDATE

DATE

 

OPERATIONID

INTEGER

 

INVOICEID

INTEGER

 

SOURCESILAGEPACKID

INTEGER

 

DESTSILAGEID

INTEGER

 

NET

INTEGER

 

GROSSTIME

TIMESTAMP

 

STATE

INTEGER

 

CLASSID

INTEGER

 

 

�������� ���������

��������

���

��������

INVENTORYID

INTEGER

 

RSLT_INVOICEID

INTEGER

 

QUALITYID

INTEGER

 

 

��������

(��� �������� ��� ��������� IT_MOVEGRAIN)

 

�����������

CREATE PROCEDURE IT_MOVEGRAIN(
    REGDATE DATE,
    OPERATIONID INTEGER,
    INVOICEID INTEGER,
    SOURCESILAGEPACKID INTEGER,
    DESTSILAGEID INTEGER,
    NET INTEGER,
    GROSSTIME TIMESTAMP,
    STATE INTEGER,
    CLASSID INTEGER)
RETURNS (
    INVENTORYID INTEGER,
    RSLT_INVOICEID INTEGER,
    QUALITYID INTEGER)
AS
declare variable SOURCESTORAGEID integer;
declare variable DESTSTORAGEID integer;
begin
  if (:OPERATIONID in (12,29,31,54,164)) then begin
    select SILAGEPACKS.STORAGEID, SILAGEQUALITY.QUALITYID
      from SILAGEPACKS
       left join SILAGEQUALITY on (SILAGEQUALITY.SILAGEQUALITYID = SILAGEPACKS.SILAGEQUALITYID)   -- added
       left join QUALITY on (QUALITY.QUALITYID = SILAGEQUALITY.QUALITYID) -- added
      where (SILAGEPACKS.SILAGEPACKID = :SOURCESILAGEPACKID)
        and (QUALITY.CLASSID = :CLASSID)         -- added
    into :SOURCESTORAGEID, :QUALITYID;

    select SILAGEPACKS.STORAGEID
      from SILAGE
        left join SILAGEPACKS on (SILAGEPACKS.SILAGEPACKID = SILAGE.SILAGEPACKID)
      where (SILAGE.SILAGEID = :DESTSILAGEID)
    into :DESTSTORAGEID;

    INVENTORYID = gen_id(INVENTORYIDGEN, 1);

    insert into IT (INVENTORYID, REGDATE, OPERATIONID, INVOICEID, NET, GROSSTIME, PROVIDERID, SAMPLERQUALITYID, SILAGEID, ROUTEID, STORAGEID, STATE)
      values (:INVENTORYID, :REGDATE, :OPERATIONID, :INVOICEID, :NET, :GROSSTIME,
              case
                when (:OPERATIONID = 164) then
                  null
                else :SOURCESTORAGEID
              end,
              :QUALITYID, :DESTSILAGEID,
              case
                when (:OPERATIONID = 164) then
                  null
                else :SOURCESILAGEPACKID
              end,
              :DESTSTORAGEID, :STATE);
  end
  else exception REPLACEOPERATIONNOTEXISTS;

  suspend;
end

 

     Previous topic Chapter index Next topic