"localhost:/firebird/data/ILICHEVSK2.FDB". Процедуры Previous topic Chapter index Next topic

WEIGHER

 

Входные параметры

Параметр

Тип

Описание

REGDATEB

DATE

 

REGDATEE

DATE

 

OPERATIONID

INTEGER

 

STORAGEIN

VARCHAR(50)

 

TRANSPORTSUBTYPE

INTEGER

 

DELETEDRECORDSSHOW

INTEGER

 

NOTWEIGHTEDSHOW

INTEGER

 

REMOTERECORDSSHOW

INTEGER

 

 

Выходные параметры

Параметр

Тип

Описание

REGDATE

DATE

 

GROSS

INTEGER

 

TARE

INTEGER

 

NET

INTEGER

 

INVOICEID

INTEGER

 

INVOICENUMBER

VARCHAR(31)

 

INVOICEDATE

DATE

 

INVOICEGROSS

INTEGER

 

INVOICETARE

INTEGER

 

INVOICENET

INTEGER

 

DISCREPANCY

INTEGER

 

STATIONID

INTEGER

 

CLIENTID

INTEGER

 

CLIENTNAME

VARCHAR(100)

 

OWNERID

INTEGER

 

OWNERNAME

VARCHAR(100)

 

SENDERID

INTEGER

 

SENDERNAME

VARCHAR(100)

 

DRIVERS

VARCHAR(30)

 

ORDERLOADID

INTEGER

 

CONTRACTID

INTEGER

 

CARINVOICEGROSS

INTEGER

 

CARINVOICETARE

INTEGER

 

CARINVOICENET

INTEGER

 

TRAILERINVOICEGROSS

INTEGER

 

TRAILERINVOICETARE

INTEGER

 

TRAILERINVOICENET

INTEGER

 

CARINVENTORYID

INTEGER

 

TRAILERINVENTORYID

INTEGER

 

CARNUMBER

VARCHAR(31)

 

TRAILERNUMBER

VARCHAR(31)

 

TRANSPORTNUMBER

VARCHAR(62)

 

CARSAMPLERQUALITYID

INTEGER

 

TRAILERSAMPLERQUALITYID

INTEGER

 

CARORDERLOADITEMID

INTEGER

 

TRAILERORDERLOADITEMID

INTEGER

 

CARCROPID

INTEGER

 

CARCLASSID

INTEGER

 

CARSORTID

INTEGER

 

TRAILERCROPID

INTEGER

 

TRAILERCLASSID

INTEGER

 

TRAILERSORTID

INTEGER

 

CARCROP

VARCHAR(150)

 

TRAILERCROP

VARCHAR(150)

 

CROPM

VARCHAR(300)

 

CARGROSS

INTEGER

 

TRAILERGROSS

INTEGER

 

CARTARE

INTEGER

 

TRAILERTARE

INTEGER

 

CARNET

INTEGER

 

TRAILERNET

INTEGER

 

CARWEIGHT

INTEGER

 

TRAILERWEIGHT

INTEGER

 

WEIGHT

INTEGER

 

CARSTORAGEID

INTEGER

 

TRAILERSTORAGEID

INTEGER

 

CARROUTEID

INTEGER

 

TRAILERROUTEID

INTEGER

 

STORAGENAME

VARCHAR(120)

 

CARSTORAGENAME

VARCHAR(60)

 

TRAILERSTORAGENAME

VARCHAR(60)

 

CARSILAGEID

INTEGER

 

TRAILERSILAGEID

INTEGER

 

SILAGENAME

VARCHAR(60)

 

CARSILAGENAME

VARCHAR(30)

 

TRAILERSILAGENAME

VARCHAR(30)

 

CARWEIGHTNUMBER

INTEGER

 

TRAILERWEIGHTNUMBER

INTEGER

 

WEIGHTNUMBERN

INTEGER

 

CARBARCODE

VARCHAR(30)

 

TRAILERBARCODE

VARCHAR(30)

 

CARSTATE

INTEGER

 

TRAILERSTATE

INTEGER

 

CARTRANSPORTTYPEID

INTEGER

 

TRAILERTRANSPORTTYPEID

INTEGER

 

CARGROSSTIME

TIMESTAMP

 

CARTARETIME

TIMESTAMP

 

TRAILERGROSSTIME

TIMESTAMP

 

TRAILERTARETIME

TIMESTAMP

 

CARGROSSBYHAND

INTEGER

 

CARTAREBYHAND

INTEGER

 

TRAILERGROSSBYHAND

INTEGER

 

TRAILERTAREBYHAND

INTEGER

 

CARLABQUALITYID

INTEGER

 

TRAILERLABQUALITYID

INTEGER

 

WEIGHTUSERID

INTEGER

 

PARENTID

INTEGER

 

DELETION

INTEGER

 

WASTEACTNUMBER

INTEGER

 

SHIFT

INTEGER

 

FORWARDERID

INTEGER

 

EXPORTERID

INTEGER

 

 

Описание

(Нет описания для процедуры WEIGHER)

 

