UFN_DISCOUNT_UNIQUEPROGRAMCHECK

Checks to insure duplicate programs are not added to discounts

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@DISCOUNTGROUPDETAILPROGRAMID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_DISCOUNT_UNIQUEPROGRAMCHECK
(
    @DISCOUNTGROUPDETAILPROGRAMID uniqueidentifier
)
returns bit
with execute as caller
as begin
    declare @PROGRAMID uniqueidentifier;
    declare @DISCOUNTID uniqueidentifier;
    declare @ISDISCOUNTEDITEM bit;

    select @PROGRAMID = PROGRAMID from dbo.DISCOUNTGROUPDETAILPROGRAM where ID = @DISCOUNTGROUPDETAILPROGRAMID;

    select
        @DISCOUNTID = DG.DISCOUNTID,
        @ISDISCOUNTEDITEM = DGD.DISCOUNTEDITEM
    from dbo.DISCOUNTGROUPDETAIL DGD
        inner join dbo.DISCOUNTGROUP DG on DG.ID = DGD.DISCOUNTGROUPID
    where
        DGD.ID = @DISCOUNTGROUPDETAILPROGRAMID

    if exists (
        select DGDP.ID
        from dbo.DISCOUNTGROUP DG
            inner join dbo.DISCOUNTGROUPDETAIL DGD on DGD.DISCOUNTGROUPID = DG.ID
            inner join dbo.DISCOUNTGROUPDETAILPROGRAM DGDP on DGD.ID = DGDP.ID
        where
            DG.DISCOUNTID = @DISCOUNTID
            and DGD.DISCOUNTEDITEM = @ISDISCOUNTEDITEM
            and DGDP.PROGRAMID = @PROGRAMID
            and DGDP.ID <> @DISCOUNTGROUPDETAILPROGRAMID
    )
    begin
        return 0 --this program already exists on this discount

    end
    else
    begin
        return 1 --good to go

    end
    return 0
end