inizio gestione aggiunta istantanea porte

This commit is contained in:
zaccaria.majid
2023-05-16 15:52:24 +02:00
parent f7548ef074
commit c1a4e26f52
6 changed files with 171 additions and 5 deletions
+20 -1
View File
@@ -94,6 +94,25 @@ namespace WebDoorCreator.Data.DbModels
[ForeignKey("TypeId")]
public virtual DoorTypeModel? TypeNav { get; set; }
public DoorModel ObjClone(string userId)
{
DateTime adesso = DateTime.Now;
DoorModel answ = new DoorModel()
{
MeasureUnit = MeasureUnit,
TypeId = TypeId,
DoorExtCode = DoorExtCode,
DateIns = adesso,
UserIdIns = userId,
DateMod = adesso,
UserIdMod = userId,
DoorDescript = DoorDescript,
UnitCost = UnitCost,
DateLockExpiry = DateLockExpiry,
UserIdLock = UserIdLock
};
return answ;
}
}
}
@@ -7,16 +7,23 @@
<DoorSvgObj LineColor="rgb(39, 174, 96)" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> createDoor(""))" ObjId="0" TextData="@AddDoorDict"></DoorSvgObj>
</div>
<div class="col-4 py-1">
<DoorSvgObj LineColor="rgb(39, 174, 96)" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> createDoor(""))" ObjId="0" TextData="@AddFromTemplDict"></DoorSvgObj>
<DoorSvgObj LineColor="rgb(39, 174, 96)" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> setCloneDoorMode(""))" ObjId="0" TextData="@AddFromTemplDict"></DoorSvgObj>
</div>
<div class="col-4 py-1">
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> sendToAbh(currOrderId, orderStatus))" ObjId="0" TextData="@SendOrderDict" Message1="@currOrderId.ToString()" Message2="@orderStatus.ToString()"></DoorSvgObj>
</div>
</div>
}
<div class="row">
<div class="col-4">
<button @onclick="()=>setAddRemDoor()">ADD REM MODE</button>
</div>
</div>
<div class="row">
@if (DoorsList == null || DoorsList.Count == 0)
{ }
{
<LoadingDataSmall></LoadingDataSmall>
}
else
{
int idxCount = 0;
@@ -26,7 +33,20 @@
imgPath = $"images/LogoEgw{idxCount % 5:00}.png";
idxCount++;
<div class="col-3 py-1">
<DoorSvgObj LineColor="#2D3047" LineWidth="8" ObjH="200" ObjW="650" LeftTextClass="col-4" RightTextClass="col-8" EC_ExeFunct="@(()=> editRec(@door.DoorId.ToString()))" Message1="@door.DoorId.ToString()" ImagePath="@imgPath" ObjId="idxCount" TextData="@textDictSetup(door)"></DoorSvgObj>
@if (isCloneMode)
{
<DoorSvgObj LineColor="#2D3047" LineWidth="8" ObjH="200" ObjW="650" LeftTextClass="col-4" RightTextClass="col-8" EC_ExeClone="@(()=>doClone(""))" Message1="@door.DoorId.ToString()" ShowClone="true" ImagePath="@imgPath" ObjId="idxCount" TextData="@textDictSetup(door)"></DoorSvgObj>
}
else if (isAddRemMode)
{
<DoorSvgObj LineColor="#2D3047" LineWidth="8" ObjH="200" ObjW="650" LeftTextClass="col-4" RightTextClass="col-8" ShowPlusMinus="true" Message1="@door.DoorId.ToString()" Message2="@door.OrderId.ToString()" EC_ExePlus="@(()=>addOneDoorNumber("", ""))" EC_ExeMinus="@(()=>removeOneDoorNumber("", ""))" ImagePath="@imgPath" ObjId="idxCount" TextData="@textDictSetup(door)"></DoorSvgObj>
}
else
{
<DoorSvgObj LineColor="#2D3047" LineWidth="8" ObjH="200" ObjW="650" LeftTextClass="col-4" RightTextClass="col-8" EC_ExeFunct="@(()=> editRec(@door.DoorId.ToString()))" Message1="@door.DoorId.ToString()" ImagePath="@imgPath" ObjId="idxCount" TextData="@textDictSetup(door)"></DoorSvgObj>
}
</div>
}
@@ -177,6 +177,37 @@ namespace WebDoorCreator.UI.Components.DoorMan
// rimando alla pagina... dettaglio...
NavManager.NavigateTo($"/DoorDefinition?idOrd={currOrderId}&idDoor={doorId}");
}
protected bool isCloneMode { get; set; }
protected bool isAddRemMode { get; set; }
protected async void setCloneDoorMode(string message)
{
await Task.Delay(1);
isCloneMode = !isCloneMode;
isAddRemMode = false;
await InvokeAsync(StateHasChanged);
}
protected async void setAddRemDoor()
{
await Task.Delay(1);
isAddRemMode = !isAddRemMode;
isCloneMode = false;
await InvokeAsync(StateHasChanged);
}
protected async Task doClone(string message)
{
var door2Clone = DoorsList?.Where(x => x.DoorId == int.Parse(message)).FirstOrDefault();
if (door2Clone != null)
{
var doorOpToAdd = door2Clone.ObjClone(userId);
// salvo!
var done = await WDService.DoorInsert(doorOpToAdd);
await ReloadData();
}
}
protected async void sendToAbh(int ordId, int orderStat)
{
if (orderStat == 10)
@@ -222,5 +253,26 @@ namespace WebDoorCreator.UI.Components.DoorMan
}
}
}
protected async Task addOneDoorNumber(string msg1, string msg2)
{
//var door = new DoorModel();
var done = await WDService.DoorModQty(int.Parse(msg1), int.Parse(msg2), true);
if (done)
{
await InvokeAsync(StateHasChanged);
await ReloadData();
}
}
protected async Task removeOneDoorNumber(string msg1, string msg2)
{
//var door = new DoorModel();
var done = await WDService.DoorModQty(int.Parse(msg1), int.Parse(msg2), false);
if (done)
{
await InvokeAsync(StateHasChanged);
await ReloadData();
}
}
}
}
@@ -27,12 +27,22 @@
<rect x="0" y="0" width="100%" height="50%" fill="@PlusColor" style="opacity: 50%;" @onclick="()=>execPlus()" />
<rect x="0" y="@(ObjH/2)" width="100%" height="50%" fill="@MinusColor" style="opacity: 50%;" @onclick="()=>execMinus()" />
}
else if (ShowClone)
{
<rect x="0" y="@(ObjH/2)" width="100%" height="100%" fill="blue" style="opacity: 50%;" @onclick="()=>execClone()" />
}
</pattern>
</defs>
@if (ShowPlusMinus)
{
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer" />
}
else if (ShowClone)
{
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer" @onclick="()=>execClone()" />
}
else
{
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer" @onclick="()=>execFunc()" />
@@ -15,6 +15,9 @@ namespace WebDoorCreator.UI.Components.SvgComp
[Parameter]
public EventCallback<bool> EC_ExePlus { get; set; }
[Parameter]
public EventCallback<bool> EC_ExeClone { get; set; }
[Parameter]
public string ImagePath { get; set; } = "images/LogoEgw.png";
@@ -53,6 +56,8 @@ namespace WebDoorCreator.UI.Components.SvgComp
[Parameter]
public bool ShowPlusMinus { get; set; } = false;
[Parameter]
public bool ShowClone { get; set; } = false;
[Parameter]
public Dictionary<string, string> TextData { get; set; } = new Dictionary<string, string>();
@@ -100,6 +105,10 @@ namespace WebDoorCreator.UI.Components.SvgComp
{
EC_ExePlus.InvokeAsync(true);
}
protected void execClone()
{
EC_ExeClone.InvokeAsync(true);
}
protected override void OnParametersSet()
{
+57 -1
View File
@@ -18,7 +18,7 @@ size:
width: 33.8125
height: 81.25
thickness: 1.75
swing: LH
swing: LHI
secure: UP
material: wood
profiles:
@@ -39,6 +39,50 @@ profiles:
machining: ON
overmaterial: 0.1
hardware:
vision_cut_outs:
- shape: Generic\Circle
radius: 10
center_from_top: 20
center_from_lock: 0
door_center: center
louver_cut_outs:
- shape: Generic\Cuore2.nge
length: 10.0000
width: 18.8125
bottom_rail: 8.0
lock_stile: 0.0
door_center: center
mail_slots:
- template: Generic\Rect
height: 3
bottom_rail: 20
delta_center: 5
hinges:
- template: Generic Conceiled\StdConHingeDeepR
ToptoCL: 4.875
back_set: 0.125
thickness: 0.25
ept:
- template: Generic\StdEPT
ToptoCL: 15
FacetoCL: 0.875
locks:
- template: Generic\Std86
position: 45.875
back_set: 2.0
offset_WS: 0.0
side: lock_top
edge_pulls:
- template: Generic\EdgePull230B
position: 45
offset_WS: 0.0
pivot:
- template: Generic\CenterHungPivot
type: centerhung
@@ -53,5 +97,17 @@ hardware:
- template: Generic\OHCloserArm_103_1_90
position: 0.000
strikes:
- template: Generic\StdFaceStrike
position: 57.875
back_set: 2.75
offset_WS: 0.0
rabbet:
- template: Generic\Rabbet
side: top
width: 0.6
depth: 0.8
---