Определение

CREATE PROCEDURE WEIGHER(
    REGDATEB DATE,
    REGDATEE DATE,
    OPERATIONID INTEGER,
    STORAGEIN VARCHAR(50),
    TRANSPORTSUBTYPE INTEGER,
    DELETEDRECORDSSHOW INTEGER,
    NOTWEIGHTEDSHOW INTEGER,
    REMOTERECORDSSHOW INTEGER)
RETURNS (
    REGDATE DATE,
    GROSS INTEGER,
    TARE INTEGER,
    NET INTEGER,
    INVOICEID INTEGER,
    INVOICENUMBER VARCHAR(31),
    INVOICEDATE DATE,
    INVOICEGROSS INTEGER,
    INVOICETARE INTEGER,
    INVOICENET INTEGER,
    DISCREPANCY INTEGER,
    STATIONID INTEGER,
    CLIENTID INTEGER,
    CLIENTNAME VARCHAR(100),
    OWNERID INTEGER,
    OWNERNAME VARCHAR(100),
    SENDERID INTEGER,
    SENDERNAME VARCHAR(100),
    DRIVERS VARCHAR(30),
    ORDERLOADID INTEGER,
    CONTRACTID INTEGER,
    CARINVOICEGROSS INTEGER,
    CARINVOICETARE INTEGER,
    CARINVOICENET INTEGER,
    TRAILERINVOICEGROSS INTEGER,
    TRAILERINVOICETARE INTEGER,
    TRAILERINVOICENET INTEGER,
    CARINVENTORYID INTEGER,
    TRAILERINVENTORYID INTEGER,
    CARNUMBER VARCHAR(31),
    TRAILERNUMBER VARCHAR(31),
    TRANSPORTNUMBER VARCHAR(62),
    CARSAMPLERQUALITYID INTEGER,
    TRAILERSAMPLERQUALITYID INTEGER,
    CARORDERLOADITEMID INTEGER,
    TRAILERORDERLOADITEMID INTEGER,
    CARCROPID INTEGER,
    CARCLASSID INTEGER,
    CARSORTID INTEGER,
    TRAILERCROPID INTEGER,
    TRAILERCLASSID INTEGER,
    TRAILERSORTID INTEGER,
    CARCROP VARCHAR(150),
    TRAILERCROP VARCHAR(150),
    CROPM VARCHAR(300),
    CARGROSS INTEGER,
    TRAILERGROSS INTEGER,
    CARTARE INTEGER,
    TRAILERTARE INTEGER,
    CARNET INTEGER,
    TRAILERNET INTEGER,
    CARWEIGHT INTEGER,
    TRAILERWEIGHT INTEGER,
    WEIGHT INTEGER,
    CARSTORAGEID INTEGER,
    TRAILERSTORAGEID INTEGER,
    CARROUTEID INTEGER,
    TRAILERROUTEID INTEGER,
    STORAGENAME VARCHAR(120),
    CARSTORAGENAME VARCHAR(60),
    TRAILERSTORAGENAME VARCHAR(60),
    CARSILAGEID INTEGER,
    TRAILERSILAGEID INTEGER,
    SILAGENAME VARCHAR(60),
    CARSILAGENAME VARCHAR(30),
    TRAILERSILAGENAME VARCHAR(30),
    CARWEIGHTNUMBER INTEGER,
    TRAILERWEIGHTNUMBER INTEGER,
    WEIGHTNUMBERN INTEGER,
    CARBARCODE VARCHAR(30),
    TRAILERBARCODE VARCHAR(30),
    CARSTATE INTEGER,
    TRAILERSTATE INTEGER,
    CARTRANSPORTTYPEID INTEGER,
    TRAILERTRANSPORTTYPEID INTEGER,
    CARGROSSTIME TIMESTAMP,
    CARTARETIME TIMESTAMP,
    TRAILERGROSSTIME TIMESTAMP,
    TRAILERTARETIME TIMESTAMP,
    CARGROSSBYHAND INTEGER,
    CARTAREBYHAND INTEGER,
    TRAILERGROSSBYHAND INTEGER,
    TRAILERTAREBYHAND INTEGER,
    CARLABQUALITYID INTEGER,
    TRAILERLABQUALITYID INTEGER,
    WEIGHTUSERID INTEGER,
    PARENTID INTEGER,
    DELETION INTEGER,
    WASTEACTNUMBER INTEGER,
    SHIFT INTEGER,
    FORWARDERID INTEGER,
    EXPORTERID INTEGER)
