TR_CHARGELINEITEM_BILLINGITEMVALID
Definition
Copy
create trigger TR_CHARGELINEITEM_BILLINGITEMVALID
on dbo.CHARGELINEITEM
after insert,update
not for replication
as begin
begin try
if (exists (select INSERTED.ID
from INSERTED)) and
(not exists(
select INSERTED.ID
from INSERTED
inner join dbo.FINANCIALTRANSACTIONLINEITEM
on INSERTED.ID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.FINANCIALTRANSACTION
on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.BILLINGITEM
on INSERTED.BILLINGITEMID = BILLINGITEM.ID
left outer join dbo.BILLINGITEMPRICE
on BILLINGITEMPRICE.BILLINGITEMID = BILLINGITEM.ID
left outer join dbo.BILLINGITEMDATES
on BILLINGITEMDATES.BILLINGITEMID = BILLINGITEM.ID
where (BILLINGITEMPRICE.DATERANGETYPECODE=0 or (BILLINGITEMPRICE.STARTDATE<=FINANCIALTRANSACTION.[DATE] AND (BILLINGITEMPRICE.ENDDATE>=FINANCIALTRANSACTION.[DATE] OR BILLINGITEMPRICE.ENDDATE is null))) or
(BILLINGITEMDATES.DATERANGETYPECODE=0 or (BILLINGITEMDATES.STARTDATE<=FINANCIALTRANSACTION.[DATE] AND (BILLINGITEMDATES.ENDDATE>=FINANCIALTRANSACTION.[DATE] OR BILLINGITEMDATES.ENDDATE is null)))
))
raiserror('ERR_INVALID_CHARGEDATE', 13, 1);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
end