TR_BILLINGITEMPRICE_INSERT_UPDATE

Definition

Copy


      create trigger TR_BILLINGITEMPRICE_INSERT_UPDATE on dbo.BILLINGITEMPRICE after insert,update not for replication
      as begin
          begin try
            if (exists (select BILLINGITEMPRICE.ID from BILLINGITEMPRICE inner join INSERTED I on BILLINGITEMPRICE.BILLINGITEMID=I.BILLINGITEMID
            where (BILLINGITEMPRICE.ID <> I.ID) AND (I.DATERANGETYPECODE=0 OR BILLINGITEMPRICE.DATERANGETYPECODE=0)))
                begin
                    raiserror('ERR_BILLINGITEMPRICE_OVERLAP', 13, 1);
                end

            if (exists (select BILLINGITEMPRICE.ID from BILLINGITEMPRICE inner join INSERTED I on BILLINGITEMPRICE.BILLINGITEMID=I.BILLINGITEMID
            where (BILLINGITEMPRICE.ID <> I.ID) AND (
            (BILLINGITEMPRICE.STARTDATE between I.STARTDATE and I.ENDDATE) OR 
            (BILLINGITEMPRICE.ENDDATE between I.STARTDATE and I.ENDDATE) OR 
            (BILLINGITEMPRICE.STARTDATE <= I.STARTDATE and BILLINGITEMPRICE.ENDDATE >= I.ENDDATE) OR
            (BILLINGITEMPRICE.ENDDATE IS NULL AND BILLINGITEMPRICE.STARTDATE<=I.ENDDATE) OR
            (I.ENDDATE IS NULL AND I.STARTDATE<=BILLINGITEMPRICE.ENDDATE) OR
            (I.ENDDATE IS NULL AND BILLINGITEMPRICE.ENDDATE IS NULL))))
                begin
                    raiserror('ERR_BILLINGITEMPRICE_OVERLAP', 13, 1);
                end

          end try
            begin catch
                exec dbo.USP_RAISE_ERROR;
            end catch
      end