USP_DATAFORMTEMPLATE_EDITLOAD_DISCOUNTGROUPDETAILMERCHANDISE

The load procedure used by the edit dataform template "Discount Group Detail Merchandise Edit Data Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@APPLIESTOMERCHANDISECODE tinyint INOUT Applies to
@DISCOUNTMERCHANDISEDEPARTMENTS xml INOUT Departments
@DISCOUNTMERCHANDISEITEMS xml INOUT Items
@DISCOUNTTYPECODE tinyint INOUT
@MERCHANDISEAMOUNT money INOUT Value
@MERCHANDISEPERCENT decimal(5, 2) INOUT Value
@APPLIESTOCODE tinyint INOUT
@CALCULATIONTYPECODE tinyint INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_DISCOUNTGROUPDETAILMERCHANDISE
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @APPLIESTOMERCHANDISECODE tinyint = null output,
    @DISCOUNTMERCHANDISEDEPARTMENTS xml = null output,
    @DISCOUNTMERCHANDISEITEMS xml = null output,
    @DISCOUNTTYPECODE tinyint = null output,
    @MERCHANDISEAMOUNT money = null output,
    @MERCHANDISEPERCENT decimal(5, 2) = null output,
    @APPLIESTOCODE tinyint = null output,
    @CALCULATIONTYPECODE tinyint = null output
)
as
    set nocount on;

    set @DATALOADED = 0
    set @TSLONG = 0

    select
        @DATALOADED = 1,
        @APPLIESTOMERCHANDISECODE = DISCOUNTGROUPDETAIL.DISCOUNTGROUPDETAILAPPLICATIONCODE,
        @DISCOUNTTYPECODE = DISCOUNT.DISCOUNTTYPECODE,
        @MERCHANDISEAMOUNT = DISCOUNT.MERCHANDISEAMOUNT,
        @MERCHANDISEPERCENT = DISCOUNT.MERCHANDISEPERCENT,
        @APPLIESTOCODE = DISCOUNT.APPLIESTOCODE,
        @CALCULATIONTYPECODE = DISCOUNT.CALCULATIONTYPECODE
    from dbo.DISCOUNTGROUPDETAIL
    inner join dbo.DISCOUNTGROUP on DISCOUNTGROUP.ID = DISCOUNTGROUPDETAIL.DISCOUNTGROUPID
    inner join dbo.DISCOUNT on DISCOUNT.ID = DISCOUNTGROUP.DISCOUNTID
    where DISCOUNTGROUP.DISCOUNTID = @ID
        and DISCOUNTEDITEM = 1
        and DISCOUNTGROUPDETAIL.DISCOUNTGROUPDETAILAPPLICATIONCODE <> 3

    if @DATALOADED = 1
    begin
        if @APPLIESTOMERCHANDISECODE = 1
        begin
            set @DISCOUNTMERCHANDISEDEPARTMENTS = (
                select
                    DISCOUNTGROUPDETAILMERCHANDISEDEPARTMENT.ID,
                    DISCOUNTGROUPDETAILMERCHANDISEDEPARTMENT.MERCHANDISEDEPARTMENTID,
                    DISCOUNTGROUPDETAILMERCHANDISEDEPARTMENT.SEQUENCE
                from dbo.DISCOUNTGROUPDETAILMERCHANDISEDEPARTMENT
                inner join dbo.DISCOUNTGROUPDETAIL on dbo.DISCOUNTGROUPDETAILMERCHANDISEDEPARTMENT.ID = DISCOUNTGROUPDETAIL.ID
                inner join dbo.DISCOUNTGROUP on DISCOUNTGROUP.ID = DISCOUNTGROUPDETAIL.DISCOUNTGROUPID
                where DISCOUNTGROUP.DISCOUNTID = @ID
                    and DISCOUNTEDITEM = 1
                for xml raw('ITEM'),type,elements,root('DISCOUNTMERCHANDISEDEPARTMENTS'),binary base64
            );
        end
        else if @APPLIESTOMERCHANDISECODE = 2
        begin
            set @DISCOUNTMERCHANDISEITEMS = (
                select
                    DISCOUNTGROUPDETAILMERCHANDISEITEM.ID,
                    DISCOUNTGROUPDETAILMERCHANDISEITEM.MERCHANDISEITEMID,
                    DISCOUNTGROUPDETAILMERCHANDISEITEM.SEQUENCE
                from dbo.DISCOUNTGROUPDETAILMERCHANDISEITEM
                inner join dbo.DISCOUNTGROUPDETAIL on dbo.DISCOUNTGROUPDETAILMERCHANDISEITEM.ID = DISCOUNTGROUPDETAIL.ID
                inner join dbo.DISCOUNTGROUP on DISCOUNTGROUP.ID = DISCOUNTGROUPDETAIL.DISCOUNTGROUPID
                where DISCOUNTGROUP.DISCOUNTID = @ID
                    and DISCOUNTEDITEM = 1
                for xml raw('ITEM'),type,elements,root('DISCOUNTMERCHANDISEITEMS'),binary base64
            );

        end
    end

    return 0;