USP_DATAFORMTEMPLATE_EDIT_DISCOUNTCONSTITUENCY

The save procedure used by the edit dataform template "DiscountConstituency Edit Data 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.
@DISCOUNTCONSTITUENCYCODES xml IN Restrict discount to these constituencies

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DISCOUNTCONSTITUENCY
(
    @ID uniqueidentifier,                        
    @CHANGEAGENTID uniqueidentifier = null,
    @DISCOUNTCONSTITUENCYCODES xml
)
as
    set nocount on;

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();                    

    declare @XML xml;
    set @XML = (
    select 
        case CONSTITUENCYDEFINITION.ISSYSTEM
            when 1 then null
            else CONSTITUENCYDEFINITION.ID
        end as CONSTITUENCYCODEID,
        case CONSTITUENCYDEFINITION.ISSYSTEM
            when 1 then CONSTITUENCYDEFINITION.ID
            else null
        end as CONSTITUENCYSYSTEMNAMEID,
        NEWTABLE.ID,
        NEWTABLE.SEQUENCE
    from
        (select
            T.c.value('(CONSTITUENCYCODEID)[1]','uniqueidentifier') as 'CONSTITUENCYCODEID',
            T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
            T.c.value('(SEQUENCE)[1]','int') as 'SEQUENCE'
        from 
            @DISCOUNTCONSTITUENCYCODES.nodes('/DISCOUNTCONSTITUENCYCODES/ITEM') T(c)
        ) as NEWTABLE
        left join dbo.CONSTITUENCYDEFINITION on NEWTABLE.CONSTITUENCYCODEID = CONSTITUENCYDEFINITION.ID
    where 
        NEWTABLE.CONSTITUENCYCODEID is not null
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
    for xml raw('ITEM'),type,elements,root('DISCOUNTCONSTITUENCYCODES'),BINARY BASE64            
    );

    begin try
        exec dbo.USP_DISCOUNT_GETCONSTITUENCYCODES_UPDATEFROMXML @ID, @XML, @CHANGEAGENTID, @CURRENTDATE;            
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;