This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -48,7 +48,7 @@
|
|||||||
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
|
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
|
||||||
"AYANOVA_USE_URLS": "http://*:7575;",
|
"AYANOVA_USE_URLS": "http://*:7575;",
|
||||||
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
|
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
|
||||||
"AYANOVA_SERVER_TEST_MODE": "false",
|
"AYANOVA_SERVER_TEST_MODE": "true",
|
||||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
|
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
|
||||||
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
|
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
|
||||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
TODO:
|
TODO:
|
||||||
OUTSTANDING FOR IMPORT:
|
OUTSTANDING FOR IMPORT:
|
||||||
|
|
||||||
DOCS regarding missing boolean value in csv and info on not leaving empty
|
|
||||||
|
|
||||||
POST IMPORT TASKS
|
POST IMPORT TASKS
|
||||||
once working and confirmed post update and upate the beta forum with NEW RELEASE
|
once working and confirmed post update and upate the beta forum with NEW RELEASE
|
||||||
does forum working need to be changed to not only issues but new updates there as well?
|
does forum working need to be changed to not only issues but new updates there as well?
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ The .json file must contain an **array** of one or more objects.
|
|||||||
"WebAddress": "https://example.biz",
|
"WebAddress": "https://example.biz",
|
||||||
"AlertNotes": null,
|
"AlertNotes": null,
|
||||||
"BillHeadOffice": true,
|
"BillHeadOffice": true,
|
||||||
"HeadOfficeViz": "XYZ HeadOffice",
|
"HeadOfficeViz": "XYZ Head Office",
|
||||||
"TechNotes": null,
|
"TechNotes": null,
|
||||||
"AccountNumber": "88129181",
|
"AccountNumber": "88129181",
|
||||||
"ContractViz": "Gold Contract",
|
"ContractViz": "Gold",
|
||||||
"ContractExpires": "2022-12-30T00:00:00Z",
|
"ContractExpires": "2022-12-30T00:00:00Z",
|
||||||
"Phone1": "(948) 817-1939",
|
"Phone1": "(948) 817-1939",
|
||||||
"Phone2": "768-686-6990",
|
"Phone2": "768-686-6990",
|
||||||
@@ -165,7 +165,7 @@ The first row of the .csv file must contain column headers that match the field
|
|||||||
|
|
||||||
```
|
```
|
||||||
Name,Active,Notes,Wiki,Tags,WebAddress,AlertNotes,BillHeadOffice,HeadOfficeViz,TechNotes,AccountNumber,ContractViz,ContractExpires,Phone1,Phone2,Phone3,Phone4,Phone5,EmailAddress,PostAddress,PostCity,PostRegion,PostCountry,PostCode,Address,City,Region,Country,Latitude,Longitude
|
Name,Active,Notes,Wiki,Tags,WebAddress,AlertNotes,BillHeadOffice,HeadOfficeViz,TechNotes,AccountNumber,ContractViz,ContractExpires,Phone1,Phone2,Phone3,Phone4,Phone5,EmailAddress,PostAddress,PostCity,PostRegion,PostCountry,PostCode,Address,City,Region,Country,Latitude,Longitude
|
||||||
Armstrong LLC,true,Ergonomic empowering project,,"black,purple,quince,zone1,zone4",https://example.biz,,true,XYZ HeadOffice,,88129181,Gold Contract,2022-12-30T00:00:00Z,(948) 817-1939,768-686-6990,(343) 810-7973,,,Talia.Terry53@example.net,7942 Herman Dale,Mabelville,Michigan,Denmark,53147,7937 Dale Estates,Mabelville,Michigan,Denmark,46.8059,-64.1016
|
Armstrong LLC,true,Ergonomic empowering project,,"black,purple,quince,zone1,zone4",https://example.biz,,true,XYZ Head Office,,88129181,Gold,2022-12-30T00:00:00Z,(948) 817-1939,768-686-6990,(343) 810-7973,,,Talia.Terry53@example.net,7942 Herman Dale,Mabelville,Michigan,Denmark,53147,7937 Dale Estates,Mabelville,Michigan,Denmark,46.8059,-64.1016
|
||||||
Adams Inc,true,Stand-alone clear-thinking contingency,,zone3,https://example.org,,false,,,27263133,,,534.467.2146,(897) 987-0916 x510,(389) 833-8807,,,Ramona_Gulgowski@example.com,398 Mary Ridge,East Colbyberg,Rhode Island,Sierra Leone,41587,720 Jennie Green,East Colbyberg,Rhode Island,Sierra Leone,23.6209,-0.3821
|
Adams Inc,true,Stand-alone clear-thinking contingency,,zone3,https://example.org,,false,,,27263133,,,534.467.2146,(897) 987-0916 x510,(389) 833-8807,,,Ramona_Gulgowski@example.com,398 Mary Ridge,East Colbyberg,Rhode Island,Sierra Leone,41587,720 Jennie Green,East Colbyberg,Rhode Island,Sierra Leone,23.6209,-0.3821
|
||||||
Bartell Inc,true,Devolved asynchronous info-mediaries,,zone7,http://example.org,,false,,,28202278,,,670.690.0352 x841,1-687-856-1614,1-665-462-1998 x08190,,,Autumn99@example.org,5112 Stanley Heights,North Hazelport,Alabama,Turkey,53994,5111 Wilkinson Bypass,North Hazelport,Alabama,Turkey,47.3514,161.4385
|
Bartell Inc,true,Devolved asynchronous info-mediaries,,zone7,http://example.org,,false,,,28202278,,,670.690.0352 x841,1-687-856-1614,1-665-462-1998 x08190,,,Autumn99@example.org,5112 Stanley Heights,North Hazelport,Alabama,Turkey,53994,5111 Wilkinson Bypass,North Hazelport,Alabama,Turkey,47.3514,161.4385
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ If no errors are found then the record is saved into the database and a success
|
|||||||
|
|
||||||
If errors are found during validation no save is made and the error message is added to the results list displayed in the Import form once import has completed.
|
If errors are found during validation no save is made and the error message is added to the results list displayed in the Import form once import has completed.
|
||||||
|
|
||||||
|
When import has completed the *import* result list will show any errors or imported records and "Process completed".
|
||||||
|
|
||||||
|
Records not imported due to already being present will not show in the *import* result list.
|
||||||
|
|
||||||
### Import items are automatically tagged
|
### Import items are automatically tagged
|
||||||
|
|
||||||
To make it easier to identify and if necessary mass delete imported records (for example if a mistake was found), imported records are automatically tagged with a unique time-stamped import tag. The time stamp is the same for that entire batch imported at once making them easy to identify.
|
To make it easier to identify and if necessary mass delete imported records (for example if a mistake was found), imported records are automatically tagged with a unique time-stamped import tag. The time stamp is the same for that entire batch imported at once making them easy to identify.
|
||||||
@@ -70,6 +74,10 @@ The key (usually `Name`) field can not be updated as it's used to match records.
|
|||||||
|
|
||||||
Unlike the import process, updated records are _not_ automatically tagged (the only way to undo an update is to [restore from backup](ops-restore.md)) however you can still see which records were updated if necessary by viewing the [User history](ay-history.md) of the User who ran the update.
|
Unlike the import process, updated records are _not_ automatically tagged (the only way to undo an update is to [restore from backup](ops-restore.md)) however you can still see which records were updated if necessary by viewing the [User history](ay-history.md) of the User who ran the update.
|
||||||
|
|
||||||
|
When update has completed the *update* result list will show any errors or updated records and "Process completed".
|
||||||
|
|
||||||
|
Records not updated due to not matching an existing record will not show in the *update* result list.
|
||||||
|
|
||||||
### Partial record updates
|
### Partial record updates
|
||||||
|
|
||||||
There is often a need to only **partially** update existing records in **specific** fields.
|
There is often a need to only **partially** update existing records in **specific** fields.
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
|
|
||||||
var nameToFetch = t.ToString();
|
var nameToFetch = t.ToString();
|
||||||
if (t == AyaType.PartInventory)
|
if (t == AyaType.PartInventory)
|
||||||
nameToFetch = "PartByWarehouseInventoryList";
|
nameToFetch = "PartInventoryTransaction";
|
||||||
TranslationKeysToFetch.Add(nameToFetch);
|
TranslationKeysToFetch.Add(nameToFetch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -206,7 +206,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
{
|
{
|
||||||
var tName = t.ToString();
|
var tName = t.ToString();
|
||||||
if (t == AyaType.PartInventory)
|
if (t == AyaType.PartInventory)
|
||||||
tName = "PartByWarehouseInventoryList";
|
tName = "PartInventoryTransaction";
|
||||||
string name = string.Empty;
|
string name = string.Empty;
|
||||||
if (LT.ContainsKey(tName))
|
if (LT.ContainsKey(tName))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1292,21 +1292,25 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
|||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Update existing records' FROM atranslation t where t.baselanguage = 'en'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Update existing records' FROM atranslation t where t.baselanguage = 'en'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Warning: you are about to permanently change multiple objects.\r\nAre you sure?' FROM atranslation t where t.baselanguage = 'en'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Warning: you are about to permanently change multiple objects.\r\nAre you sure?' FROM atranslation t where t.baselanguage = 'en'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'File to import' FROM atranslation t where t.baselanguage = 'en'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'File to import' FROM atranslation t where t.baselanguage = 'en'");
|
||||||
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Process completed' FROM atranslation t where t.baselanguage = 'en'");
|
||||||
//spanish translations
|
//spanish translations
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importar nuevos registros' FROM atranslation t where t.baselanguage = 'es'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importar nuevos registros' FROM atranslation t where t.baselanguage = 'es'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Actualizar registros existentes' FROM atranslation t where t.baselanguage = 'es'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Actualizar registros existentes' FROM atranslation t where t.baselanguage = 'es'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Advertencia: está a punto de cambiar varios objetos de forma permanente.\r\n¿Está seguro?' FROM atranslation t where t.baselanguage = 'es'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Advertencia: está a punto de cambiar varios objetos de forma permanente.\r\n¿Está seguro?' FROM atranslation t where t.baselanguage = 'es'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Archivo a importar' FROM atranslation t where t.baselanguage = 'es'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Archivo a importar' FROM atranslation t where t.baselanguage = 'es'");
|
||||||
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Proceso completado' FROM atranslation t where t.baselanguage = 'es'");
|
||||||
//french translations
|
//french translations
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importer de nouveaux enregistrements' FROM atranslation t where t.baselanguage = 'fr'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importer de nouveaux enregistrements' FROM atranslation t where t.baselanguage = 'fr'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Mettre à jour les enregistrements existants' FROM atranslation t where t.baselanguage = 'fr'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Mettre à jour les enregistrements existants' FROM atranslation t where t.baselanguage = 'fr'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Avertissement: vous êtes sur le point de modifier définitivement plusieurs objets.\r\nÊtes-vous sûr?' FROM atranslation t where t.baselanguage = 'fr'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Avertissement: vous êtes sur le point de modifier définitivement plusieurs objets.\r\nÊtes-vous sûr?' FROM atranslation t where t.baselanguage = 'fr'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Fichier à importer' FROM atranslation t where t.baselanguage = 'fr'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Fichier à importer' FROM atranslation t where t.baselanguage = 'fr'");
|
||||||
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Processus terminé' FROM atranslation t where t.baselanguage = 'fr'");
|
||||||
//german translations
|
//german translations
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importieren Sie neue Datensätze' FROM atranslation t where t.baselanguage = 'de'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importieren Sie neue Datensätze' FROM atranslation t where t.baselanguage = 'de'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Aktualisieren Sie vorhandene Datensätze' FROM atranslation t where t.baselanguage = 'de'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Aktualisieren Sie vorhandene Datensätze' FROM atranslation t where t.baselanguage = 'de'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Warnung: Sie sind dabei, mehrere Objekte dauerhaft zu ändern.\r\nSind Sie sicher?' FROM atranslation t where t.baselanguage = 'de'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Warnung: Sie sind dabei, mehrere Objekte dauerhaft zu ändern.\r\nSind Sie sicher?' FROM atranslation t where t.baselanguage = 'de'");
|
||||||
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Zu importierende Datei' FROM atranslation t where t.baselanguage = 'de'");
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Zu importierende Datei' FROM atranslation t where t.baselanguage = 'de'");
|
||||||
|
await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Prozess abgeschlossen' FROM atranslation t where t.baselanguage = 'de'");
|
||||||
|
|
||||||
await SetSchemaLevelAsync(++currentSchema);
|
await SetSchemaLevelAsync(++currentSchema);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user