diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index a0e99a96..e554f8e0 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 8b4eb34b..42481e32 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -557,6 +557,8 @@ namespace Step.Database.Controllers Tools = FindTools(), Families = FindFamilies(), Shanks = FindShanks() + .Select(x => { x.MagazineId = null; x.PositionId = null; return x; }) + .ToList() }; } @@ -566,29 +568,32 @@ namespace Step.Database.Controllers List families = FindFamilies(); List shanks = FindShanks(); - // loop thought new families - foreach (var family in data.Families) - { - // Check if not exist - if (families.FirstOrDefault(x => x.FamilyId == family.FamilyId) == null) - dbCtx.Families.Add(family); - } + if(data.Families != null) + // loop thought new families + foreach (var family in data.Families) + { + // Check if not exist + if (families.FirstOrDefault(x => x.FamilyId == family.FamilyId) == null) + dbCtx.Families.Add(family); + } - // loop thought new shanks - foreach (var shank in data.Shanks) - { - // Check if not exist - if (shanks.FirstOrDefault(x => x.ShankId == shank.ShankId) == null) - dbCtx.Shanks.Add(shank); - } + if(data.Shanks != null) + // loop thought new shanks + foreach (var shank in data.Shanks) + { + // Check if not exist + if (shanks.FirstOrDefault(x => x.ShankId == shank.ShankId) == null) + dbCtx.Shanks.Add(shank); + } - // loop thought new tools - foreach (var tool in data.Tools) - { - // Check if not exist - if (tools.FirstOrDefault(x => x.ToolId == tool.ToolId) == null) - dbCtx.Tools.Add(tool); - } + if(data.Tools != null) + // loop thought new tools + foreach (var tool in data.Tools) + { + // Check if not exist + if (tools.FirstOrDefault(x => x.ToolId == tool.ToolId) == null) + dbCtx.Tools.Add(tool); + } // Save dbCtx.SaveChanges(); diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs index 8bb2b3de..385d21ef 100644 --- a/Step.Model/Constants.cs +++ b/Step.Model/Constants.cs @@ -240,6 +240,7 @@ namespace Step.Model public const string MAG_POS_DISABLED = "error_mag_pos_disabled"; public const string ID_ALREADY_EXIST = "error_id_already_exist"; public const string PASSWORD_IS_INVALID = "error_password_is_invalid"; + public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid"; } // File paths diff --git a/Step.Utils/languages/IT.xml b/Step.Utils/languages/IT.xml index 4b86a87d..0306fc67 100644 --- a/Step.Utils/languages/IT.xml +++ b/Step.Utils/languages/IT.xml @@ -402,8 +402,9 @@ Lunghezza Braccio Raggio Sfera - - Nessuna selezione + + Nessuna selezione + Generico A Tempo A Contatore Ad Usura diff --git a/Step.Utils/languages/en.xml b/Step.Utils/languages/en.xml index a7d6fb99..ea951165 100644 --- a/Step.Utils/languages/en.xml +++ b/Step.Utils/languages/en.xml @@ -401,7 +401,8 @@ Ball Radius - None + None + Generic Time Count Wear diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index af22bcf5..91a4c570 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -576,7 +576,7 @@ namespace Step.Controllers.WebApi } using (NcToolTableHandler ncHandler = new NcToolTableHandler()) - { + { CmsError cmsError = ncHandler.Connect(); if (cmsError.IsError()) return BadRequest(cmsError.localizationKey); @@ -944,8 +944,13 @@ namespace Step.Controllers.WebApi // Convert bytes into json string string jsonString = Encoding.UTF8.GetString(fileBytes); - // Deserialize the string into DTO object - DTOExportToolTableModel importData = JsonConvert.DeserializeObject(jsonString); + + bool val = IsValidJson(jsonString, out DTOExportToolTableModel importData); + if (!val) + return BadRequest(API_ERROR_KEYS.IMPORT_FILE_NOT_VALID); + + if(importData.Families == null || importData.Shanks == null || importData.Tools == null) + return BadRequest(API_ERROR_KEYS.IMPORT_FILE_NOT_VALID); using ( NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -958,5 +963,23 @@ namespace Step.Controllers.WebApi return Ok(); } + + public bool IsValidJson(string jsonString, out DTOExportToolTableModel data) + { + data = new DTOExportToolTableModel(); + if (string.IsNullOrWhiteSpace(jsonString)) + return false; + + try + { + // Deserialize the string into DTO object + data = JsonConvert.DeserializeObject(jsonString); + return true; + } + catch (Exception ex) + { + return false; + } + } } } \ No newline at end of file diff --git a/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.ts b/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.ts index 7f013ca4..169047e3 100644 --- a/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.ts +++ b/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.ts @@ -53,6 +53,7 @@ export default class toolingMagPos extends Vue { } public selectedTool: any = null; + public copySelectedMagPos: any = null; public enableModify: any = false; public disableList: any = false; @@ -79,6 +80,8 @@ export default class toolingMagPos extends Vue { public selectTool(item){ this.selectedTool = item; + this.copySelectedMagPos = Object.assign({}, item); + this.enableModify = false; this.magposConfiguration = (this.$store.state as AppModel).tooling.magazinePosConfiguration; } @@ -92,7 +95,10 @@ export default class toolingMagPos extends Vue { // this.selectedTool = null; this.disableList = false; this.enableModify = false; + + this.selectedTool = Object.assign({},this.copySelectedMagPos); } + async modifyMagPos(model) { if(this.isSiemens){ awaiter(new ToolingService().UpdateMagPos(model).then(response => { diff --git a/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.vue b/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.vue index 5ff41496..c46573ed 100644 --- a/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.vue +++ b/Step/wwwroot/src/app_modules/tooling/components/tooling-magpos.vue @@ -29,7 +29,6 @@
-
{{'tooling_magpos_editlabel' | localize("Modifica della Manina %d nel magazzino %d",selectedTool.positionId,selectedTool.magazineId)}}
@@ -37,7 +36,7 @@
- - +
-
{{'tooling_magpos_editlabel' | localize("Modifica della Manina %d nel magazzino %d",selectedTool.positionId,selectedTool.magazineId)}}
@@ -62,16 +60,16 @@ - +
-