This commit is contained in:
2022-03-31 17:00:01 +00:00
parent 156ef81b51
commit 9f05df3c04
6 changed files with 18 additions and 8 deletions

2
.vscode/launch.json vendored
View File

@@ -48,7 +48,7 @@
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
"AYANOVA_USE_URLS": "http://*:7575;",
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
"AYANOVA_SERVER_TEST_MODE": "false",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",

View File

@@ -5,8 +5,6 @@
TODO:
OUTSTANDING FOR IMPORT:
DOCS regarding missing boolean value in csv and info on not leaving empty
POST IMPORT TASKS
once working and confirmed post update and upate the beta forum with NEW RELEASE

View File

@@ -71,10 +71,10 @@ The .json file must contain an **array** of one or more objects.
"WebAddress": "https://example.biz",
"AlertNotes": null,
"BillHeadOffice": true,
"HeadOfficeViz": "XYZ HeadOffice",
"HeadOfficeViz": "XYZ Head Office",
"TechNotes": null,
"AccountNumber": "88129181",
"ContractViz": "Gold Contract",
"ContractViz": "Gold",
"ContractExpires": "2022-12-30T00:00:00Z",
"Phone1": "(948) 817-1939",
"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
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
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
```

View File

@@ -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.
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
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.
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
There is often a need to only **partially** update existing records in **specific** fields.

View File

@@ -194,7 +194,7 @@ namespace AyaNova.Api.Controllers
var nameToFetch = t.ToString();
if (t == AyaType.PartInventory)
nameToFetch = "PartByWarehouseInventoryList";
nameToFetch = "PartInventoryTransaction";
TranslationKeysToFetch.Add(nameToFetch);
}
}
@@ -206,7 +206,7 @@ namespace AyaNova.Api.Controllers
{
var tName = t.ToString();
if (t == AyaType.PartInventory)
tName = "PartByWarehouseInventoryList";
tName = "PartInventoryTransaction";
string name = string.Empty;
if (LT.ContainsKey(tName))
{

View File

@@ -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, '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, 'ProcessCompleted', 'Process completed' FROM atranslation t where t.baselanguage = 'en'");
//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, '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, '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
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, '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, 'ProcessCompleted', 'Processus terminé' FROM atranslation t where t.baselanguage = 'fr'");
//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, '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, '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);
}