UFN_PDACCOUNTCODEMAPPING_VALIDMAPPING2

Returns 1 if the PDAccountCodeMapping record is unique, 0 otherwise if it is a duplicate of another record.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@PDAccountCodeMappingID uniqueidentifier IN
@PDAccountSystemID uniqueidentifier IN
@DATECHANGED datetime IN

Definition

Copy


create function dbo.UFN_PDACCOUNTCODEMAPPING_VALIDMAPPING2(@PDAccountCodeMappingID uniqueidentifier, @PDAccountSystemID uniqueidentifier, @DATECHANGED datetime)
returns bit
with execute as caller
as 
begin
declare @Valid bit
if exists (select * from
  (select isnull(t2.NAMEID,0) as RevenueID, isnull(t3.NAMEID,0) as ApplicationID, isnull(t4.NAMEID,0) as PaymentMethodID, t1.OFFICEID
  from dbo.PDACCOUNTCODEMAPPING t1 left join dbo.PDACCOUNTCODEMAPREVENUETYPE t2 on (t1.REVENUETYPE & t2.NAMEID) > 0 and t1.OFFICEID = t2.OFFICEID
  left join dbo.PDACCOUNTCODEMAPAPPLICATIONTYPE t3 on (t1.APPLICATIONTYPE & t3.NAMEID) > 0 and t1.OFFICEID = t3.OFFICEID
  left join dbo.PDACCOUNTCODEMAPPAYMENTMETHODTYPE t4 on (t1.PAYMENTMETHOD & t4.NAMEID) > 0 and t1.OFFICEID = t4.OFFICEID
  where t1.PDACCOUNTSYSTEMID = @PDAccountSystemID and t1.ID != @PDAccountCodeMappingID
  and (t2.HASSUBTYPE = 0 or t1.REVENUETYPE = 0)
  and (t3.HASSUBTYPE = 0 or t1.APPLICATIONTYPE = 0)
  and (t4.HASSUBTYPE = 0 or t1.PAYMENTMETHOD = 0)) V1
  inner join
  (select isnull(t2.NAMEID,0) as RevenueID, isnull(t3.NAMEID,0) as ApplicationID, isnull(t4.NAMEID,0) as PaymentMethodID, t1.OFFICEID
  from dbo.PDACCOUNTCODEMAPPING t1 left join dbo.PDACCOUNTCODEMAPREVENUETYPE t2 on (t1.REVENUETYPE & t2.NAMEID) > 0 and t1.OFFICEID = t2.OFFICEID
  left join dbo.PDACCOUNTCODEMAPAPPLICATIONTYPE t3 on (t1.APPLICATIONTYPE & t3.NAMEID) > 0 and t1.OFFICEID = t3.OFFICEID
  left join dbo.PDACCOUNTCODEMAPPAYMENTMETHODTYPE t4 on (t1.PAYMENTMETHOD & t4.NAMEID) > 0 and t1.OFFICEID = t4.OFFICEID
  where t1.PDACCOUNTSYSTEMID = @PDAccountSystemID and t1.ID = @PDAccountCodeMappingID
  and (t2.HASSUBTYPE = 0 or t1.REVENUETYPE = 0)
  and (t3.HASSUBTYPE = 0 or t1.APPLICATIONTYPE = 0)
  and (t4.HASSUBTYPE = 0 or t1.PAYMENTMETHOD = 0)) V2
  on V1.OfficeID = V2.OFFICEID and V1.RevenueID = V2.RevenueID and V1.ApplicationID = V2.ApplicationID and V1.PaymentMethodID = V2.PaymentMethodID
  )
    set @Valid = 0
else
    set @Valid = 1

return @Valid
end