From 9f05df3c04d691c43ced041a6f0a97583ee09751 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 31 Mar 2022 17:00:01 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- devdocs/todo.txt | 2 -- docs/8.0/ayanova/docs/adm-import-customer.md | 6 +++--- docs/8.0/ayanova/docs/adm-import.md | 8 ++++++++ server/AyaNova/Controllers/EnumListController.cs | 4 ++-- server/AyaNova/util/AySchema.cs | 4 ++++ 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 2c3525c1..7c905164 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -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", diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 94323514..a6595b4c 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -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 diff --git a/docs/8.0/ayanova/docs/adm-import-customer.md b/docs/8.0/ayanova/docs/adm-import-customer.md index 1559f783..d5ca38ea 100644 --- a/docs/8.0/ayanova/docs/adm-import-customer.md +++ b/docs/8.0/ayanova/docs/adm-import-customer.md @@ -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 ``` diff --git a/docs/8.0/ayanova/docs/adm-import.md b/docs/8.0/ayanova/docs/adm-import.md index 01654b08..8c5fdc7f 100644 --- a/docs/8.0/ayanova/docs/adm-import.md +++ b/docs/8.0/ayanova/docs/adm-import.md @@ -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. diff --git a/server/AyaNova/Controllers/EnumListController.cs b/server/AyaNova/Controllers/EnumListController.cs index e1fbceab..da2f4ff1 100644 --- a/server/AyaNova/Controllers/EnumListController.cs +++ b/server/AyaNova/Controllers/EnumListController.cs @@ -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)) { diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 09f75011..eb5f8a25 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -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); }