USP_REPORT_MERCHANDISEPRODUCTINSTANCELABEL_THREECOLUMN

Parameters

Parameter Parameter Type Mode Description
@PRINTSESSIONID uniqueidentifier IN

Definition

Copy

create procedure dbo.USP_REPORT_MERCHANDISEPRODUCTINSTANCELABEL_THREECOLUMN
(
    @PRINTSESSIONID uniqueidentifier
)
as

declare @MAXNUM integer
declare @CURNUM integer = 0
declare @CURRENCYSYMBOL nvarchar

select top 1 @CURRENCYSYMBOL = CURRENCYSYMBOL from dbo.CURRENCY where ISORGANIZATIONCURRENCY = 1


select @MAXNUM = MAX(QUANTITY) from MERCHANDISEPRODUCTLABLEPRINTHISTORY where PRINTSESSIONID = @PRINTSESSIONID

declare @NUMBERTABLE table (NUMBER int)

while @CURNUM < @MAXNUM
    begin
        set @CURNUM = @CURNUM + 1
        insert into @NUMBERTABLE (NUMBER) values (@CURNUM)    
        continue
    end
declare @LABELS table (ID integer identity, ITEMDETAILS nvarchar(500), BARCODE nvarchar(500), SALEPRICE nvarchar(500))

insert into @LABELS (ITEMDETAILS, BARCODE, SALEPRICE)
select
    MERCHANDISEPRODUCTLABLEPRINTHISTORY.ITEMDETAILS,
    MERCHANDISEPRODUCTLABLEPRINTHISTORY.BARCODE,
    @CURRENCYSYMBOL + cast(MERCHANDISEPRODUCTLABLEPRINTHISTORY.SALEPRICE as nvarchar) SALEPRICE
from
    dbo.MERCHANDISEPRODUCTLABLEPRINTHISTORY inner join @NUMBERTABLE NUMBERTABLE on
        MERCHANDISEPRODUCTLABLEPRINTHISTORY.QUANTITY >= NUMBERTABLE.NUMBER
where
    PRINTSESSIONID = @PRINTSESSIONID
order by
    MERCHANDISEPRODUCTLABLEPRINTHISTORY.QUANTITY desc, MERCHANDISEPRODUCTLABLEPRINTHISTORY.MERCHANDISEPRODUCTID, MERCHANDISEPRODUCTLABLEPRINTHISTORY.MERCHANDISEPRODUCTINSTANCEID

select 
    coalesce(LABEL1.ITEMDETAILS, '') LABEL1_ITEMDETAILS,
    coalesce(LABEL1.BARCODE, '') LABEL1_BARCODE,
    coalesce(LABEL1.SALEPRICE, '') LABEL1_SALEPRICE,
    coalesce(LABEL2.ITEMDETAILS, '') LABEL2_ITEMDETAILS,
    coalesce(LABEL2.BARCODE, '') LABEL2_BARCODE,
    coalesce(LABEL2.SALEPRICE, '') LABEL2_SALEPRICE,
    coalesce(LABEL3.ITEMDETAILS, '') LABEL3_ITEMDETAILS,
    coalesce(LABEL3.BARCODE, '') LABEL3_BARCODE,
    coalesce(LABEL3.SALEPRICE, '') LABEL3_SALEPRICE
from @LABELS LABEL1 left outer join @LABELS LABEL2 on 
    LABEL1.ID = (LABEL2.ID - (3 -(LABEL2.ID%3)))
left outer join @LABELS LABEL3 on 
    LABEL1.ID - 1 = (LABEL3.ID - (3 -(LABEL3.ID%3)))
where
    (LABEL1.ID%3) = 1 and
    (LABEL1.ID < LABEL2.ID or coalesce(LABEL2.ID, 0) = 0) and
    (LABEL2.ID < LABEL3.ID or coalesce(LABEL3.ID, 0) = 0)