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