USP_DATAFORMTEMPLATE_EDIT_BATCH2_PROPERTIES_2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BATCHNUMBER | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@OWNERID | uniqueidentifier | IN | |
@PROJECTEDNUMBEROFRECORDS | int | IN | |
@PROJECTEDTOTALAMOUNT | money | IN | |
@AUTOSAVEONROWCHANGE | bit | IN | |
@DISABLEADDNEWROW | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCH2_PROPERTIES_2 (
@ID uniqueidentifier
, @CURRENTAPPUSERID uniqueidentifier
, @CHANGEAGENTID uniqueidentifier = null
, @BATCHNUMBER nvarchar(100)
, @DESCRIPTION nvarchar(1000)
, @OWNERID uniqueidentifier
, @PROJECTEDNUMBEROFRECORDS int
, @PROJECTEDTOTALAMOUNT money
, @AUTOSAVEONROWCHANGE bit
, @DISABLEADDNEWROW bit
)
as
set nocount on;
begin try
declare @ISLOCKED bit = 0;
exec dbo.USP_BATCH_HASEXCLUSIVELOCK @ID, @ISLOCKED output;
if @ISLOCKED = 1
raiserror('ERR_BATCHPROPERTIES_BATCHLOCKED',13, 1);
declare @CHANGEDATE datetime;
declare @OLDBATCHNUMBER nvarchar(100);
declare @PREVIOUSOWNERID uniqueidentifier;
declare @BATCHTEMPLATEID uniqueidentifier;
declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
set @CHANGEDATE = getdate();
select
@OLDBATCHNUMBER = BATCHNUMBER
, @BATCHTEMPLATEID = BATCHTEMPLATEID
, @PREVIOUSOWNERID = APPUSERID
from
dbo.BATCH
where
(ID = @ID);
if not(@OLDBATCHNUMBER = @BATCHNUMBER)
begin
declare @ISMANUALSCHEME bit;
select
@ISMANUALSCHEME = case BATCHNUMBERINGSCHEME.NUMBERINGSCHEMECODE when 0 then 0 else 1 end,
@BATCHNUMBERINGSCHEMEID = BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID
from dbo.BATCHTEMPLATE
left join dbo.BATCHNUMBERINGSCHEME on BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID = BATCHNUMBERINGSCHEME.ID
where
BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
if @ISMANUALSCHEME = 0 and dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);
if exists (select
top 1 BATCH.ID
from dbo.BATCH
inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID
where BATCHNUMBER = @BATCHNUMBER and BATCHNUMBERINGSCHEMEID = @BATCHNUMBERINGSCHEMEID)
raiserror('ERR_BATCHNUMBER_ISUNIQUE', 13, 1);
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
update dbo.BATCH set
BATCHNUMBER = @BATCHNUMBER
, DESCRIPTION = @DESCRIPTION
, APPUSERID = @OWNERID
, PROJECTEDNUMBEROFRECORDS = coalesce(@PROJECTEDNUMBEROFRECORDS, 0)
, PROJECTEDTOTALAMOUNT = @PROJECTEDTOTALAMOUNT
, AUTOSAVEONROWCHANGE = coalesce(@AUTOSAVEONROWCHANGE, 0)
, CHANGEDBYID = @CHANGEAGENTID
, DATECHANGED = @CHANGEDATE
, DISABLEADDNEWROW = @DISABLEADDNEWROW
where
(ID = @ID);
exec dbo.USP_BATCHASSIGNEDALERT_SEND @PREVIOUSOWNERID, @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;