Files
egtbeamwall/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb
T
2021-07-29 16:17:37 +02:00

185 lines
6.6 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtBEAMWALL.Core
Imports EgtUILib
Imports EgtWPFLib5
Public Class LeftPanelVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Public ReadOnly Property AxisList As ObservableCollection(Of Axis)
Get
Return Map.refMachCommandMessagePanelVM.AxisList
End Get
End Property
Public ReadOnly Property sOPState As String
Get
Return Map.refMachCommandMessagePanelVM.sOPState
End Get
End Property
' Definizione comandi
Private m_cmdDeleteRawPart As ICommand
Private m_cmdMoveUpRawPart As ICommand
Private m_cmdMoveDownRawPart As ICommand
Private m_cmdCompletedRawPart As ICommand
#End Region 'FIELDS & PROPERTIES
Sub New()
' imposto riferimento su mappa
Map.SetRefLeftPanelVM(Me)
End Sub
#Region "METHODS"
Friend Sub UpdateView()
NotifyPropertyChanged("ViewPage_Visibility")
NotifyPropertyChanged("MachiningPage_Visibility")
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "CompletedRawPart"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property CompletedRawPart_Command As ICommand
Get
If m_cmdCompletedRawPart Is Nothing Then
m_cmdCompletedRawPart = New Command(AddressOf CompletedRawPart)
End If
Return m_cmdCompletedRawPart
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub CompletedRawPart()
If IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup) Then Return
Dim SelMachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup
' scrivo tutti pezzi completati
For PartIndex = 0 To SelMachGroup.PartVMList.Count - 1
Dim Part As PartVM = SelMachGroup.PartVMList(PartIndex)
If Part.dtStartTime = DateTime.MinValue Then
Dim Time As DateTime = DateTime.Now()
If PartIndex = 0 Then
' aggiorno anche start MachGroup
DbControllers.m_MachGroupController.UpdateStart(Map.refSupervisorManagerVM.CurrProd.nProdId, SelMachGroup.Id, Time)
SelMachGroup.dtStartTime = Time
SelMachGroup.NotifyPropertyChanged(NameOf(SelMachGroup.Calc_Background))
End If
DbControllers.m_PartController.UpdateStart(Map.refSupervisorManagerVM.CurrProd.nProdId, SelMachGroup.Id, Part.nPartId, Time)
Part.dtStartTime = Time
End If
If Part.dtEndTime = DateTime.MinValue Then
Dim Time As DateTime = DateTime.Now()
DbControllers.m_PartController.UpdateEnd(Map.refSupervisorManagerVM.CurrProd.nProdId, SelMachGroup.Id, Part.nPartId, Time)
Part.dtEndTime = Time
If PartIndex = SelMachGroup.PartVMList.Count - 1 Then
'aggiorno anche fine MachGroup
DbControllers.m_MachGroupController.UpdateEnd(Map.refSupervisorManagerVM.CurrProd.nProdId, SelMachGroup.Id, Time)
SelMachGroup.dtEndTime = Time
SelMachGroup.NotifyPropertyChanged(NameOf(SelMachGroup.Calc_Background))
End If
End If
DbControllers.m_MachGroupController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id, ItemState.Produced)
' aggiungere status!!
Part.NotifyPropertyChanged(NameOf(Part.Production_Background))
Next
End Sub
#End Region ' CompletedRawPart
#Region "DeleteRawPart"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property DeleteRawPart_Command As ICommand
Get
If m_cmdDeleteRawPart Is Nothing Then
m_cmdDeleteRawPart = New Command(AddressOf DeleteRawPart)
End If
Return m_cmdDeleteRawPart
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub DeleteRawPart()
If IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup) Then Return
Dim SelMachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup
' se gia' prodotto, o in produzione non lo posso eliminare
If SelMachGroup.dtStartTime <> Date.MinValue OrElse SelMachGroup.dtEndTime <> Date.MinValue OrElse SelMachGroup.bReadyForMachining OrElse SelMachGroup.bSentToMachine OrElse SelMachGroup.bResetWhileCutting Then
MessageBox.Show("Impossibile cancellare il grezzo")
Return
End If
If DbControllers.m_MachGroupController.RemoveFromSupervisor(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id) Then
' se rimozione da Db ok, lo rimuovo da lista
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.Remove(SelMachGroup)
End If
End Sub
#End Region ' DeleteRawPart
#Region "MoveUpRawPart"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property MoveUpRawPart_Command As ICommand
Get
If m_cmdMoveUpRawPart Is Nothing Then
m_cmdMoveUpRawPart = New Command(AddressOf MoveUpRawPart)
End If
Return m_cmdMoveUpRawPart
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub MoveUpRawPart()
If IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup) Then Return
DbControllers.m_MachGroupController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id, ItemState.Produced)
End Sub
#End Region ' MoveUpRawPart
#Region "MoveDownRawPart"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property MoveDownRawPart_Command As ICommand
Get
If m_cmdMoveDownRawPart Is Nothing Then
m_cmdMoveDownRawPart = New Command(AddressOf MoveDownRawPart)
End If
Return m_cmdMoveDownRawPart
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub MoveDownRawPart()
If IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup) Then Return
DbControllers.m_MachGroupController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup.Id, ItemState.Produced)
End Sub
#End Region ' MoveDownRawPart
#End Region ' COMMANDS
End Class