AS
declare variable AREGDATE date;
declare variable AINVOICEID integer;
declare variable AINVENTORYID integer;
declare variable APROVIDERID integer;
declare variable AOWNERID integer;
declare variable ATRANSPORTNUMBER varchar(31);
declare variable AORDERLOADITEMID integer;
declare variable ASAMPLERQUALITYID integer;
declare variable ALABQUALITYID integer;
declare variable ACLASSID integer;
declare variable ACROPNAME varchar(80);
declare variable AGROSS integer;
declare variable ATARE integer;
declare variable ANET integer;
declare variable AWEIGHT integer;
declare variable AGROSSTIME timestamp;
declare variable ATARETIME timestamp;
declare variable ASTORAGEID integer;
declare variable ASILAGEID integer;
declare variable AROUTEID integer;
declare variable ASTORINGID integer;
declare variable ASTORAGENAME varchar(60);
declare variable ASILAGENAME varchar(30);
declare variable AWEIGHTNUMBER integer;
declare variable ABARCODE varchar(30);
declare variable ASTATE integer;
declare variable ATRANSPORTTYPEID integer;
declare variable AINVOICEGROSS integer;
declare variable AINVOICETARE integer;
declare variable AINVOICENET integer;
declare variable AGROSSBYHAND smallint;
declare variable ATAREBYHAND smallint;
declare variable AWEIGHTUSERID integer;
declare variable APARENTID integer;
declare variable AUWORDERID integer;
declare variable ASTEP integer;
declare variable ARELATIONID integer;
declare variable ASHIFT integer;
begin
  /* Procedure Text */

  INVOICEID = -1;

  for

    execute statement
      'select cast(1 as integer), IT1.REGDATE, IT1.INVOICEID, IT1.INVENTORYID, IT1.RELATIONID,
           IT1.PROVIDERID, IT1.OWNERID, (IT1.GROSS - coalesce(ITTRANSPORT.SAMPLERWEIGHT,0)),
           IT1.TARE, (IT1.NET - coalesce(ITTRANSPORT.SAMPLERWEIGHT,0)), IT1.WEIGHT,
           IT1.GROSSTIME, IT1.TARETIME, IT1.CONTRACTID, IT1.ORDERLOADITEMID, IT1.SAMPLERQUALITYID,
           IT1.LABQUALITYID, IT1.STORAGEID, IT1.SILAGEID, IT1.ROUTEID, IT1.STORINGID,
           IT1.WEIGHTNUMBER, IT1.STATE, IT1.WEIGHTUSERID, IT1.PARENTID, IT1.UWORDERID,
           ITTRANSPORT.TRANSPORTNUMBER, ITTRANSPORT.BARCODE, ITTRANSPORT.TRANSPORTTYPEID,
           ITTRANSPORT.INVOICEGROSS, ITTRANSPORT.INVOICETARE, ITTRANSPORT.INVOICENET,
           ITTRANSPORT.GROSSBYHAND, ITTRANSPORT.TAREBYHAND, ITTRANSPORT.WEIGHTSESSION
         from IT IT1
             left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT1.INVENTORYID)
             left join TRANSPORTTYPE on (TRANSPORTTYPE.TRANSPORTTYPEID = ITTRANSPORT.TRANSPORTTYPEID)
             left join IT IT2 on (IT2.INVENTORYID = IT1.PARENTID)
           where (IT1.OPERATIONID = ' || cast(:OPERATIONID as varchar(5)) || ')
             and ((IT1.STORAGEID in (' || :STORAGEIN || ')) or (IT1.STORAGEID is null))
             and ((IT1.PARENTID <= 0) or ((IT1.PARENTID > 0) and (IT2.PARENTID = 0)))
             and (TRANSPORTTYPE.TRANSPORTSUBTYPE = ' || cast(:TRANSPORTSUBTYPE as varchar(5)) || ')
             and (((IT1.REGDATE between ''' || cast(coalesce((:REGDATEB - 7),'01.01.1900') as varchar(15)) || ''' and ''' || cast(coalesce(:REGDATEE,'31.12.9999') as varchar(15)) || ''')
                   and ((((IT1.STATE >= 0) or (IT1.STATE = -5))
                         and ((IT1.OPERATIONID not in (70,204))
                              or ((IT1.OPERATIONID in (70,204))
                                  and (IT1.REGDATE between ''' || cast(coalesce(:REGDATEB,'01.01.1900') as varchar(15)) || ''' and ''' || cast(coalesce(:REGDATEE,'31.12.9999') as varchar(15)) || '''))
                             )
                        )
                        or ((' || cast(:DELETEDRECORDSSHOW as varchar(5)) || ' = 1) and (IT1.STATE = -1)
                            and (IT1.REGDATE between ''' || cast(coalesce(:REGDATEB,'01.01.1900') as varchar(15)) || ''' and ''' || cast(coalesce(:REGDATEE,'31.12.9999') as varchar(15)) || ''')
                           )
                        or ((' || cast(:REMOTERECORDSSHOW as varchar(5)) || ' = 1) and (IT1.STATE = -3)
                            and (IT1.REGDATE between ''' || cast(coalesce(:REGDATEB,'01.01.1900') as varchar(15)) || ''' and ''' || cast(coalesce(:REGDATEE,'31.12.9999') as varchar(15)) || ''')
                           )
/*
                  or ((IT1.STATE = -100)
                      and (IT1.REGDATE between ''' || cast(coalesce((:REGDATEB - 120),'01.01.1900') as varchar(15)) || ''' and ''' || cast(coalesce(:REGDATEE,'31.12.9999') as varchar(15)) || ''')
                     )
*/
                       )
                  )
                 )
         union
           select cast(2 as integer), cast(null as date), cast(-1000000 as integer), cast(-1000000 as integer), cast(-1000000 as integer),
               cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer),
               cast(null as timestamp), cast(null as timestamp), cast(null as integer), cast(null as integer), cast(null as integer),
               cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer),
               cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer), cast(null as integer),
               cast(null as varchar(31)), cast(null as varchar(31)), cast(null as integer),
               cast(null as integer), cast(null as integer), cast(null as integer),
               cast(null as smallint), cast(null as smallint), cast(null as integer)
             from rdb$database
           order by 1, 3, 4, 22'
    into :ASTEP, :AREGDATE, :AINVOICEID, :AINVENTORYID, :ARELATIONID,
        :APROVIDERID, :AOWNERID, :AGROSS, :ATARE, :ANET, :AWEIGHT,
        :AGROSSTIME, :ATARETIME, :CONTRACTID, :AORDERLOADITEMID, :ASAMPLERQUALITYID,
        :ALABQUALITYID, :ASTORAGEID, :ASILAGEID, :AROUTEID, :ASTORINGID,
        :AWEIGHTNUMBER, :ASTATE, :AWEIGHTUSERID, :APARENTID, :AUWORDERID,
        :ATRANSPORTNUMBER, :ABARCODE, :ATRANSPORTTYPEID,
        :AINVOICEGROSS, :AINVOICETARE, :AINVOICENET,
        :AGROSSBYHAND, :ATAREBYHAND, :ASHIFT

  do begin
    if (INVOICEID <> AINVOICEID) then begin
      if (INVOICEID <> -1) then begin
        if (PARENTID <> -2) then begin
          if (((REGDATE between :REGDATEB and :REGDATEE) and
               (((NET > 0) or ((GROSS > 0) and (TARE > 0))) or (((CARSTATE is null) or (CARSTATE = -3)) and
                              ((TRAILERSTATE is null) or (TRAILERSTATE = -3)))) or
--                             (((CARSTATE is null) or (CARSTATE = -1) or (CARSTATE = -100)) and
                             (((CARSTATE is null) or (CARSTATE in (-1,-100))) and
--                              ((TRAILERSTATE is null) or (TRAILERSTATE = -1) or (TRAILERSTATE = -100)))) or
                              ((TRAILERSTATE is null) or (TRAILERSTATE in (-1,-100))))) or
              (((((((GROSS > 0) and (TARE = 0)) or ((TARE > 0) and (GROSS = 0))) and (NET = 0)) or
               ((GROSS = 0) and (TARE = 0) and (NET = 0) and ((CARSTATE >= 0) or (TRAILERSTATE >= 0)))) and
                (:NOTWEIGHTEDSHOW = 1)))) then begin
            select INVOICENUMBER, INVOICEDATE, STATIONID, DRIVERS,
                S1.CLIENTNAME, S2.CLIENTNAME, SENDERID, S3.CLIENTNAME,
                INVOICES.FORWARDERID, INVOICES.EXPORTERID
              from INVOICES
                 left join CLIENTS S1 on (S1.CLIENTID = coalesce(INVOICES.MANUFACTURERID,:CLIENTID))
                 left join CLIENTS S2 on (S2.CLIENTID = :OWNERID)
                 left join CLIENTS S3 on (S3.CLIENTID = INVOICES.SENDERID)
               where (INVOICES.INVOICEID = :INVOICEID)
            into :INVOICENUMBER, :INVOICEDATE, :STATIONID, :DRIVERS,
                :CLIENTNAME, :OWNERNAME, :SENDERID, :SENDERNAME,
                :FORWARDERID, :EXPORTERID;

            if (CARINVENTORYID is not null) then begin
              select QUALITY.CROPID, QUALITY.CLASSID, QUALITY.SORTID,
                  cast(coalesce(CROP.CROPNAME,'') || coalesce(' ' || CLASS.CLASSNAME,'') ||
                       coalesce(' (' || CROPSORT.SORTNAME || ')','') ||
                       coalesce(' ' || FORAGECROP.CROPNAME,'') ||
                       coalesce(' ' || FORAGECLASS.CLASSNAME,'') as varchar(80))
                from QUALITY
                    left join CROP on (CROP.CROPID = QUALITY.CROPID)
                    left join CLASS on (CLASS.CLASSID = QUALITY.CLASSID)
                    left join CROPSORT on (CROPSORT.SORTID = QUALITY.SORTID)
                    left join QUALITY_SELECT(:CARSAMPLERQUALITYID) on (0 = 0)
                    left join CROP FORAGECROP on (FORAGECROP.CROPID = QUALITY_SELECT.FORAGECROPID)
                    left join CLASS FORAGECLASS on (FORAGECLASS.CLASSID = QUALITY_SELECT.FORAGECLASSID)
                where (QUALITY.QUALITYID = :CARSAMPLERQUALITYID)
              into :CARCROPID, :CARCLASSID, :CARSORTID, :CARCROP;

              CROPM = coalesce(:CARCROP,'');

              select ORDERLOADID
                from ORDERLOADITEMS
                where (ORDERLOADITEMS.ORDERLOADITEMID = :CARORDERLOADITEMID)
              into :ORDERLOADID;

              select STORAGE.STORAGENAME, SILAGE.NAME
                from STORAGE
