diff --git a/WebDoorCreator.Data/DbModels/DoorModel.cs b/WebDoorCreator.Data/DbModels/DoorModel.cs index 2682d47..011dc09 100644 --- a/WebDoorCreator.Data/DbModels/DoorModel.cs +++ b/WebDoorCreator.Data/DbModels/DoorModel.cs @@ -101,6 +101,7 @@ namespace WebDoorCreator.Data.DbModels DoorModel answ = new DoorModel() { MeasureUnit = MeasureUnit, + OrderId = OrderId, TypeId = TypeId, DoorExtCode = DoorExtCode, DateIns = adesso, @@ -108,6 +109,7 @@ namespace WebDoorCreator.Data.DbModels DateMod = adesso, UserIdMod = userId, DoorDescript = DoorDescript, + Quantity = Quantity, UnitCost = UnitCost, DateLockExpiry = DateLockExpiry, UserIdLock = UserIdLock diff --git a/WebDoorCreator.Data/DbModels/DoorOpModel.cs b/WebDoorCreator.Data/DbModels/DoorOpModel.cs index defd827..cede43b 100644 --- a/WebDoorCreator.Data/DbModels/DoorOpModel.cs +++ b/WebDoorCreator.Data/DbModels/DoorOpModel.cs @@ -158,25 +158,45 @@ namespace WebDoorCreator.Data.DbModels /// /// /// - public DoorOpModel ObjClone(string userId) + public DoorOpModel ObjClone(string userId, int doorId) { + DoorOpModel answ = new DoorOpModel(); DateTime adesso = DateTime.Now; - DoorOpModel answ = new DoorOpModel() + if (doorId == 0) { - DateIns = adesso, - DateMod = adesso, - UserIdIns = userId, - UserIdMod = userId, - ObjectId = ObjectId, - DoorId = DoorId, - JsoncConfigVal = JsoncConfigVal, - JsoncActVal = JsoncActVal, - userConfirm = userConfirm, - DtConfirm = DtConfirm - }; + answ = new DoorOpModel() + { + DateIns = adesso, + DateMod = adesso, + UserIdIns = userId, + UserIdMod = userId, + ObjectId = ObjectId, + DoorId = DoorId, + JsoncConfigVal = JsoncConfigVal, + JsoncActVal = JsoncActVal, + userConfirm = userConfirm, + DtConfirm = DtConfirm + }; + } + else + { + answ = new DoorOpModel() + { + DateIns = adesso, + DateMod = adesso, + UserIdIns = userId, + UserIdMod = userId, + ObjectId = ObjectId, + DoorId = doorId, + JsoncConfigVal = JsoncConfigVal, + JsoncActVal = JsoncActVal, + userConfirm = userConfirm, + DtConfirm = DtConfirm + }; + } return answ; } - + } } diff --git a/WebDoorCreator.UI/Components/Buttons/ButtonsDoorDef.razor.cs b/WebDoorCreator.UI/Components/Buttons/ButtonsDoorDef.razor.cs index 6d1c066..e3f32d9 100644 --- a/WebDoorCreator.UI/Components/Buttons/ButtonsDoorDef.razor.cs +++ b/WebDoorCreator.UI/Components/Buttons/ButtonsDoorDef.razor.cs @@ -113,7 +113,7 @@ namespace WebDoorCreator.UI.Components.Buttons string currDdf = currDdfConv.GetSerialized(listOp); // FIXME TODO: si potrebbe eliminare in futuro che va su REDIS - await SaveYaml(currDdf); + //await SaveYaml(currDdf); // versione corrente del DDF generato int currVers = await QDataServ.SendCalcReq(idDoor, currDdf); diff --git a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor index 9253987..d3ea635 100644 --- a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor +++ b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor @@ -36,7 +36,7 @@ @if (isCloneMode) { - + } else if (isAddRemMode) { diff --git a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs index db462d3..29ef427 100644 --- a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs +++ b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs @@ -27,6 +27,7 @@ namespace WebDoorCreator.UI.Components.DoorMan #region Protected Properties protected List? DoorsList { get; set; } = null; + protected List? DoorOpsList { get; set; } = null; protected bool IsChanged { get; set; } = false; [Inject] @@ -205,17 +206,43 @@ namespace WebDoorCreator.UI.Components.DoorMan await InvokeAsync(StateHasChanged); } + protected List doorOps2Add = new List(); + + /// + /// Clona la porta selezionata con annesse door operations + /// + /// + /// protected async Task doClone(string message) { - var door2Clone = DoorsList?.Where(x => x.DoorId == int.Parse(message)).FirstOrDefault(); - - if (door2Clone != null) + DoorOpsList = await WDService.DoorOpGetByDoorId(int.Parse(message)); + if (DoorOpsList != null) { - var doorOpToAdd = door2Clone.ObjClone(userId); + var doorOps2Clone = DoorOpsList?.Where(x => x.DoorId == int.Parse(message)).ToList(); - // salvo! - var done = await WDService.DoorInsert(doorOpToAdd); - await ReloadData(); + var door2Clone = DoorsList?.Where(x => x.DoorId == int.Parse(message)).FirstOrDefault(); + + if (door2Clone != null) + { + var doorToAdd = door2Clone.ObjClone(userId); + // salvo! + var newDoorId = await WDService.DoorInsert(doorToAdd); + if (newDoorId != 0 && doorOps2Clone != null) + { + foreach (var item in doorOps2Clone) + { + var doorOp2Add = item.ObjClone(userId, newDoorId); + doorOps2Add.Add(doorOp2Add); + } + + // salvo! + var done = await WDService.DoorOpInsert(newDoorId, doorOps2Add); + if (done) + { + await ReloadData(); + } + } + } } } protected async void sendToAbh(int ordId, int orderStat) diff --git a/WebDoorCreator.UI/Components/Hardware/HardwareList.razor b/WebDoorCreator.UI/Components/Hardware/HardwareList.razor index 34595b1..6aabcfd 100644 --- a/WebDoorCreator.UI/Components/Hardware/HardwareList.razor +++ b/WebDoorCreator.UI/Components/Hardware/HardwareList.razor @@ -4,9 +4,7 @@ @if (HwToShow != null) {
- - - +
@@ -19,18 +17,7 @@ @foreach (var item in HwList) {
-
-
- @(translate(item.Label)) -
- @if (@getInstNumber(item.Value) > 0) - { -
- @getInstNumber(item.Value) -
- } -
-
+
}
diff --git a/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor b/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor index f5af628..432ff66 100644 --- a/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor +++ b/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor @@ -6,19 +6,23 @@ else { @if (DoorOpList != null) { -
+ @*
@(translate(HwLabel))
+
*@ +
+
+
@foreach (var item in DoorOpList) {
- +
}
diff --git a/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor.cs b/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor.cs index 91932b5..d145ebd 100644 --- a/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor.cs +++ b/WebDoorCreator.UI/Components/Hardware/HardwareNewPanel.razor.cs @@ -29,9 +29,13 @@ namespace WebDoorCreator.UI.Components.Hardware [Parameter] public string HwCode { get; set; } = ""; + [Parameter] public string HwLabel { get; set; } = ""; + [Parameter] + public int HwInst { get; set; } = 0; + [Parameter] public string Lingua { get; set; } = "EN"; [CascadingParameter] @@ -46,7 +50,17 @@ namespace WebDoorCreator.UI.Components.Hardware protected List? DoorOpList { get; set; } = null!; protected List DoorOp2ModList { get; set; } = new List(); - protected int instNum { get; set; } = 1; + //protected int instNum { get; set; } = 1; + + protected int getDoorOpInstNum(int doorOpId) + { + int answ = 0; + if (DoorOpList != null) + { + answ = DoorOpList.FindIndex(x => x.DoorOpId == doorOpId); + } + return answ + 1; + } [Inject] protected WDCRefreshService WDCRefresh { get; set; } = null!; @@ -98,7 +112,7 @@ namespace WebDoorCreator.UI.Components.Hardware [Inject] protected WDCRefreshService WDCRService { get; set; } = null!; - protected async Task hwToAdd() + protected async Task hwToAdd(string message) { await Task.Delay(1); DateTime adesso = DateTime.Now; @@ -106,99 +120,97 @@ namespace WebDoorCreator.UI.Components.Hardware if (HwCode != null) { - if (DoorOp2ModList.Count == 0) + var listRecordFolder = await WDCService.ListValuesGetAll(HwCode, "Folder"); + var listRecordTmp = await WDCService.ListValuesGetAll(HwCode, "template"); + if (listRecordTmp!.Count == 0) { - var listRecordFolder = await WDCService.ListValuesGetAll(HwCode, "Folder"); - var listRecordTmp = await WDCService.ListValuesGetAll(HwCode, "template"); - if (listRecordTmp!.Count == 0) - { - listRecordTmp = await WDCService.ListValuesGetAll(HwCode, "shape"); - } - Dictionary> defaultDict = new Dictionary>(); - List listDefVal = new List(); - Dictionary actDict = new Dictionary(); - List defaultParamsList = new List(); - string default2Design = ""; + listRecordTmp = await WDCService.ListValuesGetAll(HwCode, "shape"); + } + Dictionary> defaultDict = new Dictionary>(); + List listDefVal = new List(); + Dictionary actDict = new Dictionary(); + List defaultParamsList = new List(); + string default2Design = ""; - if (listRecordFolder != null) + if (listRecordFolder != null) + { + var firstFolder = listRecordFolder.FirstOrDefault(); + if (firstFolder != null) { - var firstFolder = listRecordFolder.FirstOrDefault(); - if (firstFolder != null) + actDict.Add(firstFolder.FieldName, firstFolder.Value.Trim()); + if (listRecordTmp != null) { - actDict.Add(firstFolder.FieldName, firstFolder.Value.Trim()); - if (listRecordTmp != null) + var listRecordTemplates = listRecordTmp.Where(x => x.Value.Contains(firstFolder.Value)).ToList(); + if (listRecordTemplates != null) { - var listRecordTemplates = listRecordTmp.Where(x => x.Value.Contains(firstFolder.Value)).ToList(); - if (listRecordTemplates != null) + var firstTemplate = listRecordTemplates.FirstOrDefault(); + if (firstTemplate != null) { - var firstTemplate = listRecordTemplates.FirstOrDefault(); - if (firstTemplate != null) + if (firstTemplate.DefaultVal != "") { - if (firstTemplate.DefaultVal != "") - { - default2Design = firstTemplate.DefaultVal; - } - else - { - default2Design = "1"; - } - - actDict.Add(firstTemplate.FieldName, firstTemplate.Value.Trim()); - } - } - } - } - var listRecordGP = await WDCService.ListValuesGetAll(HwCode, $"Graphic Parameters{default2Design}"); - if (listRecordGP != null) - { - foreach (var item in listRecordGP) - { - if (item.isSerializable && item.DefaultVal.Contains(",")) - { - listDefVal = item.DefaultVal.Trim().Split(",").ToList(); - actDict.Add(item.Value.Trim(), item.DefaultVal.Trim().Split(",")[0].Split("/")[0]); - } - else - { - if (item.DefaultVal.Contains("/")) - { - listDefVal = new List() { item.DefaultVal.Trim().Split("/")[0] }; - actDict.Add(item.Value.Trim(), item.DefaultVal.Trim().Split("/")[0]); + default2Design = firstTemplate.DefaultVal; } else { - listDefVal = new List() { item.DefaultVal.Trim() }; - actDict.Add(item.Value.Trim(), item.DefaultVal.Trim()); + default2Design = "1"; } + + actDict.Add(firstTemplate.FieldName, firstTemplate.Value.Trim()); } - //defaultParamsList.Add(listDefVal); - defaultDict.Add(item.Value.Trim(), listDefVal); } - //actDict.Add(HwToShow.TableName, actParamsList); - - var jsonDef = JsonConvert.SerializeObject(defaultDict); - var jsonAct = JsonConvert.SerializeObject(actDict); - - DoorOpModel doorOpToAdd = new DoorOpModel() + } + } + var listRecordGP = await WDCService.ListValuesGetAll(HwCode, $"Graphic Parameters{default2Design}"); + if (listRecordGP != null) + { + foreach (var item in listRecordGP) + { + if (item.isSerializable && item.DefaultVal.Contains(",")) { - DateIns = adesso, - DateMod = adesso, - UserIdIns = UserId, - UserIdMod = UserId, - ObjectId = HwCode, - DoorId = DoorId, - JsoncConfigVal = jsonDef, - JsoncActVal = jsonAct - }; - listOp.Add(doorOpToAdd); - // salvo Door OP associate - bool fatto = await WDCService.DoorOpInsert(DoorId, listOp); - - if (fatto) - { - //hwAdd = fatto; - await InvokeAsync(StateHasChanged); + listDefVal = item.DefaultVal.Trim().Split(",").ToList(); + actDict.Add(item.Value.Trim(), item.DefaultVal.Trim().Split(",")[0].Split("/")[0]); } + else + { + if (item.DefaultVal.Contains("/")) + { + listDefVal = new List() { item.DefaultVal.Trim().Split("/")[0] }; + actDict.Add(item.Value.Trim(), item.DefaultVal.Trim().Split("/")[0]); + } + else + { + listDefVal = new List() { item.DefaultVal.Trim() }; + actDict.Add(item.Value.Trim(), item.DefaultVal.Trim()); + } + } + //defaultParamsList.Add(listDefVal); + defaultDict.Add(item.Value.Trim(), listDefVal); + } + //actDict.Add(HwToShow.TableName, actParamsList); + + var jsonDef = JsonConvert.SerializeObject(defaultDict); + var jsonAct = JsonConvert.SerializeObject(actDict); + + DoorOpModel doorOpToAdd = new DoorOpModel() + { + DateIns = adesso, + DateMod = adesso, + UserIdIns = UserId, + UserIdMod = UserId, + ObjectId = HwCode, + DoorId = DoorId, + JsoncConfigVal = jsonDef, + JsoncActVal = jsonAct + }; + listOp.Add(doorOpToAdd); + // salvo Door OP associate + bool fatto = await WDCService.DoorOpInsert(DoorId, listOp); + + if (fatto) + { + //hwAdd = fatto; + //await InvokeAsync(StateHasChanged); + await ReloadData(); } } } diff --git a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs index c8d354e..e537712 100644 --- a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs +++ b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs @@ -160,7 +160,7 @@ namespace WebDoorCreator.UI.Components.Hardware protected async Task doClone() { - var doorOpToAdd = DoorOpInst.ObjClone(userId); + var doorOpToAdd = DoorOpInst.ObjClone(userId, 0); List doorOpAddList = new List() { doorOpToAdd }; // salvo! diff --git a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor index 9a79579..9dcdf66 100644 --- a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor +++ b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor @@ -5,10 +5,10 @@
@foreach (var item in TextData) { -
+
@item.Key
-
+
@item.Value
} diff --git a/WebDoorCreator.UI/Components/SvgComp/HwSvgObj.razor.cs b/WebDoorCreator.UI/Components/SvgComp/HwSvgObj.razor.cs index d5b65cf..40ad5ef 100644 --- a/WebDoorCreator.UI/Components/SvgComp/HwSvgObj.razor.cs +++ b/WebDoorCreator.UI/Components/SvgComp/HwSvgObj.razor.cs @@ -63,7 +63,7 @@ namespace WebDoorCreator.UI.Components.SvgComp public int ObjH { get; set; } = 204; [Parameter] - public int ObjId { get; set; } = 0; + public string ObjId { get; set; } = "0"; [Parameter] public int ObjW { get; set; } = 450; diff --git a/WebDoorCreator.UI/Data/WebDoorCreatorService.cs b/WebDoorCreator.UI/Data/WebDoorCreatorService.cs index ae29410..5fa7afb 100644 --- a/WebDoorCreator.UI/Data/WebDoorCreatorService.cs +++ b/WebDoorCreator.UI/Data/WebDoorCreatorService.cs @@ -2133,6 +2133,14 @@ namespace WebDoorCreator.UI.Data return answ; } + public async Task FlushCustomPattern(string keyWord) + { + await Task.Delay(1); + RedisValue pattern = new RedisValue($"{Constants.redisBaseAddr}:{keyWord}"); + bool answ = await ExecFlushRedisPattern(pattern); + return answ; + } + #endregion Private Methods } } \ No newline at end of file diff --git a/WebDoorCreator.UI/Pages/Utils.razor b/WebDoorCreator.UI/Pages/Utils.razor new file mode 100644 index 0000000..ad30d4c --- /dev/null +++ b/WebDoorCreator.UI/Pages/Utils.razor @@ -0,0 +1,31 @@ +@page "/Utils" + +
+ +
+ + + @if (done) + { +

DONE!!!!

+ } +
+
+ +
+
+
+ @if (keyWord != "") + { + + } + else + { + + + } + +
+
+
+ diff --git a/WebDoorCreator.UI/Pages/Utils.razor.cs b/WebDoorCreator.UI/Pages/Utils.razor.cs new file mode 100644 index 0000000..91012e5 --- /dev/null +++ b/WebDoorCreator.UI/Pages/Utils.razor.cs @@ -0,0 +1,149 @@ +using Microsoft.AspNetCore.Components; +using WebDoorCreator.Data.DbModels; +using WebDoorCreator.Data.Services; +using WebDoorCreator.UI.Data; + +namespace WebDoorCreator.UI.Pages +{ + public partial class Utils + { + protected List? DoorOpsList { get; set; } + + protected List DoorsList { get; set; } = new List(); + + protected List? OrdersList { get; set; } + + protected List ordListVal { get; set; } = new List(); + protected List listOp { get; set; } = new List(); + protected List listOpAll { get; set; } = new List(); + + [Inject] + protected QueueDataService QDataServ { get; set; } = null!; + + [Inject] + protected WebDoorCreatorService WDCService { get; set; } = null!; + protected async Task doorsGetAll() + { + await ordersGetAll(); + if (OrdersList != null) + { + foreach (var item in OrdersList) + { + var doors2Add = await WDCService.DoorGetByOrderId(item.OrderId); + if (doors2Add != null) + { + foreach (var door in doors2Add) + { + DoorsList.Add(door); + } + } + } + } + + } + protected bool done { get; set; } = false; + + [Inject] + protected IConfiguration config { get; set; } = null!; + + protected override void OnInitialized() + { + base.OnInitialized(); + string vers = config.GetValue("ConfDDF:VersNumber"); + bool remDoorOp = config.GetValue("ConfDDF:RemoveDoorOps"); + var headRows = config.GetSection("ConfDDF:Header").Get>(); + var footRows = config.GetSection("ConfDDF:Footer").Get>(); + currDdfConv = new WebDoorCreator.Data.DDF.Converter(vers, remDoorOp, headRows, footRows); + } + + protected WebDoorCreator.Data.DDF.Converter currDdfConv { get; set; } = null!; + /// + /// Effettua salvataggio record e generazione DDF + /// + /// + protected async Task doSave() + { + await doorsGetAll(); + + if (DoorsList != null) + { + foreach (var door in DoorsList) + { + await Task.Delay(50); + listOpAll = await WDCService.DoorOpGetByDoorId(door.DoorId); + if (listOpAll != null) + { + listOp = listOpAll.Where(x => x.userConfirm != "" && x.DtConfirm != null).ToList(); + if (listOp != null) + { + // chiamo metodo x avewre DDF serializzato + //var list2Ord = ; + var CurrentCompoOrder = await WDCService.ListValuesGetAll("*", "Hardware"); + if (CurrentCompoOrder != null) + { + foreach (var item in CurrentCompoOrder.OrderBy(x => x.Ordinal).ToList()) + { + ordListVal.Add(item.TableName); + } + } + + listOp = listOp.OrderBy(d => ordListVal.IndexOf(d.ObjectId)).ToList(); + + if (listOp.Count != 0 && listOp != null) + { + string currDdf = currDdfConv.GetSerialized(listOp); + // FIXME TODO: si potrebbe eliminare in futuro che va su REDIS + //await SaveYaml(currDdf); + // versione corrente del DDF generato + int currVers = await QDataServ.SendCalcReq(door.DoorId, currDdf); + } + + } + } + } + } + + done = true; + } + + protected async Task ordersGetAll() + { + DateTime adesso = DateTime.Today; + + OrdersList = await WDCService.OrderStatusGetFilt(0, 0, adesso.AddYears(-200), adesso.AddYears(200)); + } + + public async Task flushCache() + { + await Task.Delay(1); + await WDService.FlushRedisCache(); + await Task.Delay(1); + // rimando a pagina corrente + NavManager.NavigateTo("/", true); + } + + protected string _keyWord { get; set; } = ""; + protected string keyWord + { + get => _keyWord; + set => _keyWord = value; + } + + + public async Task FlushCustomPattern() + { + await Task.Delay(1); + await WDService.FlushCustomPattern(keyWord); + await Task.Delay(1); + // rimando a pagina corrente + NavManager.NavigateTo("/", true); + } + + + [Inject] + protected NavigationManager NavManager { get; set; } = null!; + + [Inject] + protected WebDoorCreatorService WDService { get; set; } = null!; + } +} \ No newline at end of file diff --git a/WebDoorCreator.UI/temp/Conf.yaml b/WebDoorCreator.UI/temp/Conf.yaml deleted file mode 100644 index 3d9e04d..0000000 --- a/WebDoorCreator.UI/temp/Conf.yaml +++ /dev/null @@ -1,43 +0,0 @@ -#WEBDOORCREATOR -#Config: EgtCompoBase -#Door1 - -version: 2 -produce: true -measures: inches -code: 0015943 -order: - customer: - elevation: - project: - pO: - line: -date: 2023-05-17T00:00:00.0000000+02:00 -piece: DO_1 -size: - width: 33.8125 - height: 81.25 - thickness: 1.75 -swing: LH -secure: UP -material: wood -profiles: - lockedge: - type: SQ - machining: ON - overmaterial: 0.1 - hingeedge: - type: SQ - machining: ON - overmaterial: 0.1 - top: - type: SQ - machining: ON - overmaterial: 0.1 - bottom: - type: SQ - machining: ON - overmaterial: 0.1 -hardware: {} - ----