d611f66d43
Correzioni e migliorie
186 lines
6.5 KiB
VB.net
186 lines
6.5 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtBEAMWALL.Core.ConstBeam
|
|
Imports EgtBEAMWALL.DataLayer.DatabaseModels
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class SupervisorManagerVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_SupervisorManager_IsEnabled As Boolean = True
|
|
Public ReadOnly Property SupervisorManager_IsEnabled As Boolean
|
|
Get
|
|
Return m_SupervisorManager_IsEnabled
|
|
End Get
|
|
End Property
|
|
|
|
Private m_CurrProd As ProdFileVM
|
|
Friend Property CurrProd As ProdFileVM
|
|
Get
|
|
Return m_CurrProd
|
|
End Get
|
|
Set(value As ProdFileVM)
|
|
m_CurrProd = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bLoadingProd As Boolean = False
|
|
Public Property bLoadingProd As Boolean
|
|
Get
|
|
Return m_bLoadingProd
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bLoadingProd = value
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdOpen As ICommand
|
|
'Private m_cmdSave As ICommand
|
|
'Private m_cmdGoToProj As ICommand
|
|
|
|
'#Region "ToolTip"
|
|
|
|
' 'Proprietà ToolTip
|
|
' Public ReadOnly Property OpenToolTip As String
|
|
' Get
|
|
' Return EgtMsg(MSG_TOPCOMMANDBAR + 2)
|
|
' End Get
|
|
' End Property
|
|
' Public ReadOnly Property SaveToolTip As String
|
|
' Get
|
|
' Return EgtMsg(MSG_TOPCOMMANDBAR + 3)
|
|
' End Get
|
|
' End Property
|
|
|
|
'#End Region ' ToolTip
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
' Creo riferimento a questa classe in Map
|
|
Map.SetRefSupervisorManagerVM(Me)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Function SetCurrProd(nProdId As Integer) As Boolean
|
|
Dim Currprod As ProdFileM = DbControllers.m_ProdController.FindCoreByProdId(nProdId)
|
|
If IsNothing(Currprod) Then Return False
|
|
m_CurrProd = New ProdFileVM(Currprod)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Sub SetSupervisorManagerIsEnabled(bIsEnabled As Boolean)
|
|
m_SupervisorManager_IsEnabled = bIsEnabled
|
|
NotifyPropertyChanged(NameOf(SupervisorManager_IsEnabled))
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "OpenCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property OpenCommand As ICommand
|
|
Get
|
|
If m_cmdOpen Is Nothing Then
|
|
m_cmdOpen = New Command(AddressOf Open)
|
|
End If
|
|
Return m_cmdOpen
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Friend Sub Open()
|
|
OpenProject()
|
|
End Sub
|
|
|
|
Friend Sub OpenProject()
|
|
'' verifico se progetto modificato, e chiedo se salvare
|
|
'ProdFileVM.VerifyProjectModification(CurrProd)
|
|
Dim sFilePath As String = ""
|
|
' se la string è vuota
|
|
Dim TempCurrProd As ProdFileVM
|
|
Dim OpenProjectFileDialogVM As OpenProjectFileDialogVM = Nothing
|
|
' apro dialogo di scelta file
|
|
OpenProjectFileDialogVM = New OpenProjectFileDialogVM
|
|
Dim OpenFile As New OpenProjectFileDialogV(Application.Current.MainWindow, OpenProjectFileDialogVM)
|
|
Dim DialogResult As Boolean? = OpenFile.EgtShowDialog(ProjectType.PROD)
|
|
If IsNothing(DialogResult) OrElse Not DialogResult Then Return
|
|
sFilePath = OpenProjectFileDialogVM.SelProject.sProdPath
|
|
TempCurrProd = OpenProjectFileDialogVM.SelProject
|
|
m_bLoadingProd = True
|
|
If File.Exists(sFilePath) Then
|
|
If Map.refSceneHostVM.MainController.OpenProject(sFilePath, False) Then
|
|
m_CurrProd = TempCurrProd
|
|
Map.refMainWindowVM.UpdateTitle()
|
|
'If Map.refMachGroupPanelVM.InitMachGroupList() Then
|
|
' m_CurrProd = TempCurrProd
|
|
' Map.refMainWindowVM.SetTitle(CurrProd.nProdId.ToString("0000") & " - EgtBEAMWALL")
|
|
'Else
|
|
'MessageBox.Show("Impossibile aprire gruppi di lavorazione del file!!")
|
|
'Map.refSceneHostVM.MainController.NewProject()
|
|
'Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
|
'End If
|
|
Else
|
|
MessageBox.Show("Impossibile aprire il file!!")
|
|
Map.refSceneHostVM.MainController.NewProject()
|
|
Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
|
End If
|
|
Else
|
|
MessageBox.Show("File non trovato!!")
|
|
Map.refSceneHostVM.MainController.NewProject()
|
|
Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
|
End If
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM = New SupervisorMachGroupPanelVM(MachGroupPanelM.CreateNewMachGroupPanel())
|
|
' apro sessione di comunicazione e fisso indice a 0
|
|
DbControllers.m_StatusMapController.StartProd(Map.refSupervisorManagerVM.CurrProd.nProdId, m_SupervisorId)
|
|
Map.refSupervisorManagerVM.CurrProd.SetModificationIndex(0)
|
|
' recupero elementi modificati
|
|
Dim MachGroupList As List(Of StatusMapModel) = DbControllers.m_StatusMapController.GetFrom(0)
|
|
' carico dictionary di tutti i Machgroup
|
|
For Each MachGroup In MachGroupList
|
|
If Not Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.ContainsKey(MachGroup.ItemId) Then
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.Add(MachGroup.ItemId, {0, 0})
|
|
End If
|
|
Next
|
|
' carico solo elementi passati al supervisore
|
|
Dim TempList As List(Of DataLayer.DatabaseModels.MachGroupModel) = DbControllers.m_MachGroupController.GetByProdSupervisor(Map.refSupervisorManagerVM.CurrProd.nProdId, m_SupervisorId)
|
|
For Each DBMachGroup In TempList
|
|
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.ProdMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = DBMachGroup.MachGroupId)
|
|
' leggo dati da Db
|
|
MachGroup.dtStartTime = DBMachGroup.DtStart
|
|
MachGroup.dtEndTime = DBMachGroup.DtEnd
|
|
MachGroup.MyMachGroupM.SetProductionState(DBMachGroup.State)
|
|
For Each Part In MachGroup.PartVMList
|
|
Dim DBPart As PartModel = DbControllers.m_PartController.FindByPartId(Part.nPartId)
|
|
Part.dtStartTime = DBPart.DtStart
|
|
Part.dtEndTime = DBPart.DtEnd
|
|
Part.nProduction_State = DBPart.State
|
|
Next
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.AddMachGroupToSupervisor(MachGroup)
|
|
Next
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList))
|
|
m_bLoadingProd = False
|
|
End Sub
|
|
|
|
#End Region ' OpenCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|