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": "false",
|
"AYANOVA_SERVER_TEST_MODE": "true",
|
||||||
"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\\"
|
||||||
|
|||||||
@@ -506,15 +506,15 @@ namespace AyaNova.Biz
|
|||||||
//Validate subcontractor type user
|
//Validate subcontractor type user
|
||||||
if (!SeedOrImportRelaxedRulesMode && proposedObj.UserType == UserType.ServiceContractor)
|
if (!SeedOrImportRelaxedRulesMode && proposedObj.UserType == UserType.ServiceContractor)
|
||||||
{
|
{
|
||||||
if (proposedObj.SubVendorId == null || proposedObj.SubVendorId == 0)
|
if (proposedObj.VendorId == null || proposedObj.VendorId == 0)
|
||||||
{
|
{
|
||||||
AddError(ApiErrorCode.VALIDATION_REQUIRED, "SubVendorId");
|
AddError(ApiErrorCode.VALIDATION_REQUIRED, "VendorId");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//verify that VENDOR SubVendorId exists
|
//verify that VENDOR VendorId exists
|
||||||
if (!await ct.Vendor.AnyAsync(z => z.Id == proposedObj.SubVendorId))
|
if (!await ct.Vendor.AnyAsync(z => z.Id == proposedObj.VendorId))
|
||||||
AddError(ApiErrorCode.NOT_FOUND, "SubVendorId");
|
AddError(ApiErrorCode.NOT_FOUND, "VendorId");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -592,26 +592,7 @@ namespace AyaNova.Biz
|
|||||||
return DownloadUser;
|
return DownloadUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
//replaced by dtUser object instead
|
|
||||||
// internal static object CleanUserForReturn(User o)
|
|
||||||
// {
|
|
||||||
// return new
|
|
||||||
// {
|
|
||||||
// Id = o.Id,
|
|
||||||
// Concurrency = o.Concurrency,
|
|
||||||
// Active = o.Active,
|
|
||||||
// Name = o.Name,
|
|
||||||
// Roles = o.Roles,
|
|
||||||
// TranslationId = o.UserOptions.TranslationId,
|
|
||||||
// UserType = o.UserType,
|
|
||||||
// EmployeeNumber = o.EmployeeNumber,
|
|
||||||
// Notes = o.Notes,
|
|
||||||
// CustomerId = o.CustomerId,
|
|
||||||
// HeadOfficeId = o.HeadOfficeId,
|
|
||||||
// SubVendorId = o.SubVendorId
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace AyaNova.Models
|
|||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public long? CustomerId { get; set; }
|
public long? CustomerId { get; set; }
|
||||||
public long? HeadOfficeId { get; set; }
|
public long? HeadOfficeId { get; set; }
|
||||||
public long? SubVendorId { get; set; }
|
public long? VendorId { get; set; }
|
||||||
public string Wiki { get; set; }
|
public string Wiki { get; set; }
|
||||||
public string CustomFields { get; set; }
|
public string CustomFields { get; set; }
|
||||||
public List<string> Tags { get; set; }
|
public List<string> Tags { get; set; }
|
||||||
@@ -69,7 +69,7 @@ namespace AyaNova.Models
|
|||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public long? CustomerId { get; set; }
|
public long? CustomerId { get; set; }
|
||||||
public long? HeadOfficeId { get; set; }
|
public long? HeadOfficeId { get; set; }
|
||||||
public long? SubVendorId { get; set; }
|
public long? VendorId { get; set; }
|
||||||
public string Wiki { get; set; }
|
public string Wiki { get; set; }
|
||||||
public string CustomFields { get; set; }
|
public string CustomFields { get; set; }
|
||||||
|
|
||||||
@@ -80,6 +80,15 @@ namespace AyaNova.Models
|
|||||||
[JsonIgnore]//hide from being returned (as null anyway) with User object in routes
|
[JsonIgnore]//hide from being returned (as null anyway) with User object in routes
|
||||||
public UserOptions UserOptions { get; set; }
|
public UserOptions UserOptions { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public Customer Customer { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public HeadOffice HeadOffice { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public Vendor Vendor { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]//hide from being returned (as null anyway) with User object in routes
|
[JsonIgnore]//hide from being returned (as null anyway) with User object in routes
|
||||||
public Widget Widget { get; set; }
|
public Widget Widget { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $BODY$;
|
|||||||
await ExecQueryAsync("CREATE TABLE auser (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, active bool not null, name text not null unique, " +
|
await ExecQueryAsync("CREATE TABLE auser (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, active bool not null, name text not null unique, " +
|
||||||
"lastlogin timestamp, login text not null unique, password text not null, salt text not null, roles integer not null, currentauthtoken text, " +
|
"lastlogin timestamp, login text not null unique, password text not null, salt text not null, roles integer not null, currentauthtoken text, " +
|
||||||
"dlkey text, dlkeyexpire timestamp, usertype integer not null, employeenumber text, notes text, customerid bigint, " +
|
"dlkey text, dlkeyexpire timestamp, usertype integer not null, employeenumber text, notes text, customerid bigint, " +
|
||||||
"headofficeid bigint, subvendorid bigint, wiki text, customfields text, tags varchar(255) ARRAY)");
|
"headofficeid bigint, vendorid bigint, wiki text, customfields text, tags varchar(255) ARRAY)");
|
||||||
|
|
||||||
//Index for name fetching
|
//Index for name fetching
|
||||||
await ExecQueryAsync("CREATE UNIQUE INDEX auser_name_id_idx ON auser (id, name);");
|
await ExecQueryAsync("CREATE UNIQUE INDEX auser_name_id_idx ON auser (id, name);");
|
||||||
@@ -489,6 +489,7 @@ $BODY$;
|
|||||||
"postaddress text, postcity text, postregion text, postcountry text, postcode text, address text, city text, region text, country text, latitude decimal(8,6), longitude decimal(9,6))");
|
"postaddress text, postcity text, postregion text, postcountry text, postcode text, address text, city text, region text, country text, latitude decimal(8,6), longitude decimal(9,6))");
|
||||||
await ExecQueryAsync("CREATE UNIQUE INDEX acustomer_name_id_idx ON acustomer (id, name);");
|
await ExecQueryAsync("CREATE UNIQUE INDEX acustomer_name_id_idx ON acustomer (id, name);");
|
||||||
await ExecQueryAsync("CREATE INDEX acustomer_tags ON acustomer using GIN(tags)");
|
await ExecQueryAsync("CREATE INDEX acustomer_tags ON acustomer using GIN(tags)");
|
||||||
|
await ExecQueryAsync("ALTER TABLE auser add FOREIGN KEY (customerid) REFERENCES acustomer(id)");
|
||||||
|
|
||||||
|
|
||||||
//CONTRACT
|
//CONTRACT
|
||||||
@@ -506,6 +507,7 @@ $BODY$;
|
|||||||
await ExecQueryAsync("CREATE UNIQUE INDEX aheadoffice_name_id_idx ON aheadoffice (id, name);");
|
await ExecQueryAsync("CREATE UNIQUE INDEX aheadoffice_name_id_idx ON aheadoffice (id, name);");
|
||||||
await ExecQueryAsync("CREATE INDEX aheadoffice_tags ON aheadoffice using GIN(tags)");
|
await ExecQueryAsync("CREATE INDEX aheadoffice_tags ON aheadoffice using GIN(tags)");
|
||||||
await ExecQueryAsync("ALTER TABLE acustomer add column headofficeid bigint null references aheadoffice");
|
await ExecQueryAsync("ALTER TABLE acustomer add column headofficeid bigint null references aheadoffice");
|
||||||
|
await ExecQueryAsync("ALTER TABLE auser add FOREIGN KEY (headofficeid) REFERENCES aheadoffice(id)");
|
||||||
|
|
||||||
|
|
||||||
//LOANUNIT
|
//LOANUNIT
|
||||||
@@ -549,6 +551,7 @@ $BODY$;
|
|||||||
"notes text, wiki text, customfields text, tags varchar(255) ARRAY )");
|
"notes text, wiki text, customfields text, tags varchar(255) ARRAY )");
|
||||||
await ExecQueryAsync("CREATE UNIQUE INDEX avendor_name_id_idx ON avendor (id, name);");
|
await ExecQueryAsync("CREATE UNIQUE INDEX avendor_name_id_idx ON avendor (id, name);");
|
||||||
await ExecQueryAsync("CREATE INDEX avendor_tags ON avendor using GIN(tags)");
|
await ExecQueryAsync("CREATE INDEX avendor_tags ON avendor using GIN(tags)");
|
||||||
|
await ExecQueryAsync("ALTER TABLE auser add FOREIGN KEY (vendorid) REFERENCES avendor(id)");
|
||||||
|
|
||||||
//----------
|
//----------
|
||||||
//WORKORDER
|
//WORKORDER
|
||||||
|
|||||||
Reference in New Issue
Block a user