USP_DATAFORMTEMPLATE_ADD_MERCHANDISEPRODUCTLABELPRINT
The save procedure used by the add dataform template "Merchandise Item Label Print Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@MERCHANDISEPRODUCTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@PRINTSESSIONID | uniqueidentifier | IN | Print session ID |
@PRODUCTLABELS | xml | IN | Labels to print |
@EXPORT | bit | IN | Export to file |
@LABELPRINTFORMATCODE | tinyint | IN | Label print format |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_MERCHANDISEPRODUCTLABELPRINT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@MERCHANDISEPRODUCTID uniqueidentifier,
@PRINTSESSIONID uniqueidentifier = null,
@PRODUCTLABELS xml = null,
@EXPORT bit = null,
@LABELPRINTFORMATCODE tinyint = 0
)
as
set nocount on;
if not exists (select * from @PRODUCTLABELS.nodes('/PRODUCTLABELS/ITEM') T(item) where T.item.value('(QUANTITYTOPRINT)[1]','integer') > 0)
begin
if @EXPORT <> 0
raiserror('ERR_MERCHANDISEPRODUCTLABELPRINT_QUANTITYEXPORT', 13, 1);
else
raiserror('ERR_MERCHANDISEPRODUCTLABELPRINT_QUANTITYPRINT', 13, 1);
return 1
end
if @PRINTSESSIONID is null
set @PRINTSESSIONID = newid()
set @ID = @PRINTSESSIONID
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @PREVIOUSPRINTSESSION uniqueidentifier = newid()
update dbo.MERCHANDISEPRODUCTLABLEPRINTHISTORY set
PRINTSESSIONID = @PREVIOUSPRINTSESSION,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where PRINTSESSIONID = @PRINTSESSIONID
insert into dbo.MERCHANDISEPRODUCTLABLEPRINTHISTORY
(ID,
MERCHANDISEPRODUCTID,
MERCHANDISEPRODUCTINSTANCEID,
ITEMDETAILS,
PRINTSESSIONID,
QUANTITY,
BARCODE,
SALEPRICE,
ISEXPORT,
LABELPRINTFORMATCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
select
newid(),
@MERCHANDISEPRODUCTID,
T.item.value('(ID)[1]','uniqueidentifier'),
MERCHANDISEPRODUCTINSTANCE.ITEMDETAILS,
@PRINTSESSIONID,
T.item.value('(QUANTITYTOPRINT)[1]','integer'),
MERCHANDISEPRODUCTINSTANCE.BARCODE,
MERCHANDISEPRODUCTINSTANCE.SALEPRICE,
@EXPORT,
@LABELPRINTFORMATCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@PRODUCTLABELS.nodes('/PRODUCTLABELS/ITEM') T(item) inner join dbo.MERCHANDISEPRODUCTINSTANCE on
T.item.value('(ID)[1]','uniqueidentifier') = MERCHANDISEPRODUCTINSTANCE.ID
where
T.item.value('(QUANTITYTOPRINT)[1]','integer') > 0
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0