--                    left join ROUTESILAGECHEMA on (ROUTESILAGECHEMA.ROUTESILAGECHEMAID = :CARROUTEID)
--                    left join SILAGE on (SILAGE.SILAGEID = ROUTESILAGECHEMA.SILAGEID)
                    left join SILAGE on (SILAGE.SILAGEID = :CARSILAGEID)
                where (STORAGE.STORAGEID = :CARSTORAGEID)
              into :CARSTORAGENAME, :CARSILAGENAME;

              STORAGENAME = coalesce(:CARSTORAGENAME,'');
              SILAGENAME = coalesce(:CARSILAGENAME,'');
            end

            if (TRAILERINVENTORYID is not null) then begin
              if (CARINVENTORYID is null) then begin
                select IT.INVENTORYID, (IT.GROSS - coalesce(ITTRANSPORT.SAMPLERWEIGHT,0)),
                    IT.TARE, (IT.NET - coalesce(ITTRANSPORT.SAMPLERWEIGHT,0)), IT.WEIGHT,
                    IT.GROSSTIME, IT.TARETIME, IT.ORDERLOADITEMID, IT.SAMPLERQUALITYID,
                    IT.LABQUALITYID, IT.STORAGEID, IT.SILAGEID, IT.STORINGID, IT.WEIGHTNUMBER, IT.STATE,
                    ITTRANSPORT.TRANSPORTNUMBER, ITTRANSPORT.BARCODE, ITTRANSPORT.INVOICEGROSS,
                    ITTRANSPORT.INVOICETARE, ITTRANSPORT.INVOICENET, ITTRANSPORT.GROSSBYHAND, ITTRANSPORT.TAREBYHAND
                  from IT
                    left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT.INVENTORYID)
                    left join TRANSPORTTYPE on (TRANSPORTTYPE.TRANSPORTTYPEID = ITTRANSPORT.TRANSPORTTYPEID)
                  where (IT.INVOICEID = :INVOICEID) and (ITTRANSPORT.TRANSPORTTYPEID = 0)
                into :CARINVENTORYID, :CARGROSS, :CARTARE, :CARNET, :CARWEIGHT,
                     :CARGROSSTIME, :CARTARETIME, :CARORDERLOADITEMID, :CARSAMPLERQUALITYID,
                     :CARLABQUALITYID, :CARSTORAGEID, :CARSILAGEID, :CARROUTEID, :CARWEIGHTNUMBER, :CARSTATE,
                     :CARNUMBER, :CARBARCODE, :CARINVOICEGROSS, :CARINVOICETARE, :CARINVOICENET,
                     :CARGROSSBYHAND, :CARTAREBYHAND;

                select QUALITY.CROPID, QUALITY.CLASSID, QUALITY.SORTID,
                    cast(coalesce(CROP.CROPNAME,'') || coalesce(' ' || CLASS.CLASSNAME,'') ||
                         coalesce(' (' || CROPSORT.SORTNAME || ')','') ||
                         coalesce(' ' || FORAGECROP.CROPNAME,'') ||
                         coalesce(' ' || FORAGECLASS.CLASSNAME,'') as varchar(80))
                  from QUALITY
                      left join CROP on (CROP.CROPID = QUALITY.CROPID)
                      left join CLASS on (CLASS.CLASSID = QUALITY.CLASSID)
                      left join CROPSORT on (CROPSORT.SORTID = QUALITY.SORTID)
                      left join QUALITY_SELECT(:CARSAMPLERQUALITYID) on (0 = 0)
                      left join CROP FORAGECROP on (FORAGECROP.CROPID = QUALITY_SELECT.FORAGECROPID)
                      left join CLASS FORAGECLASS on (FORAGECLASS.CLASSID = QUALITY_SELECT.FORAGECLASSID)
                  where (QUALITY.QUALITYID = :CARSAMPLERQUALITYID)
                into :CARCROPID, :CARCLASSID, :CARSORTID, :CARCROP;

                CROPM = coalesce(:CARCROP,'');

                select ORDERLOADID
                  from ORDERLOADITEMS
                  where (ORDERLOADITEMS.ORDERLOADITEMID = :CARORDERLOADITEMID)
                into :ORDERLOADID;

                select STORAGE.STORAGENAME, SILAGE.NAME
                  from STORAGE
