USP_DATAFORMTEMPLATE_ADD_REPRINTBATCHTICKETPRINTJOB
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BATCHTICKETPRINTJOBID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@WORKSTATIONMACHINENAME | nvarchar(255) | IN | |
@PRINTERNAME | nvarchar(255) | IN | |
@TICKETREPRINTREASONCODEID | uniqueidentifier | IN | |
@DOCUMENTID | uniqueidentifier | IN | |
@SELECTEDTICKETS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_REPRINTBATCHTICKETPRINTJOB (
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@BATCHTICKETPRINTJOBID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@WORKSTATIONMACHINENAME nvarchar(255),
@PRINTERNAME nvarchar(255),
@TICKETREPRINTREASONCODEID uniqueidentifier,
@DOCUMENTID uniqueidentifier = null,
@SELECTEDTICKETS xml = null
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @CURRENTDATETIMEOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(getutcdate(), 1);
declare @WORKSTATIONID uniqueidentifier;
declare @DELIVERYMETHODID uniqueidentifier;
declare @GROUPBYCODE tinyint;
set @WORKSTATIONID = dbo.UFN_WORKSTATION_GETIDBYMACHINENAME(@WORKSTATIONMACHINENAME);
select
@DELIVERYMETHODID = DELIVERYMETHODID,
@GROUPBYCODE = GROUPBYCODE
from
dbo.BATCHTICKETPRINTJOB
where
ID = @BATCHTICKETPRINTJOBID;
declare @SELECTEDTICKETSTABLE dbo.UDT_GENERICID;
declare @TICKETSTOPRINT table (
TICKETPRINTINFOID uniqueidentifier,
TICKETID uniqueidentifier,
CURRENTTICKETNUMBER int
);
insert into @SELECTEDTICKETSTABLE (ID)
select T.ticket.value('(TICKETPRINTINFOID)[1]', 'uniqueidentifier') from @SELECTEDTICKETS.nodes('SELECTEDTICKETS/ITEM') as T(ticket);
if @@rowcount > 0
begin
insert into @TICKETSTOPRINT (
TICKETPRINTINFOID,
TICKETID,
CURRENTTICKETNUMBER
)
select
newid(),
TICKET.ID,
TICKETPRINTINFO.SEQUENCEID
from
@SELECTEDTICKETSTABLE as SELECTEDTICKETSTABLE
inner join
dbo.TICKETPRINTINFO on TICKETPRINTINFO.ID = SELECTEDTICKETSTABLE.ID
inner join
dbo.TICKET on TICKET.ID = TICKETPRINTINFO.TICKETID
where
TICKET.STATUSCODE in (0,1); -- Active, Reserved
end
else
begin
insert into @TICKETSTOPRINT (
TICKETPRINTINFOID,
TICKETID,
CURRENTTICKETNUMBER
)
select
newid(),
TICKET.ID,
TICKETPRINTINFO.SEQUENCEID
from
dbo.BATCHTICKETPRINTJOBTICKETLINK
inner join
dbo.TICKETPRINTINFO on TICKETPRINTINFO.ID = BATCHTICKETPRINTJOBTICKETLINK.ID
inner join
dbo.TICKET on TICKET.ID = TICKETPRINTINFO.TICKETID
where
BATCHTICKETPRINTJOBTICKETLINK.BATCHTICKETPRINTJOBID = @BATCHTICKETPRINTJOBID
and TICKET.STATUSCODE in (0,1) -- Active, Reserved
and TICKET.PROGRAMID in (
select PROGRAMDOCUMENT.PROGRAMID
from dbo.PROGRAMDOCUMENT
inner join dbo.DOCUMENT on DOCUMENT.ID = PROGRAMDOCUMENT.DOCUMENTID
where DOCUMENT.ISACTIVE = 1
);
end
begin try
if not exists (select top 1 1 from @TICKETSTOPRINT)
raiserror('BBERR_NOTICKETSTOPRINT', 13, 1);
insert into dbo.BATCHTICKETPRINTJOB (
ID,
APPUSERID,
PRINTERNAME,
PRINTDATEWITHTIMEOFFSET,
DELIVERYMETHODID,
DOCUMENTID,
GROUPBYCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values (
@ID,
@CURRENTAPPUSERID,
@PRINTERNAME,
@CURRENTDATETIMEOFFSET,
@DELIVERYMETHODID,
@DOCUMENTID,
@GROUPBYCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.TICKETPRINTINFO (
ID,
TICKETID,
APPUSERID,
WORKSTATIONID,
PRINTDATEWITHTIMEOFFSET,
TICKETREPRINTREASONCODEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
TICKETPRINTINFOID,
TICKETID,
@CURRENTAPPUSERID,
@WORKSTATIONID,
@CURRENTDATETIMEOFFSET,
@TICKETREPRINTREASONCODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@TICKETSTOPRINT
order by
CURRENTTICKETNUMBER; -- Keeps the tickets printed in the same order as they were in the first batch
insert into dbo.BATCHTICKETPRINTJOBTICKETLINK (
ID,
BATCHTICKETPRINTJOBID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
TICKETPRINTINFOID,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@TICKETSTOPRINT;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;