diff --git a/server/AyaNova/biz/ServiceRateBiz.cs b/server/AyaNova/biz/ServiceRateBiz.cs index 12584987..895dd080 100644 --- a/server/AyaNova/biz/ServiceRateBiz.cs +++ b/server/AyaNova/biz/ServiceRateBiz.cs @@ -253,6 +253,18 @@ namespace AyaNova.Biz } } + if (!isNew && (proposedObj.Cost != currentObj.Cost || proposedObj.Charge != currentObj.Charge)) + { + if (await ct.ContractServiceRate.AnyAsync(x => x.ServiceRateId == proposedObj.Id)) + AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("Contract")); + + if (await ct.WorkOrderItemLabor.AnyAsync(x => x.ServiceRateId == proposedObj.Id)) + AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemLabor")); + + if (await ct.WorkOrderItemScheduledUser.AnyAsync(x => x.ServiceRateId == proposedObj.Id)) + AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemScheduledUser")); + } + //Any form customizations to validate? var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.ServiceRate.ToString()); diff --git a/server/AyaNova/biz/TravelRateBiz.cs b/server/AyaNova/biz/TravelRateBiz.cs index 0e32305e..18d906e4 100644 --- a/server/AyaNova/biz/TravelRateBiz.cs +++ b/server/AyaNova/biz/TravelRateBiz.cs @@ -253,6 +253,19 @@ namespace AyaNova.Biz } } + + if (!isNew && (proposedObj.Cost != currentObj.Cost || proposedObj.Charge != currentObj.Charge)) + { + + if (await ct.ContractTravelRate.AnyAsync(x => x.TravelRateId == proposedObj.Id)) + AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("Contract")); + + if (await ct.WorkOrderItemTravel.AnyAsync(x => x.TravelRateId == proposedObj.Id)) + AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemTravel")); + + } + + //Any form customizations to validate? var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.TravelRate.ToString()); diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 645f2414..de4f61d5 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -581,12 +581,12 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //CONTRACTSERVICERATE await ExecQueryAsync("CREATE TABLE acontractservicerate (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, contractid BIGINT NOT NULL REFERENCES acontract ON DELETE CASCADE, " - + "servicerateid BIGINT NOT NULL REFERENCES aservicerate ON DELETE CASCADE" + + "servicerateid BIGINT NOT NULL REFERENCES aservicerate " + ")"); //CONTRACTTRAVELERATE await ExecQueryAsync("CREATE TABLE acontracttravelrate (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, contractid BIGINT NOT NULL REFERENCES acontract ON DELETE CASCADE, " - + "travelrateid BIGINT NOT NULL REFERENCES atravelrate ON DELETE CASCADE" + + "travelrateid BIGINT NOT NULL REFERENCES atravelrate " + ")"); //CONTRACTPARTOVERRIDE