--                      left join ROUTESILAGECHEMA on (ROUTESILAGECHEMA.ROUTESILAGECHEMAID = :CARROUTEID)
--                      left join SILAGE on (SILAGE.SILAGEID = ROUTESILAGECHEMA.SILAGEID)
                      left join SILAGE on (SILAGE.SILAGEID = :CARSILAGEID)
                  where (STORAGE.STORAGEID = :CARSTORAGEID)
                into :CARSTORAGENAME, :CARSILAGENAME;

                STORAGENAME = coalesce(:CARSTORAGENAME,'');
                SILAGENAME = coalesce(:CARSILAGENAME,'');
              end

              select QUALITY.CROPID, QUALITY.CLASSID, QUALITY.SORTID,
                  cast(coalesce(CROP.CROPNAME,'') || coalesce(' ' || CLASS.CLASSNAME,'') ||
                       coalesce(' (' || CROPSORT.SORTNAME || ')','') ||
                       coalesce(' ' || FORAGECROP.CROPNAME,'') ||
                       coalesce(' ' || FORAGECLASS.CLASSNAME,'') as varchar(80))
                from QUALITY
                    left join CROP on (CROP.CROPID = QUALITY.CROPID)
                    left join CLASS on (CLASS.CLASSID = QUALITY.CLASSID)
                    left join CROPSORT on (CROPSORT.SORTID = QUALITY.SORTID)
                    left join QUALITY_SELECT(:CARSAMPLERQUALITYID) on (0 = 0)
                    left join CROP FORAGECROP on (FORAGECROP.CROPID = QUALITY_SELECT.FORAGECROPID)
                    left join CLASS FORAGECLASS on (FORAGECLASS.CLASSID = QUALITY_SELECT.FORAGECLASSID)
                where (QUALITY.QUALITYID = :TRAILERSAMPLERQUALITYID)
              into :TRAILERCROPID, :TRAILERCLASSID, :TRAILERSORTID, :TRAILERCROP;

              if (TRAILERCROP is not null) then
                if ((CROPM <> TRAILERCROP) or
                    ((CARSTATE is not null) and (TRAILERSTATE is not null) and ((CARSTATE <> TRAILERSTATE) and (TRAILERSTATE <> -5)))) then begin
                  if (CROPM <> '') then
                    CROPM = :CROPM || '; ';
                  CROPM = :CROPM || :TRAILERCROP;
                end

              if (ORDERLOADID is null) then
                select ORDERLOADID
                  from ORDERLOADITEMS
                  where (ORDERLOADITEMS.ORDERLOADITEMID = :TRAILERORDERLOADITEMID)
                into :ORDERLOADID;

              select STORAGE.STORAGENAME, SILAGE.NAME
                from STORAGE
