diff --git a/EgtBEAMWALL.Core/Enum.vb b/EgtBEAMWALL.Core/Enum.vb
index 4d04b96e..f52db19a 100644
--- a/EgtBEAMWALL.Core/Enum.vb
+++ b/EgtBEAMWALL.Core/Enum.vb
@@ -51,4 +51,7 @@ Public Enum StatusMapOpType
MachGroupNeedRedo = 6
MachGroupAssignedToSupervisor = 7
MachGroupRemovedFromSupervisor = 8
+ SupervisorStopRequest = 9
+ ViewOptimStoped = 10
+ SupervisorReleaseStop = 11
End Enum
\ No newline at end of file
diff --git a/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb b/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb
index 545d54fb..daef3981 100644
--- a/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb
+++ b/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb
@@ -220,13 +220,13 @@ Public MustInherit Class MyMachGroupM
End Set
End Property
- Protected m_nProductionState As Integer = 0
- Public ReadOnly Property nProductionState As Integer
+ Protected m_nProductionState As ItemState = 0
+ Public ReadOnly Property nProductionState As ItemState
Get
Return m_nProductionState
End Get
End Property
- Public Sub SetState(nState As CalcStates)
+ Public Sub SetProductionState(nState As ItemState)
m_nProductionState = nState
End Sub
diff --git a/EgtBEAMWALL.Core/MachGroupPanel/MyMachGroupVM.vb b/EgtBEAMWALL.Core/MachGroupPanel/MyMachGroupVM.vb
index 38ab925a..e346d4ee 100644
--- a/EgtBEAMWALL.Core/MachGroupPanel/MyMachGroupVM.vb
+++ b/EgtBEAMWALL.Core/MachGroupPanel/MyMachGroupVM.vb
@@ -22,6 +22,13 @@ Public MustInherit Class MyMachGroupVM
End Get
End Property
+ Public ReadOnly Property nName As Integer
+ Get
+ Dim nIntName As Integer = 0
+ Integer.TryParse(MyMachGroupM.Name, nIntName)
+ Return nIntName
+ End Get
+ End Property
Public Property dL As Double
Get
Return MyMachGroupM.dL
@@ -271,6 +278,12 @@ Public MustInherit Class MyMachGroupVM
Public Sub SetSupervisorId(SupervisorId As String)
m_SupervisorId = SupervisorId
End Sub
+ Public Sub ResetSupervisorId()
+ m_SupervisorId = ""
+ NotifyPropertyChanged(NameOf(IsReadOnly))
+ End Sub
+
+ Private m_cc As StateChangeEventArgs
Public ReadOnly Property IsReadOnly As Boolean
Get
@@ -280,7 +293,7 @@ Public MustInherit Class MyMachGroupVM
#Region "Supervisor"
- Public ReadOnly Property nProduction_State As Integer
+ Public ReadOnly Property nProduction_State As ItemState
Get
Return MyMachGroupM.nProductionState
End Get
@@ -338,6 +351,24 @@ Public MustInherit Class MyMachGroupVM
m_bResetWhileCutting = value
End Sub
+ Public ReadOnly Property Background As SolidColorBrush
+ Get
+ Select Case nProduction_State
+ Case ItemState.ND
+ Return Brushes.White
+ Case ItemState.Assigned
+ Return Brushes.LightGray
+ Case ItemState.Confirmed
+ Return Brushes.LightGray
+ Case ItemState.WIP
+ Return Brushes.Green
+ Case ItemState.Produced
+ Return Brushes.Yellow
+ Case Else ' ItemState.Scrapped
+ Return Brushes.LightBlue
+ End Select
+ End Get
+ End Property
#End Region
' definizione comandi
@@ -455,6 +486,10 @@ Public MustInherit Class MyMachGroupVM
NotifyPropertyChanged(NameOf(sUnitTime))
End Sub
+ Public Sub SentToSupervisor()
+ MyMachGroupM.SetProductionState(ItemState.Assigned)
+ End Sub
+
Public Overridable Function CnFilePath() As String
Return Nothing
End Function
diff --git a/EgtBEAMWALL.Core/ProjectManager/ProdFileVM.vb b/EgtBEAMWALL.Core/ProjectManager/ProdFileVM.vb
index c26926ed..76fc130d 100644
--- a/EgtBEAMWALL.Core/ProjectManager/ProdFileVM.vb
+++ b/EgtBEAMWALL.Core/ProjectManager/ProdFileVM.vb
@@ -63,16 +63,6 @@ Public Class ProdFileVM
m_sBTLFileName = value
End Sub
- Private m_nModificationIndex As Integer = Integer.MaxValue
- Public ReadOnly Property nModificationIndex As Integer
- Get
- Return m_nModificationIndex
- End Get
- End Property
- Public Sub SetModificationIndex(value As String)
- m_nModificationIndex = value
- End Sub
-
#Region "CONSTRUCTORS"
Sub New(ProdFileM As ProdFileM)
diff --git a/EgtBEAMWALL.Core/ProjectManager/ProjectFileVM.vb b/EgtBEAMWALL.Core/ProjectManager/ProjectFileVM.vb
index e28fc002..5c3d7af8 100644
--- a/EgtBEAMWALL.Core/ProjectManager/ProjectFileVM.vb
+++ b/EgtBEAMWALL.Core/ProjectManager/ProjectFileVM.vb
@@ -87,13 +87,23 @@ Public Class ProjectFileVM
End Property
' variabile che indica se ricaricare il progetto
- Private m_bReloadProject As Boolean = True
- Friend ReadOnly Property bReloadProject As Boolean
+ Protected m_bReloadProject As Boolean = True
+ Public ReadOnly Property bReloadProject As Boolean
Get
Return m_bReloadProject
End Get
End Property
+ Protected m_nModificationIndex As Integer = Integer.MaxValue - 1000
+ Public ReadOnly Property nModificationIndex As Integer
+ Get
+ Return m_nModificationIndex
+ End Get
+ End Property
+ Public Sub SetModificationIndex(value As String)
+ m_nModificationIndex = value
+ End Sub
+
#Region "Messages"
Public ReadOnly Property Id_Msg As String
diff --git a/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb
index 457b149a..402e8f0d 100644
--- a/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb
+++ b/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb
@@ -123,9 +123,8 @@ Public Class LeftPanelVM
MessageBox.Show("Impossibile cancellare il grezzo")
Return
End If
- If DbControllers.m_MachGroupController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id, ItemState.ND) Then
+ If DbControllers.m_MachGroupController.RemoveFromSupervisor(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id) Then
' se rimozione da Db ok, lo rimuovo da lista
- DbControllers.m_MachGroupController.UpdateSupervisor(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id, "")
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.Remove(SelMachGroup)
End If
End Sub
diff --git a/EgtBEAMWALL.Supervisor/LeftPanel/RawPartListV.xaml b/EgtBEAMWALL.Supervisor/LeftPanel/RawPartListV.xaml
index 476a7be8..14c367ea 100644
--- a/EgtBEAMWALL.Supervisor/LeftPanel/RawPartListV.xaml
+++ b/EgtBEAMWALL.Supervisor/LeftPanel/RawPartListV.xaml
@@ -33,7 +33,7 @@
-
+
@@ -41,6 +41,14 @@
+
+
+
+
+
+
+
+
diff --git a/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupPanelVM.vb b/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupPanelVM.vb
index e9b8f4dc..aa696e92 100644
--- a/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupPanelVM.vb
+++ b/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupPanelVM.vb
@@ -57,6 +57,27 @@ Public Class MyMachGroupPanelVM
NotifyPropertyChanged(NameOf(MachGroupVMList))
End Sub
+ Public Overrides Function OnPostSetCurrMachGroup() As Boolean
+ ' resetto eventuale selezione pezzo
+ DirectCast(SelectedMachGroup, MyMachGroupVM).SelPart = Nothing
+ ' Imposto vista solo tavola
+ EgtSetMachineLook(MCH_LOOK.TAB)
+ Dim View As VT
+ For Each Mach As MyMachine In CoreMap.refMachinePanelVM.MachineList
+ If Mach.Name = SelectedMachGroup.Machine Then
+ If Mach.nType = Core.ConstBeam.MachineType.BEAM Then
+ View = VT.ISO_SW
+ Else
+ View = VT.TOP
+ End If
+ Exit For
+ End If
+ Next
+ EgtSetView(View, False)
+ EgtZoom(ZM.ALL)
+ Return True
+ End Function
+
Public Function FirstNotToBeProducedIndex() As Integer
Return MachGroupVMList.IndexOf(MachGroupVMList.FirstOrDefault(Function(x) DirectCast(x, MyMachGroupVM).bToBeProduced = False))
End Function
diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb
index 511cc12e..b6df1629 100644
--- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb
+++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb
@@ -132,7 +132,7 @@ Class MachManaging
' scrivo data start su Db barra
DbControllers.m_MachGroupController.UpdateStart(nP_Prod, nP_Machgroup, dtStart)
' scrivo stato start
- MachGroup.MyMachGroupM.SetState(1)
+ MachGroup.MyMachGroupM.SetProductionState(1)
MachGroup.dtStartTime = dtStart
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nCALC_State))
End If
@@ -157,7 +157,7 @@ Class MachManaging
' scrivo data end su Db barra
DbControllers.m_MachGroupController.UpdateEnd(nP_Prod, nP_Machgroup, dtEnd)
' scrivo stato end
- MachGroup.MyMachGroupM.SetState(2)
+ MachGroup.MyMachGroupM.SetProductionState(2)
MachGroup.dtEndTime = dtEnd
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nCALC_State))
' azzero tutte le variabilli per iniziare barra successiva
diff --git a/EgtBEAMWALL.Supervisor/ZebraPrinter/LabelPrinter.vb b/EgtBEAMWALL.Supervisor/ZebraPrinter/LabelPrinter.vb
index 5414f9c8..9312ea71 100644
--- a/EgtBEAMWALL.Supervisor/ZebraPrinter/LabelPrinter.vb
+++ b/EgtBEAMWALL.Supervisor/ZebraPrinter/LabelPrinter.vb
@@ -14,6 +14,7 @@ Module LabelPrinter
Sub New()
End Sub
+
Public Sub SetPrintVariables(PrintVariables As Dictionary(Of String, String))
m_PrintVariables = PrintVariables
End Sub
diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLStructureVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLStructureVM.vb
index 9fa1b8a6..72a534fb 100644
--- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLStructureVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLStructureVM.vb
@@ -680,13 +680,18 @@ Public Class BTLStructureVM
' disabilito impostazione modificato
Dim DisableMgr As New DisableModifiedMgr
' recupero progetto del primo pezzo
- Dim nFirstPartId As Integer = EgtGetFirstPart(True)
+ 'Dim nFirstPartId As Integer = EgtGetFirstPart(True)
+ 'Dim nCurrProjId As Integer
+ 'If nFirstPartId = GDB_ID.NULL Then
+ ' DisableMgr.ReEnable()
+ ' Return
+ 'End If
+ 'If Not EgtGetInfo(nFirstPartId, BTL_PRT_PROJ, nCurrProjId) Then
+ ' DisableMgr.ReEnable()
+ ' Return
+ 'End If
Dim nCurrProjId As Integer
- If nFirstPartId = GDB_ID.NULL Then
- DisableMgr.ReEnable()
- Return
- End If
- If Not EgtGetInfo(nFirstPartId, BTL_PRT_PROJ, nCurrProjId) Then
+ If IsNothing(Map.refProjManagerVM) OrElse IsNothing(Map.refProjManagerVM.CurrProj) Then
DisableMgr.ReEnable()
Return
End If
@@ -695,7 +700,7 @@ Public Class BTLStructureVM
While AsseBaseId <> GDB_ID.NULL
Dim nProj As Integer = 0
EgtGetInfo(AsseBaseId, BTL_PRT_PROJ, nProj)
- If nProj = nCurrProjId Then Exit While
+ If nProj = Map.refProjManagerVM.CurrProj.nProjId Then Exit While
AsseBaseId = EgtGetNextName(AsseBaseId, ASSEBASE)
End While
If AsseBaseId = GDB_ID.NULL Then
diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml b/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml
index a0346870..a948193b 100644
--- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml
+++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml
@@ -15,10 +15,12 @@
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Margin="0,0,0,5"
- BindingColumns="{Binding RawPartColumns}">
+ BindingColumns="{Binding RawPartColumns}"
+ BeginningEdit="RawPartList_BeginningEdit">
-
+
@@ -124,7 +126,7 @@
diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml.vb b/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml.vb
index 3d854ee9..4772514f 100644
--- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/RawPartListV.xaml.vb
@@ -1,11 +1,33 @@
-Public Class RawPartListV
+Imports EgtBEAMWALL.Core
+
+Public Class RawPartListV
Private Sub RawPartList_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
If TypeOf sender Is DataGridRow Then
Dim Row As DataGridRow = DirectCast(sender, DataGridRow)
+ Dim RowVM As MyMachGroupVM = DirectCast(Row.DataContext, MyMachGroupVM)
+ ' se gia' selezionato rifaccio selezione perche' potrbbe essere selezionato un BTLPart
If Not IsNothing(Row) AndAlso Row.IsSelected Then
Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup = Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup
End If
+ '' se in produzione impedisco modifica dei parametri
+ 'If RowVM.nProduction_State > ItemState.ND Then
+ ' e.Handled = True
+ 'End If
+ End If
+ End Sub
+
+ Private Sub RawPartList_BeginningEdit(sender As Object, e As DataGridBeginningEditEventArgs)
+ If IsNothing(e.Row) Then Return
+ Dim RowVM As MyMachGroupVM = DirectCast(e.Row.DataContext, MyMachGroupVM)
+ '' se gia' selezionato rifaccio selezione perche' potrbbe essere selezionato un BTLPart
+ 'If Not IsNothing(Row) AndAlso Row.IsSelected Then
+ ' Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup = Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup
+ 'End If
+ ' se in produzione impedisco modifica dei parametri
+ If RowVM.nProduction_State > ItemState.ND Then
+ 'For Each cell In Row.Item
+ e.Cancel = True
End If
End Sub
diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb
new file mode 100644
index 00000000..cd42b7a2
--- /dev/null
+++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb
@@ -0,0 +1,3 @@
+Public Class CALCPanelVM
+
+End Class
diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml
new file mode 100644
index 00000000..076cc2fa
--- /dev/null
+++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml.vb b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml.vb
new file mode 100644
index 00000000..d2b5fc77
--- /dev/null
+++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CalcPanelV.xaml.vb
@@ -0,0 +1,3 @@
+Public Class CalcPanelV
+
+End Class
diff --git a/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj b/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj
index f0f23da9..7dd8707f 100644
--- a/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj
+++ b/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj
@@ -174,6 +174,10 @@
+
+ CalcPanelV.xaml
+
+
@@ -194,7 +198,6 @@
- SetUpV.xaml
@@ -354,6 +357,10 @@
MSBuild:CompileDesigner
+
+ Designer
+ MSBuild:Compile
+ DesignerMSBuild:Compile
diff --git a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb
index c3ed9bfe..6127dc94 100644
--- a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb
@@ -69,8 +69,11 @@ Public Class BeamMachGroupVM
Private Sub ReadProductionState()
Dim MachGroupModel As MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refProdManagerVM.CurrProd.nProdId, Id)
- If Not String.IsNullOrEmpty(MachGroupModel.SupervisorId) Then
- SetSupervisorId(MachGroupModel.SupervisorId)
+ If Not IsNothing(MachGroupModel) Then
+ If Not String.IsNullOrEmpty(MachGroupModel.SupervisorId) Then
+ SetSupervisorId(MachGroupModel.SupervisorId)
+ End If
+ MyMachGroupM.SetProductionState(MachGroupModel.State)
End If
End Sub
@@ -137,10 +140,10 @@ Public Class BeamMachGroupVM
' elimino vecchio grezzo ed eseguo script creazione nuovo
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
+ EgtRemovePartFromRawPart(EgtGetFirstPartInRawPart(nRawId))
EgtRemoveRawPart(nRawId)
nRawId = EgtGetFirstRawPart()
End While
-
If Not ExecBeam(Map.refMainWindowVM.MainWindowM.sTempDir, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdType.RAWPART, False) Then Return False
Return True
diff --git a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogV.xaml.vb b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogV.xaml.vb
index 4e815f22..05d4a74c 100644
--- a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogV.xaml.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogV.xaml.vb
@@ -1,5 +1,6 @@
Imports System.ComponentModel
Imports System.IO
+Imports EgtBEAMWALL.Core
Imports EgtBEAMWALL.Core.ConstBeam
Imports EgtUILib
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
index 825b1061..a90568cb 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
@@ -589,6 +589,8 @@ Public Class ProjManagerVM
DbControllers.m_ProjController.UpdateInfo(nProjId, sBTLFileName, Map.refProjectVM.BTLStructureVM.sLISTNAME, ExportDate, m_nProjType)
SetCurrProj(nProjId)
Map.refMainWindowVM.UpdateTitle()
+ ' mostro tutti i pezzi
+ Map.refShowBeamPanelVM.ShowAll()
Else
' elimino da Db
DbControllers.m_ProjController.DeleteProj(nProjId)
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb
index 8cd02f01..291df180 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb
@@ -3,98 +3,21 @@ Imports EgtBEAMWALL.Core
Imports EgtUILib
Public Class ProdFileVM
- Inherits ProjectFileVM
-
- Public ReadOnly Property ProdFileM As ProdFileM
- Get
- Return m_ProjectFileM
- End Get
- End Property
-
- Public ReadOnly Property nProjIdList As List(Of Integer)
- Get
- Return ProdFileM.nProjIdList
- End Get
- End Property
-
- Public Overrides ReadOnly Property nProdId As Integer
- Get
- Return ProdFileM.nProdId
- End Get
- End Property
-
- Friend Overrides ReadOnly Property sProdDirPath As String
- Get
- Dim sPath As String = String.Empty
- If IsNothing(ProdFileM.nProdId) OrElse ProdFileM.nProdId = 0 Then Return String.Empty
- Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000")
- End Get
- End Property
- Friend Overrides ReadOnly Property sProdPath As String
- Get
- Dim sPath As String = String.Empty
- If IsNothing(ProdFileM.nProdId) OrElse ProdFileM.nProdId = 0 Then Return String.Empty
- Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000") & "\" & nProdId.ToString("0000") & ".nge"
- End Get
- End Property
-
- Public Overrides Property bIsNew As Boolean
- Get
- Return ProdFileM.bIsNew
- End Get
- Set(value As Boolean)
- ProdFileM.bIsNew = value
- End Set
- End Property
-
- Public ReadOnly Property sName As String
- Get
- Return ProdFileM.sName
- End Get
- End Property
-
- Private m_sBTLFileName As String
- Public ReadOnly Property sBTLFileName As String
- Get
- Return m_sBTLFileName
- End Get
- End Property
+ Inherits Core.ProdFileVM
#Region "CONSTRUCTORS"
Sub New(ProdFileM As ProdFileM)
- m_ProjectFileM = ProdFileM
+ MyBase.New(ProdFileM)
' aggiungo nome btl
+ Dim sBTLFileName As String = ""
For Each CurrProj In nProjIdList
Dim TempProj As ProjFileM = DbControllers.m_ProjController.FindByProjIdConv(CurrProj)
- If Not IsNothing(TempProj) Then m_sBTLFileName& = TempProj.sListName
+ If Not IsNothing(TempProj) Then sBTLFileName &= TempProj.sListName
Next
+ SetBTLFileName(sBTLFileName)
End Sub
- 'Sub New(nProjectType As ProjectType, ProjectFileName As String)
- ' m_nProjectType = nProjectType
- ' If m_nProjectType = ProjectType.PROJ Then
- ' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
- ' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
- ' Integer.TryParse(DataFromFileName(0), m_nProjId)
- ' End If
- ' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
- ' Integer.TryParse(DataFromFileName(1), m_nProdId)
- ' Else
- ' m_nProdId = 0
- ' End If
- ' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
- ' m_BTLFileName = DataFromFileName(2)
- ' End If
- ' ElseIf m_nProjectType = ProjectType.PROD Then
- ' Integer.TryParse(ProjectFileName, m_nProdId)
- ' End If
- 'End Sub
-
- 'Sub New(nProjectType As ProjectType, nProjId As Integer, nProdId As Integer, sBTLFileName As String)
- ' MyBase.New(nProjectType, nProjId, nProdId, sBTLFileName)
- 'End Sub
-
#End Region ' CONSTRUCTORS
Friend Function GetProjPath(nProjId As Integer)
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjFileVM.vb
index 32798f73..6881e91e 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjFileVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjFileVM.vb
@@ -3,121 +3,18 @@ Imports EgtBEAMWALL.Core
Imports EgtUILib
Public Class ProjFileVM
- Inherits ProjectFileVM
-
- Public ReadOnly Property ProjFileM As ProjFileM
- Get
- Return m_ProjectFileM
- End Get
- End Property
-
- Public Overrides ReadOnly Property nProjId As Integer
- Get
- Return ProjFileM.nProjId
- End Get
- End Property
-
- Public Overrides ReadOnly Property nProdId As Integer
- Get
- Return ProjFileM.nProdId
- End Get
- End Property
-
- Friend Overrides ReadOnly Property sProjDirPath As String
- Get
- If IsNothing(ProjFileM.nProjId) OrElse ProjFileM.nProjId = 0 Then Return String.Empty
- Return refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000")
- End Get
- End Property
- Friend Overrides ReadOnly Property sProjPath As String
- Get
- Dim sPath As String = String.Empty
- If IsNothing(ProjFileM.nProjId) OrElse ProjFileM.nProjId = 0 Then Return String.Empty
- sPath = refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000") & "\" & nProjId.ToString("0000") & ".nge"
- Return sPath
- End Get
- End Property
-
- Friend Overrides ReadOnly Property sProdDirPath As String
- Get
- Dim sPath As String = String.Empty
- If IsNothing(ProjFileM.nProdId) OrElse ProjFileM.nProdId = 0 Then Return String.Empty
- Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000")
- End Get
- End Property
- Friend Overrides ReadOnly Property sProdPath As String
- Get
- Dim sPath As String = String.Empty
- If IsNothing(ProjFileM.nProdId) OrElse ProjFileM.nProdId = 0 Then Return String.Empty
- Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000") & "\" & nProdId.ToString("0000") & ".nge"
- End Get
- End Property
-
- Public Overrides Property bIsNew As Boolean
- Get
- Return ProjFileM.bIsNew
- End Get
- Set(value As Boolean)
- ProjFileM.bIsNew = value
- End Set
- End Property
-
- Public ReadOnly Property sBTLFileName As String
- Get
- Return ProjFileM.sBTLFileName
- End Get
- End Property
-
- Public ReadOnly Property sListName As String
- Get
- Return ProjFileM.sListName
- End Get
- End Property
-
- Public ReadOnly Property dtExportDate As DateTime
- Get
- Return ProjFileM.dtExportDate
- End Get
- End Property
+ Inherits Core.ProjFileVM
#Region "CONSTRUCTORS"
Sub New(ProjectFileM As ProjFileM)
- m_ProjectFileM = ProjectFileM
+ MyBase.New(ProjectFileM)
End Sub
- 'Sub New(nProjectType As ProjectType, ProjectFileName As String)
- ' m_nProjectType = nProjectType
- ' If m_nProjectType = ProjectType.PROJ Then
- ' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
- ' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
- ' Integer.TryParse(DataFromFileName(0), m_nProjId)
- ' End If
- ' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
- ' Integer.TryParse(DataFromFileName(1), m_nProdId)
- ' Else
- ' m_nProdId = 0
- ' End If
- ' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
- ' m_BTLFileName = DataFromFileName(2)
- ' End If
- ' ElseIf m_nProjectType = ProjectType.PROD Then
- ' Integer.TryParse(ProjectFileName, m_nProdId)
- ' End If
- 'End Sub
-
- 'Sub New(nProjectType As ProjectType, nProjId As Integer, nProdId As Integer, sBTLFileName As String)
- ' MyBase.New(nProjectType, nProjId, nProdId, sBTLFileName)
- 'End Sub
-
#End Region ' CONSTRUCTORS
#Region "METHODS"
- Public Sub SetBTLFileName(BTLFileName As String)
- ProjFileM.sBTLFileName = BTLFileName
- End Sub
-
' funzione che restituisce le parti di nome file
Friend Shared Function VerifyProjectFile(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean
If nProjectType = ProjectType.PROJ Then
diff --git a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
index 77a904ee..bfeb13c7 100644
--- a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
@@ -601,8 +601,6 @@ Public Class MySceneHostVM
' scrivo info proj su layer AsseBase
Dim nAsseBaseLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
- ' mostro tutti i pezzi
- Map.refShowBeamPanelVM.ShowAll()
Else
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
diff --git a/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb b/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb
index 5e2a9788..a34f7ecd 100644
--- a/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb
@@ -1,4 +1,5 @@
-Imports EgtBEAMWALL.DataLayer.DatabaseModels
+Imports EgtBEAMWALL.Core
+Imports EgtBEAMWALL.DataLayer.DatabaseModels
Public Class SupervisorComm
@@ -10,6 +11,8 @@ Public Class SupervisorComm
Friend Sub Timer_Tick()
' se sono in pagina vista
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
+ ' se non c'e' un progetto attivo, esco
+ If IsNothing(Map.refProjManagerVM.CurrProj) Then Return
' verifico se c'e' un progetto aperto o in caricamento
'If IsNothing(Map.refProjManagerVM.CurrProj) OrElse Map.refProjManagerVM.bLoadingProj Then Return
' verifico se c'e' una sessione aperta sul progetto corrente
@@ -22,18 +25,39 @@ Public Class SupervisorComm
Next
If nModificationIndex = -1 Then Return
' verifico se ci sono modifiche
- 'If nModificationIndex <> Map.refProjManagerVM.CurrProj.nModificationIndex Then
- ' ' aggiorno stati dei pezzi e colore di visualizzazione
+ If nModificationIndex <> Map.refProjManagerVM.CurrProj.nModificationIndex Then
+ ' recupero elementi modificati
+ Dim MachGroupList As List(Of StatusMapModel) = DbControllers.m_StatusMapController.GetFrom(Map.refProjManagerVM.CurrProj.nModificationIndex + 1)
+ Dim bReloadFile As Boolean = False
+ For Each MachGroupModification In MachGroupList
+ Select Case MachGroupModification.Operation
+ Case Core.StatusMapOpType.PartStart
+ ' aggiorno stati dei pezzi e colore di visualizzazione
- 'End If
+
+ Case Core.StatusMapOpType.PartEnd
+
+
+ Case Core.StatusMapOpType.MachGroupRemovedFromSupervisor
+ Dim Machgroup As MyMachGroupVM = Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = MachGroupModification.ItemId)
+ Machgroup.ResetSupervisorId()
+ End Select
+ Next
+
+
+ End If
' se arriva richiesta da supervisore di blocco e salvataggio
+ ' verifico se ho aperto lo stesso progetto
+
' chiedo se salvare
' blocco interfaccia fino a notifica di sblocco
' se sono in pagina ottimizzatore
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then
+ ' se non c'e' un progetto attivo, esco
+ If IsNothing(Map.refProdManagerVM.CurrProd) Then Return
' verifico se c'e' un progetto aperto o in caricamento
'If IsNothing(Map.refProdManagerVM.CurrProd) OrElse Map.refProdManagerVM.bLoadingProd Then Return
' verifico se c'e' una sessione aperta sul progetto corrente
@@ -46,17 +70,33 @@ Public Class SupervisorComm
Next
If nModificationIndex = -1 Then Return
' verifico se ci sono modifiche
- 'If nModificationIndex <> Map.refProjManagerVM.CurrProj.nModificationIndex Then
- ' ' aggiorno stati dei pezzi e colore di visualizzazione
-
- 'End If
- ' se arriva richiesta da supervisore di blocco e salvataggio
-
- ' chiedo se salvare
-
- ' blocco interfaccia fino a notifica di sblocco
+ If nModificationIndex <> Map.refProdManagerVM.CurrProd.nModificationIndex Then
+ ' recupero elementi modificati
+ Dim MachGroupList As List(Of StatusMapModel) = DbControllers.m_StatusMapController.GetFrom(Map.refProdManagerVM.CurrProd.nModificationIndex + 1)
+ Dim bReloadFile As Boolean = False
+ For Each MachGroupModification In MachGroupList
+ Select Case MachGroupModification.Operation
+ Case Core.StatusMapOpType.PartStart
+ Case Core.StatusMapOpType.PartEnd
+
+
+ Case Core.StatusMapOpType.MachGroupRemovedFromSupervisor
+ Dim Machgroup As MyMachGroupVM = Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = MachGroupModification.ItemId)
+ Machgroup.ResetSupervisorId()
+ End Select
+ Next
+ ' se arriva richiesta da supervisore di blocco e salvataggio
+
+ ' verifico se ho aperto lo stesso progetto
+
+ ' se si, chiedo se salvare
+
+ ' blocco interfaccia fino a notifica di sblocco
+
+
+ End If
End If
' se c'e' un progetto aperto o in caricamento
'If IsNothing(Map.refProdManagerVM.CurrProd) OrElse Map.refProdManagerVM.bLoadingProd Then Return
diff --git a/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb
index 61e7fa3a..661f0c17 100644
--- a/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb
@@ -48,7 +48,7 @@ Public Class TopPanelVM
Public ReadOnly Property MovePart_Visibility As Visibility
Get
- If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
+ If Not IsNothing(Map.refProjectVM) AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
Return If(Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM, Visibility.Visible, Visibility.Collapsed)
End If
Return Visibility.Collapsed
@@ -150,11 +150,20 @@ Public Class TopPanelVM
'''
Public Sub ProduceRawPart()
If IsNothing(Map.refProdManagerVM.CurrProd) Then Return
- Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
- If IsNothing(SelMachGroup) Then Return
- If SelMachGroup.nGlobalState = CalcStates.OK Or SelMachGroup.nGlobalState = CalcStates.INFO Then
- DbControllers.m_MachGroupController.UpdateSupervisor(Map.refProdManagerVM.CurrProd.nProdId, SelMachGroup.Id, DbControllers.m_SupervisorId)
- DbControllers.m_MachGroupController.UpdateOrder(Map.refProdManagerVM.CurrProd.nProdId, SelMachGroup.Id, 10000)
+ Produce(Map.refMachGroupPanelVM.SelectedMachGroup)
+ End Sub
+
+ Private Sub Produce(MachGroup As MyMachGroupVM)
+ If IsNothing(MachGroup) Then Return
+ If MachGroup.nGlobalState = CalcStates.OK Or MachGroup.nGlobalState = CalcStates.INFO Then
+ ' se ci sono modifiche, salvo il pogetto
+ If EgtGetModified() Then
+ Map.refProdManagerVM.Save()
+ End If
+ ' mando al supervisore
+ DbControllers.m_MachGroupController.UpdateSupervisor(Map.refProdManagerVM.CurrProd.nProdId, MachGroup.Id, DbControllers.m_SupervisorId)
+ DbControllers.m_MachGroupController.UpdateOrder(Map.refProdManagerVM.CurrProd.nProdId, MachGroup.Id, 10000)
+ MachGroup.SentToSupervisor()
Else
MessageBox.Show("Impossibile mandarlo in produzione perche' non lavorabile!")
End If
@@ -183,7 +192,7 @@ Public Class TopPanelVM
If IsNothing(Map.refProdManagerVM.CurrProd) Then Return
If Map.refMachGroupPanelVM.MachGroupVMList.Count > 0 Then
For Each Machgroup In Map.refMachGroupPanelVM.MachGroupVMList
- DbControllers.m_MachGroupController.UpdateSupervisor(Map.refProdManagerVM.CurrProd.nProdId, Machgroup.Id, DbControllers.m_SupervisorId)
+ Produce(Machgroup)
Next
End If
End Sub