UFN_PRICELIST_ISEQUALTOPRICES

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@PRICELISTID uniqueidentifier IN
@PRICES xml IN
@INCLUDEINACTIVEPRICETYPES bit IN

Definition

Copy


create function dbo.UFN_PRICELIST_ISEQUALTOPRICES(@PRICELISTID uniqueidentifier, @PRICES xml, @INCLUDEINACTIVEPRICETYPES bit)
returns bit
as begin
    if @PRICELISTID is null or @PRICES is null begin
        return 0;
    end

    declare @AREEQUAL bit = 1;

    if exists (
        select
            *
        from (
            select
                PRICE.PRICETYPECODEID,
                PRICE.FACEPRICE,
                PRICE.SEQUENCE
            from
                dbo.PRICE
            inner join
                dbo.PRICETYPECODE on PRICETYPECODE.ID = PRICE.PRICETYPECODEID
            where
                PRICE.PRICELISTID = @PRICELISTID
                and (@INCLUDEINACTIVEPRICETYPES = 1 or PRICETYPECODE.ACTIVE = 1)
        ) as PRICELISTPRICES
        full outer join (
            select
                prices.value('(PRICETYPECODEID)[1]','uniqueidentifier') as PRICETYPECODEID,
                prices.value('(FACEPRICE)[1]','money') as FACEPRICE,
                prices.value('(SEQUENCE)[1]','int') as SEQUENCE
            from
                @PRICES.nodes('/PRICES/ITEM') T(prices)
        ) as PRICESCOLLECTION
            on PRICESCOLLECTION.PRICETYPECODEID = PRICELISTPRICES.PRICETYPECODEID
            and PRICESCOLLECTION.FACEPRICE = PRICELISTPRICES.FACEPRICE
            and PRICESCOLLECTION.SEQUENCE = PRICELISTPRICES.SEQUENCE
        where
            (PRICELISTPRICES.PRICETYPECODEID is null or PRICESCOLLECTION.PRICETYPECODEID is null)
    ) begin
        set @AREEQUAL = 0;
    end

    return @AREEQUAL;
end