--                    left join ROUTESILAGECHEMA on (ROUTESILAGECHEMA.ROUTESILAGECHEMAID = :CARROUTEID)
--                    left join SILAGE on (SILAGE.SILAGEID = ROUTESILAGECHEMA.SILAGEID)
                    left join SILAGE on (SILAGE.SILAGEID = :TRAILERSILAGEID)
                where (STORAGE.STORAGEID = :TRAILERSTORAGEID)
              into :TRAILERSTORAGENAME, :TRAILERSILAGENAME;

              if ((STORAGENAME <> TRAILERSTORAGENAME) and (TRAILERSTORAGENAME is not null)) then begin
                if (STORAGENAME <> '') then
                  STORAGENAME = :STORAGENAME || '; ';
                STORAGENAME = :STORAGENAME || :TRAILERSTORAGENAME;
              end

              if ((SILAGENAME <> TRAILERSILAGENAME) and (TRAILERSILAGENAME is not null)) then begin
                if (SILAGENAME <> '') then
                  SILAGENAME = :SILAGENAME || '; ';
                SILAGENAME = :SILAGENAME || :TRAILERSILAGENAME;
              end
            end

            if ((CARNUMBER is not null) and (TRAILERNUMBER is not null)) then
              TRANSPORTNUMBER = :CARNUMBER || '; ' || :TRAILERNUMBER;
            else TRANSPORTNUMBER = coalesce(:CARNUMBER,:TRAILERNUMBER,'');

            if ((INVOICENET > 0) and (NET > 0)) then
              DISCREPANCY = :NET - :INVOICENET;
            WEIGHT = :NET;

            WEIGHTNUMBERN = coalesce(:CARWEIGHTNUMBER,:TRAILERWEIGHTNUMBER,0);

            suspend;
          end
        end
        else begin
          select INVOICENUMBER, INVOICEDATE, STATIONID, DRIVERS,
              S1.CLIENTNAME, S2.CLIENTNAME, SENDERID, S3.CLIENTNAME
            from INVOICES
               left join CLIENTS S1 on (S1.CLIENTID = coalesce(INVOICES.MANUFACTURERID,:CLIENTID))
               left join CLIENTS S2 on (S2.CLIENTID = :OWNERID)
               left join CLIENTS S3 on (S3.CLIENTID = INVOICES.SENDERID)
             where (INVOICES.INVOICEID = :INVOICEID)
          into :INVOICENUMBER, :INVOICEDATE, :STATIONID, :DRIVERS,
               :CLIENTNAME, :OWNERNAME, :SENDERID, :SENDERNAME;

          select STORAGE.STORAGENAME, SILAGE.NAME
            from STORAGE
