USP_DATAFORMTEMPLATE_EDIT_PDCOMPOSITESEGMENTMAPPING_2
The save procedure used by the edit dataform template "Composite Segment Mapping Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(50) | IN | Name |
@FIRST | uniqueidentifier | IN | First Table |
@SECOND | uniqueidentifier | IN | Second Table |
@THIRD | uniqueidentifier | IN | Third Table |
@FOURTH | uniqueidentifier | IN | Fourth Table |
@PDACCOUNTSEGMENTVALUEID | uniqueidentifier | IN | Segment value |
@FIRST_2 | uniqueidentifier | IN | First Table 2 |
@SECOND_2 | uniqueidentifier | IN | Second Table 2 |
@THIRD_2 | uniqueidentifier | IN | Third Table 2 |
@FOURTH_2 | uniqueidentifier | IN | Fourth Table 2 |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PDCOMPOSITESEGMENTMAPPING_2(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(50) ,
@FIRST uniqueidentifier,
@SECOND uniqueidentifier,
@THIRD uniqueidentifier,
@FOURTH uniqueidentifier,
@PDACCOUNTSEGMENTVALUEID uniqueidentifier,
@FIRST_2 uniqueidentifier ,
@SECOND_2 uniqueidentifier,
@THIRD_2 uniqueidentifier ,
@FOURTH_2 uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @PDCOMPOSITESEGMENTID uniqueidentifier = (select PDCOMPOSITESEGMENTID from PDCOMPOSITESEGMENTMAPPING where ID = @ID)
declare @DEFAULT bit = 0--(select ISDEFAULT from PDCOMPOSITESEGMENTMAPPING where ID = @ID)
declare @ISDEFAULTENTRY bit
declare @TABLECOUNT integer = (select count(a.ID) from PDCOMPOSITESEGMENTTABLELIST as a
join PDCOMPOSITESEGMENTMAPPING as b on a.PDCOMPOSITESEGMENTID = b.PDCOMPOSITESEGMENTID
where b.ID = @ID)
declare @FIRSTGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as a
join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID
where b.SEQUENCE = 1 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
declare @SECONDGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as a
join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID
where b.SEQUENCE = 2 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
declare @THIRDGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as a
join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID
where b.SEQUENCE = 3 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
declare @FOURTHGUID uniqueidentifier = (select a.ID from PDCOMPOSITESEGMENTMAPPINGENTRY as a
join PDCOMPOSITESEGMENTTABLELIST as b on a.PDCOMPOSITESEGMENTTABLELISTID = b.ID
where b.SEQUENCE = 4 and a.PDCOMPOSITESEGMENTMAPPINGID = @ID)
begin try
begin tran
if @FIRST is null and @FIRST_2 is null and @DEFAULT = 0
raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYONE',13,1);
else
if @SECOND is null and @SECOND_2 is null and @DEFAULT = 0
raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYTWO',13,1);
else
if @THIRD is null and @THIRD_2 is null and @TABLECOUNT > 2 and @DEFAULT = 0
raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYTHREE',13,1);
else
if @FOURTH is null and @FOURTH_2 is null and @TABLECOUNT > 3 and @DEFAULT = 0
raiserror('ERR_PDCOMPOSITESEGMENTMAP_ENTRYFOUR',13,1);
else
if @DEFAULT = 1
update dbo.PDCOMPOSITESEGMENTMAPPING set
PDACCOUNTSEGMENTVALUEID = @PDACCOUNTSEGMENTVALUEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
else
begin
-- handle updating the data
update dbo.PDCOMPOSITESEGMENTMAPPING set
NAME = @NAME,
PDACCOUNTSEGMENTVALUEID = @PDACCOUNTSEGMENTVALUEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
set @ISDEFAULTENTRY = 0
if @FIRST is null
set @FIRST = @FIRST_2
if @FIRST='99999999-9999-9999-9999-999999999999'
set @ISDEFAULTENTRY = 1
update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @FIRST, ISDEFAULT = @ISDEFAULTENTRY where ID = @FIRSTGUID
set @ISDEFAULTENTRY = 0
if @SECOND is null
set @SECOND = @SECOND_2
if @SECOND='99999999-9999-9999-9999-999999999999'
set @ISDEFAULTENTRY = 1
update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @SECOND, ISDEFAULT = @ISDEFAULTENTRY where ID = @SECONDGUID
--if @THIRDGUID is not null
if @TABLECOUNT > 2
begin
set @ISDEFAULTENTRY = 0
if @THIRD is null
set @THIRD = @THIRD_2
if @THIRD='99999999-9999-9999-9999-999999999999'
set @ISDEFAULTENTRY = 1
update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @THIRD, ISDEFAULT = @ISDEFAULTENTRY where ID = @THIRDGUID
end
--if @FOURTHGUID is not null
if @TABLECOUNT > 3
begin
set @ISDEFAULTENTRY = 0
if @FOURTH is null
set @FOURTH = @FOURTH_2
if @FOURTH='99999999-9999-9999-9999-999999999999'
set @ISDEFAULTENTRY = 1
update dbo.PDCOMPOSITESEGMENTMAPPINGENTRY set LONGDESCRIPTIONID = @FOURTH, ISDEFAULT = @ISDEFAULTENTRY where ID = @FOURTHGUID
end
end
if dbo.UFN_PDCOMPOSITESEGMENTMAPPINGENTRY_VALIDMAPPING(@ID,@ID)=0
raiserror('ERR_PDCOMPOSITESEGMENTMAPPINGENTRY_VALIDMAPPING',13,1);
commit
end try
begin catch
rollback
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;