This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -53,7 +53,7 @@
|
||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
||||
"AYANOVA_SERVER_TEST_MODE": "true",
|
||||
"AYANOVA_SERVER_TEST_MODE": "false",
|
||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
||||
|
||||
@@ -238,14 +238,28 @@ namespace AyaNova.Biz
|
||||
|| proposedObj.TaxBPct != currentObj.TaxBPct
|
||||
|| proposedObj.TaxOnTax != currentObj.TaxOnTax))
|
||||
{
|
||||
//MIGRATE_OUTSTANDING - check workorder records once wo is coded here for this tax code in use
|
||||
//also any other object that uses tax codes besides global settings and purchase order items
|
||||
//todo: possibly, consider returning after any positive below to not swamp the UI with errors??
|
||||
if (isGlobalDefault)
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("AdministrationGlobalSettings"));
|
||||
|
||||
if (await ct.PurchaseOrderItem.AnyAsync(x => x.PurchaseTaxCodeId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("PurchaseOrder"));
|
||||
|
||||
if (isGlobalDefault)
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("AdministrationGlobalSettings"));
|
||||
if (await ct.WorkOrderItemTravel.AnyAsync(x => x.TaxCodeSaleId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemTravel"));
|
||||
|
||||
if (await ct.WorkOrderItemPart.AnyAsync(x => x.TaxPartSaleId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemPart"));
|
||||
|
||||
if (await ct.WorkOrderItemLoan.AnyAsync(x => x.TaxCodeId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemLoan"));
|
||||
|
||||
if (await ct.WorkOrderItemLabor.AnyAsync(x => x.TaxCodeSaleId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemLabor"));
|
||||
|
||||
if (await ct.WorkOrderItemExpense.AnyAsync(x => x.ChargeTaxCodeId == proposedObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemExpense"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -267,6 +281,8 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.TaxCode.ToString());
|
||||
if (FormCustomization != null)
|
||||
@@ -284,14 +300,30 @@ namespace AyaNova.Biz
|
||||
private async Task ValidateCanDeleteAsync(TaxCode inObj)
|
||||
{
|
||||
//Referential integrity
|
||||
//FOREIGN KEY CHECKS
|
||||
if (await ct.PurchaseOrderItem.AnyAsync(m => m.PurchaseTaxCodeId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("PurchaseOrder"));
|
||||
//FOREIGN KEY CHECKS
|
||||
|
||||
if (ServerGlobalBizSettings.TaxPartPurchaseId == inObj.Id
|
||||
|| ServerGlobalBizSettings.TaxPartSaleId == inObj.Id
|
||||
|| ServerGlobalBizSettings.TaxRateSaleId == inObj.Id)
|
||||
AddError(ApiErrorCode.INVALID_OPERATION, "generalerror", await Translate("TaxCodeDefault"));
|
||||
|
||||
if (await ct.PurchaseOrderItem.AnyAsync(x => x.PurchaseTaxCodeId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("PurchaseOrder"));
|
||||
|
||||
if (await ct.WorkOrderItemTravel.AnyAsync(x => x.TaxCodeSaleId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemTravel"));
|
||||
|
||||
if (await ct.WorkOrderItemPart.AnyAsync(x => x.TaxPartSaleId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemPart"));
|
||||
|
||||
if (await ct.WorkOrderItemLoan.AnyAsync(x => x.TaxCodeId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemLoan"));
|
||||
|
||||
if (await ct.WorkOrderItemLabor.AnyAsync(x => x.TaxCodeSaleId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemLabor"));
|
||||
|
||||
if (await ct.WorkOrderItemExpense.AnyAsync(x => x.ChargeTaxCodeId == inObj.Id))
|
||||
AddError(ApiErrorCode.VALIDATION_REFERENTIAL_INTEGRITY, "generalerror", await Translate("WorkOrderItemExpense"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -253,9 +253,9 @@ namespace AyaNova.Util
|
||||
await ExecQueryAsync("CREATE TABLE aglobalbizsettings (id INTEGER NOT NULL PRIMARY KEY, "
|
||||
+ "searchcasesensitiveonly BOOL DEFAULT FALSE, "
|
||||
+ "useinventory BOOL DEFAULT TRUE, "
|
||||
+ "taxpartpurchaseid BIGINT, "
|
||||
+ "taxpartsaleid BIGINT, "
|
||||
+ "taxratesaleid BIGINT, "
|
||||
+ "taxpartpurchaseid BIGINT REFERENCES ataxcode, "
|
||||
+ "taxpartsaleid BIGINT REFERENCES ataxcode, "
|
||||
+ "taxratesaleid BIGINT REFERENCES ataxcode, "
|
||||
+ "workordercompletebyage INTERVAL NOT NULL DEFAULT '00:00:00'"
|
||||
+ ")");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user