--                left join ROUTESILAGECHEMA on (ROUTESILAGECHEMA.ROUTESILAGECHEMAID = :CARROUTEID)
--                left join SILAGE on (SILAGE.SILAGEID = ROUTESILAGECHEMA.SILAGEID)
                left join SILAGE on (SILAGE.SILAGEID = :CARSILAGEID)
            where (STORAGE.STORAGEID = :CARSTORAGEID)
          into :CARSTORAGENAME, :CARSILAGENAME;

          STORAGENAME = coalesce(:CARSTORAGENAME,'');
          SILAGENAME = coalesce(:CARSILAGENAME,'');

          for
            select NET, WEIGHT, WEIGHTNUMBER, PARENTID, ORDERLOADITEMID, IT.STATE, QUALITY.CLASSID,
                coalesce(CROP.CROPNAME,'') || coalesce(' ' || CLASS.CLASSNAME,'') || coalesce(' (' || CROPSORT.SORTNAME || ')','')
              from IT
                left join QUALITY on (QUALITY.QUALITYID = IT.SAMPLERQUALITYID)
                left join CROP on (CROP.CROPID = QUALITY.CROPID)
                left join CLASS on (CLASS.CLASSID = QUALITY.CLASSID)
                left join CROPSORT on (CROPSORT.SORTID = QUALITY.SORTID)
              where ((IT.PARENTID = :CARINVENTORYID) and (IT.INVOICEID = :INVOICEID)) and
                    (((IT.STATE >= 0) and (:DELETEDRECORDSSHOW = 0)) or
                     ((IT.STATE >= -1) and (:DELETEDRECORDSSHOW = 1)))
              order by IT.INVOICEID, IT.INVENTORYID
            into :CARNET, :CARWEIGHT, :WEIGHTNUMBERN, :PARENTID, :CARORDERLOADITEMID, :CARSTATE, :CARCLASSID,
                :CARCROP

          do begin
            if ((CARNUMBER is not null) and (TRAILERNUMBER is not null)) then
              TRANSPORTNUMBER = :CARNUMBER || '; ' || :TRAILERNUMBER;
            else TRANSPORTNUMBER = coalesce(:CARNUMBER,:TRAILERNUMBER,'');

            NET = :CARNET;
            WEIGHT = :CARWEIGHT;
            CROPM = :CARCROP;

            suspend;

            INVOICENUMBER = null;
            CLIENTNAME = null;
            OWNERNAME = null;
            SENDERNAME = null;
            CARNUMBER = null;
            TRANSPORTNUMBER = null;
            STORAGENAME = null;
          end
        end
      end

      REGDATE = :AREGDATE;
      INVOICEID = :AINVOICEID;
      CLIENTID = null;
      CLIENTNAME = null;
      OWNERID = null;
      OWNERNAME = null;

      GROSS = 0;
      TARE = 0;
      NET = 0;
      INVOICEGROSS = 0;
      INVOICETARE = 0;
      INVOICENET = 0;
      DISCREPANCY = null;
      CROPM = '';
      STORAGENAME = null;
      WEIGHTUSERID = null;
      PARENTID = null;
      DELETION = 1;
      WASTEACTNUMBER = null;
      SHIFT = null;

      CARINVENTORYID = null;
      CARNUMBER = null;
      CARSAMPLERQUALITYID = null;
      CARORDERLOADITEMID = null;
      CARCROP = null;
      CARCLASSID = null;
      CARGROSS = null;
      CARTARE = null;
      CARNET = null;
      CARWEIGHT = null;
      CARGROSSTIME = null;
      CARTARETIME = null;
      CARSTORAGEID = null;
      CARSTORAGENAME = null;
      CARROUTEID = null;
      CARSILAGEID = null;
      CARSILAGENAME = null;
      CARWEIGHTNUMBER = null;
      CARBARCODE = null;
      CARSTATE = null;
      CARTRANSPORTTYPEID = null;
      CARINVOICENET = null;
      CARINVOICEGROSS = null;
      CARINVOICETARE = null;
      CARTAREBYHAND = null;
      CARGROSSBYHAND = null;
      CARLABQUALITYID = null;

      TRAILERINVENTORYID = null;
      TRAILERNUMBER = null;
      TRAILERSAMPLERQUALITYID = null;
      TRAILERORDERLOADITEMID = null;
      TRAILERCROPID = null;
      TRAILERCLASSID = null;
      TRAILERCROP = null;
      TRAILERGROSS = null;
      TRAILERTARE = null;
      TRAILERNET = null;
      TRAILERWEIGHT = null;
      TRAILERGROSSTIME = null;
      TRAILERTARETIME = null;
      TRAILERSTORAGEID = null;
      TRAILERROUTEID = null;
      TRAILERSILAGEID = null;
      TRAILERSILAGENAME = null;
      TRAILERSTORAGENAME = null;
      TRAILERWEIGHTNUMBER = null;
      TRAILERBARCODE = null;
      TRAILERSTATE = null;
      TRAILERTRANSPORTTYPEID = null;
      TRAILERINVOICENET = null;
      TRAILERINVOICEGROSS = null;
      TRAILERINVOICETARE = null;
      TRAILERGROSSBYHAND = null;
      TRAILERTAREBYHAND = null;
      TRAILERLABQUALITYID = null;
    end

    if (ATRANSPORTTYPEID = 1) then begin
      TRAILERINVENTORYID = :AINVENTORYID;
      TRAILERNUMBER = :ATRANSPORTNUMBER;
      TRAILERSAMPLERQUALITYID = :ASAMPLERQUALITYID;
      TRAILERORDERLOADITEMID = :AORDERLOADITEMID;
      TRAILERCLASSID = :ACLASSID;
      TRAILERCROP = :ACROPNAME;
      TRAILERGROSS = :AGROSS;
      TRAILERTARE = :ATARE;
      TRAILERNET = :ANET;
      TRAILERWEIGHT = :AWEIGHT;
      TRAILERGROSSTIME =:AGROSSTIME;
      TRAILERTARETIME = :ATARETIME;
      TRAILERSTORAGEID = :ASTORAGEID;
      TRAILERROUTEID = :AROUTEID;
      TRAILERSILAGEID = :ASILAGEID;
      TRAILERSTORAGENAME = :ASTORAGENAME;
      TRAILERWEIGHTNUMBER = :AWEIGHTNUMBER;
      TRAILERBARCODE = :ABARCODE;
      TRAILERSTATE = :ASTATE;
      TRAILERTRANSPORTTYPEID = :ATRANSPORTTYPEID;
      TRAILERINVOICENET = :AINVOICENET;
      TRAILERINVOICEGROSS = :AINVOICEGROSS;
      TRAILERINVOICETARE = :AINVOICETARE;
      TRAILERGROSSBYHAND = :AGROSSBYHAND;
      TRAILERTAREBYHAND = :ATAREBYHAND;
      TRAILERLABQUALITYID = :ALABQUALITYID;
      if (WEIGHTUSERID is null) then
        WEIGHTUSERID = :AWEIGHTUSERID;
    end
    else begin
      CARINVENTORYID = :AINVENTORYID;
      CARNUMBER = :ATRANSPORTNUMBER;
      CARSAMPLERQUALITYID = :ASAMPLERQUALITYID;
      CARORDERLOADITEMID = :AORDERLOADITEMID;
      CARCLASSID = :ACLASSID;
      CARCROP = :ACROPNAME;
      CARGROSS = :AGROSS;
      CARTARE = :ATARE;
      CARNET = :ANET;
      CARWEIGHT = :AWEIGHT;
      CARGROSSTIME =:AGROSSTIME;
      CARTARETIME = :ATARETIME;
      CARSTORAGEID = :ASTORAGEID;
      CARROUTEID = :AROUTEID;
      CARSILAGEID = :ASILAGEID;
      CARSTORAGENAME = :ASTORAGENAME;
      CARWEIGHTNUMBER = :AWEIGHTNUMBER;
      CARBARCODE = :ABARCODE;
      CARSTATE = :ASTATE;
      CARTRANSPORTTYPEID = :ATRANSPORTTYPEID;
      CARINVOICENET = :AINVOICENET;
      CARINVOICEGROSS = :AINVOICEGROSS;
      CARINVOICETARE = :AINVOICETARE;
      CARGROSSBYHAND = :AGROSSBYHAND;
      CARTAREBYHAND = :ATAREBYHAND;
      CARLABQUALITYID = :ALABQUALITYID;
      WEIGHTUSERID = :AWEIGHTUSERID;
    end

    if ((CLIENTID is null) or ((CARSTATE < 0) and (ASTATE >= 0))) then
      CLIENTID = :APROVIDERID;

    if ((OWNERID is null) or ((CARSTATE < 0) and (ASTATE >= 0))) then
      OWNERID = :AOWNERID;

    if ((ASTATE >= 0) or (:OPERATIONID = 1005)) then begin
      GROSS = GROSS + coalesce(:AGROSS,0);
      TARE = TARE + coalesce(:ATARE,0);
      NET = NET + coalesce(:ANET,0);
      INVOICEGROSS = INVOICEGROSS + coalesce(:AINVOICEGROSS,0);
      INVOICETARE = INVOICETARE + coalesce(:AINVOICETARE,0);
      INVOICENET = INVOICENET + coalesce(:AINVOICENET,0);
    end

    if (PARENTID is null) then
      PARENTID = :APARENTID;

    if ((AUWORDERID > 0) or (:ALABQUALITYID is not null)) then
      DELETION = 0;

    if (WASTEACTNUMBER is null) then
      select WASTEACTNUMBER from WASTEACTS
        where (WASTEACTS.WASTEACTID = :ARELATIONID)
      into :WASTEACTNUMBER;

    if (SHIFT is null) then
      SHIFT = :ASHIFT;
  end
end

 

     Previous topic Chapter index Next topic