Compare commits
137 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 33925d68b3 | |||
| f817daded5 | |||
| ab9346af02 | |||
| 864d929ea6 | |||
| 0ed6719508 | |||
| a269ad0fda | |||
| dbbfef35a9 | |||
| 4132212605 | |||
| a26b93f8a9 | |||
| 7efd7c353a | |||
| 98cc52e84f | |||
| 65db8b285c | |||
| e69f6f37d4 | |||
| 8a49d500a4 | |||
| 3991db50c4 | |||
| 9714631b68 | |||
| fdd4bfec6e | |||
| a8900568f6 | |||
| 6aefdb8b84 | |||
| 10e2f5a341 | |||
| e338412abb | |||
| ef08937e05 | |||
| 37ca0b1ae2 | |||
| bcc7af3acd | |||
| 71f5cf1ec6 | |||
| eaab42ee14 | |||
| b3a9cbbfd8 | |||
| 417d857547 | |||
| 56ad2003ac | |||
| 51bbdb6d24 | |||
| 194fd34c34 | |||
| 3ec507a967 | |||
| fcfc9f0da2 | |||
| e1de69babd | |||
| 51fb7ad34e | |||
| ad775341ad | |||
| 5df2e5e314 | |||
| 410b2155da | |||
| ebb16b6136 | |||
| fef8aaaa2f | |||
| 9fac681033 | |||
| 19732e091b | |||
| 739205f972 | |||
| 06da8c6b48 | |||
| 672ec76955 | |||
| 12dc64eb15 | |||
| 356c6b6f85 | |||
| 8e0aa7ba0c | |||
| 6047080f37 | |||
| 5d2daaf7cd | |||
| a6b10d57b7 | |||
| 68a6a3ff1b | |||
| 2109fbd65e | |||
| 01c00226bd | |||
| f1578bfe4b | |||
| d245421d52 | |||
| aab825d4fc | |||
| 3b33c1a34d | |||
| 1f2e7ce0f6 | |||
| 692c9e707b | |||
| 6d920a2453 | |||
| 67e8b2af54 | |||
| 803670f5e8 | |||
| 35272d7460 | |||
| 6f91af6546 | |||
| 8dceab40f3 | |||
| 84f76348ad | |||
| b445a17280 | |||
| 9d957975d0 | |||
| f85cc1bd33 | |||
| 89d75a36cf | |||
| d8d16a7972 | |||
| dd67130eb5 | |||
| f66fe0cb1c | |||
| 3dbc5dfb38 | |||
| 28a1a3d828 | |||
| 155da598fa | |||
| cff9bbc5c7 | |||
| e06614fd60 | |||
| 734d155d3d | |||
| 3b9bc051dd | |||
| 8df4e74a56 | |||
| beb025984e | |||
| 10d7ef179a | |||
| ec13ba8257 | |||
| f896f59bcc | |||
| 43de071280 | |||
| 2bab549ab7 | |||
| 988e91630b | |||
| 940ddae3e0 | |||
| be241f04d2 | |||
| 3873d468e7 | |||
| 318bb6d3d9 | |||
| 62d692dc32 | |||
| 228994e1e9 | |||
| 1de156f0a3 | |||
| d97fda4a83 | |||
| 9270fed036 | |||
| 4a477df49d | |||
| dc52e06160 | |||
| 1b0162ea53 | |||
| 1cde6e7e58 | |||
| 45ad346924 | |||
| 5c7b5c677d | |||
| a9f526af15 | |||
| 467010dc13 | |||
| ba13697dda | |||
| 6a51eae198 | |||
| f18f13dac4 | |||
| 825412e81a | |||
| 464c22f743 | |||
| 91524932f4 | |||
| a464c989c3 | |||
| 559206cd70 | |||
| 819928805f | |||
| 24300e8805 | |||
| 5896862614 | |||
| 70078533d2 | |||
| 07b7ad6ee3 | |||
| fc1ce2ce53 | |||
| 958421f4f5 | |||
| c32715a4b5 | |||
| a83752e565 | |||
| ec2ce96b3b | |||
| d131e0b42d | |||
| efea14db89 | |||
| c09d8a6b0f | |||
| 946ad1d29c | |||
| c5f1d1669f | |||
| 689e81219b | |||
| 05ec565f84 | |||
| 0e7866922d | |||
| fb92f9faea | |||
| f65d07ab22 | |||
| f140b6df54 | |||
| 441ddc4397 | |||
| 8c42493382 |
@@ -316,13 +316,12 @@ Public Class BTLFeatureM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateBTLFeature(nPRC As Integer, nGRP As Integer, nSIDE As Integer) As BTLFeatureM
|
||||
Dim NewBTLFeature As New BTLFeatureM With {
|
||||
.m_nPRC = nPRC,
|
||||
.m_nSelGRP = nGRP,
|
||||
.m_nSelSIDE = nSIDE,
|
||||
.m_nPriority = 0,
|
||||
.m_bDO = True
|
||||
}
|
||||
Dim NewBTLFeature As New BTLFeatureM
|
||||
NewBTLFeature.m_nPRC = nPRC
|
||||
NewBTLFeature.m_nSelGRP = nGRP
|
||||
NewBTLFeature.m_nSelSIDE = nSIDE
|
||||
NewBTLFeature.m_nPriority = 0
|
||||
NewBTLFeature.m_bDO = True
|
||||
' crea parametri per questa feature da file ini
|
||||
NewBTLFeature.CreateFeatureParams(NewBTLFeature)
|
||||
Return NewBTLFeature
|
||||
@@ -549,7 +548,7 @@ Public Class BTLFeatureM
|
||||
EgtSetInfo( nFeatureId, BTL_FTR_PRIORITY, nPriority)
|
||||
SetFeatureId(nFeatureId)
|
||||
' imposto modificato per copie
|
||||
MyMachGroupPanelM.SetDuploModified(ParentPart.nPartId)
|
||||
EgtDuploSetModified(ParentPart.nPartId)
|
||||
bOk = True
|
||||
Else
|
||||
' Impossibile creare una feature con questi valori - ERRORE
|
||||
|
||||
@@ -1242,7 +1242,7 @@ Public Class BTLPartM
|
||||
m_nROTATED = If(dNewRotation >= 0, dNewRotation, 360 + dNewRotation)
|
||||
EgtSetInfo(nPartId, BTL_PRT_ROTATED, m_nROTATED)
|
||||
' imposto modificato per copie
|
||||
MyMachGroupPanelM.SetDuploModified(nPartId)
|
||||
EgtDuploSetModified(nPartId)
|
||||
End If
|
||||
' se era invertito
|
||||
If bInverted Then
|
||||
@@ -1275,7 +1275,7 @@ Public Class BTLPartM
|
||||
m_nINVERTED = If(m_nINVERTED = 0, 180, 0)
|
||||
EgtSetInfo(nPartId, BTL_PRT_INVERTED, m_nINVERTED)
|
||||
' imposto modificato per copie
|
||||
MyMachGroupPanelM.SetDuploModified(nPartId)
|
||||
EgtDuploSetModified(nPartId)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -264,9 +264,6 @@ Public Class BTLFeatureVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub RefreshFeature()
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="BeamMachiningsWindowV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Core"
|
||||
Title="{Binding Title}"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
Width="500" Height="450"
|
||||
IsResizable="False"
|
||||
IsMinimizable="False" WindowStartupLocation="CenterOwner" ShowInTaskbar="False"
|
||||
CloseCommand="{Binding Close_Command,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
|
||||
|
||||
<Grid Margin="5,5,5,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TabControl ItemsSource="{Binding MachiningList}"
|
||||
SelectedItem="{Binding SelMachining}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
Margin="5,0,5,0"
|
||||
Style="{StaticResource TabControl_OnlyHeaders}"/>
|
||||
|
||||
<EgtBEAMWALL:EgtDataGrid Grid.Row="1"
|
||||
ItemsSource="{Binding TableRowList}"
|
||||
SelectedIndex="{Binding SelRowIndex}"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserResizeRows="False"
|
||||
SelectionMode="Single"
|
||||
ScrollViewer.CanContentScroll="True"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||||
Margin="0,0,0,5"
|
||||
BindingColumns="{Binding BeamMachiningsColumns}">
|
||||
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow">
|
||||
<Setter Property="Height" Value="25"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
|
||||
<DataGrid.Resources>
|
||||
<Style x:Key="DataGridCheckBoxColumn_Style"
|
||||
TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type DataGridCell}">
|
||||
<Grid Background="{TemplateBinding Background}">
|
||||
<ContentPresenter VerticalAlignment="Center" />
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!--Colonna On-->
|
||||
<DataGridCheckBoxColumn x:Key="colON" Binding="{Binding OnPar, UpdateSourceTrigger=PropertyChanged}"
|
||||
CellStyle="{StaticResource DataGridCheckBoxColumn_Style}">
|
||||
<DataGridCheckBoxColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.OnHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridCheckBoxColumn.Header>
|
||||
</DataGridCheckBoxColumn>
|
||||
|
||||
<!--Colonna Name-->
|
||||
<DataGridTemplateColumn x:Key="colNAME">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.NameHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox IsEditable="False"
|
||||
SelectedItem="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
ItemsSource="{Binding Path=NamesList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="5,0,0,0"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
||||
<!--Colonna Style-->
|
||||
<DataGridTemplateColumn x:Key="colTYPE">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.TypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox IsEditable="False"
|
||||
SelectedItem="{Binding Type,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
ItemsSource="{Binding Path=TypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=Type,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="5,0,0,0"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
||||
</DataGrid.Resources>
|
||||
|
||||
</EgtBEAMWALL:EgtDataGrid>
|
||||
|
||||
<Grid Grid.Row="2"
|
||||
Margin="0,0,0,5"
|
||||
HorizontalAlignment="Center">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Content="/\"
|
||||
Command="{Binding MoveRowUp_Command}"
|
||||
Grid.Column="0"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="\/"
|
||||
Command="{Binding MoveRowDown_Command}"
|
||||
Grid.Column="1"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding AddRowMsg}"
|
||||
Command="{Binding AddRow_Command}"
|
||||
Grid.Column="2"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding DeleteRowMsg}"
|
||||
Command="{Binding DeleteRow_Command}"
|
||||
Grid.Column="3"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding SaveMsg}"
|
||||
Command="{Binding Save_Command}"
|
||||
Grid.Column="4"
|
||||
Margin="2.5,0,0,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -1,20 +0,0 @@
|
||||
Imports System.Windows
|
||||
|
||||
Public Class BeamMachiningsWindowV
|
||||
|
||||
Private WithEvents m_BeamMachiningsWindowVM As MyBeamMachiningsWindowVM
|
||||
|
||||
Sub New(Owner As Window, BeamMachiningsWindowVM As MyBeamMachiningsWindowVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = BeamMachiningsWindowVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_BeamMachiningsWindowVM = BeamMachiningsWindowVM
|
||||
End Sub
|
||||
|
||||
Private Sub CloseWindow(bDialogResult As Boolean) Handles m_BeamMachiningsWindowVM.m_CloseWindow
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,36 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class MyBeamMachiningsWindowVM
|
||||
Inherits BeamMachiningsWindowVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Private m_BeamMachiningsColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
Public Property BeamMachiningsColumns As ObservableCollection(Of EgtDataGridColumn)
|
||||
Get
|
||||
Return m_BeamMachiningsColumns
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of EgtDataGridColumn))
|
||||
m_BeamMachiningsColumns = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New(sTitle As String, sBaseDir As String, sMachTypePath As String, sTabTemplPath As String, Optional bIsBeam As Boolean = True)
|
||||
MyBase.New(sTitle, sBaseDir, sMachTypePath, sTabTemplPath, bIsBeam)
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_BEAMMACHININGS, BeamMachiningsColumns)
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In BeamMachiningsColumns
|
||||
col.ColumnVisibility = If(col.Visible, Windows.Visibility.Visible, Windows.Visibility.Collapsed)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
End Class
|
||||
@@ -1,80 +0,0 @@
|
||||
<DockPanel x:Class="ConfigurationPageV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Core">
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="6*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"
|
||||
SelectedIndex="{Binding SelConfigSubPage}">
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding General_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Visibility="{Binding General_Visibility}"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</TabItem.Header>
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:General_ConfigurationPageV/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding ParameterQ_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Visibility="{Binding ParameterQ_Visibility}"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</TabItem.Header>
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:QParameter_ConfigurationPageV/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem >
|
||||
<TabItem.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Machine_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Visibility="{Binding Machine_Visibility}"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</TabItem.Header>
|
||||
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:Machine_ConfigurationPageV/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<!--<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class ConfigurationPageV
|
||||
|
||||
End Class
|
||||
@@ -1,118 +0,0 @@
|
||||
<Grid x:Class="General_ConfigurationPageV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,0">
|
||||
<GroupBox Header="{Binding CurrentLanguage_Msg}"
|
||||
Margin="0,0,0,5">
|
||||
<UniformGrid Rows="2" Margin="3,3,3,3">
|
||||
<ComboBox ItemsSource="{Binding LanguageList, Mode=OneWay}" Height="25"
|
||||
DisplayMemberPath="Name" SelectedItem="{Binding SelectedLanguage}"
|
||||
Margin="0,0,0,5"/>
|
||||
<TextBlock Text="{Binding LanguageAdvert_Msg}" TextWrapping="Wrap"
|
||||
TextAlignment="Center"/>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding MMUnits_Msg}" VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding UnitMeasureList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelMeasureUnit}" Height="25"
|
||||
Margin="0,5,0,0"/>
|
||||
</UniformGrid>
|
||||
<GroupBox Header="{Binding Nesting_Msg}"
|
||||
Margin="0,0,0,5">
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding SectionTime_Msg}"
|
||||
Grid.Row="0" Grid.Column="0"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SectionTime, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Row="0" Grid.Column="1"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding PartTime_Msg}"
|
||||
Grid.Row="1" Grid.Column="0"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding PartTime, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Row="1" Grid.Column="1"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding PrintLabel_Msg}" VerticalAlignment="Center"/>
|
||||
<CheckBox IsChecked="{Binding bPrintLabel_IsChecked}"
|
||||
Margin="0,5,0,0"/>
|
||||
</UniformGrid>
|
||||
<GroupBox Header="Backup And Restore">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0"
|
||||
Margin="0,2,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<CheckBox x:Name="ExternalBackup_CheckBox"
|
||||
IsChecked="{Binding bExternalBackupActive}"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1"
|
||||
Text="External file path:"
|
||||
VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1"
|
||||
Margin="0,2,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Text="{Binding ExternalBackupFolderPath}"
|
||||
IsEnabled="{Binding IsChecked, ElementName=ExternalBackup_CheckBox}"
|
||||
Margin="0,0,2.5,0"/>
|
||||
<Button Grid.Column="1"
|
||||
Content="..."
|
||||
Width="18"
|
||||
Command="{Binding ChooseExternalBackupFolderPath_Command}"
|
||||
IsEnabled="{Binding IsChecked, ElementName=ExternalBackup_CheckBox}"
|
||||
Margin="2.5,0,0,0"/>
|
||||
</Grid>
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Reminder Frequency"/>
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding ReminderList}"
|
||||
SelectedItem="{Binding SelReminder}"/>
|
||||
</Grid>
|
||||
<StackPanel Grid.Row="3"
|
||||
Orientation="Horizontal">
|
||||
<Button Content="Backup"
|
||||
Command="{Binding Backup_Command}"
|
||||
Style="{StaticResource ToolBar_TextButton}"/>
|
||||
<Button Content="Restore"
|
||||
Command="{Binding Restore_Command}"
|
||||
Style="{StaticResource ToolBar_TextButton}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class General_ConfigurationPageV
|
||||
|
||||
End Class
|
||||
@@ -1,70 +0,0 @@
|
||||
<Grid x:Class="Machine_ConfigurationPageV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Core"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="10*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
|
||||
<GroupBox Style="{StaticResource GroupBoxStyle_NoHeader}" Padding="5,10,5,5">
|
||||
<EgtBEAMWALL:MachinePanelV DataContext="{Binding MachinePanelVM}" VerticalAlignment="Center"/>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal">
|
||||
<ItemsControl ItemsSource="{Binding ConfigMachTableList}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel x:Name="GroupStackPanel" Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<GroupBox Header="{Binding sName}" Width="Auto" VerticalAlignment="Top" Height="Auto">
|
||||
<ItemsControl Name="MachParamsItemsControl" ItemsSource="{Binding MachParamList}" Margin="0,5,0,0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid Margin="0,0,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding sName}"
|
||||
TextWrapping="WrapWithOverflow"
|
||||
Width="100"
|
||||
Style="{StaticResource MachParamTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding sValue, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Column="1"
|
||||
Width="70"/>
|
||||
<TextBlock Text="{Binding sDescription}"
|
||||
TextWrapping="WrapWithOverflow"
|
||||
Width="200"
|
||||
Style="{StaticResource MachParamTextBlock}"
|
||||
Grid.Column="2"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</GroupBox>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class Machine_ConfigurationPageV
|
||||
|
||||
End Class
|
||||
@@ -1,80 +0,0 @@
|
||||
<Grid x:Class="QParameter_ConfigurationPageV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Core">
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALL:QParamListV DataContext="{Binding}"
|
||||
ItemsSource="{Binding QBTLParamVMList}"
|
||||
SelectedItem="{Binding SelQParam}"
|
||||
Grid.Column="0"
|
||||
Margin="5">
|
||||
<DataGrid.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.Panel>
|
||||
<ItemsPanelTemplate>
|
||||
<DataGridRowsPresenter/>
|
||||
</ItemsPanelTemplate>
|
||||
</GroupStyle.Panel>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Path=Name}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="#FFBABABA"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="LightGray"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
</DataGrid.GroupStyle>
|
||||
</EgtBEAMWALL:QParamListV>
|
||||
|
||||
</Grid>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class QParameter_ConfigurationPageV
|
||||
|
||||
End Class
|
||||
@@ -23,5 +23,6 @@
|
||||
Public Const COL_USAGE As String = "colUSAGE"
|
||||
Public Const COL_WASTE As String = "colWASTE"
|
||||
Public Const COL_ARCHIVED As String = "colARCHIVED"
|
||||
Public Const COL_USEQTY As String = "colUSEQTY"
|
||||
|
||||
End Module
|
||||
|
||||
@@ -9,6 +9,5 @@
|
||||
Public Const TOPPANEL_OPTIMIZER As String = "TopPanel_Optimizer"
|
||||
Public Const LEFTPANEL_SUPERVISOR As String = "LeftPanel_Supervisor"
|
||||
Public Const PROJECT_SUPERVISOR As String = "Project_Supervisor"
|
||||
Public Const PROJECT_ONLYPROD As String = "Project_OnlyProd"
|
||||
|
||||
End Class
|
||||
|
||||
@@ -33,7 +33,6 @@ Public Module ConstGen
|
||||
CONFIG = 3
|
||||
INPUTS = 4
|
||||
OUTPUTS = 5
|
||||
ONLYPRODPAGE = 6
|
||||
End Enum
|
||||
|
||||
' Abilitazioni licenza
|
||||
@@ -46,13 +45,6 @@ Public Module ConstGen
|
||||
ANY_DB = 32
|
||||
End Enum
|
||||
|
||||
' Selezione Tab Prod / Proj
|
||||
Public Enum ProdProj As Integer
|
||||
NULL = 0
|
||||
PROJ = 1
|
||||
PROD = 2
|
||||
End Enum
|
||||
|
||||
' File di log generale
|
||||
Public Const VWOPTGENLOG_FILE_NAME As String = "EgtBEAMWALL.ViewerOptimizerLog#.txt"
|
||||
Public Const SUPGENLOG_FILE_NAME As String = "EgtBEAMWALL.SupervisorLog#.txt"
|
||||
@@ -68,9 +60,7 @@ Public Module ConstGen
|
||||
' Sottodirettorio per Csv automatico
|
||||
Public Const PRODS_DIR As String = "Prods"
|
||||
' Sottodirettorio per Macro
|
||||
Public Const MACRODEFAULT_DIR As String = "MacroDefault"
|
||||
' Sottodirettorio per MacroCustom
|
||||
Public Const MACROCUSTOM_DIR As String = "MacroCustom"
|
||||
Public Const MACRO_DIR As String = "Macro"
|
||||
' Sottodirettorio per Magazzino
|
||||
Public Const WAREHOUSE_DIR As String = "Warehouse"
|
||||
' Sottodirettorio per lavorazioni travi
|
||||
|
||||
@@ -47,6 +47,7 @@ Public Module ConstIni
|
||||
Public Const K_FASTPRODUCE As String = "FastProduce"
|
||||
Public Const K_ADDPROJ As String = "AddProj"
|
||||
Public Const K_PROJECTMODE As String = "ProjectMode"
|
||||
Public Const K_NETWAREHOUSE As String = "NetWarehouse"
|
||||
|
||||
'Public Const S_LANGUAGES As String = "Languages"
|
||||
'Public Const K_LANGUAGE As String = "Language"
|
||||
@@ -162,15 +163,14 @@ Public Module ConstIni
|
||||
Public Const S_WAREHOUSE As String = "Warehouse"
|
||||
Public Const K_TYPE As String = "Type"
|
||||
Public Const K_DEFAULTQUANTITY As String = "DefaultQuantity"
|
||||
Public Const K_LASTSYNCHRONIZATION As String = "LastSynchronization"
|
||||
Public Const K_USENETWAREHOUSE As String = "UseNetWarehouse"
|
||||
|
||||
Public Const S_BACKUPANDRESTORE As String = "Backup&Restore"
|
||||
Public Const K_EXTERNALBACKUPACTIVE As String = "ExternalBackupActive"
|
||||
Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath"
|
||||
Public Const K_REMINDERFREQUENCY As String = "ReminderFrequency"
|
||||
|
||||
Public Const K_ONLYPROD As String = "OnlyProd"
|
||||
Public Const K_MODIFYSETUP As String = "ModifySetup"
|
||||
|
||||
Public Const S_SPECIAL As String = "Special"
|
||||
Public Const K_SPECIALENABLE As String = "SpecialEnable"
|
||||
|
||||
|
||||
@@ -77,21 +77,8 @@
|
||||
<Import Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BeamMachiningsWindow\BeamMachiningsWindowV.xaml.vb">
|
||||
<DependentUpon>BeamMachiningsWindowV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BeamMachiningsWindow\MyBeamMachiningsWindowVM.vb" />
|
||||
<Compile Include="BTLViewModel\BTLFeatureVM.vb" />
|
||||
<Compile Include="CALCPanel\CalcEditEndEventArgs.vb" />
|
||||
<Compile Include="ConfigurationPage\General_ConfigurationPageV.xaml.vb">
|
||||
<DependentUpon>General_ConfigurationPageV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConfigurationPage\Machine_ConfigurationPageV.xaml.vb">
|
||||
<DependentUpon>Machine_ConfigurationPageV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConfigurationPage\QParameter_ConfigurationPageV.xaml.vb">
|
||||
<DependentUpon>QParameter_ConfigurationPageV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Constants\ConstColumns.vb" />
|
||||
<Compile Include="Constants\ConstDataGridColumnsIni.vb" />
|
||||
<Compile Include="Constants\ConstDims.vb" />
|
||||
@@ -110,9 +97,6 @@
|
||||
<Compile Include="CALCPanel\CalcIntegration.vb" />
|
||||
<Compile Include="DataAccess\PartAddedEventArgs.vb" />
|
||||
<Compile Include="DataAccess\BTLParamAddedEventArgs.vb" />
|
||||
<Compile Include="ItemParamList\QParamListV.xaml.vb">
|
||||
<DependentUpon>QParamListV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Lib\MachGroupAddedEventArgs.vb" />
|
||||
<Compile Include="Lib\MachGroupVM.vb" />
|
||||
<Compile Include="Lib\NewMachGroupPanelVM.vb" />
|
||||
@@ -128,14 +112,11 @@
|
||||
<DependentUpon>LoadingWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LoadingWnd\LoadingWndVM.vb" />
|
||||
<Compile Include="MachinePanel\MachinePanelV.xaml.vb">
|
||||
<DependentUpon>MachinePanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogV.xaml.vb">
|
||||
<DependentUpon>NewOpenProjectFileDialogV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogVM.vb" />
|
||||
<Compile Include="Utility\Configuration.vb" />
|
||||
<Compile Include="ProjectFileVM\ProdItem.vb" />
|
||||
<Compile Include="Utility\DimensionsIniFile.vb" />
|
||||
<Compile Include="Utility\Enum.vb" />
|
||||
<Compile Include="MachGroupPanel\MyMachGroupPanelVM.vb" />
|
||||
@@ -165,6 +146,7 @@
|
||||
<Compile Include="Lib\MachGroupPanelM.vb" />
|
||||
<Compile Include="MachGroupModel\MyMachGroupPanelM.vb" />
|
||||
<Compile Include="Utility\ManageWindow.vb" />
|
||||
<Compile Include="Utility\RawPart.vb" />
|
||||
<Compile Include="Utility\MyMachine.vb" />
|
||||
<Compile Include="OpenProjectFileDialog\OpenProjectFileDialogV.xaml.vb">
|
||||
<DependentUpon>OpenProjectFileDialogV.xaml</DependentUpon>
|
||||
@@ -177,6 +159,7 @@
|
||||
<Compile Include="ProjectManager\ProjectFileVM.vb" />
|
||||
<Compile Include="ProjectManager\ProjFileVM.vb" />
|
||||
<Compile Include="ProjectFileVM\ProjFileM.vb" />
|
||||
<Compile Include="Utility\Material.vb" />
|
||||
<Compile Include="Utility\SectionXMaterial.vb" />
|
||||
<Compile Include="Utility\BTLIniFile.vb" />
|
||||
<Compile Include="Utility\CoreMap.vb" />
|
||||
@@ -206,38 +189,14 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="BeamMachiningsWindow\BeamMachiningsWindowV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ConfigurationPage\General_ConfigurationPageV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||
</Page>
|
||||
<Page Include="ConfigurationPage\Machine_ConfigurationPageV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||
</Page>
|
||||
<Page Include="ConfigurationPage\QParameter_ConfigurationPageV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||
</Page>
|
||||
<Page Include="EgtDataGrid\EgtDataGrid.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ItemParamList\QParamListV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="LoadingWnd\LoadingWndV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||
</Page>
|
||||
<Page Include="MachinePanel\MachinePanelV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||
</Page>
|
||||
<Page Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -251,10 +210,6 @@
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Resources\ProjectManager\Save.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.Core.dll</PostBuildEvent>
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
<DataGrid x:Class="QParamListV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserSortColumns="False"
|
||||
CanUserResizeColumns="False"
|
||||
CanUserResizeRows="False"
|
||||
CanUserReorderColumns="False"
|
||||
SelectionMode="Single"
|
||||
ScrollViewer.CanContentScroll="True"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
|
||||
Margin="0,0,0,5">
|
||||
|
||||
<DataGrid.Columns>
|
||||
|
||||
<!--BWType-->
|
||||
<DataGridTextColumn Binding="{Binding sBWType}"
|
||||
Width="40"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.Type_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Nome-->
|
||||
<DataGridTextColumn Binding="{Binding sName}"
|
||||
Width="50"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.NAM_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Descrizione-->
|
||||
<DataGridTextColumn Binding="{Binding sDescription}"
|
||||
Width="1*"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.Description_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Default-->
|
||||
<DataGridTextColumn Binding="{Binding sDefault}"
|
||||
Width="65">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.Default_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Minimo-->
|
||||
<DataGridTextColumn Binding="{Binding sMin}"
|
||||
Width="65"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.Min_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Massimo-->
|
||||
<DataGridTextColumn Binding="{Binding sMax}"
|
||||
Width="65"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DataContext.Max_Msg,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
|
||||
</DataGrid>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class QParamListV
|
||||
|
||||
End Class
|
||||
@@ -22,7 +22,7 @@ Public Class MyMachGroupPanelM
|
||||
' Assegno macchina di default
|
||||
NewMyMachGroupPanelM.m_DefaultMachine = ""
|
||||
' aggiorno copie
|
||||
UpdateAllDuplo()
|
||||
UpdateDuplo()
|
||||
' recupero i MachGroup
|
||||
NewMyMachGroupPanelM.m_MachGroupMList = LoadMyMachGroups(MachineList)
|
||||
Return NewMyMachGroupPanelM
|
||||
@@ -167,7 +167,7 @@ Public Class MyMachGroupPanelM
|
||||
End Function
|
||||
|
||||
' funzione che fa l'update di tutte le copie dei pezzi modificati
|
||||
Public Shared Sub UpdateAllDuplo()
|
||||
Public Shared Sub UpdateDuplo()
|
||||
' verifico tipo di progetto
|
||||
Dim nBtlInfoId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
Dim nBWType As Integer = 0
|
||||
@@ -178,7 +178,148 @@ Public Class MyMachGroupPanelM
|
||||
While nPartId <> GDB_ID.NULL
|
||||
Dim bIsModified As Boolean = False
|
||||
If EgtDuploGetModified(nPartId, bIsModified) AndAlso bIsModified Then
|
||||
UpdateDuplo(nPartId)
|
||||
' verifico se c'é PRID sugli outline
|
||||
Dim nPRId As Integer = 1
|
||||
Dim nOutlineLayer As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRC) Then
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRID) Then
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
Continue While
|
||||
Else
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
nPRId += 1
|
||||
End If
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
bTotIsModified = True
|
||||
Dim DuploList As New List(Of Integer)
|
||||
EgtDuploList(nPartId, DuploList)
|
||||
Dim DuploArray() As Integer
|
||||
Dim RotArray(DuploList.Count) As Integer
|
||||
Dim FlipArray(DuploList.Count) As Integer
|
||||
Dim QArray(DuploList.Count) As Dictionary(Of String, Dictionary(Of String, String))
|
||||
DuploArray = DuploList.ToArray()
|
||||
' recupero ROT (gradi) e FLIP (0/1) per non perderli
|
||||
For Duploindex = 0 To DuploArray.Length - 1
|
||||
RotArray(Duploindex) = 0
|
||||
EgtGetInfo(DuploArray(Duploindex), MGR_PRT_ROT, RotArray(Duploindex))
|
||||
FlipArray(Duploindex) = 0
|
||||
EgtGetInfo(DuploArray(Duploindex), MGR_PRT_FLIP, FlipArray(Duploindex))
|
||||
If FlipArray(Duploindex) <> 0 Then FlipArray(Duploindex) = 180
|
||||
If nBWType = BWType.WALL Then
|
||||
' salvo parametri Q
|
||||
QArray(Duploindex) = New Dictionary(Of String, Dictionary(Of String, String))
|
||||
' ciclo sugli outline
|
||||
nOutlineLayer = EgtGetFirstNameInGroup(DuploArray(Duploindex), OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nGlobPRId As Integer = 1
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nOutlineId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
If Not EgtGetInfo(nOutlineId, MGR_FTR_PRID, nPRId) Then
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nGlobPRId)
|
||||
nPRId = nGlobPRId
|
||||
nGlobPRId += 1
|
||||
End If
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
QArray(Duploindex).Add(sKey, New Dictionary(Of String, String))
|
||||
For QIndex = 1 To 10
|
||||
Dim QKey As String = "Q" & QIndex.ToString("D2")
|
||||
Dim QValue As Integer = 0
|
||||
If EgtGetInfo(nOutlineId, QKey, QValue) Then
|
||||
QArray(Duploindex)(sKey).Add(QKey, QValue)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
' ciclo sulle feature
|
||||
Dim nFeatureLayer As Integer = EgtGetFirstNameInGroup(DuploArray(Duploindex), PROCESSINGS)
|
||||
If nFeatureLayer <> GDB_ID.NULL Then
|
||||
Dim nFeatureId As Integer = EgtGetFirstInGroup(nFeatureLayer)
|
||||
While nFeatureId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nFeatureId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nFeatureId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
QArray(Duploindex).Add(sKey, New Dictionary(Of String, String))
|
||||
For QIndex = 1 To 10
|
||||
Dim QKey As String = "Q" & QIndex.ToString("D2")
|
||||
Dim QValue As Integer = 0
|
||||
If EgtGetInfo(nFeatureId, QKey, QValue) Then
|
||||
QArray(Duploindex)(sKey).Add(QKey, QValue)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
nFeatureId = EgtGetNext(nFeatureId)
|
||||
End While
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
' aggiornamento dei Duplo
|
||||
EgtDuploUpdate(nPartId)
|
||||
' ripristino i valori di ROT e FLIP
|
||||
For Duploindex = 0 To DuploArray.Length - 1
|
||||
' ripristino info rot e flip
|
||||
EgtSetInfo(DuploArray(Duploindex), MGR_PRT_ROT, RotArray(Duploindex))
|
||||
EgtSetInfo(DuploArray(Duploindex), MGR_PRT_FLIP, FlipArray(Duploindex))
|
||||
If nBWType = BWType.WALL Then
|
||||
' ciclo sugli outline
|
||||
nOutlineLayer = EgtGetFirstNameInGroup(DuploArray(Duploindex), OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nOutlineId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
' ripristino parametri Q
|
||||
If QArray(Duploindex).ContainsKey(sKey) Then
|
||||
For Each QPar In QArray(Duploindex)(sKey)
|
||||
EgtSetInfo(nOutlineId, QPar.Key, QPar.Value)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
' ciclo sulle feature
|
||||
Dim nFeatureLayer As Integer = EgtGetFirstNameInGroup(DuploArray(Duploindex), PROCESSINGS)
|
||||
If nFeatureLayer <> GDB_ID.NULL Then
|
||||
Dim nFeatureId As Integer = EgtGetFirstInGroup(nFeatureLayer)
|
||||
While nFeatureId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nFeatureId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nFeatureId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
' ripristino parametri Q
|
||||
If QArray(Duploindex).ContainsKey(sKey) Then
|
||||
For Each QPar In QArray(Duploindex)(sKey)
|
||||
EgtSetInfo(nFeatureId, QPar.Key, QPar.Value)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nFeatureId = EgtGetNext(nFeatureId)
|
||||
End While
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
@@ -189,180 +330,6 @@ Public Class MyMachGroupPanelM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub UpdateDuplo(nPartId As Integer)
|
||||
' verifico tipo di progetto
|
||||
Dim nBtlInfoId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
Dim nBWType As Integer = 0
|
||||
EgtGetInfo(nBtlInfoId, BTL_GEN_PROJTYPE, nBWType)
|
||||
' ciclo sui pezzi
|
||||
Dim bTotIsModified As Boolean = False
|
||||
Dim bIsModified As Boolean = False
|
||||
' verifico se c'é PRID sugli outline
|
||||
Dim nPRId As Integer = 1
|
||||
Dim nOutlineLayer As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRC) Then
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRID) Then
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
Continue While
|
||||
Else
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
nPRId += 1
|
||||
End If
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
bTotIsModified = True
|
||||
Dim DuploList As New List(Of Integer)
|
||||
EgtDuploList(nPartId, DuploList)
|
||||
Dim DuploArray() As Integer
|
||||
Dim RotArray(DuploList.Count) As Integer
|
||||
Dim FlipArray(DuploList.Count) As Integer
|
||||
Dim QArray(DuploList.Count) As Dictionary(Of String, Dictionary(Of String, String))
|
||||
DuploArray = DuploList.ToArray()
|
||||
' recupero ROT (gradi) e FLIP (0/1) per non perderli
|
||||
For Duploindex = 0 To DuploArray.Length - 1
|
||||
RotArray(Duploindex) = 0
|
||||
EgtGetInfo(DuploArray(Duploindex), MGR_PRT_ROT, RotArray(Duploindex))
|
||||
FlipArray(Duploindex) = 0
|
||||
EgtGetInfo(DuploArray(Duploindex), MGR_PRT_FLIP, FlipArray(Duploindex))
|
||||
If FlipArray(Duploindex) <> 0 Then FlipArray(Duploindex) = 180
|
||||
If nBWType = BWType.WALL Then
|
||||
' salvo parametri Q
|
||||
QArray(Duploindex) = New Dictionary(Of String, Dictionary(Of String, String))
|
||||
' ciclo sugli outline
|
||||
nOutlineLayer = EgtGetFirstNameInGroup(DuploArray(Duploindex), OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nGlobPRId As Integer = 1
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nOutlineId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
If Not EgtGetInfo(nOutlineId, MGR_FTR_PRID, nPRId) Then
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nGlobPRId)
|
||||
nPRId = nGlobPRId
|
||||
nGlobPRId += 1
|
||||
End If
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
QArray(Duploindex).Add(sKey, New Dictionary(Of String, String))
|
||||
For QIndex = 1 To 10
|
||||
Dim QKey As String = "Q" & QIndex.ToString("D2")
|
||||
Dim QValue As Integer = 0
|
||||
If EgtGetInfo(nOutlineId, QKey, QValue) Then
|
||||
QArray(Duploindex)(sKey).Add(QKey, QValue)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
' ciclo sulle feature
|
||||
Dim nFeatureLayer As Integer = EgtGetFirstNameInGroup(DuploArray(Duploindex), PROCESSINGS)
|
||||
If nFeatureLayer <> GDB_ID.NULL Then
|
||||
Dim nFeatureId As Integer = EgtGetFirstInGroup(nFeatureLayer)
|
||||
While nFeatureId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nFeatureId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nFeatureId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
QArray(Duploindex).Add(sKey, New Dictionary(Of String, String))
|
||||
For QIndex = 1 To 10
|
||||
Dim QKey As String = "Q" & QIndex.ToString("D2")
|
||||
Dim QValue As Integer = 0
|
||||
If EgtGetInfo(nFeatureId, QKey, QValue) Then
|
||||
QArray(Duploindex)(sKey).Add(QKey, QValue)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
nFeatureId = EgtGetNext(nFeatureId)
|
||||
End While
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
' aggiornamento dei Duplo
|
||||
EgtDuploUpdate(nPartId)
|
||||
' ripristino i valori di ROT e FLIP
|
||||
For Duploindex = 0 To DuploArray.Length - 1
|
||||
' ripristino info rot e flip
|
||||
EgtSetInfo(DuploArray(Duploindex), MGR_PRT_ROT, RotArray(Duploindex))
|
||||
EgtSetInfo(DuploArray(Duploindex), MGR_PRT_FLIP, FlipArray(Duploindex))
|
||||
If nBWType = BWType.WALL Then
|
||||
' ciclo sugli outline
|
||||
nOutlineLayer = EgtGetFirstNameInGroup(DuploArray(Duploindex), OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nOutlineId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
' ripristino parametri Q
|
||||
If QArray(Duploindex).ContainsKey(sKey) Then
|
||||
For Each QPar In QArray(Duploindex)(sKey)
|
||||
EgtSetInfo(nOutlineId, QPar.Key, QPar.Value)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
' ciclo sulle feature
|
||||
Dim nFeatureLayer As Integer = EgtGetFirstNameInGroup(DuploArray(Duploindex), PROCESSINGS)
|
||||
If nFeatureLayer <> GDB_ID.NULL Then
|
||||
Dim nFeatureId As Integer = EgtGetFirstInGroup(nFeatureLayer)
|
||||
While nFeatureId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
Dim nPRC As Integer
|
||||
If EgtGetInfo(nFeatureId, MGR_FTR_PRC, nPRC) Then
|
||||
nPRId = 0
|
||||
EgtGetInfo(nFeatureId, MGR_FTR_PRID, nPRId)
|
||||
Dim sKey As String = nPRId & "." & nPRC
|
||||
' ripristino parametri Q
|
||||
If QArray(Duploindex).ContainsKey(sKey) Then
|
||||
For Each QPar In QArray(Duploindex)(sKey)
|
||||
EgtSetInfo(nFeatureId, QPar.Key, QPar.Value)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nFeatureId = EgtGetNext(nFeatureId)
|
||||
End While
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Shared Sub SetDuploModified(nPartId As Integer)
|
||||
If Configuration.bOnlyProd Then
|
||||
' segno modificato e aggiorno duplo
|
||||
EgtDuploSetModified(nPartId)
|
||||
UpdateDuplo(nPartId)
|
||||
' aggiorno grafica duplo
|
||||
Dim DuploIdList As New List(Of Integer)
|
||||
EgtDuploList(nPartId, DuploIdList)
|
||||
Dim DuploList As List(Of MachGroupVM) = CoreMap.refMachGroupPanelVM.MachGroupVMList.Where(Function(x) tt(x, DuploIdList)).ToList()
|
||||
For Each CurrMachGroup As MyMachGroupVM In DuploList
|
||||
CurrMachGroup.RefreshMachGroup()
|
||||
Next
|
||||
Else
|
||||
EgtDuploSetModified(nPartId)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Shared Function tt(x As MachGroupVM, DuploIdList As List(Of Integer)) As Boolean
|
||||
Dim TempMyMachGroupVM As MyMachGroupVM = DirectCast(x, MyMachGroupVM)
|
||||
Return TempMyMachGroupVM.PartVMList.Any(Function(y) DuploIdList.Contains(y.nPartId))
|
||||
End Function
|
||||
|
||||
Class DuploFeature
|
||||
' Id geometrico della feature
|
||||
Friend nFeatureId As Integer
|
||||
|
||||
@@ -482,8 +482,6 @@ Public Class PartM
|
||||
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewPartM.m_sGROUP)
|
||||
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewPartM.m_sSTOREY)
|
||||
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewPartM.m_sMATERIAL)
|
||||
EgtGetInfo(nPartId, MGR_PRT_ROT, NewPartM.m_dROT)
|
||||
EgtGetInfo(nPartId, MGR_PRT_FLIP, NewPartM.m_nFLIP)
|
||||
Dim nTemp As Integer = 0
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, nTemp) Then
|
||||
nTemp = 0
|
||||
@@ -516,6 +514,8 @@ Public Class PartM
|
||||
' leggo PosX, PosY, Rot e Flip
|
||||
EgtGetInfo(nPartId, MGR_PRT_POSX, NewPartM.m_dPOSX)
|
||||
EgtGetInfo(nPartId, MGR_PRT_POSY, NewPartM.m_dPOSY)
|
||||
EgtGetInfo(nPartId, MGR_PRT_ROT, NewPartM.m_dROT)
|
||||
EgtGetInfo(nPartId, MGR_PRT_FLIP, NewPartM.m_nFLIP)
|
||||
End If
|
||||
' leggo volume
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_VOLUME, NewPartM.dVolume) Then
|
||||
@@ -639,10 +639,6 @@ Public Class PartM
|
||||
Return New List(Of BTLFeatureM)(m_FeatureMList)
|
||||
End Function
|
||||
|
||||
Public Sub RefreshBTLFeatures()
|
||||
m_FeatureMList = LoadBTLFeatures(Me, nPartId)
|
||||
End Sub
|
||||
|
||||
#End Region ' Features
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
@@ -91,7 +91,7 @@ Public MustInherit Class MyMachGroupPanelVM
|
||||
' Svuoto precedente lista di MachGroup
|
||||
MachGroupVMList.Clear()
|
||||
' aggiorno copie
|
||||
MyMachGroupPanelM.UpdateAllDuplo()
|
||||
MyMachGroupPanelM.UpdateDuplo()
|
||||
' verifico se esistono già gruppi di lavorazione o se devo creare il primo
|
||||
Dim bOk As Boolean = False
|
||||
Dim nId = EgtGetFirstMachGroup()
|
||||
|
||||
@@ -620,10 +620,6 @@ Public MustInherit Class MyMachGroupVM
|
||||
|
||||
Public MustOverride Sub RefreshPartList()
|
||||
|
||||
Public Overridable Sub RefreshMachGroup()
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region ' Parts
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Collections.Specialized
|
||||
Imports System.ComponentModel
|
||||
Imports System.IO
|
||||
Imports System.Windows
|
||||
Imports System.Windows.Input
|
||||
Imports System.Windows.Media
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
@@ -507,10 +509,6 @@ Public MustInherit Class PartVM
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Public Overridable Sub RefreshPart()
|
||||
|
||||
End Sub
|
||||
|
||||
#Region "Feature"
|
||||
|
||||
Protected MustOverride Sub CreateBTLFeatureVMList()
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
<Grid x:Class="MachinePanelV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
IsEnabled="{Binding MachPanel_IsEnabled}">
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid Margin="0,0,5,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Macchina corrente" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<!--Combobox per selezionare la macchina corrente-->
|
||||
<ComboBox ItemsSource="{Binding Path=MachineList}" DisplayMemberPath="Name"
|
||||
SelectedItem="{Binding Path=SelectedMachine}" SelectedValuePath="Name"
|
||||
Height="22" Width="150"
|
||||
Grid.Row="0" Grid.Column="1"/>
|
||||
</Grid>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Command="{Binding ToolDbCommand}" ToolTip="{Binding ToolDBToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Content="{Binding ToolDBMsg}"/>
|
||||
<Button Command="{Binding MachDbCommand}" ToolTip="{Binding MachiningDbToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Content="{Binding MachiningDbMsg}"/>
|
||||
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Content="{Binding SetUpMsg}"
|
||||
Visibility="{Binding SetUp_Visibility}"/>
|
||||
<Button ToolTip="{Binding BeamTable_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}"
|
||||
Command="{Binding BeamTable_Command}"
|
||||
Visibility="{Binding BeamTable_Visibility}">
|
||||
<Image Source="/Resources/Configuration/MachiningsTable.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button ToolTip="{Binding WallTable_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}"
|
||||
Command="{Binding WallTable_Command}"
|
||||
Visibility="{Binding WallTable_Visibility}">
|
||||
<Image Source="/Resources/Configuration/MachiningsTable.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class MachinePanelV
|
||||
|
||||
End Class
|
||||
@@ -1,357 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class MachinePanelVM
|
||||
Inherits EgtWPFLib5.MachinePanelVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' Radice del direttorio delle macchine
|
||||
Private m_sMachinesRoot As String
|
||||
|
||||
' Macchina correntemente selezionata e quindi attiva
|
||||
Private m_SelectedMachine As Machine = Nothing
|
||||
Public Overrides Property SelectedMachine As Machine
|
||||
Get
|
||||
Return m_SelectedMachine
|
||||
End Get
|
||||
Set(value As Machine)
|
||||
If value IsNot m_SelectedMachine Then
|
||||
' imposto macchina in DbGeometrico
|
||||
If Not IsNothing(value) AndAlso EgtSetCurrMachine(value.Name) Then
|
||||
m_SelectedMachine = value
|
||||
End If
|
||||
' Salvo impostazione macchina corrente
|
||||
SaveCurrentMachine()
|
||||
NotifyPropertyChanged(NameOf(SelectedMachine))
|
||||
' inizializzo la macchina selezionata come macchina corrente
|
||||
Dim nMachType As MachineType = DirectCast(m_SelectedMachine, MyMachine).nType
|
||||
SectionXMaterial.SetType(nMachType)
|
||||
If Not IsNothing(value) Then
|
||||
InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, value.Name, nMachType)
|
||||
Else
|
||||
InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, m_SelectedMachine.Name, nMachType)
|
||||
End If
|
||||
' mostro bottone tabella beam o wall a seconda del tipo
|
||||
m_BeamTable_Visibility = If(nMachType = MachineType.BEAM OrElse nMachType = MachineType.BOTH, Visibility.Visible, Visibility.Collapsed)
|
||||
m_WallTable_Visibility = If(nMachType = MachineType.WALL OrElse nMachType = MachineType.BOTH, Visibility.Visible, Visibility.Collapsed)
|
||||
NotifyPropertyChanged(NameOf(BeamTable_Visibility))
|
||||
NotifyPropertyChanged(NameOf(WallTable_Visibility))
|
||||
' carico i Parametri Q da mostrare (Beam, Wall o entrambi) in base al tipo di macchina selezionata
|
||||
If Not IsNothing(Map.refConfigurationPageVM) Then
|
||||
' carico i parametri Q dei Process letti dall'ini
|
||||
Map.refConfigurationPageVM.GetQParamsList()
|
||||
' carico la lista di tutti i parametri Q ciclando su ogni Process di PRCList
|
||||
If Not IsNothing(Map.refConfigurationPageVM.QBTLParamVMList) Then
|
||||
Map.refConfigurationPageVM.QBTLParamVMList.Clear()
|
||||
End If
|
||||
For Each PRCItem In Map.refConfigurationPageVM.PRCList
|
||||
For Each QBTLParam In PRCItem.QBTLParamVMList
|
||||
Map.refConfigurationPageVM.QBTLParamVMList.Add(QBTLParam)
|
||||
Next
|
||||
Next
|
||||
NotifyPropertyChanged(NameOf(Map.refConfigurationPageVM.QBTLParamVMList))
|
||||
End If
|
||||
' aggiorno nome macchina in statusbar
|
||||
Map.refMyStatusBarVM.RefreshMachName()
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MachPanel_IsEnabled As Boolean = True
|
||||
Public Property MachPanel_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_MachPanel_IsEnabled
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_MachPanel_IsEnabled = value
|
||||
NotifyPropertyChanged("MachPanel_IsEnabled")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_BeamTable_Visibility As Visibility
|
||||
Public ReadOnly Property BeamTable_Visibility As Visibility
|
||||
Get
|
||||
Return m_BeamTable_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_WallTable_Visibility As Visibility
|
||||
Public ReadOnly Property WallTable_Visibility As Visibility
|
||||
Get
|
||||
Return m_WallTable_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SetUp_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainWindowVM.MainWindowM.bModifySetup, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property ToolDBMsg As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHINEPAGEUC + 6)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property MachiningDbMsg As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHINEPAGEUC + 7)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property SetUpMsg As String
|
||||
Get
|
||||
Return EgtMsg(MSG_ALARMSPAGEUC + 33)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "ToolTip"
|
||||
|
||||
Public ReadOnly Property ToolDBToolTip As String
|
||||
Get
|
||||
Return EgtMsg(5003)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property MachiningDbToolTip As String
|
||||
Get
|
||||
Return EgtMsg(5004)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property SetUpToolTip As String
|
||||
Get
|
||||
Return EgtMsg(31501)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' ToolTip
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdBeamTable As ICommand
|
||||
Private m_cmdWallTable As ICommand
|
||||
|
||||
#End Region 'FIELDS & PROPERTIES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
' Creo riferimento a questa classe in Map
|
||||
Map.SetRefMachinePanelVM(Me)
|
||||
' recupero cartella radice delle macchine
|
||||
m_sMachinesRoot = Map.refMainWindowVM.MainWindowM.sMachinesRoot
|
||||
' Carica macchine da cartella delle macchine
|
||||
MyMachine.MachineListInit(m_sMachinesRoot, MachineList)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub LoadCurrentMachine()
|
||||
If MachineList.Count = 0 Then Return
|
||||
Dim CurrMachine As Machine = Nothing
|
||||
Dim CurrMachineName As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MACH, K_CURRMACH, String.Empty, CurrMachineName)
|
||||
Dim bFound As Boolean = False
|
||||
If Not String.IsNullOrEmpty(CurrMachineName) Then
|
||||
For Each Mach In MachineList
|
||||
If Mach.Name = CurrMachineName Then
|
||||
bFound = True
|
||||
CurrMachine = Mach
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
If Not bFound And MachineList.Count > 0 Then
|
||||
CurrMachine = MachineList(0)
|
||||
End If
|
||||
If Not IsNothing(CurrMachine) Then
|
||||
If EgtSetCurrMachine(CurrMachine.Name) Then
|
||||
SelectedMachine = CurrMachine
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub SaveCurrentMachine()
|
||||
If IsNothing(m_SelectedMachine) Then Return
|
||||
WriteMainPrivateProfileString(S_MACH, K_CURRMACH, SelectedMachine.Name)
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateCurrentMachine()
|
||||
'EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
|
||||
Dim sMachName As String = String.Empty
|
||||
If EgtGetCurrMachineName(sMachName) Then
|
||||
For Each Mach In MachineList
|
||||
If Mach.Name = sMachName Then
|
||||
SelectedMachine = Mach
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Function BeamMachDb() As Boolean
|
||||
' Assegno le path
|
||||
Dim sBaseDir As String = m_sMachinesRoot & "\" & m_SelectedMachine.Name & "\" & "Beam"
|
||||
' verifico se ci sono i file ini
|
||||
Dim sMachTypePath As String = sBaseDir & "\MachiningTypes.ini"
|
||||
Dim sTabTemplPath As String = sBaseDir & "\BeamTableTemplate.ini"
|
||||
If File.Exists(sMachTypePath) AndAlso File.Exists(sTabTemplPath) Then
|
||||
' apro finestra di gestione lavorazioni travi
|
||||
Dim sTitle = EgtMsg(9000) 'Tabelle delle lavorazioni delle travi
|
||||
Dim BeamMchsWinVM As New MyBeamMachiningsWindowVM(sTitle, sBaseDir, sMachTypePath, sTabTemplPath)
|
||||
Dim BeamMchsWinV As New BeamMachiningsWindowV(Application.Current.MainWindow, BeamMchsWinVM)
|
||||
BeamMchsWinV.ShowDialog()
|
||||
Else
|
||||
' Impossibile aprire l'Editor delle lavorazioni delle travi.<br/>Mancano i file di configurazione. - Errore
|
||||
MessageBox.Show(EgtMsg(9009), EgtMsg(9008), MessageBoxButton.OK, MessageBoxImage.Stop)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Friend Function WallMachDb() As Boolean
|
||||
' Assegno le path
|
||||
Dim sBaseDir As String = m_sMachinesRoot & "\" & m_SelectedMachine.Name & "\" & "Wall"
|
||||
' verifico se ci sono i file ini
|
||||
Dim sMachTypePath As String = sBaseDir & "\MachiningTypes.ini"
|
||||
Dim sTabTemplPath As String = sBaseDir & "\WallTableTemplate.ini"
|
||||
If File.Exists(sMachTypePath) AndAlso File.Exists(sTabTemplPath) Then
|
||||
' apro finestra di gestione lavorazioni pareti
|
||||
Dim sTitle = EgtMsg(9010) 'Tabelle delle lavorazioni delle pareti
|
||||
Dim WallMchsWinVM As New MyBeamMachiningsWindowVM(sTitle, sBaseDir, sMachTypePath, sTabTemplPath, False)
|
||||
Dim WallMchsWinV As New BeamMachiningsWindowV(Application.Current.MainWindow, WallMchsWinVM)
|
||||
WallMchsWinV.ShowDialog()
|
||||
Else
|
||||
' Impossibile aprire l'Editor delle lavorazioni delle pareti.<br/>Mancano i file di configurazione. - Errore
|
||||
MessageBox.Show(EgtMsg(9011), EgtMsg(9008), MessageBoxButton.OK, MessageBoxImage.Stop)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Overrides Sub ToolDb(ByVal param As Object)
|
||||
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
If Not EgtTdbReload() Then
|
||||
EgtOutLog("Impossible reloading tool Db")
|
||||
MessageBox.Show(EgtMsg(MSG_TOOLDBERRORS + 30), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim ToolDbWindowVM As New MyToolDbWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Beam")
|
||||
Dim ToolDbWindowV As New ToolDbWindowV(Application.Current.MainWindow, ToolDbWindowVM)
|
||||
If ToolDbWindowVM.MatType <> 0 Then
|
||||
ToolDbWindowV.Height = 640
|
||||
ToolDbWindowV.Width = 1024
|
||||
ToolDbWindowV.ShowDialog()
|
||||
Else
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub MachDb(ByVal param As Object)
|
||||
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
If Not EgtMdbReload() Then
|
||||
EgtOutLog("Impossible reloading machining Db")
|
||||
MessageBox.Show(EgtMsg(MSG_MACHININGDBERRORS + 8), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Return
|
||||
End If
|
||||
Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Stone")
|
||||
Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM)
|
||||
|
||||
If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then
|
||||
MachDbWindowV.Height = 768
|
||||
MachDbWindowV.Width = 1024
|
||||
MachDbWindowV.ShowDialog()
|
||||
Else
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SetUp(ByVal param As Object)
|
||||
' verifico che il file di configurazione attrezzaggio (lua) della macchina esista
|
||||
If Not File.Exists(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA) Then
|
||||
EgtOutLog("SetUp error: SetUp configuration file doesn't exist ")
|
||||
MessageBox.Show(EgtMsg(MSG_SETUPERRORS + 7), EgtMsg(MSG_SETUPERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Return
|
||||
End If
|
||||
' carico Lua che contiene le funzioni per ottenere le posizioni valide dell'utensile selezionato,
|
||||
' e testa e uscita dell'utensile attrezzato
|
||||
EgtLuaExecFile(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA)
|
||||
' verifico che le teste riportate in configurazione esistano
|
||||
Dim Index As Integer = 1
|
||||
Dim nErr As Integer = 0
|
||||
While nErr = 0
|
||||
Dim sHead As String = String.Empty
|
||||
nErr = 999
|
||||
EgtLuaSetGlobIntVar("STU.INDEX", Index)
|
||||
EgtLuaCallFunction("STU.GetTcPosHeadGroupFromPos")
|
||||
' Leggo variabili
|
||||
EgtLuaGetGlobStringVar("STU.HEAD", sHead)
|
||||
EgtLuaGetGlobIntVar("STU.ERR", nErr)
|
||||
If nErr = 0 Then
|
||||
If EgtGetHeadExitCount(sHead) = 0 Then
|
||||
MessageBox.Show(EgtMsg(MSG_SETUPERRORS + 8), EgtMsg(MSG_SETUPERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
Index += 1
|
||||
End While
|
||||
' Reset lua
|
||||
EgtLuaResetGlobVar("STU")
|
||||
|
||||
Dim SetUpWindow As New SetUpWindowV(Application.Current.MainWindow, New SetUpWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachineName))
|
||||
SetUpWindow.Height = 614
|
||||
SetUpWindow.Width = 1024
|
||||
SetUpWindow.ShowDialog()
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "BeamTable"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property BeamTable_Command As ICommand
|
||||
Get
|
||||
If m_cmdBeamTable Is Nothing Then
|
||||
m_cmdBeamTable = New Command(AddressOf BeamMachDb)
|
||||
End If
|
||||
Return m_cmdBeamTable
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' BeamTable
|
||||
|
||||
#Region "WallTable"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property WallTable_Command As ICommand
|
||||
Get
|
||||
If m_cmdWallTable Is Nothing Then
|
||||
m_cmdWallTable = New Command(AddressOf WallMachDb)
|
||||
End If
|
||||
Return m_cmdWallTable
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' WallTable
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
@@ -779,94 +779,3 @@ Public MustInherit Class NewOpenProjectFileDialogVM
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ProdItem
|
||||
Inherits VMBase
|
||||
|
||||
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
|
||||
|
||||
Protected m_ProdFileVM As ProdFileVM
|
||||
Public ReadOnly Property ProdFileVM As ProdFileVM
|
||||
Get
|
||||
Return m_ProdFileVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_ProjFileList As New List(Of ProjectFileVM)
|
||||
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
|
||||
Get
|
||||
Return m_ProjFileList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sProdId As String
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overridable Property sName As String
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
|
||||
End Get
|
||||
Set(value As String)
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
m_ProdFileVM.sName = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property dtCreateDate As Date
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property sCreateDate As String
|
||||
Get
|
||||
Return dtCreateDate.ToString()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sMachine As String
|
||||
Get
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
Return m_ProdFileVM.sMachine
|
||||
ElseIf Not IsNothing(m_ProjFileList(0)) Then
|
||||
Return m_ProjFileList(0).sMachine
|
||||
Else Return ""
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property bIsArchived As Boolean
|
||||
Get
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
Return m_ProdFileVM.bIsArchived
|
||||
ElseIf Not IsNothing(m_ProjFileList(0)) Then
|
||||
Return m_ProjFileList(0).bIsArchived
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Archived_Visibility As Visibility
|
||||
Get
|
||||
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
|
||||
m_ProdFileVM = ProdFileVM
|
||||
m_ProjFileList.Add(ProjFileVM)
|
||||
End Sub
|
||||
|
||||
Sub New(ProjFileVM As ProjFileVM)
|
||||
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
|
||||
End Sub
|
||||
|
||||
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
|
||||
m_ProdFileVM = ProdFileVM
|
||||
m_ProjFileList = ProjFileVMList
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -42,6 +42,8 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
|
||||
Protected m_GoToProd As Boolean = False
|
||||
|
||||
Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
Public Property ProjectColumns As ObservableCollection(Of EgtDataGridColumn)
|
||||
Get
|
||||
@@ -438,7 +440,7 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
#Region "METHODS"
|
||||
|
||||
Public MustOverride Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
|
||||
Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False)
|
||||
Public Overridable Sub RefreshProjectList()
|
||||
End Sub
|
||||
|
||||
Protected Sub LoadColumns(ProjectType As ProjectType)
|
||||
|
||||
@@ -14,6 +14,13 @@ Public Class ProdFileM
|
||||
m_nProjIdList = value
|
||||
End Sub
|
||||
|
||||
Protected m_ProjMList As List(Of ProjFileM)
|
||||
Public ReadOnly Property ProjMList As List(Of ProjFileM)
|
||||
Get
|
||||
Return m_ProjMList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
@@ -34,6 +41,16 @@ Public Class ProdFileM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_nProjCloudId As Integer
|
||||
Public Property nProjCloudId As Integer
|
||||
Get
|
||||
Return m_nProjCloudId
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nProjCloudId = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
|
||||
Protected Sub New()
|
||||
@@ -44,7 +61,7 @@ Public Class ProdFileM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateProdFileM(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
|
||||
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean) As ProdFileM
|
||||
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, Optional nProjCloudId As Integer = 0) As ProdFileM
|
||||
Dim NewProjectFileM As New ProdFileM
|
||||
NewProjectFileM.m_nProdId = nProdId
|
||||
NewProjectFileM.m_nProjIdList = nProjIdList
|
||||
@@ -57,6 +74,25 @@ Public Class ProdFileM
|
||||
NewProjectFileM.m_bIsActive = bIsActive
|
||||
NewProjectFileM.m_bIsProduced = bIsProduced
|
||||
NewProjectFileM.m_bIsArchived = bIsArchived
|
||||
NewProjectFileM.m_nProjCloudId = nProjCloudId
|
||||
Return NewProjectFileM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateProdFileM(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
|
||||
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdFileM
|
||||
Dim NewProjectFileM As New ProdFileM
|
||||
NewProjectFileM.m_nProdId = nProdId
|
||||
NewProjectFileM.m_nProjIdList = nProjIdList
|
||||
NewProjectFileM.m_dtCreateDate = dtCreateProjDate
|
||||
NewProjectFileM.m_sName = sName
|
||||
NewProjectFileM.m_nType = nType
|
||||
NewProjectFileM.m_sMachine = sMachine
|
||||
NewProjectFileM.m_sLockedBy = sLockedBy
|
||||
NewProjectFileM.m_dtLock = dtLock
|
||||
NewProjectFileM.m_bIsActive = bIsActive
|
||||
NewProjectFileM.m_bIsProduced = bIsProduced
|
||||
NewProjectFileM.m_bIsArchived = bIsArchived
|
||||
NewProjectFileM.m_ProjMList = ProjMList
|
||||
Return NewProjectFileM
|
||||
End Function
|
||||
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
|
||||
Imports EgtWPFLib5
|
||||
Imports System.Windows
|
||||
|
||||
Public Class ProdItem
|
||||
Inherits VMBase
|
||||
|
||||
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
|
||||
|
||||
Protected m_ProdFileVM As ProdFileVM
|
||||
Public ReadOnly Property ProdFileVM As ProdFileVM
|
||||
Get
|
||||
Return m_ProdFileVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_ProjFileList As New List(Of ProjectFileVM)
|
||||
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
|
||||
Get
|
||||
Return m_ProjFileList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sProdId As String
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overridable Property sName As String
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
|
||||
End Get
|
||||
Set(value As String)
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
m_ProdFileVM.sName = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property dtCreateDate As Date
|
||||
Get
|
||||
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property sCreateDate As String
|
||||
Get
|
||||
Return dtCreateDate.ToString()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sMachine As String
|
||||
Get
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
Return m_ProdFileVM.sMachine
|
||||
ElseIf Not IsNothing(m_ProjFileList(0)) Then
|
||||
Return m_ProjFileList(0).sMachine
|
||||
Else Return ""
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property bIsArchived As Boolean
|
||||
Get
|
||||
If Not IsNothing(m_ProdFileVM) Then
|
||||
Return m_ProdFileVM.bIsArchived
|
||||
ElseIf Not IsNothing(m_ProjFileList(0)) Then
|
||||
Return m_ProjFileList(0).bIsArchived
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Archived_Visibility As Visibility
|
||||
Get
|
||||
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
|
||||
m_ProdFileVM = ProdFileVM
|
||||
m_ProjFileList.Add(ProjFileVM)
|
||||
End Sub
|
||||
|
||||
Sub New(ProjFileVM As ProjFileVM)
|
||||
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
|
||||
End Sub
|
||||
|
||||
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
|
||||
m_ProdFileVM = ProdFileVM
|
||||
m_ProjFileList = ProjFileVMList
|
||||
End Sub
|
||||
|
||||
|
||||
Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
|
||||
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdItem
|
||||
|
||||
|
||||
Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived)
|
||||
Dim NewProdFileVM = New ProdFileVM(NewProdFileM)
|
||||
Dim NewProjFileVM As IEnumerable(Of ProjectFileVM)
|
||||
NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList
|
||||
Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList)
|
||||
|
||||
Return NewProdItem
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateProdItem(ProjFileM As ProjFileM) As ProdItem
|
||||
|
||||
Dim NewProdItem = New ProdItem(New ProjFileVM(ProjFileM))
|
||||
|
||||
Return NewProdItem
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -29,25 +29,35 @@ Public Class ProjFileM
|
||||
End Property
|
||||
|
||||
Protected m_sDescription As String = String.Empty
|
||||
Public Property sDescription As String
|
||||
Get
|
||||
Return m_sDescription
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sDescription = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property sDescription As String
|
||||
Get
|
||||
Return m_sDescription
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sDescription = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_nProjCloudId As Integer
|
||||
Public Property nProjCloudId As Integer
|
||||
Get
|
||||
Return m_nProjCloudId
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nProjCloudId = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
|
||||
Protected Sub New()
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateNewProjFileM() As ProjFileM
|
||||
Return New ProjFileM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateProjFileM(nProjId As Integer, nProdId As Integer, dtCreateProjDate As DateTime, dtExportDate As DateTime, sListName As String, sBTLFileName As String, sDescription As String, IsNew As Boolean, IsLocked As Boolean, nType As BWType, sMachine As String, bIsActive As Boolean, bIsArchived As Boolean) As ProjFileM
|
||||
Public Shared Function CreateProjFileM(nProjId As Integer, nProdId As Integer, dtCreateProjDate As DateTime, dtExportDate As DateTime, sListName As String, sBTLFileName As String, sDescription As String, IsNew As Boolean, IsLocked As Boolean, nType As BWType, sMachine As String, bIsActive As Boolean, bIsArchived As Boolean, Optional nProjCloudId As Integer = 0) As ProjFileM
|
||||
Dim NewProjectFileM As New ProjFileM
|
||||
NewProjectFileM.m_nProjId = nProjId
|
||||
NewProjectFileM.m_nProdId = nProdId
|
||||
@@ -62,6 +72,7 @@ Public Class ProjFileM
|
||||
NewProjectFileM.m_sMachine = sMachine
|
||||
NewProjectFileM.m_bIsActive = bIsActive
|
||||
NewProjectFileM.m_bIsArchived = bIsArchived
|
||||
NewProjectFileM.m_nProjCloudId = nProjCloudId
|
||||
Return NewProjectFileM
|
||||
End Function
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 610 B |
@@ -1,24 +0,0 @@
|
||||
Public Module Configuration
|
||||
|
||||
Private m_bOnlyProd As Boolean
|
||||
Public ReadOnly Property bOnlyProd As Boolean
|
||||
Get
|
||||
Return m_bOnlyProd
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetOnlyProd(value As Boolean)
|
||||
m_bOnlyProd = value
|
||||
End Sub
|
||||
|
||||
Private m_bModifySetup As Boolean
|
||||
Public ReadOnly Property bModifySetup As Boolean
|
||||
Get
|
||||
Return m_bModifySetup
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetModifySetup(value As Boolean)
|
||||
m_bModifySetup = value
|
||||
End Sub
|
||||
|
||||
|
||||
End Module
|
||||
@@ -63,7 +63,6 @@ Public Enum StatusMapOpType
|
||||
ChangeProdInProdRequest = 16
|
||||
OpenPageInViewOptimRequest = 17
|
||||
MachGroupValidationUpdate = 18
|
||||
ChangeProdInOnlyProdRequest = 19
|
||||
End Enum
|
||||
|
||||
Public Enum DimensionType
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
Imports System.Windows
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class MaterialM
|
||||
|
||||
Protected m_nId As Integer
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetId(nId As Integer)
|
||||
m_nId = nId
|
||||
End Sub
|
||||
|
||||
Protected m_sMaterial As String
|
||||
Public ReadOnly Property sMaterial As String
|
||||
Get
|
||||
Return m_sMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_sWarehouseMaterial As String
|
||||
Public ReadOnly Property sWarehouseMaterial As String
|
||||
Get
|
||||
Return m_sWarehouseMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dW As Double = 0
|
||||
Public ReadOnly Property dW As Double
|
||||
Get
|
||||
Return m_dW
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dH As Double = 0
|
||||
Public ReadOnly Property dH As Double
|
||||
Get
|
||||
Return m_dH
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dL As Double = 0
|
||||
Public ReadOnly Property dL As Double
|
||||
Get
|
||||
Return m_dL
|
||||
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared Operator =(ByVal S1 As MaterialM, ByVal S2 As MaterialM) As Boolean
|
||||
If IsNothing(S1) OrElse IsNothing(S2) Then Return False
|
||||
Return (Math.Abs(S1.m_dH - S2.m_dH) < 100 * EPS_SMALL AndAlso
|
||||
Math.Abs(S1.m_dW - S2.m_dW) < 100 * EPS_SMALL AndAlso
|
||||
Math.Abs(S1.m_dL - S2.m_dL) < 100 * EPS_SMALL AndAlso
|
||||
S1.m_sWarehouseMaterial = S2.m_sWarehouseMaterial)
|
||||
End Operator
|
||||
|
||||
Shared Operator <>(ByVal S1 As MaterialM, ByVal S2 As MaterialM) As Boolean
|
||||
Return Not S1 = S2
|
||||
End Operator
|
||||
|
||||
Public Overrides Function Equals(ByVal obj As Object) As Boolean
|
||||
If TypeOf obj Is MaterialM Then
|
||||
Return Me = DirectCast(obj, MaterialM) '(m_dH = obj.dH AndAlso m_dW = obj.dW AndAlso m_dL = obj.dL AndAlso m_Material.Any(Function(x) DirectCast(obj.sMaterial, List(Of String)).Any(Function(y) y = x)))
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String, sWarehouseMaterial As String)
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_dL = dL
|
||||
m_sMaterial = sMaterial
|
||||
m_sWarehouseMaterial = sWarehouseMaterial
|
||||
End Sub
|
||||
|
||||
Sub New(nId As Integer, dW As Double, dH As Double, dL As Double, sMaterial As String, sWarehouseMaterial As String)
|
||||
m_nId = nId
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_dL = dL
|
||||
m_sMaterial = sMaterial
|
||||
m_sWarehouseMaterial = sWarehouseMaterial
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class RawPartM
|
||||
Inherits VMBase
|
||||
|
||||
Protected m_nId As Integer
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetId(nId As Integer)
|
||||
m_nId = nId
|
||||
End Sub
|
||||
|
||||
Private m_bActive As Boolean
|
||||
Public Property bActive As Boolean
|
||||
Get
|
||||
Return m_bActive
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bActive = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Material As MaterialM
|
||||
Public Property Material As MaterialM
|
||||
Get
|
||||
Return m_Material
|
||||
End Get
|
||||
Set(value As MaterialM)
|
||||
m_Material = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_dW As Double
|
||||
Public Property dW As Double
|
||||
Get
|
||||
Return m_dW
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dW = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_dL As Double
|
||||
Public Property dL As Double
|
||||
Get
|
||||
Return m_dL
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dL = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nQuantity As Integer
|
||||
Public Property nQuantity As Integer
|
||||
Get
|
||||
Return m_nQuantity
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nQuantity = value
|
||||
End Set
|
||||
End Property
|
||||
Private m_bUseQuantity As Boolean
|
||||
Public Property bUseQuantity As Boolean
|
||||
Get
|
||||
Return m_bUseQuantity
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bUseQuantity = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(SxM As MaterialM, W As Double, L As Double, Qty As Integer, Active As Boolean)
|
||||
m_Material = SxM
|
||||
m_dW = W
|
||||
m_dL = L
|
||||
m_nQuantity = Qty
|
||||
m_bActive = Active
|
||||
End Sub
|
||||
|
||||
Sub New(nId As Integer, SxM As MaterialM, W As Double, L As Double, Qty As Integer, bUseQty As Boolean, Active As Boolean)
|
||||
m_nId = nId
|
||||
m_Material = SxM
|
||||
m_dW = W
|
||||
m_dL = L
|
||||
m_nQuantity = Qty
|
||||
m_bUseQuantity = bUseQty
|
||||
m_bActive = Active
|
||||
End Sub
|
||||
|
||||
Public Sub Update(RawPart As RawPartM)
|
||||
m_Material = RawPart.m_Material
|
||||
m_dW = RawPart.dW
|
||||
m_dL = RawPart.dL
|
||||
m_nQuantity = RawPart.m_nQuantity
|
||||
m_bUseQuantity = RawPart.m_bUseQuantity
|
||||
m_bActive = RawPart.m_bActive
|
||||
End Sub
|
||||
|
||||
Public Function Copy() As RawPartM
|
||||
Return New RawPartM(m_nId, m_Material, m_dW, m_dL, m_nQuantity, bUseQuantity, bActive)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -15,10 +15,15 @@ Public Class SectionXMaterial
|
||||
m_nType = nType
|
||||
End Sub
|
||||
|
||||
Protected m_Material As List(Of String)
|
||||
Public ReadOnly Property sMaterial As List(Of String)
|
||||
Public ReadOnly Property sMaterial As String
|
||||
Get
|
||||
Return m_Material
|
||||
Return m_MaterialM.sMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sWarehouseMaterial As String
|
||||
Get
|
||||
Return m_MaterialM.sWarehouseMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -42,50 +47,59 @@ Public Class SectionXMaterial
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_dW As Double = 0
|
||||
Protected m_MaterialM As MaterialM
|
||||
Public ReadOnly Property MaterialM As MaterialM
|
||||
Get
|
||||
Return m_MaterialM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property dW As Double
|
||||
Get
|
||||
Return m_dW
|
||||
Return m_MaterialM.dW
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dH As Double = 0
|
||||
Public ReadOnly Property dH As Double
|
||||
Get
|
||||
Return m_dH
|
||||
Return m_MaterialM.dH
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dL As Double = 0
|
||||
Public ReadOnly Property dL As Double
|
||||
Get
|
||||
Return m_dL
|
||||
Return m_MaterialM.dL
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sSectionXMaterial As String
|
||||
Get
|
||||
Dim sAlias As String = String.Empty
|
||||
For Each sMatItem In sMaterial
|
||||
sAlias &= sMatItem & ";"
|
||||
Next
|
||||
sAlias = sAlias.TrimEnd(";")
|
||||
If Me = Empty Then
|
||||
Return ""
|
||||
ElseIf m_nType = MachineType.BEAM Then
|
||||
Return LenToString(m_dW, 3) & " x " & LenToString(m_dH, 3) & " " & sAlias
|
||||
Return LenToString(m_MaterialM.dW, 3) & " x " & LenToString(m_MaterialM.dH, 3) & " " & If(GetMainPrivateProfileInt(S_WAREHOUSE, K_SHOWWAREHOUSEMATERIAL, 0) = 1, sWarehouseMaterial, sMaterial)
|
||||
ElseIf m_nType = MachineType.WALL Then
|
||||
Return LenToString(m_dH, 3) & " " & sAlias
|
||||
Return LenToString(m_MaterialM.dH, 3) & " " & If(GetMainPrivateProfileInt(S_WAREHOUSE, K_SHOWWAREHOUSEMATERIAL, 0) = 1, sWarehouseMaterial, sMaterial)
|
||||
Else Return ""
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sWarehouseSectionXMaterial As String
|
||||
Get
|
||||
If Me = Empty Then
|
||||
Return ""
|
||||
ElseIf m_nType = MachineType.BEAM Then
|
||||
Return LenToString(m_MaterialM.dW, 3) & " x " & LenToString(m_MaterialM.dH, 3) & " " & sWarehouseMaterial
|
||||
ElseIf m_nType = MachineType.WALL Then
|
||||
Return LenToString(m_MaterialM.dH, 3) & " " & sWarehouseMaterial
|
||||
Else Return ""
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared Operator =(ByVal S1 As SectionXMaterial, ByVal S2 As SectionXMaterial) As Boolean
|
||||
Return (Math.Abs( S1.m_dH - S2.m_dH) < 100 * EPS_SMALL AndAlso
|
||||
Math.Abs( S1.m_dW - S2.m_dW) < 100 * EPS_SMALL AndAlso
|
||||
Math.Abs( S1.m_dL - S2.m_dL) < 100 * EPS_SMALL AndAlso
|
||||
S1.m_Material.Any(Function(x) S2.m_Material.Any(Function(y) y = x)))
|
||||
Return S1.m_MaterialM = S2.m_MaterialM
|
||||
End Operator
|
||||
|
||||
Shared Operator <>(ByVal S1 As SectionXMaterial, ByVal S2 As SectionXMaterial) As Boolean
|
||||
@@ -99,25 +113,21 @@ Public Class SectionXMaterial
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String)
|
||||
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String, sWarehouseMaterial As String)
|
||||
If m_nType = BWType.BEAM Then
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_MaterialM = New MaterialM(dW, dH, 0, sMaterial, sWarehouseMaterial)
|
||||
ElseIf m_nType = BWType.WALL Then
|
||||
m_dH = dH
|
||||
m_MaterialM = New MaterialM(0, dH, 0, sMaterial, sWarehouseMaterial)
|
||||
Else
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_dL = dL
|
||||
m_MaterialM = New MaterialM(dW, dH, dL, sMaterial, sWarehouseMaterial)
|
||||
End If
|
||||
m_Material = New List(Of String)
|
||||
Dim sMaterialArray() As String = Split(sMaterial, ";")
|
||||
For Each sMatItem In sMaterialArray
|
||||
m_Material.Add(sMatItem)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Shared Empty As New SectionXMaterial(-1, -1, -1, "")
|
||||
Sub New(MaterialM As MaterialM)
|
||||
m_MaterialM = MaterialM
|
||||
End Sub
|
||||
|
||||
Public Shared Empty As New SectionXMaterial(-1, -1, -1, "", "")
|
||||
|
||||
#Region "Import BTL <-> Warehouse"
|
||||
|
||||
@@ -195,22 +205,14 @@ Public Class SectionXMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String, nQuantity As Integer)
|
||||
Sub New(dW As Double, dH As Double, dL As Double, sMaterial As String, nQuantity As Integer, sWarehouseMaterial As String)
|
||||
If m_nType = BWType.BEAM Then
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_MaterialM = New MaterialM(dW, dH, 0, sMaterial, sWarehouseMaterial)
|
||||
ElseIf m_nType = BWType.WALL Then
|
||||
m_dH = dH
|
||||
m_MaterialM = New MaterialM(0, dH, 0, sMaterial, sWarehouseMaterial)
|
||||
Else
|
||||
m_dW = dW
|
||||
m_dH = dH
|
||||
m_dL = dL
|
||||
m_MaterialM = New MaterialM(dW, dH, dL, sMaterial, sWarehouseMaterial)
|
||||
End If
|
||||
m_Material = New List(Of String)
|
||||
Dim sMaterialArray() As String = Split(sMaterial, ";")
|
||||
For Each sMatItem In sMaterialArray
|
||||
m_Material.Add(sMatItem)
|
||||
Next
|
||||
m_nQuantity = nQuantity
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection" connectionString="server=localhost;port=3306;User Id=steamware;password=Egalware_24068!;Persist Security Info=True;database=EgtBwDb_000470;SslMode=none" providerName="MySql.Data.MySqlClient" />
|
||||
<add name="DefaultConnection" connectionString="server=localhost;port=3306;User Id=steamware;password=steamware_password;Persist Security Info=True;database=EgtBwDb_000470;SslMode=none" providerName="MySql.Data.MySqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
@@ -31,7 +31,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="K4os.Compression.LZ4.Streams" publicKeyToken="2186fa9121ef231d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.3.5.0" newVersion="1.3.5.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.3.6.0" newVersion="1.3.6.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="BouncyCastle.Crypto" publicKeyToken="0e99375e54769942" culture="neutral" />
|
||||
@@ -41,6 +41,18 @@
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="K4os.Compression.LZ4" publicKeyToken="2186fa9121ef231d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.2.5.0" newVersion="1.2.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="K4os.Hash.xxHash" publicKeyToken="32cd54395057cec3" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.8.0" newVersion="1.0.8.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup>
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Gestione Alias su DB (es: materiali da BTL e su DB)
|
||||
/// </summary>
|
||||
public class AliasController : IDisposable
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public AliasController()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Conversion of DB model class to base class
|
||||
/// </summary>
|
||||
/// <param name="coreMat"></param>
|
||||
/// <returns></returns>
|
||||
public static Core.AliasM ConvToCore(AliasModel dbRec)
|
||||
{
|
||||
Core.AliasM answ = new Core.AliasM(dbRec.ValueOriginal, dbRec.ValueAlias);
|
||||
return answ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a DTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public static AliasDTO ConvToDto(AliasModel currRec)
|
||||
{
|
||||
AliasDTO answ = new AliasDTO()
|
||||
{
|
||||
ValOrig = currRec.ValueOriginal,
|
||||
ValAlias = currRec.ValueAlias
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione da DTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <param name="family"></param>
|
||||
/// <returns></returns>
|
||||
public static AliasModel ConvToModel(AliasDTO currRec, string family)
|
||||
{
|
||||
AliasModel answ = new AliasModel()
|
||||
{
|
||||
Family = family,
|
||||
ValueOriginal = currRec.ValOrig,
|
||||
ValueAlias = currRec.ValAlias
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete by key
|
||||
/// </summary>
|
||||
/// <param name="Family"></param>
|
||||
/// <param name="ValueOriginal"></param>
|
||||
/// <returns></returns>
|
||||
public bool DeleteByKey(string Family, string ValueOriginal)
|
||||
{
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var items2del = localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == Family && x.ValueOriginal == ValueOriginal);
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.AliasList.RemoveRange(items2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Alias.DeleteByKey: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by Key
|
||||
/// </summary>
|
||||
/// <param name="MatId"></param>
|
||||
/// <returns></returns>
|
||||
public AliasModel FindByDbId(string ValueOriginal)
|
||||
{
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
string Family = "MatCode";
|
||||
return localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == Family && x.ValueOriginal.ToLower() == ValueOriginal.ToLower())
|
||||
.SingleOrDefault();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Get record by Key
|
||||
/// </summary>
|
||||
/// <param name="MatId"></param>
|
||||
/// <returns></returns>
|
||||
public AliasModel FindByDbId(string ValueOriginal, string Family)
|
||||
{
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
return localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == Family && x.ValueOriginal.ToLower() == ValueOriginal.ToLower())
|
||||
.SingleOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Alias x famiglia
|
||||
/// </summary>
|
||||
/// <param name="Family">se "" restituisce tutti</param>
|
||||
/// <returns></returns>
|
||||
public List<AliasModel> GetFilt(string Family)
|
||||
{
|
||||
// retrieve
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
return localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == Family)
|
||||
.OrderBy(x => x.ValueOriginal)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert Alias record
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns></returns>
|
||||
public bool Upsert(AliasModel updItem)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == updItem.Family && x.ValueOriginal == updItem.ValueOriginal)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.AliasList.Add(updItem);
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Alias.Upsert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert Alias record list
|
||||
/// </summary>
|
||||
/// <param name="updList"></param>
|
||||
/// <returns></returns>
|
||||
public bool UpsertList(List<AliasModel> updList)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var updItem in updList)
|
||||
{
|
||||
|
||||
var item2update = localDbCtx
|
||||
.AliasList
|
||||
.Where(x => x.Family == updItem.Family && x.ValueOriginal.ToLower() == updItem.ValueOriginal.ToLower())
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
if (item2update.ValueAlias.ToLower() != updItem.ValueAlias.ToLower())
|
||||
{
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.AliasList.Add(updItem);
|
||||
}
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Alias.UpsertList: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Istanza logger
|
||||
/// </summary>
|
||||
private Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,233 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Gestione MagmanSync su DB (registrazione operazioni di sync con MagMan online)
|
||||
/// </summary>
|
||||
public class MagmanSyncController : IDisposable
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public MagmanSyncController()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Purge dei record inviati oltre periodo di giorni indicato
|
||||
/// </summary>
|
||||
/// <param name="NumDayMax">Num gg max da mantenere in registro</param>
|
||||
/// <returns></returns>
|
||||
public bool DeleteOlder(int NumDayMax)
|
||||
{
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
DateTime adesso = DateTime.Now;
|
||||
var items2del = localDbCtx
|
||||
.SyncList
|
||||
.Where(x => x.DtExe != null && adesso.Subtract(x.DtReq).TotalDays > NumDayMax);
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.SyncList.RemoveRange(items2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Alias.DeleteOlder | NumDayMax: {NumDayMax}{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lista record filtrati
|
||||
/// </summary>
|
||||
/// <param name="SyncType">Tipo di record richiesti, se "" = tutti</param>
|
||||
/// <param name="DtMax">Data-Ora limite per recupero ordinato DESC</param>
|
||||
/// <param name="NumMax">num max di record da restituire</param>
|
||||
/// <returns></returns>
|
||||
public List<MagmanSyncModel> GetFilt(string SyncType, DateTime DtMax, int NumMax)
|
||||
{
|
||||
List<MagmanSyncModel> dbResult = new List<MagmanSyncModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.SyncList
|
||||
.Where(x => (string.IsNullOrEmpty(SyncType) || x.SyncType == SyncType) && x.DtReq <= DtMax)
|
||||
.OrderByDescending(x => x.DtReq)
|
||||
.Take(NumMax)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert record MagmanSync
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns>ID record inserito</returns>
|
||||
public int Insert(MagmanSyncModel newRec)
|
||||
{
|
||||
int newId = 0;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
// inserisco record
|
||||
localDbCtx.SyncList.Add(newRec);
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
newId = newRec.SyncId;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on MagmanSync.Insert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return newId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update con indicazione DtExt di completamento
|
||||
/// </summary>
|
||||
/// <param name="SyncId">ID record</param>
|
||||
/// <param name="DtExe">Data-Ora exe</param>
|
||||
/// <returns></returns>
|
||||
public bool SetCompleted(int SyncId, DateTime DtExe)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.SyncList
|
||||
.Where(x => x.SyncId == SyncId)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
// update
|
||||
item2update.DtExe = DtExe;
|
||||
localDbCtx.Entry(item2update).State = System.Data.Entity.EntityState.Modified;
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on MagmanSync.SetCompleted: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert record MagmanSync
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns></returns>
|
||||
public bool Upsert(MagmanSyncModel updItem)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.SyncList
|
||||
.Where(x => x.SyncId == updItem.SyncId)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.SyncList.Add(updItem);
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on MagmanSync.Upsert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert Alias record list
|
||||
/// </summary>
|
||||
/// <param name="updList"></param>
|
||||
/// <returns></returns>
|
||||
public bool UpsertList(List<MagmanSyncModel> updList)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var updItem in updList)
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.SyncList
|
||||
.Where(x => x.SyncId == updItem.SyncId)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.SyncList.Add(updItem);
|
||||
}
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on MagmanSync.UpsertList: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Istanza logger
|
||||
/// </summary>
|
||||
private Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static EgtBEAMWALL.DataLayer.Controllers.MaterialsController.SearchResult;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Gestione Materiali su DB (= magazzino locale)
|
||||
/// </summary>
|
||||
public class MaterialsController : IDisposable
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public MaterialsController()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Conversion of DB model class to base class
|
||||
/// </summary>
|
||||
/// <param name="coreMat"></param>
|
||||
/// <returns></returns>
|
||||
public static Core.MaterialM ConvToCore(MaterialModel dbRec)
|
||||
{
|
||||
Core.MaterialM answ = new Core.MaterialM(dbRec.MatId, (double)dbRec.WMm, (double)dbRec.HMm, (double)dbRec.LMm, dbRec.MatCode);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a DTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public static MaterialDTO ConvToDto(MaterialModel currRec)
|
||||
{
|
||||
MaterialDTO answ = new MaterialDTO()
|
||||
{
|
||||
MatCloudId = currRec.MatCloudId,
|
||||
MatLocalId = currRec.MatId,
|
||||
MatCode = currRec.MatCode,
|
||||
MatDesc = currRec.MatDesc,
|
||||
HMm = currRec.HMm,
|
||||
LMm = currRec.LMm,
|
||||
WMm = currRec.WMm
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione da DTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public static MaterialModel ConvToModel(MaterialDTO currRec)
|
||||
{
|
||||
MaterialModel answ = new MaterialModel()
|
||||
{
|
||||
MatCloudId = currRec.MatCloudId,
|
||||
MatId = currRec.MatLocalId,
|
||||
MatCode = currRec.MatCode,
|
||||
MatDesc = currRec.MatDesc,
|
||||
HMm = currRec.HMm,
|
||||
LMm = currRec.LMm,
|
||||
WMm = currRec.WMm
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Conversion of base class to DB model class
|
||||
/// </summary>
|
||||
/// <param name="coreRec"></param>
|
||||
/// <returns></returns>
|
||||
public static MaterialModel ConvToModel(Core.MaterialM coreRec)
|
||||
{
|
||||
MaterialModel answ = new MaterialModel();
|
||||
if (coreRec != null)
|
||||
{
|
||||
answ = new MaterialModel()
|
||||
{
|
||||
MatId = coreRec.nId,
|
||||
MatCode = coreRec.sMaterial,
|
||||
HMm = (decimal)coreRec.dH,
|
||||
LMm = (decimal)coreRec.dL,
|
||||
WMm = (decimal)coreRec.dW,
|
||||
};
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete by key
|
||||
/// </summary>
|
||||
/// <param name="MatId"></param>
|
||||
/// <returns></returns>
|
||||
public bool DeleteByKey(int MatId)
|
||||
{
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var items2del = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => x.MatId == MatId);
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.MaterialsList.RemoveRange(items2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Materials.DeleteByKey: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by Key
|
||||
/// </summary>
|
||||
/// <param name="MatId"></param>
|
||||
/// <returns></returns>
|
||||
public Core.MaterialM FindByDbId(int MatId)
|
||||
{
|
||||
Core.MaterialM result = new Core.MaterialM(0, 0, 0, "NONE");
|
||||
var rawData = FindByDbIdModel(MatId);
|
||||
if (rawData != null)
|
||||
{
|
||||
result = ConvToCore(rawData);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by Key in formato Model
|
||||
/// </summary>
|
||||
/// <param name="MatId"></param>
|
||||
/// <returns></returns>
|
||||
public MaterialModel FindByDbIdModel(int MatId)
|
||||
{
|
||||
MaterialModel result = new MaterialModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
result = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => x.MatId == MatId)
|
||||
.SingleOrDefault();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Material (filtro x MatId) in formato Core
|
||||
/// </summary>
|
||||
/// <param name="MatCode">se "" restituisce tutti</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.MaterialM> GetFilt(string MatCode)
|
||||
{
|
||||
// recupero e converto
|
||||
List<Core.MaterialM> result = new List<Core.MaterialM>();
|
||||
var rawData = GetFiltModel(MatCode);
|
||||
if (rawData != null)
|
||||
{
|
||||
result = rawData.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Material (filtro x MatId) in formato Model
|
||||
/// </summary>
|
||||
/// <param name="MatCode">se "" restituisce tutti</param>
|
||||
/// <returns></returns>
|
||||
public List<MaterialModel> GetFiltModel(string MatCode)
|
||||
{
|
||||
List<MaterialModel> result = new List<MaterialModel>();
|
||||
// retrieve
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
result = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => string.IsNullOrEmpty(MatCode) || x.MatCode == MatCode)
|
||||
.OrderBy(x => x.MatDesc)
|
||||
.ToList();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert Material record from CoreM if missing or return existing (for Id)
|
||||
/// </summary>
|
||||
/// <param name="coreItem"></param>
|
||||
/// <returns>MatId (existing or new)</returns>
|
||||
public int Insert(Core.MaterialM coreItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
// converto
|
||||
MaterialModel updItem = ConvToModel(coreItem);
|
||||
newIdx = Insert(updItem);
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert Material record
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns>MatId (existing or new)</returns>
|
||||
public int Insert(MaterialModel updItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => (updItem.MatId > 0 && x.MatId == updItem.MatId)
|
||||
|| (updItem.MatCloudId > 0 && x.MatCloudId == updItem.MatCloudId)
|
||||
|| (x.MatCode == updItem.MatCode && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm))
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
newIdx = item2update.MatId;
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.MaterialsList.Add(updItem);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
newIdx = updItem.MatId;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Materials.Insert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il primo materiale (se esiste) per MatCode (diretto o tramite Alias)
|
||||
/// </summary>
|
||||
/// <param name="MatCode">Non accetta ""</param>
|
||||
/// <returns></returns>
|
||||
public SearchResult SearchFilt(string MatCode)
|
||||
{
|
||||
// init valori esito ricerca + risultato
|
||||
TypeFound esito = string.IsNullOrEmpty(MatCode) ? TypeFound.MISSING_CODE : TypeFound.NOT_FOUND;
|
||||
List<Core.MaterialM> result = new List<Core.MaterialM>();
|
||||
// solo se ho una VERA ricerca x MatCode
|
||||
if (!string.IsNullOrEmpty(MatCode))
|
||||
{
|
||||
// cerco nei materiali
|
||||
var rawData = GetFiltModel(MatCode);
|
||||
if (rawData != null && rawData.Count > 0)
|
||||
{
|
||||
// ...e converto
|
||||
result = rawData.Select(x => ConvToCore(x)).ToList();
|
||||
esito = TypeFound.MATERIAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// cerco negli alias...
|
||||
using (AliasController aliasDbContr = new AliasController())
|
||||
{
|
||||
var aliasRec = aliasDbContr.FindByDbId(MatCode);
|
||||
if (aliasRec != null)
|
||||
{
|
||||
rawData = GetFiltModel(aliasRec.ValueAlias);
|
||||
if (rawData != null && rawData.Count > 0)
|
||||
{
|
||||
// ...e converto
|
||||
result = rawData.Select(x => ConvToCore(x)).ToList();
|
||||
esito = TypeFound.ALIAS;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// compongo risposta!
|
||||
SearchResult answ = new SearchResult()
|
||||
{
|
||||
Tipo = esito,
|
||||
Result = result
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update Material record from CoreM
|
||||
/// </summary>
|
||||
/// <param name="coreItem"></param>
|
||||
/// <returns>Returns 0 if not found</returns>
|
||||
public int Update(Core.MaterialM coreItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
// converto
|
||||
MaterialModel updItem = ConvToModel(coreItem);
|
||||
newIdx = Update(updItem);
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update Material record
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns>Returns 0 if not found</returns>
|
||||
public int Update(MaterialModel updItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => (updItem.MatId > 0 && x.MatId == updItem.MatId)
|
||||
|| (updItem.MatCloudId > 0 && x.MatCloudId == updItem.MatCloudId)
|
||||
|| (x.MatCode == updItem.MatCode && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm))
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
//// update, vers 1...
|
||||
//localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
item2update.MatCloudId = updItem.MatCloudId;
|
||||
item2update.MatDesc = updItem.MatDesc;
|
||||
localDbCtx.Entry(item2update).State = System.Data.Entity.EntityState.Modified;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
newIdx = item2update.MatId;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Materials.Update: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upsert Material record
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns>MatId (existing or new)</returns>
|
||||
public int Upsert(MaterialModel updItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.MaterialsList
|
||||
.Where(x => (updItem.MatId > 0 && x.MatId == updItem.MatId)
|
||||
|| (updItem.MatCloudId > 0 && x.MatCloudId == updItem.MatCloudId)
|
||||
|| (x.MatCode == updItem.MatCode && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm))
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
//// update, vers 1...
|
||||
//localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
item2update.MatCloudId = updItem.MatCloudId;
|
||||
item2update.MatDesc = updItem.MatDesc;
|
||||
localDbCtx.Entry(item2update).State = System.Data.Entity.EntityState.Modified;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
newIdx = item2update.MatId;
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.MaterialsList.Add(updItem);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
newIdx = updItem.MatId;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on Materials.Insert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Public Classes
|
||||
|
||||
/// <summary>
|
||||
/// Risultato ricerca materiali
|
||||
/// </summary>
|
||||
public class SearchResult
|
||||
{
|
||||
#region Public Enums
|
||||
|
||||
/// <summary>
|
||||
/// Enum del risultato della ricerca materiali
|
||||
/// </summary>
|
||||
public enum TypeFound
|
||||
{
|
||||
MISSING_CODE = 0,
|
||||
NOT_FOUND,
|
||||
ALIAS,
|
||||
MATERIAL
|
||||
}
|
||||
|
||||
#endregion Public Enums
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// Materiali trovati
|
||||
/// </summary>
|
||||
public List<Core.MaterialM> Result { get; set; } = new List<Core.MaterialM>();
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia oggetto trovato
|
||||
/// </summary>
|
||||
public TypeFound Tipo { get; set; } = TypeFound.MISSING_CODE;
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
#endregion Public Classes
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Istanza logger
|
||||
/// </summary>
|
||||
private NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using static EgtBEAMWALL.Core.ConstBeam;
|
||||
|
||||
@@ -57,6 +59,75 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
return done;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a ProjectDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec">record in formato ProdModel</param>
|
||||
/// <returns></returns>
|
||||
public static ProjectDTO ConvToDto(ProdModel currRec)
|
||||
{
|
||||
// ho valori mancanti che saranno calcolati dal cloud e valori messi a zero di default
|
||||
ProjectDTO answ = new ProjectDTO()
|
||||
{
|
||||
ProjCloudId = currRec.ProjCloudId,
|
||||
ProjLocalId = currRec.ProdDbId,
|
||||
ProjExtId = currRec.ProdId,
|
||||
// è calcolato sul cloud, da token --> machine ID
|
||||
MachineCloudId = 0,
|
||||
// è calcolato sul cloud, da token --> KeyNum
|
||||
KeyNum = 0,
|
||||
// disponibile solo su PROJ
|
||||
BTLFileName = "",
|
||||
PType = (EgwProxy.MagMan.BWType)currRec.PType,
|
||||
Machine = currRec.Machine,
|
||||
ProjDescription = currRec.Description,
|
||||
DtCreated = currRec.DtCreated,
|
||||
DtLastAction = DateTime.MinValue,
|
||||
DtSchedule = DateTime.MinValue,
|
||||
DtStartProd = DateTime.MinValue,
|
||||
// disponibile solo su PROJ
|
||||
ListName = "",
|
||||
ProcTimeEst = 0,
|
||||
ProcTimeReal = 0,
|
||||
IsActive = currRec.IsActive,
|
||||
IsArchived = currRec.IsArchived
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Helper conversione modelli verso Core.ProdItem
|
||||
/// </summary>
|
||||
/// <param name="currProd"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProdItem ConvToCore(ProdModel currProd)
|
||||
{
|
||||
Core.ProdItem answ = Core.ProdItem.CreateProdItem(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive, j.ProjCloudId)).ToList());
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione modelli verso Core.ProdItem
|
||||
/// </summary>
|
||||
/// <param name="currProd"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProdItem ConvToCore(ProjModel currProj)
|
||||
{
|
||||
Core.ProdItem answ = Core.ProdItem.CreateProdItem(Core.ProjFileM.CreateProjFileM(currProj.ProjId, 0, currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine, currProj.IsActive, currProj.IsActive, currProj.ProjCloudId));
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione modelli
|
||||
/// </summary>
|
||||
/// <param name="currProd"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProdFileM ConvToCoreFile(ProdModel currProd)
|
||||
{
|
||||
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjCloudId);
|
||||
//Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProdId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList());
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete Prod(+proj...) logically / on DB by ProdId
|
||||
/// </summary>
|
||||
@@ -202,17 +273,17 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived);
|
||||
return Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjCloudId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="NumRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdFileM> GetLastDesc(int numRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
public List<Core.ProdFileM> GetLastDesc(int NumRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
{
|
||||
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
|
||||
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
|
||||
@@ -220,9 +291,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
if (NumRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProdList.Count();
|
||||
NumRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResult = localDbCtx
|
||||
@@ -235,25 +306,25 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
(p, e) => p)
|
||||
.Distinct()
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(numRecord)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// conversione
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived)).ToList();
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjCloudId)).ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="dtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="dtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="DtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="DtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="NumRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdFileM> GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
public List<Core.ProdFileM> GetLastDesc(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
{
|
||||
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
|
||||
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
|
||||
@@ -261,14 +332,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
if (NumRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProdList.Count();
|
||||
NumRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResult = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived))
|
||||
.Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
|
||||
p => p.ProdDbId,
|
||||
@@ -276,12 +347,189 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
(p, e) => p)
|
||||
.Distinct()
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(numRecord)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// conversione
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived)).ToList();
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjCloudId)).ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="NumRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdItem> GetLastDescFull(int NumRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
{
|
||||
List<Core.ProdItem> result = new List<Core.ProdItem>();
|
||||
// elenco prod completi
|
||||
List<ProdModel> dbResultProd = new List<ProdModel>();
|
||||
// elenco proj "orfani"
|
||||
List<ProjModel> dbResultProj = new List<ProjModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (NumRecord == 0)
|
||||
{
|
||||
NumRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// recupero PROD + proj relativi
|
||||
dbResultProd = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => (!x.IsArchived || ShowArchived))
|
||||
//.Include(j => j.)
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
|
||||
p => p.ProdDbId,
|
||||
e => e.ProdDbId,
|
||||
(p, e) => p)
|
||||
.Distinct()
|
||||
.Include(j => j.ProjListNav)
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
|
||||
// recupero i proj "orfani"
|
||||
dbResultProj = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null)
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// conversione
|
||||
result = dbResultProd.Select(x => ConvToCore(x)).ToList();
|
||||
var resProj = dbResultProj.Select(x => ConvToCore(x)).ToList();
|
||||
// sommo i risultati
|
||||
result.AddRange(resProj);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="DtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="DtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="NumRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
|
||||
{
|
||||
List<Core.ProdItem> result = new List<Core.ProdItem>();
|
||||
// elenco prod completi
|
||||
List<ProdModel> dbResultProd = new List<ProdModel>();
|
||||
// elenco proj "orfani"
|
||||
List<ProjModel> dbResultProj = new List<ProjModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (NumRecord == 0)
|
||||
{
|
||||
NumRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResultProd = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
|
||||
p => p.ProdDbId,
|
||||
e => e.ProdDbId,
|
||||
(p, e) => p)
|
||||
.Distinct()
|
||||
.Include(j => j.ProjListNav)
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
|
||||
// recupero i proj "orfani"
|
||||
dbResultProj = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd))
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
}
|
||||
// conversione
|
||||
result = dbResultProd.Select(x => ConvToCore(x)).ToList();
|
||||
var resProj = dbResultProj.Select(x => ConvToCore(x)).ToList();
|
||||
// sommo i risultati
|
||||
result.AddRange(resProj);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="DtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="DtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="DtIsCreation">Ture: usa data creazione / False: usa data export</param>
|
||||
/// <param name="NumRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="Machine">Nome Macchina (default vuoto = non usato)</param>
|
||||
/// <param name="BtlFileName">Nome file BTL (default vuoto = non usato)</param>
|
||||
/// <param name="ListName">Nome List (default vuoto = non usato)</param>
|
||||
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, bool DtIsCreation, int NumRecord, bool OnlyActive, string Machine = "", string BtlFileName = "", string ListName = "", bool ShowArchived = false)
|
||||
{
|
||||
List<Core.ProdItem> result = new List<Core.ProdItem>();
|
||||
List<ProdModel> dbResultProd = new List<ProdModel>();
|
||||
// elenco proj "orfani"
|
||||
List<ProjModel> dbResultProj = new List<ProjModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (NumRecord == 0)
|
||||
{
|
||||
NumRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResultProd = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => (!x.IsArchived || ShowArchived))
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x =>
|
||||
(x.IsActive || !OnlyActive)
|
||||
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
|
||||
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains(BtlFileName.ToLower()))
|
||||
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
|
||||
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd)))
|
||||
),
|
||||
p => p.ProdDbId,
|
||||
e => e.ProdDbId,
|
||||
(p, e) => p)
|
||||
.Distinct()
|
||||
.Include(j => j.ProjListNav)
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
|
||||
// recupero i proj "orfani"
|
||||
dbResultProj = localDbCtx
|
||||
.ProjList
|
||||
.Where(x =>
|
||||
(x.IsActive || !OnlyActive)
|
||||
&& x.Prod == null
|
||||
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
|
||||
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains(BtlFileName.ToLower()))
|
||||
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
|
||||
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd))))
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(NumRecord)
|
||||
.ToList();
|
||||
}
|
||||
// conversione
|
||||
result = dbResultProd.Select(x => ConvToCore(x)).ToList();
|
||||
var resProj = dbResultProj.Select(x => ConvToCore(x)).ToList();
|
||||
// sommo i risultati
|
||||
result.AddRange(resProj);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -538,6 +786,64 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update record su DB x ProjectCloudId
|
||||
/// </summary>
|
||||
/// <param name="ProdId"></param>
|
||||
/// <param name="Description"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProdFileM UpdateCloudId(int ProdId, int ProjCloudId)
|
||||
{
|
||||
// cerco specifico Proj
|
||||
ProdModel currData;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.SingleOrDefault();
|
||||
if (currData != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.ProjCloudId = ProjCloudId;
|
||||
|
||||
// salvo record PROD
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// cerco se ci siano prod colelgati ed aggiorno pure loro...
|
||||
var projList = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProdDbId == currData.ProdDbId)
|
||||
.ToList();
|
||||
if (projList != null)
|
||||
{
|
||||
foreach (var item in projList)
|
||||
{
|
||||
item.ProjCloudId = ProjCloudId;
|
||||
}
|
||||
// salvo modifihce ai PROJ
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.UpdateCloudId:{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Prod.UpdateCloudId: req item was not found | ProdId {ProdId} | ProjCloudId {ProjCloudId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return ConvToCoreFile(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update record su DB x Description
|
||||
/// </summary>
|
||||
@@ -807,7 +1113,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
return ConvToCoreFile(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -829,7 +1135,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.SingleOrDefault();
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
// aggiorno valore tipo
|
||||
currData.PType = PType;
|
||||
|
||||
// Commit changes
|
||||
@@ -849,7 +1155,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
return ConvToCoreFile(currData);
|
||||
}
|
||||
|
||||
/// <summary> Return User Code/Key that Locks by ProdId (proj & prod) </summary> <param
|
||||
@@ -902,17 +1208,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione modelli
|
||||
/// </summary>
|
||||
/// <param name="currProd"></param>
|
||||
/// <returns></returns>
|
||||
protected Core.ProdFileM coreConv(ProdModel currProd)
|
||||
{
|
||||
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived);
|
||||
return answ;
|
||||
}
|
||||
|
||||
protected List<int> ProjIdByProd(int ProdId)
|
||||
{
|
||||
var ProjCtr = new ProjController();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -19,6 +20,72 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a ProjectDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec">record in formato ProjModel</param>
|
||||
/// <returns></returns>
|
||||
public static ProjectDTO ConvToDto(ProjModel currRec)
|
||||
{
|
||||
// ho valori mancanti che saranno calcolati dal cloud e valori messi a zero di default
|
||||
ProjectDTO answ = new ProjectDTO()
|
||||
{
|
||||
ProjCloudId = currRec.ProjCloudId,
|
||||
ProjLocalId = currRec.ProjDbId,
|
||||
ProjExtId = currRec.ProjId,
|
||||
// è calcolato sul cloud, da token --> machine ID
|
||||
MachineCloudId = 0,
|
||||
// è calcolato sul cloud, da token --> KeyNum
|
||||
KeyNum = 0,
|
||||
BTLFileName = currRec.BTLFileName,
|
||||
PType = (EgwProxy.MagMan.BWType)currRec.PType,
|
||||
Machine = currRec.Machine,
|
||||
ProjDescription = currRec.ProjDescription,
|
||||
DtCreated = currRec.DtCreated,
|
||||
DtLastAction = DateTime.MinValue,
|
||||
DtSchedule = DateTime.MinValue,
|
||||
DtStartProd = DateTime.MinValue,
|
||||
ListName = currRec.ListName,
|
||||
ProcTimeEst = 0,
|
||||
ProcTimeReal = 0,
|
||||
IsActive = currRec.IsActive,
|
||||
IsArchived = currRec.IsArchived
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a ProjModel
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <param name="isActive"></param>
|
||||
/// <returns></returns>
|
||||
public static ProjModel ConvToModel(ProjectDTO currRec, bool isActive)
|
||||
{
|
||||
ProjModel answ = new ProjModel()
|
||||
{
|
||||
ProjCloudId = currRec.ProjCloudId,
|
||||
ProjDbId = currRec.ProjLocalId,
|
||||
ProjId = currRec.ProjExtId,
|
||||
//MachineID = currRec.MachineCloudId,
|
||||
//KeyNum = currRec.KeyNum,
|
||||
BTLFileName = currRec.BTLFileName,
|
||||
PType = (BWType)currRec.PType,
|
||||
Machine = currRec.Machine,
|
||||
ProjDescription = currRec.ProjDescription,
|
||||
DtCreated = currRec.DtCreated,
|
||||
//DtLastAction = currRec.DtLastAction,
|
||||
//DtSchedule = currRec.DtSchedule,
|
||||
//DtStartProd = currRec.DtStartProd,
|
||||
ListName = currRec.ListName,
|
||||
//ProcTimeEst = currRec.ProcTimeEst,
|
||||
//ProcTimeReal = currRec.ProcTimeReal,
|
||||
IsActive = currRec.IsActive,
|
||||
IsArchived = currRec.IsArchived
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Search for already imported BTL from FileName (only)
|
||||
/// =0 : NOT found >0 : ProjId (already present) for overwrite
|
||||
@@ -33,6 +100,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
var dbResult = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.BTLFileName == BTLFileName)
|
||||
//valutare se usare solo attivi...
|
||||
//.Where(x => x.BTLFileName == BTLFileName && x.IsActive == true)
|
||||
.FirstOrDefault();
|
||||
|
||||
//se avesse trovato-- > riporto id...
|
||||
@@ -44,6 +113,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione modelli
|
||||
/// </summary>
|
||||
/// <param name="currRec">record in formato ProjModel</param>
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM ConvToCore(ProjModel currRec)
|
||||
{
|
||||
Core.ProjFileM answ = null;
|
||||
if (currRec != null)
|
||||
{
|
||||
answ = Core.ProjFileM.CreateProjFileM(currRec.ProjId, ProdIdByProdDbId(currRec.ProdDbId), currRec.DtCreated, currRec.DtExported, currRec.ListName, currRec.BTLFileName, currRec.ProjDescription, currRec.IsNew, currRec.Locked, currRec.PType, currRec.Machine, currRec.IsActive, currRec.IsArchived, currRec.ProjCloudId);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete Proj logically / on DB by ProjId
|
||||
/// </summary>
|
||||
@@ -196,7 +280,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM FindByProjIdConv(int ProjId)
|
||||
{
|
||||
return coreConv(FindByProjId(ProjId));
|
||||
return ConvToCore(FindByProjId(ProjId));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -234,7 +318,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.OrderBy(x => x.ProdDbId)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
answ = dbRes.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -274,7 +358,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.OrderByDescending(x => x.ProdDbId)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
answ = dbRes.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -327,7 +411,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
answ = dbRes.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -358,7 +442,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
answ = dbRes.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -391,7 +475,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
answ = dbRes.Select(x => ConvToCore(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -497,7 +581,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// salvataggio
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
return coreConv(currProj);
|
||||
return ConvToCore(currProj);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -527,7 +611,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
currProj.IsNew = false;
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
return coreConv(currProj);
|
||||
return ConvToCore(currProj);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -581,7 +665,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// Update record su DB x elenco BTLParts
|
||||
/// </summary>
|
||||
/// <param name="ProjId"></param>
|
||||
/// <param name="newBTLFileName"></param>
|
||||
/// <param name="BtlPartList"></param>
|
||||
/// <returns></returns>
|
||||
public ProjModel UpdateBtlParts(int ProjId, List<Core.BTLPartM> BtlPartList)
|
||||
{
|
||||
@@ -710,7 +794,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
return coreConv(currData);
|
||||
return ConvToCore(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -801,7 +885,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
return coreConv(currData);
|
||||
return ConvToCore(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -843,7 +927,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
return ConvToCore(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -886,28 +970,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
return ConvToCore(currData);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione modelli
|
||||
/// </summary>
|
||||
/// <param name="currProj"></param>
|
||||
/// <returns></returns>
|
||||
protected Core.ProjFileM coreConv(ProjModel currProj)
|
||||
{
|
||||
Core.ProjFileM answ = null;
|
||||
if (currProj != null)
|
||||
{
|
||||
answ = Core.ProjFileM.CreateProjFileM(currProj.ProjId, ProdIdByProdDbId(currProj.ProdDbId), currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine, currProj.IsActive, currProj.IsArchived);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get LAST paginated data from DB (DESC ordered)
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,352 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using EgwProxy.MagMan.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Gestione RawItem (barre) su DB (= magazzino locale)
|
||||
/// </summary>
|
||||
public class RawItemsController : IDisposable
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public RawItemsController()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversion da DB model class a base class (VB)
|
||||
/// </summary>
|
||||
/// <param name="dbRec"></param>
|
||||
/// <returns></returns>
|
||||
public static Core.RawPartM ConvToCore(RawItemModel dbRec)
|
||||
{
|
||||
// converto in primis il materiale relativo
|
||||
Core.MaterialM matRec = MaterialsController.ConvToCore(dbRec.MaterialNav);
|
||||
Core.RawPartM answ = new Core.RawPartM(dbRec.RawItemId, matRec, (double)dbRec.WMm, (double)dbRec.LMm, dbRec.QtyAvail, dbRec.UseQty, dbRec.IsActive);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a ItemDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public static ItemDTO ConvToItemDto(RawItemModel currRec)
|
||||
{
|
||||
ItemDTO answ = new ItemDTO()
|
||||
{
|
||||
MatCloudId = currRec.MaterialNav != null ? currRec.MaterialNav.MatCloudId : 0,
|
||||
MatLocalId = currRec.MatId,
|
||||
RawItemCloudId = currRec.RawItemCloudId,
|
||||
RawItemLocalId = currRec.RawItemId,
|
||||
IsRemn = currRec.IsRemn,
|
||||
QtyAvail = currRec.QtyAvail,
|
||||
HMm = currRec.HMm,
|
||||
LMm = currRec.LMm,
|
||||
WMm = currRec.WMm,
|
||||
Note = currRec.Note
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione da ItemDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <param name="isActive"></param>
|
||||
/// <returns></returns>
|
||||
public static RawItemModel ConvToModel(ItemDTO currRec, bool isActive)
|
||||
{
|
||||
RawItemModel answ = new RawItemModel()
|
||||
{
|
||||
RawItemCloudId = currRec.RawItemCloudId,
|
||||
RawItemId = currRec.RawItemLocalId,
|
||||
QtyAvail = currRec.QtyAvail,
|
||||
HMm = currRec.HMm,
|
||||
LMm = currRec.LMm,
|
||||
WMm = currRec.WMm,
|
||||
MatId = currRec.MatLocalId,
|
||||
IsRemn = currRec.IsRemn,
|
||||
IsActive = isActive,
|
||||
UseQty = true,
|
||||
Note = currRec.Note
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione da ResourceExpDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <param name="matLocalId"></param>
|
||||
/// <returns></returns>
|
||||
public static RawItemModel ConvToModel(ResourceExpDTO currRec, int matLocalId)
|
||||
{
|
||||
RawItemModel answ = new RawItemModel()
|
||||
{
|
||||
RawItemCloudId = currRec.RawItemCloudId,
|
||||
RawItemId = currRec.RawItemLocalId,
|
||||
QtyAvail = currRec.Qty,
|
||||
HMm = currRec.HMm,
|
||||
LMm = currRec.LMm,
|
||||
WMm = currRec.WMm,
|
||||
MatId = matLocalId,
|
||||
IsRemn = currRec.IsRemn,
|
||||
IsActive = currRec.IsActive,
|
||||
UseQty = true,
|
||||
Note = currRec.Note
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Conversion of base class to DB model class
|
||||
/// </summary>
|
||||
/// <param name="coreRec"></param>
|
||||
/// <returns></returns>
|
||||
public static RawItemModel ConvToModel(Core.RawPartM coreRec)
|
||||
{
|
||||
RawItemModel answ = new RawItemModel();
|
||||
if (coreRec != null)
|
||||
{
|
||||
answ = new RawItemModel()
|
||||
{
|
||||
RawItemId = coreRec.nId,
|
||||
MatId = coreRec.Material.nId,
|
||||
HMm = (decimal)coreRec.Material.dH,
|
||||
LMm = (decimal)coreRec.dL,
|
||||
WMm = coreRec.dW > 0 ? (decimal)coreRec.dW : (decimal)coreRec.Material.dW,
|
||||
IsActive = coreRec.bActive,
|
||||
UseQty = coreRec.bUseQuantity,
|
||||
QtyAvail = coreRec.nQuantity
|
||||
};
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper conversione a ResourceDTO
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public static ResourceDTO ConvToResDto(RawItemModel currRec)
|
||||
{
|
||||
ResourceDTO answ = new ResourceDTO()
|
||||
{
|
||||
RawItemCloudId = currRec.RawItemCloudId,
|
||||
RawItemLocalId = currRec.RawItemId,
|
||||
Qty = currRec.QtyAvail
|
||||
};
|
||||
return answ;
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// Helper conversione a ResourceDTO con garanzia valori Qty negativi
|
||||
///// </summary>
|
||||
///// <param name="currRec"></param>
|
||||
///// <returns></returns>
|
||||
//public static ResourceDTO ConvToResDtoNeg(RawItemModel currRec)
|
||||
//{
|
||||
// ResourceDTO answ = new ResourceDTO()
|
||||
// {
|
||||
// RawItemCloudId = currRec.RawItemCloudId,
|
||||
// RawItemLocalId = currRec.RawItemId,
|
||||
// Qty = -Math.Abs(currRec.QtyAvail)
|
||||
// };
|
||||
// return answ;
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Delete by key
|
||||
/// </summary>
|
||||
/// <param name="RawItemId"></param>
|
||||
/// <returns></returns>
|
||||
public bool DeleteByKey(int RawItemId)
|
||||
{
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var items2del = localDbCtx
|
||||
.RawItemList
|
||||
.Where(x => x.RawItemId == RawItemId);
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.RawItemList.RemoveRange(items2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on RawItems.DeleteByKey: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by Key / Core
|
||||
/// </summary>
|
||||
/// <param name="RawItemId"></param>
|
||||
/// <returns></returns>
|
||||
public Core.RawPartM FindByDbId(int RawItemId)
|
||||
{
|
||||
var rawdata = FindByDbIdModel(RawItemId);
|
||||
var result = ConvToCore(rawdata);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by Key / Db Model
|
||||
/// </summary>
|
||||
/// <param name="RawItemId"></param>
|
||||
/// <returns></returns>
|
||||
public RawItemModel FindByDbIdModel(int RawItemId)
|
||||
{
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
return localDbCtx
|
||||
.RawItemList
|
||||
.Where(x => x.RawItemId == RawItemId)
|
||||
.Include(m => m.MaterialNav)
|
||||
.SingleOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Material (filtro x MatId) / Core
|
||||
/// </summary>
|
||||
/// <param name="MatId">0 = tutti</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.RawPartM> GetFilt(int MatId)
|
||||
{
|
||||
var rawList = GetFiltModel(MatId);
|
||||
var result = rawList.Select(x => ConvToCore(x)).ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Material (filtro x MatId)
|
||||
/// </summary>
|
||||
/// <param name="MatId">0 = tutti</param>
|
||||
/// <returns></returns>
|
||||
public List<RawItemModel> GetFiltModel(int MatId)
|
||||
{
|
||||
// retrieve
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
return localDbCtx
|
||||
.RawItemList
|
||||
.Include(j => j.MaterialNav)
|
||||
.Where(x => MatId == 0 || x.MatId == MatId)
|
||||
.OrderBy(x => x.LMm)
|
||||
.ThenBy(x => x.WMm)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert RawItem record
|
||||
/// </summary>
|
||||
/// <param name="updItem">Recorda da registrare</param>
|
||||
/// <param name="changeUseQty">Indica se, in caso di modifica, vada aggiornato UseQty</param>
|
||||
/// <param name="changeQtyAvail">Indica se, in caso di modifica, vada aggiornato QtyAvail</param>
|
||||
/// <returns></returns>
|
||||
public int Upsert(RawItemModel updItem, bool changeUseQty, bool changeQtyAvail)
|
||||
{
|
||||
int newIdx = 0;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
try
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.RawItemList
|
||||
.Where(x => (updItem.RawItemId > 0 && x.RawItemId == updItem.RawItemId)
|
||||
|| (x.MatId == updItem.MatId && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm))
|
||||
.SingleOrDefault();
|
||||
|
||||
if (item2update != null)
|
||||
{
|
||||
//// update, vers 1...
|
||||
//localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);\
|
||||
item2update.RawItemCloudId = updItem.RawItemCloudId;
|
||||
item2update.HMm = updItem.HMm;
|
||||
item2update.LMm = updItem.LMm;
|
||||
item2update.WMm = updItem.WMm;
|
||||
item2update.IsActive = updItem.IsActive;
|
||||
item2update.IsRemn = updItem.IsRemn;
|
||||
if (changeUseQty)
|
||||
{
|
||||
item2update.UseQty = updItem.UseQty;
|
||||
}
|
||||
if (changeQtyAvail)
|
||||
{
|
||||
item2update.QtyAvail = updItem.QtyAvail;
|
||||
item2update.LastSync = DateTime.Now;
|
||||
}
|
||||
localDbCtx.Entry(item2update).State = EntityState.Modified;
|
||||
}
|
||||
else
|
||||
{
|
||||
localDbCtx.RawItemList.Add(updItem);
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
if (item2update != null)
|
||||
{
|
||||
newIdx = item2update.RawItemId;
|
||||
}
|
||||
else
|
||||
{
|
||||
newIdx = updItem.RawItemId;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"EXCEPTION on RawItems.Upsert: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update or insert RawItem record from CoreM
|
||||
/// </summary>
|
||||
/// <param name="coreItem"></param>
|
||||
/// <returns></returns>
|
||||
public int Upsert(Core.RawPartM coreItem)
|
||||
{
|
||||
int newIdx = 0;
|
||||
// converto
|
||||
RawItemModel updItem = ConvToModel(coreItem);
|
||||
newIdx = Upsert(updItem, true, true);
|
||||
return newIdx;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Istanza logger
|
||||
/// </summary>
|
||||
private NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -80,6 +80,26 @@ namespace EgtBEAMWALL.DataLayer
|
||||
/// </summary>
|
||||
public DbSet<StatusMapModel> StatusMapList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Wharehouse materials management
|
||||
/// </summary>
|
||||
public DbSet<MaterialModel> MaterialsList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Wharehouse items management
|
||||
/// </summary>
|
||||
public DbSet<RawItemModel> RawItemList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Alias management
|
||||
/// </summary>
|
||||
public DbSet<AliasModel> AliasList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Alias management
|
||||
/// </summary>
|
||||
public DbSet<MagmanSyncModel> SyncList { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
[Table("AliasList")]
|
||||
public class AliasModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Famiglia di sinonimi
|
||||
/// </summary>
|
||||
[Column("Family", Order = 1), Key]
|
||||
public string Family { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Codice originale (da trasformare)
|
||||
/// </summary>
|
||||
[Column("ValueOriginal", Order = 2), Key]
|
||||
public string ValueOriginal { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Codice Alias in cui viene convertito
|
||||
/// </summary>
|
||||
public string ValueAlias { get; set; } = "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
[Table("MagmanSync")]
|
||||
public partial class MagmanSyncModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Primary Key AUTO
|
||||
/// </summary>
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int SyncId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia Sync
|
||||
/// </summary>
|
||||
public string SyncType { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Id riferimento remoto cloud x invio (es ProjCloudId)
|
||||
/// </summary>
|
||||
public int CloudId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// DataOra inserimento richiesta
|
||||
/// </summary>
|
||||
public DateTime DtReq { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// DataOra esecuzione richiesta
|
||||
/// </summary>
|
||||
public DateTime? DtExe { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Payload trasmesso/da trasmettere (serializzato)
|
||||
/// </summary>
|
||||
public string Payload { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Record inviato se DtExe != null && >= dtReq
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public bool Sent
|
||||
{
|
||||
get => DtExe != null && DtExe > DtReq;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
[Table("MaterialsList")]
|
||||
public partial class MaterialModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Init classe
|
||||
/// </summary>
|
||||
public MaterialModel()
|
||||
{
|
||||
RawItemList = new HashSet<RawItemModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Primary Key AUTO
|
||||
/// </summary>
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int MatId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codice materiale (Identificativo DB esterno del magazzino in sync)
|
||||
/// </summary>
|
||||
public int MatCloudId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Codice Materiale
|
||||
/// </summary>
|
||||
public string MatCode { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Descrizione Materiale
|
||||
/// </summary>
|
||||
public string MatDesc { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Lenght/Lunghezza in mm
|
||||
/// </summary>
|
||||
public decimal LMm { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Width/Larghezza in mm
|
||||
/// </summary>
|
||||
public decimal WMm { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Height (Thikness/Spessore) in mm
|
||||
/// </summary>
|
||||
public decimal HMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// ID dell'ultimo articolo (variante) usato per il materiale
|
||||
/// </summary>
|
||||
public int RawItemIdLast { get; set; } = 0;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Lenght/Lunghezza in inch
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public decimal LIn
|
||||
{
|
||||
get => Math.Round(LMm / (decimal)25.4, 3);
|
||||
}
|
||||
/// <summary>
|
||||
/// Width/Larghezza in inch
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public decimal WIn
|
||||
{
|
||||
get => Math.Round(WMm / (decimal)25.4, 3);
|
||||
}
|
||||
/// <summary>
|
||||
/// Height/Altezza (Thikness/Spessore) in inch
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public decimal HIn
|
||||
{
|
||||
get => Math.Round(HMm / (decimal)25.4, 3);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Codice materiale x QR/Datamatrix
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public string MatDtmx
|
||||
{
|
||||
get => $"MT{MatExtId:00000000}";
|
||||
}
|
||||
#endif
|
||||
/// <summary>
|
||||
/// Verifica che sia Beam, quando L == 0
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public bool IsBeam
|
||||
{
|
||||
get => (LMm == 0 && (HMm > 0 && WMm > 0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica che sia Wall, quando W/L == 0
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public bool IsWall
|
||||
{
|
||||
get => (LMm == 0 && WMm == 0);
|
||||
}
|
||||
|
||||
public virtual ICollection<RawItemModel> RawItemList { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using static EgtBEAMWALL.Core.ConstBeam;
|
||||
@@ -19,6 +17,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public ProdModel()
|
||||
{
|
||||
ProjListNav = new HashSet<ProjModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiave univoca DB
|
||||
/// </summary>
|
||||
@@ -54,6 +57,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Index]
|
||||
public int ProdId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codice Proj per sync info (Identificativo DB esterno del magazzino in sync)
|
||||
/// </summary>
|
||||
public int ProjCloudId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia del progetto (Travi, Pareti, ...)
|
||||
/// </summary>
|
||||
@@ -98,6 +106,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Column("IsArchived")]
|
||||
public bool IsArchived { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Collezione oggetti Proj associati (almeno 1 by design)
|
||||
/// </summary>
|
||||
public virtual ICollection<ProjModel> ProjListNav { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
}
|
||||
@@ -65,6 +65,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Index]
|
||||
public int ProjId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codice Proj per sync info (Identificativo DB esterno del magazzino in sync)
|
||||
/// </summary>
|
||||
public int ProjCloudId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia del progetto (Travi, Pareti, ...)
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
//[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))]
|
||||
[Table("RawItemList")]
|
||||
public partial class RawItemModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Primary Key AUTO
|
||||
/// </summary>
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int RawItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codice RawMat univoco e in sync (Identificativo DB esterno del magazzino in sync)
|
||||
/// </summary>
|
||||
public int RawItemCloudId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// ForeignKey Materiale
|
||||
/// </summary>
|
||||
public int MatId { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Qty available on wharehouse
|
||||
/// </summary>
|
||||
public int QtyAvail { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Active/ = can be used
|
||||
/// </summary>
|
||||
public bool IsActive { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Remnant
|
||||
/// </summary>
|
||||
public bool IsRemn { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Item's Lenght
|
||||
/// </summary>
|
||||
public decimal LMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Item's Width
|
||||
/// </summary>
|
||||
public decimal WMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Item's Height (Thikness/Spessore) in mm
|
||||
/// </summary>
|
||||
public decimal HMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Note (optional)
|
||||
/// </summary>
|
||||
public string Note { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Indica se debba usare qty effettiva o indefinita (x nesting/schedulazione a capacita illimitata)
|
||||
/// </summary>
|
||||
public bool UseQty { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// DataOra ultimo aggiornamento dal cloud dei dati (in particolare giacenza)
|
||||
/// </summary>
|
||||
public DateTime LastSync { get; set; } = DateTime.Now;
|
||||
|
||||
#if false
|
||||
[NotMapped]
|
||||
public decimal LIn
|
||||
{
|
||||
get => Math.Round(LMm / (decimal)25.4, 3);
|
||||
}
|
||||
[NotMapped]
|
||||
public decimal WIn
|
||||
{
|
||||
get => Math.Round(WMm / (decimal)25.4, 3);
|
||||
}
|
||||
[NotMapped]
|
||||
public decimal HIn
|
||||
{
|
||||
get => Math.Round(HMm / (decimal)25.4, 3);
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public decimal Area
|
||||
{
|
||||
get => LMm * WMm;
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string ItemDtmx
|
||||
{
|
||||
get
|
||||
{
|
||||
string answ = $"MT99999999-{LMm * 1000:00000000}";
|
||||
if (MaterialNav != null)
|
||||
{
|
||||
answ = $"MT{MaterialNav.MatExtId:00000000}-{LMm * 1000:00000000}";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property to Material
|
||||
/// </summary>
|
||||
[ForeignKey("MatId")]
|
||||
public virtual MaterialModel MaterialNav { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -33,9 +33,9 @@ namespace EgtBEAMWALL.DataLayer
|
||||
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// DB Connection string, per effettuare migration riportare valore connessione admin cablato (server=localhost;port=3306;database=EgtBwDb_000102;)
|
||||
/// DB Connection string, per effettuare migration riportare valore connessione admin cablato (server=localhost;port=3306;database=EgtBwDb_000102;uid=root;pwd=Egalware_24068!;)
|
||||
/// </summary>
|
||||
public static string CONNECTION_STRING { get; set; } = "";
|
||||
public static string CONNECTION_STRING { get; set; } = "server=localhost;port=3306;database=EgtBwDb_000470;uid=root;pwd=Egalware_24068!";
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
<Reference Include="EgtWPFLib5">
|
||||
<HintPath>..\ExtLibs\EgtWPFLib5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EgwProxy.MagMan, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EgwProxy.MagMan.1.0.2402.2912\lib\EgwProxy.MagMan.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -55,15 +58,18 @@
|
||||
<Reference Include="Google.Protobuf, Version=3.21.9.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Protobuf.3.21.9\lib\net45\Google.Protobuf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Compression.LZ4, Version=1.3.5.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.1.3.5\lib\net462\K4os.Compression.LZ4.dll</HintPath>
|
||||
<Reference Include="K4os.Compression.LZ4, Version=1.3.6.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.1.3.6\lib\net462\K4os.Compression.LZ4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.3.5.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.3.5\lib\net462\K4os.Compression.LZ4.Streams.dll</HintPath>
|
||||
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.3.6.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.3.6\lib\net462\K4os.Compression.LZ4.Streams.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Hash.xxHash, Version=1.0.8.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.8.0.21\lib\net452\MySql.Data.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -79,6 +85,9 @@
|
||||
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RestSharp, Version=110.2.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\RestSharp.110.2.0\lib\net471\RestSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
@@ -91,13 +100,14 @@
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Drawing.Design" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Pipelines, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
<Reference Include="System.IO.Pipelines, Version=6.0.0.3, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.6.0.3\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
@@ -108,10 +118,20 @@
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.7.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=7.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.7.0.2\lib\net462\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@@ -126,6 +146,15 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AdminContext.cs" />
|
||||
<Compile Include="Controllers\MagmanSyncController.cs" />
|
||||
<Compile Include="Controllers\MagmanController.cs" />
|
||||
<Compile Include="Controllers\AliasController.cs" />
|
||||
<Compile Include="Controllers\RawItemsController.cs" />
|
||||
<Compile Include="Controllers\MaterialsController.cs" />
|
||||
<Compile Include="DatabaseModels\AliasModel.cs" />
|
||||
<Compile Include="DatabaseModels\MagmanSyncModel.cs" />
|
||||
<Compile Include="DatabaseModels\MaterialModel.cs" />
|
||||
<Compile Include="DatabaseModels\RawItemModel.cs" />
|
||||
<Compile Include="DatabaseModels\UserPrivModel.cs" />
|
||||
<Compile Include="DbConfig.cs" />
|
||||
<Compile Include="Controllers\LogMachineController.cs" />
|
||||
@@ -187,6 +216,34 @@
|
||||
<Compile Include="Migrations\202308250853396_AddProjArchivedField.designer.cs">
|
||||
<DependentUpon>202308250853396_AddProjArchivedField.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202401181534084_AddAliasMaterialRawItemsModel.cs" />
|
||||
<Compile Include="Migrations\202401181534084_AddAliasMaterialRawItemsModel.designer.cs">
|
||||
<DependentUpon>202401181534084_AddAliasMaterialRawItemsModel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202401291722150_FixMatItemCloudId.cs" />
|
||||
<Compile Include="Migrations\202401291722150_FixMatItemCloudId.designer.cs">
|
||||
<DependentUpon>202401291722150_FixMatItemCloudId.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202401310830146_FixItemRemn.cs" />
|
||||
<Compile Include="Migrations\202401310830146_FixItemRemn.designer.cs">
|
||||
<DependentUpon>202401310830146_FixItemRemn.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202402141003461_RawItemAddUseQty.cs" />
|
||||
<Compile Include="Migrations\202402141003461_RawItemAddUseQty.designer.cs">
|
||||
<DependentUpon>202402141003461_RawItemAddUseQty.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202402290716188_AddProjCloudId.cs" />
|
||||
<Compile Include="Migrations\202402290716188_AddProjCloudId.Designer.cs">
|
||||
<DependentUpon>202402290716188_AddProjCloudId.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202403120645357_RawItemAddLastSync.cs" />
|
||||
<Compile Include="Migrations\202403120645357_RawItemAddLastSync.Designer.cs">
|
||||
<DependentUpon>202403120645357_RawItemAddLastSync.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202403120803297_AddMagmanSyncTab.cs" />
|
||||
<Compile Include="Migrations\202403120803297_AddMagmanSyncTab.Designer.cs">
|
||||
<DependentUpon>202403120803297_AddMagmanSyncTab.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Utils.cs" />
|
||||
@@ -235,6 +292,27 @@
|
||||
<EmbeddedResource Include="Migrations\202308250853396_AddProjArchivedField.resx">
|
||||
<DependentUpon>202308250853396_AddProjArchivedField.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202401181534084_AddAliasMaterialRawItemsModel.resx">
|
||||
<DependentUpon>202401181534084_AddAliasMaterialRawItemsModel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202401291722150_FixMatItemCloudId.resx">
|
||||
<DependentUpon>202401291722150_FixMatItemCloudId.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202401310830146_FixItemRemn.resx">
|
||||
<DependentUpon>202401310830146_FixItemRemn.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202402141003461_RawItemAddUseQty.resx">
|
||||
<DependentUpon>202402141003461_RawItemAddUseQty.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202402290716188_AddProjCloudId.resx">
|
||||
<DependentUpon>202402290716188_AddProjCloudId.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202403120645357_RawItemAddLastSync.resx">
|
||||
<DependentUpon>202403120645357_RawItemAddLastSync.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202403120803297_AddMagmanSyncTab.resx">
|
||||
<DependentUpon>202403120803297_AddMagmanSyncTab.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
||||
Generated
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class AddAliasMaterialRawItemsModel : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddAliasMaterialRawItemsModel));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202401181534084_AddAliasMaterialRawItemsModel"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddAliasMaterialRawItemsModel : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
CreateTable(
|
||||
"dbo.AliasList",
|
||||
c => new
|
||||
{
|
||||
Family = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
|
||||
ValueOriginal = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
|
||||
ValueAlias = c.String(unicode: false),
|
||||
})
|
||||
.PrimaryKey(t => new { t.Family, t.ValueOriginal });
|
||||
|
||||
CreateTable(
|
||||
"dbo.MaterialsList",
|
||||
c => new
|
||||
{
|
||||
MatId = c.Int(nullable: false, identity: true),
|
||||
MatExtId = c.Int(nullable: false),
|
||||
MatCode = c.String(unicode: false),
|
||||
MatDesc = c.String(unicode: false),
|
||||
LMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
WMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
HMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
RawItemIdLast = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.MatId);
|
||||
|
||||
CreateTable(
|
||||
"dbo.RawItemList",
|
||||
c => new
|
||||
{
|
||||
RawItemId = c.Int(nullable: false, identity: true),
|
||||
MatId = c.Int(nullable: false),
|
||||
QtyAvail = c.Int(nullable: false),
|
||||
IsActive = c.Boolean(nullable: false),
|
||||
LMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
WMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
HMm = c.Decimal(nullable: false, precision: 18, scale: 2),
|
||||
Note = c.String(unicode: false),
|
||||
})
|
||||
.PrimaryKey(t => t.RawItemId)
|
||||
.ForeignKey("dbo.MaterialsList", t => t.MatId, cascadeDelete: true)
|
||||
.Index(t => t.MatId);
|
||||
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropForeignKey("dbo.RawItemList", "MatId", "dbo.MaterialsList");
|
||||
DropIndex("dbo.RawItemList", new[] { "MatId" });
|
||||
DropTable("dbo.RawItemList");
|
||||
DropTable("dbo.MaterialsList");
|
||||
DropTable("dbo.AliasList");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class FixMatItemCloudId : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(FixMatItemCloudId));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202401291722150_FixMatItemCloudId"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class FixMatItemCloudId : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.MaterialsList", "MatCloudId", c => c.Int(nullable: false));
|
||||
AddColumn("dbo.RawItemList", "RawItemCloudId", c => c.Int(nullable: false));
|
||||
DropColumn("dbo.MaterialsList", "MatExtId");
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
AddColumn("dbo.MaterialsList", "MatExtId", c => c.Int(nullable: false));
|
||||
DropColumn("dbo.RawItemList", "RawItemCloudId");
|
||||
DropColumn("dbo.MaterialsList", "MatCloudId");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class FixItemRemn : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(FixItemRemn));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202401310830146_FixItemRemn"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class FixItemRemn : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.RawItemList", "IsRemn", c => c.Boolean(nullable: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.RawItemList", "IsRemn");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class RawItemAddUseQty : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(RawItemAddUseQty));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202402141003461_RawItemAddUseQty"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class RawItemAddUseQty : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.RawItemList", "UseQty", c => c.Boolean(nullable: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.RawItemList", "UseQty");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class AddProjCloudId : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddProjCloudId));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202402290716188_AddProjCloudId"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddProjCloudId : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.ProjList", "ProjCloudId", c => c.Int(nullable: false));
|
||||
AddColumn("dbo.ProdList", "ProjCloudId", c => c.Int(nullable: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.ProdList", "ProjCloudId");
|
||||
DropColumn("dbo.ProjList", "ProjCloudId");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class RawItemAddLastSync : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(RawItemAddLastSync));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202403120645357_RawItemAddLastSync"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class RawItemAddLastSync : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.RawItemList", "LastSync", c => c.DateTime(nullable: false, precision: 0));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.RawItemList", "LastSync");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class AddMagmanSyncTab : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddMagmanSyncTab));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202403120803297_AddMagmanSyncTab"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddMagmanSyncTab : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
CreateTable(
|
||||
"dbo.MagmanSync",
|
||||
c => new
|
||||
{
|
||||
SyncId = c.Int(nullable: false, identity: true),
|
||||
SyncType = c.String(unicode: false),
|
||||
CloudId = c.Int(nullable: false),
|
||||
DtReq = c.DateTime(nullable: false, precision: 0),
|
||||
DtExe = c.DateTime(precision: 0),
|
||||
Payload = c.String(unicode: false),
|
||||
})
|
||||
.PrimaryKey(t => t.SyncId);
|
||||
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropTable("dbo.MagmanSync");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -2,21 +2,27 @@
|
||||
<packages>
|
||||
<package id="BouncyCastle" version="1.8.5" targetFramework="net472" />
|
||||
<package id="DotNetZip" version="1.16.0" targetFramework="net472" />
|
||||
<package id="EgwProxy.MagMan" version="1.0.2402.2912" targetFramework="net472" />
|
||||
<package id="EntityFramework" version="6.4.4" targetFramework="net452" />
|
||||
<package id="Google.Protobuf" version="3.21.9" targetFramework="net472" />
|
||||
<package id="K4os.Compression.LZ4" version="1.3.5" targetFramework="net472" />
|
||||
<package id="K4os.Compression.LZ4.Streams" version="1.3.5" targetFramework="net472" />
|
||||
<package id="K4os.Compression.LZ4" version="1.3.6" targetFramework="net472" />
|
||||
<package id="K4os.Compression.LZ4.Streams" version="1.3.6" targetFramework="net472" />
|
||||
<package id="K4os.Hash.xxHash" version="1.0.8" targetFramework="net472" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="7.0.0" targetFramework="net472" />
|
||||
<package id="MySql.Data" version="8.0.21" targetFramework="net472" />
|
||||
<package id="MySql.Data.EntityFramework" version="8.0.21" targetFramework="net472" />
|
||||
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net452" />
|
||||
<package id="NLog" version="5.0.1" targetFramework="net472" />
|
||||
<package id="Portable.BouncyCastle" version="1.9.0" targetFramework="net472" />
|
||||
<package id="RestSharp" version="110.2.0" targetFramework="net472" />
|
||||
<package id="SSH.NET" version="2016.1.0" targetFramework="net472" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
|
||||
<package id="System.IO.Pipelines" version="5.0.2" targetFramework="net472" />
|
||||
<package id="System.IO.Pipelines" version="6.0.3" targetFramework="net472" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
|
||||
<package id="System.Text.Encodings.Web" version="7.0.0" targetFramework="net472" />
|
||||
<package id="System.Text.Json" version="7.0.2" targetFramework="net472" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
|
||||
</packages>
|
||||
@@ -1,155 +0,0 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="BeamMachiningsWindowV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core"
|
||||
Title="{Binding Title}"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
Width="500" Height="450"
|
||||
IsResizable="False"
|
||||
IsMinimizable="False" WindowStartupLocation="CenterOwner" ShowInTaskbar="False"
|
||||
CloseCommand="{Binding Close_Command,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
|
||||
|
||||
<Grid Margin="5,5,5,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TabControl ItemsSource="{Binding MachiningList}"
|
||||
SelectedItem="{Binding SelMachining}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
Margin="5,0,5,0"
|
||||
Style="{StaticResource TabControl_OnlyHeaders}"/>
|
||||
|
||||
<EgtBEAMWALLCORE:EgtDataGrid Grid.Row="1"
|
||||
ItemsSource="{Binding TableRowList}"
|
||||
SelectedIndex="{Binding SelRowIndex}"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserResizeRows="False"
|
||||
SelectionMode="Single"
|
||||
ScrollViewer.CanContentScroll="True"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||||
Margin="0,0,0,5"
|
||||
BindingColumns="{Binding BeamMachiningsColumns}">
|
||||
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow">
|
||||
<Setter Property="Height" Value="25"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
|
||||
<DataGrid.Resources>
|
||||
<Style x:Key="DataGridCheckBoxColumn_Style"
|
||||
TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type DataGridCell}">
|
||||
<Grid Background="{TemplateBinding Background}">
|
||||
<ContentPresenter VerticalAlignment="Center" />
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!--Colonna On-->
|
||||
<DataGridCheckBoxColumn x:Key="colON" Binding="{Binding OnPar, UpdateSourceTrigger=PropertyChanged}"
|
||||
CellStyle="{StaticResource DataGridCheckBoxColumn_Style}">
|
||||
<DataGridCheckBoxColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.OnHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridCheckBoxColumn.Header>
|
||||
</DataGridCheckBoxColumn>
|
||||
|
||||
<!--Colonna Name-->
|
||||
<DataGridTemplateColumn x:Key="colNAME">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.NameHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox IsEditable="False"
|
||||
SelectedItem="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
ItemsSource="{Binding Path=NamesList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="5,0,0,0"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
||||
<!--Colonna Style-->
|
||||
<DataGridTemplateColumn x:Key="colTYPE">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.TypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox IsEditable="False"
|
||||
SelectedItem="{Binding Type,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
ItemsSource="{Binding Path=TypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=Type,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="5,0,0,0"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
||||
</DataGrid.Resources>
|
||||
|
||||
</EgtBEAMWALLCORE:EgtDataGrid>
|
||||
|
||||
<Grid Grid.Row="2"
|
||||
Margin="0,0,0,5"
|
||||
HorizontalAlignment="Center">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Content="/\"
|
||||
Command="{Binding MoveRowUp_Command}"
|
||||
Grid.Column="0"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="\/"
|
||||
Command="{Binding MoveRowDown_Command}"
|
||||
Grid.Column="1"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding AddRowMsg}"
|
||||
Command="{Binding AddRow_Command}"
|
||||
Grid.Column="2"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding DeleteRowMsg}"
|
||||
Command="{Binding DeleteRow_Command}"
|
||||
Grid.Column="3"
|
||||
Margin="2.5,0,2.5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding SaveMsg}"
|
||||
Command="{Binding Save_Command}"
|
||||
Grid.Column="4"
|
||||
Margin="2.5,0,0,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -1,20 +0,0 @@
|
||||
Imports EgtBEAMWALL.Core
|
||||
|
||||
Public Class BeamMachiningsWindowV
|
||||
|
||||
Private WithEvents m_BeamMachiningsWindowVM As MyBeamMachiningsWindowVM
|
||||
|
||||
Sub New(Owner As Window, BeamMachiningsWindowVM As MyBeamMachiningsWindowVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = BeamMachiningsWindowVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_BeamMachiningsWindowVM = BeamMachiningsWindowVM
|
||||
End Sub
|
||||
|
||||
Private Sub CloseWindow(bDialogResult As Boolean) Handles m_BeamMachiningsWindowVM.m_CloseWindow
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,36 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class MyBeamMachiningsWindowVM
|
||||
Inherits BeamMachiningsWindowVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Private m_BeamMachiningsColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
Public Property BeamMachiningsColumns As ObservableCollection(Of EgtDataGridColumn)
|
||||
Get
|
||||
Return m_BeamMachiningsColumns
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of EgtDataGridColumn))
|
||||
m_BeamMachiningsColumns = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New(sTitle As String, sBaseDir As String, sMachTypePath As String, sTabTemplPath As String, Optional bIsBeam As Boolean = True)
|
||||
MyBase.New(sTitle, sBaseDir, sMachTypePath, sTabTemplPath, bIsBeam)
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_BEAMMACHININGS, BeamMachiningsColumns)
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In BeamMachiningsColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
End Class
|
||||
@@ -1,36 +1,24 @@
|
||||
<DockPanel x:Class="ConfigurationPageV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Supervisor"
|
||||
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core">
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="6*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"
|
||||
SelectedIndex="{Binding SelConfigSubPage}">
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding General_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Visibility="{Binding General_Visibility}"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</TabItem.Header>
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALLCORE:General_ConfigurationPageV/>
|
||||
<!--<Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="6*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2">
|
||||
<TabItem Header="General">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -59,25 +47,91 @@
|
||||
Margin="0,5,0,0"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Grid>-->
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Machine_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Visibility="{Binding Machine_Visibility}"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</TabItem.Header>
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALLCORE:Machine_ConfigurationPageV/>
|
||||
<!--<Grid>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<!--<TabItem Header="Parametri Q">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALL:QParamListV DataContext="{Binding}"
|
||||
ItemsSource="{Binding QBTLParamVMList}"
|
||||
SelectedItem="{Binding SelQParam}"
|
||||
Grid.Column="0"
|
||||
Margin="5">
|
||||
<DataGrid.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.Panel>
|
||||
<ItemsPanelTemplate>
|
||||
<DataGridRowsPresenter/>
|
||||
</ItemsPanelTemplate>
|
||||
</GroupStyle.Panel>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Path=Name}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="#FFBABABA"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="LightGray"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
</DataGrid.GroupStyle>
|
||||
</EgtBEAMWALL:QParamListV>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>-->
|
||||
<!--<TabItem Header="Macchina">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -140,47 +194,47 @@
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</Grid>-->
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<!--<TabItem Header="Variabili">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0" Margin="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Grid.Column="0" Margin="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="+"
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>-->
|
||||
<TabItem Header="Variabili">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0" Margin="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Grid.Column="0" Margin="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="+"
|
||||
Grid.Column="2"
|
||||
Command="{Binding AddVariable_Command}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"/>
|
||||
<Button Content="-"
|
||||
<Button Content="-"
|
||||
Grid.Column="3"
|
||||
Command="{Binding RemoveVariable_Command}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALLCORE:EgtDataGrid
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALLCORE:EgtDataGrid
|
||||
ItemsSource="{Binding VariablesList}"
|
||||
SelectedItem="{Binding SelVariable}"
|
||||
CanUserAddRows="False"
|
||||
@@ -192,58 +246,58 @@
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||||
Margin="5"
|
||||
BindingColumns="{Binding VariablesColumns}">
|
||||
<DataGrid.Resources>
|
||||
--><!-- Name --><!--
|
||||
<DataGridTextColumn x:Key="colNAME" Binding="{Binding sName}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Name_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
--><!-- VariablePath --><!--
|
||||
<DataGridTextColumn x:Key="colVARPATH" Binding="{Binding sVarPath}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.VarPath_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
--><!-- Type --><!--
|
||||
<DataGridComboBoxColumn x:Key="colTYPE">
|
||||
<DataGridComboBoxColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Type_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridComboBoxColumn.HeaderTemplate>
|
||||
<DataGridComboBoxColumn.ElementStyle>
|
||||
<Style TargetType="ComboBox">
|
||||
<Setter Property="ItemsSource" Value="{Binding TypeList}"/>
|
||||
<Setter Property="SelectedItem" Value="{Binding SelType, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Style>
|
||||
</DataGridComboBoxColumn.ElementStyle>
|
||||
<DataGridComboBoxColumn.EditingElementStyle>
|
||||
<Style TargetType="ComboBox">
|
||||
<Setter Property="ItemsSource" Value="{Binding TypeList}"/>
|
||||
<Setter Property="SelectedItem" Value="{Binding SelType, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Style>
|
||||
</DataGridComboBoxColumn.EditingElementStyle>
|
||||
</DataGridComboBoxColumn>
|
||||
</DataGrid.Resources>
|
||||
</EgtBEAMWALLCORE:EgtDataGrid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>-->
|
||||
</TabControl>
|
||||
|
||||
<!--<Button Command="{Binding SaveCommand}"
|
||||
<DataGrid.Resources>
|
||||
<!-- Name -->
|
||||
<DataGridTextColumn x:Key="colNAME" Binding="{Binding sName}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Name_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!-- VariablePath -->
|
||||
<DataGridTextColumn x:Key="colVARPATH" Binding="{Binding sVarPath}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.VarPath_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!-- Type -->
|
||||
<DataGridComboBoxColumn x:Key="colTYPE">
|
||||
<DataGridComboBoxColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Type_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ConfigurationPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridComboBoxColumn.HeaderTemplate>
|
||||
<DataGridComboBoxColumn.ElementStyle>
|
||||
<Style TargetType="ComboBox">
|
||||
<Setter Property="ItemsSource" Value="{Binding TypeList}"/>
|
||||
<Setter Property="SelectedItem" Value="{Binding SelType, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Style>
|
||||
</DataGridComboBoxColumn.ElementStyle>
|
||||
<DataGridComboBoxColumn.EditingElementStyle>
|
||||
<Style TargetType="ComboBox">
|
||||
<Setter Property="ItemsSource" Value="{Binding TypeList}"/>
|
||||
<Setter Property="SelectedItem" Value="{Binding SelType, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Style>
|
||||
</DataGridComboBoxColumn.EditingElementStyle>
|
||||
</DataGridComboBoxColumn>
|
||||
</DataGrid.Resources>
|
||||
</EgtBEAMWALLCORE:EgtDataGrid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
|
||||
</Grid>
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtBEAMWALL.Core
|
||||
@@ -6,37 +7,10 @@ Imports EgtBEAMWALL.Core
|
||||
Public Class ConfigurationPageVM
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum ConfigSubPages As Integer
|
||||
GENERAL = 0
|
||||
MACHINE = 1
|
||||
VARIABLE = 2
|
||||
End Enum
|
||||
|
||||
Private m_SelConfigSubPage As ConfigSubPages = ConfigSubPages.GENERAL
|
||||
Public Property SelConfigSubPage As Integer
|
||||
Get
|
||||
Return m_SelConfigSubPage
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelConfigSubPage = value
|
||||
If m_SelConfigSubPage = ConfigSubPages.GENERAL Then
|
||||
m_bGeneral_Visibility = Visibility.Visible
|
||||
m_bMachine_Visibility = Visibility.Collapsed
|
||||
ElseIf m_SelConfigSubPage = ConfigSubPages.MACHINE Then
|
||||
m_bMachine_Visibility = Visibility.Visible
|
||||
m_bGeneral_Visibility = Visibility.Collapsed
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(General_Visibility))
|
||||
NotifyPropertyChanged(NameOf(Machine_Visibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MachinePanelVM As MachinePanelVM
|
||||
Get
|
||||
Return Map.refMachinePanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdAddVariable As ICommand
|
||||
Private m_cmdRemoveVariable As ICommand
|
||||
|
||||
' Contatore delle variabili rimosse per successiva rimozione dal file INI
|
||||
Friend m_RemovedVarsCount As Integer = 0
|
||||
@@ -111,88 +85,6 @@ Public Class ConfigurationPageVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bGeneral_Visibility As Visibility = Visibility.Visible
|
||||
Public Property General_Visibility As Visibility
|
||||
Get
|
||||
Return m_bGeneral_Visibility
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_bGeneral_Visibility = value
|
||||
NotifyPropertyChanged(NameOf(General_Visibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bMachine_Visibility As Visibility = Visibility.Collapsed
|
||||
Public Property Machine_Visibility As Visibility
|
||||
Get
|
||||
Return m_bMachine_Visibility
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_bMachine_Visibility = value
|
||||
NotifyPropertyChanged(NameOf(Machine_Visibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SectionTime As Double
|
||||
Public Property SectionTime As String
|
||||
Get
|
||||
Return DoubleToString(m_SectionTime, 5)
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double = 0
|
||||
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
||||
m_SectionTime = dVal
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_PartTime As Double
|
||||
Public Property PartTime As String
|
||||
Get
|
||||
Return DoubleToString(m_PartTime, 5)
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double = 0
|
||||
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
||||
m_PartTime = dVal
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ReminderList As New List(Of IdNameStruct)({New IdNameStruct(0, EgtMsg(61988)), New IdNameStruct(1, EgtMsg(61989)), New IdNameStruct(2, EgtMsg(61990)), New IdNameStruct(7, EgtMsg(61991)), New IdNameStruct(14, EgtMsg(61992)), New IdNameStruct(30, EgtMsg(61993))})
|
||||
Public ReadOnly Property ReminderList As List(Of IdNameStruct)
|
||||
Get
|
||||
Return m_ReminderList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelReminder As IdNameStruct
|
||||
Public Property SelReminder As IdNameStruct
|
||||
Get
|
||||
Return m_SelReminder
|
||||
End Get
|
||||
Set(value As IdNameStruct)
|
||||
m_SelReminder = value
|
||||
WriteMainPrivateProfileString(S_BACKUPANDRESTORE, K_REMINDERFREQUENCY, m_SelReminder.Id)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ConfigMachTableList As New ObservableCollection(Of MachTable)
|
||||
Public Property ConfigMachTableList As ObservableCollection(Of MachTable)
|
||||
Get
|
||||
Return m_ConfigMachTableList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of MachTable))
|
||||
m_ConfigMachTableList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdAddVariable As ICommand
|
||||
Private m_cmdRemoveVariable As ICommand
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property L_Msg As String
|
||||
@@ -317,41 +209,6 @@ Public Class ConfigurationPageVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property General_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62535)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Machine_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62537)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SectionTime_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61806)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property PartTime_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61807)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Nesting_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61829)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PrintLabel_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61894)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "Constructor"
|
||||
@@ -387,13 +244,6 @@ Public Class ConfigurationPageVM
|
||||
GetPrivateProfileColumns(S_VARIABLESLIST, VariablesColumns)
|
||||
' carico le Variables della macchina
|
||||
LoadVariables()
|
||||
' leggo SectionTime e PartTime
|
||||
GetMainPrivateProfileString(S_NEST, K_SECTIONTIME, "", SectionTime)
|
||||
GetMainPrivateProfileString(S_NEST, K_PARTTIME, "", PartTime)
|
||||
' assegno le liste dei parametri della macchina corrente alla ConfigMachTableList alla pagina di Configurazione
|
||||
ConfigMachTableList = CurrentMachine.MachTableList
|
||||
Dim nDefaultReminderFrequency As Integer = GetMainPrivateProfileInt(S_BACKUPANDRESTORE, K_REMINDERFREQUENCY, 1)
|
||||
SelReminder = m_ReminderList.FirstOrDefault(Function(x) x.Id = nDefaultReminderFrequency)
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructor
|
||||
@@ -557,196 +407,11 @@ Public Class ConfigVariable
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MachParam
|
||||
Inherits VMBase
|
||||
|
||||
' table a cui appartiene il parametro
|
||||
Private m_nParentTable As Integer
|
||||
Friend ReadOnly Property nParentTable As Integer
|
||||
Get
|
||||
Return m_nParentTable
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' indice del parametro
|
||||
Private m_nParamIndex As Integer
|
||||
Friend ReadOnly Property nParamIndex As Integer
|
||||
Get
|
||||
Return m_nParamIndex
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' tipo della variabile
|
||||
Private m_nType As MachParamType
|
||||
Friend ReadOnly Property nType As MachParamType
|
||||
Get
|
||||
Return m_nType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' parametri da struttura
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' parametri da geometria
|
||||
Private m_IsModifiedValue As Boolean = False
|
||||
Private m_dValue As Double
|
||||
Private m_sValue As String
|
||||
Public Property sValue As String
|
||||
Get
|
||||
Select Case nType
|
||||
Case MachParamType.DOUBLE_
|
||||
Return DoubleToString(m_dValue, 3)
|
||||
Case MachParamType.LENGTH
|
||||
Return LenToString(m_dValue, 3)
|
||||
Case Else ' stringhe
|
||||
Return m_sValue
|
||||
End Select
|
||||
Return If(nType = MachParamType.LENGTH, LenToString(m_dValue, 3), DoubleToString(m_dValue, 3))
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dNewValue As Double
|
||||
' verifico se valore immesso è diverso dall'originale
|
||||
If nParentTable > 0 Then
|
||||
' trasformo valori
|
||||
Select Case nType
|
||||
Case MachParamType.DOUBLE_
|
||||
StringToDoubleAdv(value, dNewValue, True)
|
||||
m_IsModifiedValue = Math.Abs(dNewValue - m_dValue) > EPS_SMALL
|
||||
Case MachParamType.LENGTH
|
||||
StringToLenAdv(value, dNewValue, True)
|
||||
m_IsModifiedValue = Math.Abs(dNewValue - m_dValue) > EPS_SMALL
|
||||
Case Else
|
||||
m_IsModifiedValue = String.Compare(value, m_sValue) <> 0
|
||||
End Select
|
||||
End If
|
||||
' se valore immesso è diverso e password non inserita
|
||||
'If m_IsModifiedValue AndAlso Not Map.refConfigurationPageVM.bModifyMachParam Then
|
||||
' Map.refConfigurationPageVM.bModifyMachParam = Map.refConfigurationPageVM.VerifyConfigPagePassword()
|
||||
' If Not Map.refConfigurationPageVM.bModifyMachParam Then
|
||||
' NotifyPropertyChanged("sValue")
|
||||
' m_IsModifiedValue = False
|
||||
' Return
|
||||
' End If
|
||||
'End If
|
||||
|
||||
Select Case nType
|
||||
Case MachParamType.DOUBLE_, MachParamType.LENGTH
|
||||
UpdateParamValue(dNewValue, "")
|
||||
Case Else
|
||||
UpdateParamValue(0, value)
|
||||
End Select
|
||||
End Set
|
||||
End Property
|
||||
Public Property dValue As Double
|
||||
Get
|
||||
Return m_dValue
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dValue = value
|
||||
NotifyPropertyChanged("sValue")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' descrizione del parametro
|
||||
Private m_sDescription As String
|
||||
Public Property sDescription As String
|
||||
Get
|
||||
Return m_sDescription
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sDescription = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub StdInit(nParentTable As Integer, nParamIndex As Integer, Type As MachParamType, sName As String, sDescription As String)
|
||||
m_nParentTable = nParentTable
|
||||
m_nParamIndex = nParamIndex
|
||||
m_nType = Type
|
||||
m_sName = sName
|
||||
m_sDescription = MsgToString(sDescription)
|
||||
End Sub
|
||||
|
||||
' new per double e length
|
||||
Sub New(nParentTable As Integer, nParamIndex As Integer, nType As MachParamType, sParamName As String, dValue As Double, sDescription As String)
|
||||
StdInit(nParentTable, nParamIndex, nType, sParamName, sDescription)
|
||||
m_dValue = dValue 'sValue = DoubleToString(dValue, 3)
|
||||
End Sub
|
||||
|
||||
' new per stringhe
|
||||
Sub New(nParentTable As Integer, nParamIndex As Integer, nType As MachParamType, sParamName As String, sDescription As String)
|
||||
StdInit(nParentTable, nParamIndex, nType, sParamName, sDescription)
|
||||
End Sub
|
||||
|
||||
' new per parametro vuoto
|
||||
Sub New(nType As MachParamType, nParamIndex As Integer, sParamName As String)
|
||||
StdInit(Nothing, nParamIndex, nType, sParamName, "")
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateParamValue(dNewValue As Double, sNewValue As String, Optional bDraw As Boolean = True)
|
||||
Select Case nType
|
||||
Case MachParamType.DOUBLE_, MachParamType.LENGTH
|
||||
m_dValue = dNewValue
|
||||
Case MachParamType.STRING_
|
||||
m_sValue = sNewValue
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property IsModified() As Boolean
|
||||
Get
|
||||
Return m_IsModifiedValue
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub IsModifiedReset()
|
||||
m_IsModifiedValue = False
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MachTable
|
||||
Inherits VMBase
|
||||
|
||||
' nome della table
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MachParamList As New ObservableCollection(Of MachParam)
|
||||
Public Property MachParamList As ObservableCollection(Of MachParam)
|
||||
Get
|
||||
Return m_MachParamList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of MachParam))
|
||||
m_MachParamList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String, ParamList As ObservableCollection(Of MachParam))
|
||||
sName = Name
|
||||
MachParamList = ParamList
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
' Tipo parametro nel file di configurazione Macchina
|
||||
Public Enum MachParamType As Integer
|
||||
DOUBLE_ = 1
|
||||
STRING_ = 2
|
||||
COMBO = 3
|
||||
LENGTH = 4
|
||||
CHECKBOX = 5
|
||||
End Enum
|
||||
'' Tipo parametro nel file di configurazione Macchina
|
||||
'Public Enum MachParamType As Integer
|
||||
' DOUBLE_ = 1
|
||||
' STRING_ = 2
|
||||
' COMBO = 3
|
||||
' LENGTH = 4
|
||||
' CHECKBOX = 5
|
||||
'End Enum
|
||||
|
||||
@@ -332,7 +332,6 @@
|
||||
<DependentUpon>MachineLogPageV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MachineLogPage\MachineLogPageVM.vb" />
|
||||
<Compile Include="MachinePanel\MachinePanelVM.vb" />
|
||||
<Compile Include="MDIPage\MDIPageV.xaml.vb">
|
||||
<DependentUpon>MDIPageV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -374,6 +373,10 @@
|
||||
<Compile Include="MachGroupPanel\PartVM.vb" />
|
||||
<Compile Include="MachGroupPanel\SupervisorMachGroupPanelVM.vb" />
|
||||
<Compile Include="MachGroupPanel\MyMachGroupPanelVM.vb" />
|
||||
<Compile Include="MachinePanel\MachinePanelV.xaml.vb">
|
||||
<DependentUpon>MachinePanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MachinePanel\MachinePanelVM.vb" />
|
||||
<Compile Include="MachManagingThread\MachCommConst.vb" />
|
||||
<Compile Include="MachManagingThread\MachManaging.vb" />
|
||||
<Compile Include="MachManagingThread\MachManagingThread.vb" />
|
||||
@@ -413,7 +416,6 @@
|
||||
<Compile Include="Utility\DisableModifiedMgr.vb" />
|
||||
<Compile Include="Utility\LogEvent.vb" />
|
||||
<Compile Include="Utility\LuaExec.vb" />
|
||||
<Compile Include="Utility\MachParamIniFile.vb" />
|
||||
<Compile Include="Utility\ManageBTLParts.vb" />
|
||||
<Compile Include="Utility\Map.vb" />
|
||||
<Compile Include="VariablesList\VariablesListV.xaml.vb">
|
||||
@@ -482,6 +484,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="MachinePanel\MachinePanelV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="MainMenu\MainMenuV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -664,10 +670,6 @@
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Configuration\MachiningsTable.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
<Button Command="{Binding MachDbCommand}" ToolTip="{Binding MachiningDbToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Width="55" Content="{Binding MachiningDbMsg}"/>
|
||||
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Width="55" Content="{Binding SetUpMsg}"/>
|
||||
Style="{StaticResource ToolBar_TextButton}" Width="55" Content="{Binding SetUpMsg}"
|
||||
Background="{Binding SetUp_Background}"/>
|
||||
<!--<Button Command="{Binding MachOptionsCommand}" ToolTip="{Binding OptionsToolTip}">
|
||||
<Image Source="/Resources/ProjectManager/Options.png" Height="22" />
|
||||
</Button>-->
|
||||
|
||||
@@ -1,50 +1,58 @@
|
||||
Imports System.IO
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class MachinePanelVM
|
||||
Inherits EgtWPFLib5.MachinePanelVM
|
||||
Inherits VMBase
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' Radice del direttorio delle macchine
|
||||
Private m_sMachinesRoot As String
|
||||
|
||||
' Lista delle macchine disponibili
|
||||
Private m_MachineList As New ObservableCollection(Of Machine)
|
||||
Public Property MachineList As ObservableCollection(Of Machine)
|
||||
Get
|
||||
Return m_MachineList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of Machine))
|
||||
m_MachineList = value
|
||||
End Set
|
||||
End Property
|
||||
' Macchina correntemente selezionata e quindi attiva
|
||||
Private m_SelectedMachine As Machine = Nothing
|
||||
Public Overrides Property SelectedMachine As Machine
|
||||
Public Property SelectedMachine As MyMachine
|
||||
Get
|
||||
Return m_SelectedMachine
|
||||
End Get
|
||||
Set(value As Machine)
|
||||
Set(value As MyMachine)
|
||||
If value IsNot m_SelectedMachine Then
|
||||
' imposto macchina in DbGeometrico
|
||||
If Not IsNothing(value) AndAlso EgtSetCurrMachine(value.Name) Then
|
||||
m_SelectedMachine = value
|
||||
End If
|
||||
' Salvo impostazione macchina corrente
|
||||
SaveCurrentMachine()
|
||||
NotifyPropertyChanged(NameOf(SelectedMachine))
|
||||
'EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx())
|
||||
'EgtResetCurrMachGroup()
|
||||
' se sono in modalità disegno
|
||||
m_SelectedMachine = value
|
||||
' inizializzo la macchina selezionata come macchina corrente
|
||||
Dim nMachType As MachineType = DirectCast(m_SelectedMachine, MyMachine).nType
|
||||
SectionXMaterial.SetType(nMachType)
|
||||
If Not IsNothing(value) Then
|
||||
InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, value.Name, nMachType)
|
||||
Else
|
||||
InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, m_SelectedMachine.Name, nMachType)
|
||||
End If
|
||||
' mostro bottone tabella beam o wall a seconda del tipo
|
||||
m_BeamTable_Visibility = If(nMachType = MachineType.BEAM OrElse nMachType = MachineType.BOTH, Visibility.Visible, Visibility.Collapsed)
|
||||
m_WallTable_Visibility = If(nMachType = MachineType.WALL OrElse nMachType = MachineType.BOTH, Visibility.Visible, Visibility.Collapsed)
|
||||
NotifyPropertyChanged(NameOf(BeamTable_Visibility))
|
||||
NotifyPropertyChanged(NameOf(WallTable_Visibility))
|
||||
' aggiorno nome macchina in statusbar
|
||||
Map.refMyStatusBarVM.RefreshMachName()
|
||||
InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, value.Name, nMachType)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SetUp_Background As Brush = New BrushConverter().ConvertFrom("#FFDDDDDD")
|
||||
Public Property SetUp_Background As Brush
|
||||
Get
|
||||
Return m_SetUp_Background
|
||||
End Get
|
||||
Set(value As Brush)
|
||||
m_SetUp_Background = value
|
||||
NotifyPropertyChanged("SetUp_Background")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MachPanel_IsEnabled As Boolean = True
|
||||
Public Property MachPanel_IsEnabled As Boolean
|
||||
Get
|
||||
@@ -52,30 +60,10 @@ Public Class MachinePanelVM
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_MachPanel_IsEnabled = value
|
||||
NotifyPropertyChanged(NameOf(MachPanel_IsEnabled))
|
||||
NotifyPropertyChanged("MachPanel_IsEnabled")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_BeamTable_Visibility As Visibility
|
||||
Public ReadOnly Property BeamTable_Visibility As Visibility
|
||||
Get
|
||||
Return m_BeamTable_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_WallTable_Visibility As Visibility
|
||||
Public ReadOnly Property WallTable_Visibility As Visibility
|
||||
Get
|
||||
Return m_WallTable_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SetUp_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainWindowVM.MainWindowM.bModifySetup, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property ToolDBMsg As String
|
||||
@@ -100,25 +88,27 @@ Public Class MachinePanelVM
|
||||
|
||||
Public ReadOnly Property ToolDBToolTip As String
|
||||
Get
|
||||
Return EgtMsg(5003)
|
||||
Return "Tool DB"
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property MachiningDbToolTip As String
|
||||
Get
|
||||
Return EgtMsg(5004)
|
||||
Return "Machining DB"
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property SetUpToolTip As String
|
||||
Get
|
||||
Return EgtMsg(31501)
|
||||
Return "SetUp"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' ToolTip
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdBeamTable As ICommand
|
||||
Private m_cmdWallTable As ICommand
|
||||
Private m_cmdToolDb As ICommand
|
||||
Private m_cmdMachDb As ICommand
|
||||
Private m_cmdSetUp As ICommand
|
||||
Private m_cmdMachOptions As ICommand
|
||||
|
||||
#End Region 'FIELDS & PROPERTIES
|
||||
|
||||
@@ -141,7 +131,7 @@ Public Class MachinePanelVM
|
||||
If MachineList.Count = 0 Then Return
|
||||
Dim CurrMachine As Machine = Nothing
|
||||
Dim CurrMachineName As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MACH, K_CURRMACH, String.Empty, CurrMachineName)
|
||||
GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, String.Empty, CurrMachineName)
|
||||
Dim bFound As Boolean = False
|
||||
If Not String.IsNullOrEmpty(CurrMachineName) Then
|
||||
For Each Mach In MachineList
|
||||
@@ -180,45 +170,28 @@ Public Class MachinePanelVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Function BeamMachDb() As Boolean
|
||||
' Assegno le path
|
||||
Dim sBaseDir As String = m_sMachinesRoot & "\" & m_SelectedMachine.Name & "\" & "Beam"
|
||||
' verifico se ci sono i file ini
|
||||
Dim sMachTypePath As String = sBaseDir & "\MachiningTypes.ini"
|
||||
Dim sTabTemplPath As String = sBaseDir & "\BeamTableTemplate.ini"
|
||||
If File.Exists(sMachTypePath) AndAlso File.Exists(sTabTemplPath) Then
|
||||
' apro finestra di gestione lavorazioni travi
|
||||
Dim sTitle = EgtMsg(9000) 'Tabelle delle lavorazioni delle travi
|
||||
Dim BeamMchsWinVM As New MyBeamMachiningsWindowVM(sTitle, sBaseDir, sMachTypePath, sTabTemplPath)
|
||||
Dim BeamMchsWinV As New BeamMachiningsWindowV(Application.Current.MainWindow, BeamMchsWinVM)
|
||||
BeamMchsWinV.ShowDialog()
|
||||
Else
|
||||
' Impossibile aprire l'Editor delle lavorazioni delle travi.<br/>Mancano i file di configurazione. - Errore
|
||||
MessageBox.Show(EgtMsg(9009), EgtMsg(9008), MessageBoxButton.OK, MessageBoxImage.Stop)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
Friend Function WallMachDb() As Boolean
|
||||
' Assegno le path
|
||||
Dim sBaseDir As String = m_sMachinesRoot & "\" & m_SelectedMachine.Name & "\" & "Wall"
|
||||
' verifico se ci sono i file ini
|
||||
Dim sMachTypePath As String = sBaseDir & "\MachiningTypes.ini"
|
||||
Dim sTabTemplPath As String = sBaseDir & "\WallTableTemplate.ini"
|
||||
If File.Exists(sMachTypePath) AndAlso File.Exists(sTabTemplPath) Then
|
||||
' apro finestra di gestione lavorazioni pareti
|
||||
Dim sTitle = EgtMsg(9010) 'Tabelle delle lavorazioni delle pareti
|
||||
Dim WallMchsWinVM As New MyBeamMachiningsWindowVM(sTitle, sBaseDir, sMachTypePath, sTabTemplPath, False)
|
||||
Dim WallMchsWinV As New BeamMachiningsWindowV(Application.Current.MainWindow, WallMchsWinVM)
|
||||
WallMchsWinV.ShowDialog()
|
||||
Else
|
||||
' Impossibile aprire l'Editor delle lavorazioni delle pareti.<br/>Mancano i file di configurazione. - Errore
|
||||
MessageBox.Show(EgtMsg(9011), EgtMsg(9008), MessageBoxButton.OK, MessageBoxImage.Stop)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
#Region "COMMANDS"
|
||||
|
||||
Public Overrides Sub ToolDb(ByVal param As Object)
|
||||
#Region "ToolDbCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ToolDbCommand As ICommand
|
||||
Get
|
||||
If m_cmdToolDb Is Nothing Then
|
||||
m_cmdToolDb = New Command(AddressOf ToolDb)
|
||||
End If
|
||||
Return m_cmdToolDb
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public Sub ToolDb(ByVal param As Object)
|
||||
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
If Not EgtTdbReload() Then
|
||||
@@ -227,7 +200,7 @@ Public Class MachinePanelVM
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim ToolDbWindowVM As New EgtWPFLib5.ToolDbWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Beam")
|
||||
Dim ToolDbWindowVM As New ToolDbWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Beam")
|
||||
Dim ToolDbWindowV As New ToolDbWindowV(Application.Current.MainWindow, ToolDbWindowVM)
|
||||
If ToolDbWindowVM.MatType <> 0 Then
|
||||
ToolDbWindowV.Height = 640
|
||||
@@ -244,7 +217,26 @@ Public Class MachinePanelVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub MachDb(ByVal param As Object)
|
||||
#End Region ' ToolDbCommand
|
||||
|
||||
#Region "MachDbCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property MachDbCommand As ICommand
|
||||
Get
|
||||
If m_cmdMachDb Is Nothing Then
|
||||
m_cmdMachDb = New Command(AddressOf MachDb)
|
||||
End If
|
||||
Return m_cmdMachDb
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public Sub MachDb(ByVal param As Object)
|
||||
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
If Not EgtMdbReload() Then
|
||||
@@ -265,7 +257,26 @@ Public Class MachinePanelVM
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SetUp(ByVal param As Object)
|
||||
#End Region ' MachDbCommand
|
||||
|
||||
#Region "SetUpCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property SetUpCommand As ICommand
|
||||
Get
|
||||
If m_cmdSetUp Is Nothing Then
|
||||
m_cmdSetUp = New Command(AddressOf SetUp)
|
||||
End If
|
||||
Return m_cmdSetUp
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public Sub SetUp(ByVal param As Object)
|
||||
' verifico che il file di configurazione attrezzaggio (lua) della macchina esista
|
||||
If Not File.Exists(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA) Then
|
||||
EgtOutLog("SetUp error: SetUp configuration file doesn't exist ")
|
||||
@@ -304,389 +315,31 @@ Public Class MachinePanelVM
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
#End Region ' SetUpCommand
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "BeamTable"
|
||||
#Region "MachOptionsCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property BeamTable_Command As ICommand
|
||||
Public ReadOnly Property MachOptionsCommand As ICommand
|
||||
Get
|
||||
If m_cmdBeamTable Is Nothing Then
|
||||
m_cmdBeamTable = New Command(AddressOf BeamMachDb)
|
||||
If m_cmdMachOptions Is Nothing Then
|
||||
m_cmdMachOptions = New Command(AddressOf MachOptions)
|
||||
End If
|
||||
Return m_cmdBeamTable
|
||||
Return m_cmdMachOptions
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' BeamTable
|
||||
|
||||
#Region "WallTable"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public ReadOnly Property WallTable_Command As ICommand
|
||||
Get
|
||||
If m_cmdWallTable Is Nothing Then
|
||||
m_cmdWallTable = New Command(AddressOf WallMachDb)
|
||||
End If
|
||||
Return m_cmdWallTable
|
||||
End Get
|
||||
End Property
|
||||
Public Sub MachOptions(ByVal param As Object)
|
||||
|
||||
#End Region ' WallTable
|
||||
End Sub
|
||||
|
||||
#End Region ' MachOptionsCommand
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
'Imports System.Collections.ObjectModel
|
||||
'Imports System.IO
|
||||
'Imports EgtBEAMWALL.Core
|
||||
'Imports EgtUILib
|
||||
'Imports EgtWPFLib5
|
||||
|
||||
'Public Class MachinePanelVM
|
||||
' Inherits VMBase
|
||||
|
||||
'#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' ' Radice del direttorio delle macchine
|
||||
' Private m_sMachinesRoot As String
|
||||
|
||||
' ' Lista delle macchine disponibili
|
||||
' Private m_MachineList As New ObservableCollection(Of Machine)
|
||||
' Public Property MachineList As ObservableCollection(Of Machine)
|
||||
' Get
|
||||
' Return m_MachineList
|
||||
' End Get
|
||||
' Set(value As ObservableCollection(Of Machine))
|
||||
' m_MachineList = value
|
||||
' End Set
|
||||
' End Property
|
||||
' ' Macchina correntemente selezionata e quindi attiva
|
||||
' Private m_SelectedMachine As Machine = Nothing
|
||||
' Public Property SelectedMachine As MyMachine
|
||||
' Get
|
||||
' Return m_SelectedMachine
|
||||
' End Get
|
||||
' Set(value As MyMachine)
|
||||
' If value IsNot m_SelectedMachine Then
|
||||
' 'EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx())
|
||||
' 'EgtResetCurrMachGroup()
|
||||
' ' se sono in modalità disegno
|
||||
' m_SelectedMachine = value
|
||||
' ' inizializzo la macchina selezionata come macchina corrente
|
||||
' Dim nMachType As MachineType = DirectCast(m_SelectedMachine, MyMachine).nType
|
||||
' SectionXMaterial.SetType(nMachType)
|
||||
' InitCurrentMachine(Map.refMainWindowVM.MainWindowM.sMachinesRoot, value.Name, nMachType)
|
||||
' End If
|
||||
' End Set
|
||||
' End Property
|
||||
|
||||
' Private m_SetUp_Background As Brush = New BrushConverter().ConvertFrom("#FFDDDDDD")
|
||||
' Public Property SetUp_Background As Brush
|
||||
' Get
|
||||
' Return m_SetUp_Background
|
||||
' End Get
|
||||
' Set(value As Brush)
|
||||
' m_SetUp_Background = value
|
||||
' NotifyPropertyChanged("SetUp_Background")
|
||||
' End Set
|
||||
' End Property
|
||||
|
||||
' Private m_MachPanel_IsEnabled As Boolean = True
|
||||
' Public Property MachPanel_IsEnabled As Boolean
|
||||
' Get
|
||||
' Return m_MachPanel_IsEnabled
|
||||
' End Get
|
||||
' Set(value As Boolean)
|
||||
' m_MachPanel_IsEnabled = value
|
||||
' NotifyPropertyChanged("MachPanel_IsEnabled")
|
||||
' End Set
|
||||
' End Property
|
||||
|
||||
'#Region "Messages"
|
||||
|
||||
' Public ReadOnly Property ToolDBMsg As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_MACHINEPAGEUC + 6)
|
||||
' End Get
|
||||
' End Property
|
||||
' Public ReadOnly Property MachiningDbMsg As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_MACHINEPAGEUC + 7)
|
||||
' End Get
|
||||
' End Property
|
||||
' Public ReadOnly Property SetUpMsg As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_ALARMSPAGEUC + 33)
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
'#End Region ' Messages
|
||||
|
||||
'#Region "ToolTip"
|
||||
|
||||
' Public ReadOnly Property ToolDBToolTip As String
|
||||
' Get
|
||||
' Return "Tool DB"
|
||||
' End Get
|
||||
' End Property
|
||||
' Public ReadOnly Property MachiningDbToolTip As String
|
||||
' Get
|
||||
' Return "Machining DB"
|
||||
' End Get
|
||||
' End Property
|
||||
' Public ReadOnly Property SetUpToolTip As String
|
||||
' Get
|
||||
' Return "SetUp"
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
'#End Region ' ToolTip
|
||||
|
||||
' ' Definizione comandi
|
||||
' Private m_cmdToolDb As ICommand
|
||||
' Private m_cmdMachDb As ICommand
|
||||
' Private m_cmdSetUp As ICommand
|
||||
' Private m_cmdMachOptions As ICommand
|
||||
|
||||
'#End Region 'FIELDS & PROPERTIES
|
||||
|
||||
'#Region "CONSTRUCTOR"
|
||||
|
||||
' Sub New()
|
||||
' ' Creo riferimento a questa classe in Map
|
||||
' Map.SetRefMachinePanelVM(Me)
|
||||
' ' recupero cartella radice delle macchine
|
||||
' m_sMachinesRoot = Map.refMainWindowVM.MainWindowM.sMachinesRoot
|
||||
' ' Carica macchine da cartella delle macchine
|
||||
' MyMachine.MachineListInit(m_sMachinesRoot, MachineList)
|
||||
' End Sub
|
||||
|
||||
'#End Region ' CONSTRUCTOR
|
||||
|
||||
'#Region "METHODS"
|
||||
|
||||
' Friend Sub LoadCurrentMachine()
|
||||
' If MachineList.Count = 0 Then Return
|
||||
' Dim CurrMachine As Machine = Nothing
|
||||
' Dim CurrMachineName As String = String.Empty
|
||||
' GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, String.Empty, CurrMachineName)
|
||||
' Dim bFound As Boolean = False
|
||||
' If Not String.IsNullOrEmpty(CurrMachineName) Then
|
||||
' For Each Mach In MachineList
|
||||
' If Mach.Name = CurrMachineName Then
|
||||
' bFound = True
|
||||
' CurrMachine = Mach
|
||||
' Exit For
|
||||
' End If
|
||||
' Next
|
||||
' End If
|
||||
' If Not bFound And MachineList.Count > 0 Then
|
||||
' CurrMachine = MachineList(0)
|
||||
' End If
|
||||
' If Not IsNothing(CurrMachine) Then
|
||||
' If EgtSetCurrMachine(CurrMachine.Name) Then
|
||||
' SelectedMachine = CurrMachine
|
||||
' End If
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Friend Sub SaveCurrentMachine()
|
||||
' If IsNothing(m_SelectedMachine) Then Return
|
||||
' WriteMainPrivateProfileString(S_MACH, K_CURRMACH, SelectedMachine.Name)
|
||||
' End Sub
|
||||
|
||||
' Friend Sub UpdateCurrentMachine()
|
||||
' 'EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
|
||||
' Dim sMachName As String = String.Empty
|
||||
' If EgtGetCurrMachineName(sMachName) Then
|
||||
' For Each Mach In MachineList
|
||||
' If Mach.Name = sMachName Then
|
||||
' SelectedMachine = Mach
|
||||
' Exit For
|
||||
' End If
|
||||
' Next
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
'#End Region
|
||||
|
||||
'#Region "COMMANDS"
|
||||
|
||||
'#Region "ToolDbCommand"
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Returns a command that do Exec.
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property ToolDbCommand As ICommand
|
||||
' Get
|
||||
' If m_cmdToolDb Is Nothing Then
|
||||
' m_cmdToolDb = New Command(AddressOf ToolDb)
|
||||
' End If
|
||||
' Return m_cmdToolDb
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
' ''' </summary>
|
||||
' Public Sub ToolDb(ByVal param As Object)
|
||||
' If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
' If Not EgtTdbReload() Then
|
||||
' EgtOutLog("Impossible reloading tool Db")
|
||||
' MessageBox.Show(EgtMsg(MSG_TOOLDBERRORS + 30), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Return
|
||||
' End If
|
||||
|
||||
' Dim ToolDbWindowVM As New ToolDbWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Beam")
|
||||
' Dim ToolDbWindowV As New ToolDbWindowV(Application.Current.MainWindow, ToolDbWindowVM)
|
||||
' If ToolDbWindowVM.MatType <> 0 Then
|
||||
' ToolDbWindowV.Height = 640
|
||||
' ToolDbWindowV.Width = 1024
|
||||
' ToolDbWindowV.ShowDialog()
|
||||
' Else
|
||||
' Exit Sub
|
||||
' End If
|
||||
|
||||
' If Not SetUpUtility.IsValidToolHeadExitInSetUp() Then
|
||||
' SetUp_Background = Brushes.Red
|
||||
' Else
|
||||
' SetUp_Background = OmagOFFICEDictionary.Button_Static_Background
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
'#End Region ' ToolDbCommand
|
||||
|
||||
'#Region "MachDbCommand"
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Returns a command that do Exec.
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property MachDbCommand As ICommand
|
||||
' Get
|
||||
' If m_cmdMachDb Is Nothing Then
|
||||
' m_cmdMachDb = New Command(AddressOf MachDb)
|
||||
' End If
|
||||
' Return m_cmdMachDb
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
' ''' </summary>
|
||||
' Public Sub MachDb(ByVal param As Object)
|
||||
' If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
|
||||
' ' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
|
||||
' If Not EgtMdbReload() Then
|
||||
' EgtOutLog("Impossible reloading machining Db")
|
||||
' MessageBox.Show(EgtMsg(MSG_MACHININGDBERRORS + 8), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Return
|
||||
' End If
|
||||
' Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(CurrentMachine.sMachIniFile, Map.refSceneHostVM.MainScene.GetCtx(), "Stone")
|
||||
' Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM)
|
||||
|
||||
' If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then
|
||||
' MachDbWindowV.Height = 768
|
||||
' MachDbWindowV.Width = 1024
|
||||
' MachDbWindowV.ShowDialog()
|
||||
' Else
|
||||
' Exit Sub
|
||||
' End If
|
||||
|
||||
' End Sub
|
||||
|
||||
'#End Region ' MachDbCommand
|
||||
|
||||
'#Region "SetUpCommand"
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Returns a command that do Exec.
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property SetUpCommand As ICommand
|
||||
' Get
|
||||
' If m_cmdSetUp Is Nothing Then
|
||||
' m_cmdSetUp = New Command(AddressOf SetUp)
|
||||
' End If
|
||||
' Return m_cmdSetUp
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
' ''' </summary>
|
||||
' Public Sub SetUp(ByVal param As Object)
|
||||
' ' verifico che il file di configurazione attrezzaggio (lua) della macchina esista
|
||||
' If Not File.Exists(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA) Then
|
||||
' EgtOutLog("SetUp error: SetUp configuration file doesn't exist ")
|
||||
' MessageBox.Show(EgtMsg(MSG_SETUPERRORS + 7), EgtMsg(MSG_SETUPERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Return
|
||||
' End If
|
||||
' ' carico Lua che contiene le funzioni per ottenere le posizioni valide dell'utensile selezionato,
|
||||
' ' e testa e uscita dell'utensile attrezzato
|
||||
' EgtLuaExecFile(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA)
|
||||
' ' verifico che le teste riportate in configurazione esistano
|
||||
' Dim Index As Integer = 1
|
||||
' Dim nErr As Integer = 0
|
||||
' While nErr = 0
|
||||
' Dim sHead As String = String.Empty
|
||||
' nErr = 999
|
||||
' EgtLuaSetGlobIntVar("STU.INDEX", Index)
|
||||
' EgtLuaCallFunction("STU.GetTcPosHeadGroupFromPos")
|
||||
' ' Leggo variabili
|
||||
' EgtLuaGetGlobStringVar("STU.HEAD", sHead)
|
||||
' EgtLuaGetGlobIntVar("STU.ERR", nErr)
|
||||
' If nErr = 0 Then
|
||||
' If EgtGetHeadExitCount(sHead) = 0 Then
|
||||
' MessageBox.Show(EgtMsg(MSG_SETUPERRORS + 8), EgtMsg(MSG_SETUPERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Return
|
||||
' End If
|
||||
' End If
|
||||
' Index += 1
|
||||
' End While
|
||||
' ' Reset lua
|
||||
' EgtLuaResetGlobVar("STU")
|
||||
|
||||
' Dim SetUpWindow As New SetUpWindowV(Application.Current.MainWindow, New SetUpWindowVM(CurrentMachine.sMachDir, CurrentMachine.sMachineName))
|
||||
' SetUpWindow.Height = 614
|
||||
' SetUpWindow.Width = 1024
|
||||
' SetUpWindow.ShowDialog()
|
||||
|
||||
' End Sub
|
||||
|
||||
'#End Region ' SetUpCommand
|
||||
|
||||
'#Region "MachOptionsCommand"
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Returns a command that do Exec.
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property MachOptionsCommand As ICommand
|
||||
' Get
|
||||
' If m_cmdMachOptions Is Nothing Then
|
||||
' m_cmdMachOptions = New Command(AddressOf MachOptions)
|
||||
' End If
|
||||
' Return m_cmdMachOptions
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
' ''' </summary>
|
||||
' Public Sub MachOptions(ByVal param As Object)
|
||||
|
||||
' End Sub
|
||||
|
||||
'#End Region ' MachOptionsCommand
|
||||
|
||||
'#End Region ' COMMANDS
|
||||
|
||||
'End Class
|
||||
|
||||
@@ -6,18 +6,12 @@
|
||||
|
||||
<!--Barra superiore dei comandi-->
|
||||
<UniformGrid Rows="1">
|
||||
<Button Content="{Binding OnlyProdPage_Msg}"
|
||||
Command="{Binding OnlyProdPage_Command}"
|
||||
Visibility="{Binding OnlyProdPage_Visibility}"
|
||||
Style="{StaticResource MainMenu_Button}"/>
|
||||
<Button Content="{Binding Viewer_Msg}"
|
||||
Command="{Binding Viewer_Command}"
|
||||
Visibility="{Binding ViewerOptimizer_Visibility}"
|
||||
Style="{StaticResource MainMenu_Button}"/>
|
||||
Command="{Binding Viewer_Command}"
|
||||
Style="{StaticResource MainMenu_Button}"/>
|
||||
<Button Content="{Binding Optimizer_Msg}"
|
||||
Command="{Binding Optimizer_Command}"
|
||||
Visibility="{Binding ViewerOptimizer_Visibility}"
|
||||
Style="{StaticResource MainMenu_Button}"/>
|
||||
Command="{Binding Optimizer_Command}"
|
||||
Style="{StaticResource MainMenu_Button}"/>
|
||||
<RadioButton Content="{Binding Supervisor_Msg}"
|
||||
IsChecked="{Binding Supervisor_IsChecked}"
|
||||
Style="{StaticResource MainMenu_ToggleButton}"/>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtBEAMWALL.Core.ConstBeam
|
||||
Imports EgtUILib
|
||||
@@ -66,18 +67,6 @@ Public Class MainMenuVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OnlyProdPage_Visibility As Visibility
|
||||
Get
|
||||
Return If(bOnlyProd, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ViewerOptimizer_Visibility As Visibility
|
||||
Get
|
||||
Return If(bOnlyProd, Visibility.Collapsed, Visibility.Visible)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelPage As Integer = -1
|
||||
Public Property SelPage As Integer
|
||||
Get
|
||||
@@ -167,18 +156,11 @@ Public Class MainMenuVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OnlyProdPage_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61896)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdViewer As ICommand
|
||||
Private m_cmdOptimizer As ICommand
|
||||
Private m_cmdOnlyProdPage As ICommand
|
||||
|
||||
#End Region ' Fields & Properties
|
||||
|
||||
@@ -393,41 +375,7 @@ Public Class MainMenuVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' OnlyProdPage
|
||||
|
||||
#Region "OnlyProdPage"
|
||||
|
||||
Public ReadOnly Property OnlyProdPage_Command As ICommand
|
||||
Get
|
||||
If m_cmdOnlyProdPage Is Nothing Then
|
||||
m_cmdOnlyProdPage = New Command(AddressOf OnlyProdPage)
|
||||
End If
|
||||
Return m_cmdOnlyProdPage
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub OnlyProdPage()
|
||||
Dim sViewerOptimizerName As String = "EgtBEAMWALL.ViewerOptimizerR32"
|
||||
' recupero processo del supervisore
|
||||
Dim localProc As Process() = Process.GetProcessesByName(sViewerOptimizerName)
|
||||
If localProc.Length > 0 Then
|
||||
For Each p As Process In localProc
|
||||
' porto in primo piano il ViewerOptimizer
|
||||
BringWindowToFront(p.MainWindowHandle)
|
||||
DbControllers.m_StatusMapController.UpdateAction(DbControllers.m_SupervisorId, Map.refSupervisorManagerVM.CurrProd.nProdId, -Pages.ONLYPRODPAGE, StatusMapItemType.Comm, StatusMapOpType.OpenPageInViewOptimRequest, "")
|
||||
Exit For
|
||||
Next
|
||||
Else
|
||||
Dim sViewerOptimizerPath As String = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory) & "\" & sViewerOptimizerName & ".exe"
|
||||
Try
|
||||
Process.Start(sViewerOptimizerPath, "2 " & Pages.ONLYPRODPAGE)
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error: impossible starting vieweroptimizer from path " & sViewerOptimizerPath)
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' OnlyProdPage
|
||||
#End Region ' Optimizer
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
|
||||
@@ -170,20 +170,6 @@ Public Class MainWindowM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bOnlyProd As Boolean = False
|
||||
Friend ReadOnly Property bOnlyProd As Boolean
|
||||
Get
|
||||
Return m_bOnlyProd
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bModifySetup As Boolean = False
|
||||
Friend ReadOnly Property bModifySetup As Boolean
|
||||
Get
|
||||
Return m_bModifySetup
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' FIELDS
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
@@ -315,17 +301,9 @@ Public Class MainWindowM
|
||||
Dim sLuaLibsDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir)
|
||||
EgtSetLuaLibs(sLuaLibsDir)
|
||||
' Recupero flag OnlyProd
|
||||
m_bOnlyProd = GetMainPrivateProfileInt(S_GENERAL, K_ONLYPROD, 0) = 1
|
||||
' e lo imposto nel core
|
||||
Core.Configuration.SetOnlyProd(m_bOnlyProd)
|
||||
Dim sLuaBaseLib As String = String.Empty
|
||||
GetMainPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib)
|
||||
EgtLuaRequire(sLuaBaseLib)
|
||||
' Recupero flag ModifySetup
|
||||
m_bModifySetup = GetMainPrivateProfileInt(S_GENERAL, K_MODIFYSETUP, 0) = 1
|
||||
' e lo imposto nel core
|
||||
Core.Configuration.SetModifySetup(m_bModifySetup)
|
||||
' verifico se stampante attiva
|
||||
Dim sPrinterLink As String = ""
|
||||
Dim nPrinterLink As Integer = 0
|
||||
|
||||
@@ -107,14 +107,8 @@ Public Class MainWindowVM
|
||||
|
||||
' leggo riga di comando
|
||||
Dim nCommandType As Integer = 0
|
||||
Dim nPage As Pages = Nothing
|
||||
Dim nPage As Pages = Pages.VIEW
|
||||
Dim nProdId As Integer = 0
|
||||
If Map.refMainWindowVM.MainWindowM.bOnlyProd Then
|
||||
nPage = Pages.ONLYPRODPAGE
|
||||
Else
|
||||
nPage = Pages.VIEW
|
||||
End If
|
||||
|
||||
If ProcessCommandLine(nCommandType, nProdId) AndAlso nCommandType = 1 Then
|
||||
Map.refSupervisorManagerVM.SetCurrProd(nProdId)
|
||||
Else
|
||||
|
||||
@@ -11,13 +11,14 @@ Public Class OpenProjectFileDialogVM
|
||||
|
||||
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
|
||||
m_ProjectType = ProjectType
|
||||
m_GoToProd = GoToProd
|
||||
' carico colonne
|
||||
LoadColumns(m_ProjectType)
|
||||
NotifyPropertyChanged(NameOf(FilterTypeList))
|
||||
m_SelFilterType = m_FilterTypeList(0)
|
||||
' carico lista progetti
|
||||
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
|
||||
RefreshProjectList(GoToProd)
|
||||
RefreshProjectList()
|
||||
Else
|
||||
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
|
||||
NotifyPropertyChanged(NameOf(ProjectList))
|
||||
@@ -26,7 +27,7 @@ Public Class OpenProjectFileDialogVM
|
||||
m_ProjectList_View.Filter = AddressOf ProjectFilter
|
||||
End Function
|
||||
|
||||
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
|
||||
Public Overrides Sub RefreshProjectList()
|
||||
m_ProjectList.Clear()
|
||||
' calcolo periodo e righe
|
||||
Dim dtStart As DateTime
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Supervisor">
|
||||
|
||||
<EgtFloating:EgtFloatingTray x:Name="PROJECTTOPTRAY" DockPanel.Dock="Top">
|
||||
<EgtBEAMWALL:SupervisorManagerV DataContext="{StaticResource SupervisorManagerVM}"/>
|
||||
<EgtBEAMWALLCORE:MachinePanelV DataContext="{StaticResource MachinePanelVM}"
|
||||
Visibility="Collapsed"/>
|
||||
<EgtBEAMWALL:MachinePanelV DataContext="{StaticResource MachinePanelVM}"
|
||||
Visibility="Collapsed"/>
|
||||
</EgtFloating:EgtFloatingTray>
|
||||
|
||||
<Grid>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 434 B |
@@ -87,14 +87,15 @@ Public Class SupervisorManagerVM
|
||||
End Property
|
||||
Public ReadOnly Property GoToProd_ToolTip As String
|
||||
Get
|
||||
Return If(refMainWindowVM.MainWindowM.bOnlyProd, EgtMsg(61800), EgtMsg(61835))
|
||||
Return EgtMsg(61835)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region ' ToolTip
|
||||
|
||||
#End Region ' Fields & Properties
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
@@ -371,22 +372,13 @@ Public Class SupervisorManagerVM
|
||||
Else
|
||||
Dim sOptimizerPath As String = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory) & "\" & sOptimizerName & ".exe"
|
||||
Try
|
||||
If bOnlyProd Then
|
||||
Process.Start(sOptimizerPath, "2 " & Pages.ONLYPRODPAGE)
|
||||
Else
|
||||
Process.Start(sOptimizerPath, "1 " & CurrProd.nProdId)
|
||||
End If
|
||||
Process.Start(sOptimizerPath, "1 " & CurrProd.nProdId)
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error: impossible starting optimizer from path " & sOptimizerPath)
|
||||
End Try
|
||||
End If
|
||||
If bOnlyProd Then
|
||||
' mando richiesta di apertura progetto in progettazione
|
||||
DbControllers.m_StatusMapController.UpdateAction(DbControllers.m_SupervisorId, Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refSupervisorManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ChangeProdInOnlyProdRequest, "")
|
||||
Else
|
||||
' mando richiesta di apertura progetto in ottimizzatore
|
||||
DbControllers.m_StatusMapController.UpdateAction(DbControllers.m_SupervisorId, Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refSupervisorManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ChangeProdInProdRequest, "")
|
||||
End If
|
||||
' mando richiesta di apertura progetto in ottimizzatore
|
||||
DbControllers.m_StatusMapController.UpdateAction(DbControllers.m_SupervisorId, Map.refSupervisorManagerVM.CurrProd.nProdId, Map.refSupervisorManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ChangeProdInProdRequest, "")
|
||||
End Sub
|
||||
|
||||
#End Region ' GoToProd
|
||||
|
||||
@@ -28,15 +28,9 @@ Public Module CurrentMachine
|
||||
Private m_sMachIniFile As String = String.Empty
|
||||
' File ini dei parametri macchina
|
||||
Private m_sMachParamIniFile As String = String.Empty
|
||||
' File lettura Ts3Data
|
||||
Private m_sGetTs3DataFile As String = String.Empty
|
||||
' File Ts3Data
|
||||
Private m_sTs3DataFile As String = String.Empty
|
||||
' Cartella degli script
|
||||
Private m_sMachScriptDir As String = String.Empty
|
||||
' Cartella dei setup
|
||||
Private m_sMachSetupDir As String = String.Empty
|
||||
' File dei messaggi macchina
|
||||
' Ffile dei messaggi macchina
|
||||
Private m_sMachMessagesFile As String = String.Empty
|
||||
|
||||
' Tipo macchina
|
||||
@@ -51,6 +45,12 @@ Public Module CurrentMachine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property nType As MachineType
|
||||
Get
|
||||
Return m_nType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' tipo di CN della macchina
|
||||
Private m_NCType As NCTypes = NCTypes.NULL
|
||||
Public ReadOnly Property NCType As Integer
|
||||
@@ -92,41 +92,17 @@ Public Module CurrentMachine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sTs3DataFile As String
|
||||
Get
|
||||
Return m_sTs3DataFile
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sMachScriptDir As String
|
||||
Get
|
||||
Return m_sMachScriptDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sMachSetupDir As String
|
||||
Get
|
||||
Return m_sMachSetupDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
Friend ReadOnly Property nType As MachineType
|
||||
Get
|
||||
Return m_nType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_MachTableList As New ObservableCollection(Of MachTable)
|
||||
Public Property MachTableList As ObservableCollection(Of MachTable)
|
||||
Get
|
||||
Return m_MachTableList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of MachTable))
|
||||
m_MachTableList = value
|
||||
End Set
|
||||
End Property
|
||||
'Private m_MachTableList As New ObservableCollection(Of MachTable)
|
||||
'Public Property MachTableList As ObservableCollection(Of MachTable)
|
||||
' Get
|
||||
' Return m_MachTableList
|
||||
' End Get
|
||||
' Set(value As ObservableCollection(Of MachTable))
|
||||
' m_MachTableList = value
|
||||
' End Set
|
||||
'End Property
|
||||
|
||||
#Region "Init"
|
||||
|
||||
@@ -162,30 +138,21 @@ Public Module CurrentMachine
|
||||
' Impostazione path MachParamIni file
|
||||
If nType = MachineType.BEAM Then
|
||||
m_sMachParamIniFile = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & MACH_INI_FILE_NAME
|
||||
m_sGetTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & GETTS3DATA_FILE_NAME
|
||||
m_sTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & TS3DATA_FILE
|
||||
ElseIf nType = MachineType.WALL Then
|
||||
m_sMachParamIniFile = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & MACH_INI_FILE_NAME
|
||||
m_sGetTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & GETTS3DATA_FILE_NAME
|
||||
m_sTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & TS3DATA_FILE
|
||||
Else
|
||||
' Se macchina di tipo BOTH prendo quello presente in Beam, se esiste, altrimenti prendo quello in Wall
|
||||
Dim sBeamMachParamIniFile = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & MACH_INI_FILE_NAME
|
||||
Dim sWallMachParamIniFile = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & MACH_INI_FILE_NAME
|
||||
Dim sBeamGetTs3File = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & GETTS3DATA_FILE_NAME
|
||||
Dim sWallGetTs3File = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & GETTS3DATA_FILE_NAME
|
||||
Dim sBeamTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_BEAM & "\" & TS3DATA_FILE
|
||||
Dim sWallTs3DataFile = sMachinesRootDir & "\" & sMachineName & "\" & K_WALL & "\" & TS3DATA_FILE
|
||||
If nType = MachineType.BOTH Then
|
||||
m_sMachParamIniFile = If(File.Exists(sBeamMachParamIniFile), sBeamMachParamIniFile, sWallMachParamIniFile)
|
||||
m_sGetTs3DataFile = If(File.Exists(sBeamGetTs3File), sBeamGetTs3File, sWallGetTs3File)
|
||||
m_sTs3DataFile = If(File.Exists(sBeamTs3DataFile), sBeamTs3DataFile, sWallTs3DataFile)
|
||||
End If
|
||||
End If
|
||||
|
||||
' leggo tipo di avanzamento pezzi
|
||||
m_Flow = GetPrivateProfileInt(S_GENERAL, K_FLOW, 1, m_sMachIniFile)
|
||||
' Impostazione path Script dir
|
||||
m_sMachScriptDir = sMachinesRootDir & "\" & sMachineName & "\" & K_SCRIPT
|
||||
' Impostazione path Setup dir
|
||||
m_sMachSetupDir = sMachinesRootDir & "\" & sMachineName & "\" & K_SETUP
|
||||
|
||||
' crea l'elenco dei parametri della macchina corrente
|
||||
CreateMachParams()
|
||||
@@ -198,9 +165,8 @@ Public Module CurrentMachine
|
||||
|
||||
' imposto visibilita' input output
|
||||
Map.refMainMenuVM.SetInputOutputVisibility()
|
||||
|
||||
' leggo parametri macchina da BeamData
|
||||
If nType = MachineType.BEAM OrElse nType = MachineType.BOTH Then
|
||||
' leggo parametri macchina da WallData
|
||||
If nType = MachineType.BEAM Then
|
||||
' Assegno i dati
|
||||
EgtLuaCreateGlobTable("GWD")
|
||||
EgtLuaSetGlobStringVar("GWD.BASEDIR", Map.refMainWindowVM.MainWindowM.sBeamRoot)
|
||||
@@ -219,7 +185,7 @@ Public Module CurrentMachine
|
||||
EgtOutLog("Error executing GetBeamData script " & sExecPath)
|
||||
End If
|
||||
If bOk Then
|
||||
Dim nTemp As Integer = 0
|
||||
Dim nTemp As Integer
|
||||
EgtLuaGetGlobIntVar("GWD.SIMUL_VIEW_DIR", nTemp)
|
||||
Select Case nTemp
|
||||
Case 0
|
||||
@@ -241,7 +207,7 @@ Public Module CurrentMachine
|
||||
' aggiorno parametro in gestore viste
|
||||
Core.ViewPanelVM.UpdateMachParam(m_nViewDir)
|
||||
End If
|
||||
If nType = MachineType.WALL OrElse nType = MachineType.BOTH Then
|
||||
If nType = MachineType.WALL Then
|
||||
' Assegno i dati
|
||||
EgtLuaCreateGlobTable("GWD")
|
||||
EgtLuaSetGlobStringVar("GWD.BASEDIR", Map.refMainWindowVM.MainWindowM.sWallRoot)
|
||||
@@ -260,11 +226,9 @@ Public Module CurrentMachine
|
||||
EgtOutLog("Error executing GetWallData script " & sExecPath)
|
||||
End If
|
||||
If bOk Then
|
||||
Dim nTemp As Integer = 0
|
||||
Dim nTemp As Integer
|
||||
EgtLuaGetGlobIntVar("GWD.SIMUL_VIEW_DIR", nTemp)
|
||||
Select Case nTemp
|
||||
Case 0
|
||||
m_nViewDir = VT.ISO_SW
|
||||
Case 1
|
||||
m_nViewDir = VT.ISO_NW
|
||||
Case 2
|
||||
@@ -312,41 +276,25 @@ Public Module CurrentMachine
|
||||
|
||||
' funzione che crea l'elenco dei parametri Macchina
|
||||
Friend Sub CreateMachParams()
|
||||
MachTableList.Clear()
|
||||
If String.IsNullOrWhiteSpace(m_sMachParamIniFile) OrElse Not File.Exists(m_sMachParamIniFile) Then
|
||||
EgtOutLog("Impossible loading Mach parameters: MachData.ini file not found or not readable")
|
||||
Return
|
||||
End If
|
||||
Dim NewMachParam As MachParam = Nothing
|
||||
Dim MachParamList As New ObservableCollection(Of MachParam)
|
||||
Dim TableIndex = 1
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim TableName As String = String.Empty
|
||||
' carico lua ts3data
|
||||
Dim bTs3DataLoaded As Boolean = False
|
||||
EgtLuaCreateGlobTable("GTSD")
|
||||
EgtLuaSetGlobStringVar("GTSD.TS3PATH", m_sTs3DataFile)
|
||||
Dim sExecPath As String = m_sGetTs3DataFile
|
||||
bTs3DataLoaded = File.Exists(m_sTs3DataFile) AndAlso EgtLuaExecFile(sExecPath)
|
||||
If Not bTs3DataLoaded Then
|
||||
EgtOutLog("Error executing Ts3Data file " & m_sTs3DataFile)
|
||||
End If
|
||||
|
||||
' verifico che ci sia una table con l'indice designato e ne leggo il nome
|
||||
While GetMachPrivateProfileString(TableIndex, K_NAME, "", TableName)
|
||||
' leggo tutti i parametri della table
|
||||
While MachParamIniFile.GetMachPrivateProfileParam(TableIndex, ParamIndex, NewMachParam, TableName, bTs3DataLoaded)
|
||||
MachParamList.Add(NewMachParam)
|
||||
ParamIndex += 1
|
||||
End While
|
||||
MachTableList.Add(New MachTable(TableName, MachParamList))
|
||||
' aggiorno indici e resetto lista per lettura dell'eventuale table successiva
|
||||
TableIndex += 1
|
||||
ParamIndex = 1
|
||||
MachParamList = New ObservableCollection(Of MachParam)
|
||||
End While
|
||||
' Cancello tavola globale
|
||||
EgtLuaResetGlobVar("GTSD")
|
||||
'MachTableList.Clear()
|
||||
'Dim NewMachParam As MachParam = Nothing
|
||||
'Dim MachParamList As New ObservableCollection(Of MachParam)
|
||||
'Dim TableIndex = 1
|
||||
'Dim ParamIndex As Integer = 1
|
||||
'Dim TableName As String = String.Empty
|
||||
'' verifico che ci sia una table con l'indice designato e ne leggo il nome
|
||||
'While GetMachPrivateProfileString(TableIndex, K_NAME, "", TableName)
|
||||
' ' leggo tutti i parametri della table
|
||||
' While MachParamIniFile.GetMachPrivateProfileParam(TableIndex, ParamIndex, NewMachParam)
|
||||
' MachParamList.Add(NewMachParam)
|
||||
' ParamIndex += 1
|
||||
' End While
|
||||
' MachTableList.Add(New MachTable(TableName, MachParamList))
|
||||
' ' aggiorno indici e resetto lista per lettura dell'eventuale table successiva
|
||||
' TableIndex += 1
|
||||
' ParamIndex = 1
|
||||
' MachParamList = New ObservableCollection(Of MachParam)
|
||||
'End While
|
||||
End Sub
|
||||
|
||||
Public Function MachMsg(Paragraph As MsgParagraphs, nId As Integer) As String
|
||||
|
||||
@@ -159,11 +159,8 @@
|
||||
<Setter Property="Width" Value="80"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="25"/>
|
||||
<Setter Property="Width" Value="25"/>
|
||||
<Setter Property="Margin" Value="5,0,0,0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
<Setter Property="Height" Value="60"/>
|
||||
<Setter Property="Width" Value="60"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_TextButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
@@ -271,8 +268,8 @@
|
||||
<Setter Property="Background" Value="{StaticResource Omag_White}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource Omag_DarkGray}"/>
|
||||
<Setter Property="TextBlock.FontWeight" Value="Normal"/>
|
||||
<!--<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="90"/>-->
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="90"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsChecked" Value="true">
|
||||
<Setter Property="TextBlock.FontWeight" Value="ExtraBold"/>
|
||||
@@ -356,12 +353,6 @@
|
||||
<Setter Property="Margin" Value="2.5,0,2.5,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MachParamTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Left"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="5,0,5,0"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- TextBox -->
|
||||
@@ -757,38 +748,4 @@
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- TabControl that have only Headers and no Pages -->
|
||||
|
||||
<Style x:Key="TabControl_OnlyHeaders" TargetType="{x:Type TabControl}">
|
||||
<Setter Property="OverridesDefaultStyle" Value="True" />
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type TabControl}">
|
||||
<Grid KeyboardNavigation.TabNavigation="Local">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabPanel Name="HeaderPanel"
|
||||
Grid.Row="0"
|
||||
Panel.ZIndex="1"
|
||||
Margin="0,0,4,-1"
|
||||
IsItemsHost="True"
|
||||
KeyboardNavigation.TabIndex="1"
|
||||
Background="Transparent" />
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Friend Module MachParamIniFile
|
||||
|
||||
Public Function GetMachPrivateProfileParam(IpParentTable As Integer, IpMachParamIndex As String, ByRef IpMachParam As MachParam, TableName As String, bTs3dataLoaded As Boolean) As Boolean
|
||||
Dim sMachParam As String = String.Empty
|
||||
If EgtUILib.GetPrivateProfileString(IpParentTable, IpMachParamIndex, String.Empty, sMachParam, sMachParamIniFile) > 0 Then
|
||||
Dim sMachParamParams() As String = sMachParam.Split(","c)
|
||||
' verifico numero minimo di parametri
|
||||
If sMachParamParams.Count >= 4 Then
|
||||
' cancello spazi
|
||||
For Index = 0 To sMachParamParams.Count - 1
|
||||
sMachParamParams(Index) = sMachParamParams(Index).Trim()
|
||||
Next
|
||||
' creo parametro
|
||||
If sMachParamParams(0) = "d" OrElse sMachParamParams(0) = "l" Then
|
||||
Dim dDefault As Double
|
||||
StringToDoubleAdv(sMachParamParams(2), dDefault)
|
||||
Dim ParamType As MachParamType
|
||||
If sMachParamParams(0) = "d" Then
|
||||
ParamType = MachParamType.DOUBLE_
|
||||
Else
|
||||
ParamType = MachParamType.LENGTH
|
||||
End If
|
||||
If bTs3dataLoaded Then
|
||||
Dim dTs3DataValue As Double
|
||||
If EgtLuaGetGlobNumVar(TableName & "." & sMachParamParams(1), dTs3DataValue) Then
|
||||
dDefault = dTs3DataValue
|
||||
End If
|
||||
End If
|
||||
IpMachParam = New MachParam(IpParentTable, IpMachParamIndex, ParamType, sMachParamParams(1), dDefault, sMachParamParams(3))
|
||||
Return Not IsNothing(IpMachParam)
|
||||
ElseIf sMachParamParams(0) = "s" Then
|
||||
IpMachParam = New MachParam(IpParentTable, IpMachParamIndex, MachParamType.STRING_, sMachParamParams(1), sMachParamParams(3))
|
||||
Return Not IsNothing(IpMachParam)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Public Function GetMachPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
|
||||
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, sMachParamIniFile)
|
||||
End Function
|
||||
|
||||
Public Function GetMachPrivateProfileParamValue(IpParentTable As Integer, IpMachParamIndex As String, ByRef IpMachParamValue As String) As Boolean
|
||||
Dim sMachParam As String = String.Empty
|
||||
If EgtUILib.GetPrivateProfileString(IpParentTable, IpMachParamIndex, String.Empty, sMachParam, sMachParamIniFile) > 0 Then
|
||||
Dim sMachParamParams() As String = sMachParam.Split(","c)
|
||||
' verifico numero minimo di parametri
|
||||
If sMachParamParams.Count >= 4 Then
|
||||
' cancello spazi
|
||||
For Index = 0 To sMachParamParams.Count - 1
|
||||
sMachParamParams(Index) = sMachParamParams(Index).Trim()
|
||||
Next
|
||||
'restituisco il valore del parametro
|
||||
IpMachParamValue = sMachParamParams(2)
|
||||
Return Not IsNothing(IpMachParamValue)
|
||||
End If
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Public Function WriteMachPrivateProfileString(IpAppName As String, IpKeyName As String, ByRef IpString As String) As Boolean
|
||||
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, sMachParamIniFile)
|
||||
End Function
|
||||
|
||||
End Module
|
||||
@@ -27,6 +27,7 @@
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="0"
|
||||
Margin="0,0,0,5">
|
||||
@@ -45,14 +46,13 @@
|
||||
Grid.Column="1"
|
||||
DisplayMemberPath="ghDesc"
|
||||
Width="200"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
<TextBlock Text="Macro"
|
||||
Grid.Row="1"
|
||||
Margin="0,5,0,0"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding MacroCustomList}"
|
||||
SelectedIndex="{Binding nSelMacroCustom}"
|
||||
<ComboBox ItemsSource="{Binding MacroList}"
|
||||
SelectedIndex="{Binding nSelMacro}"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
DisplayMemberPath="Name"
|
||||
@@ -66,6 +66,7 @@
|
||||
Height="300"
|
||||
Width="300"
|
||||
Margin="5,0,5,5"/>
|
||||
|
||||
<!--<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Center"
|
||||
Grid.Row="2"
|
||||
@@ -83,6 +84,7 @@
|
||||
<TextBlock Text="{Binding sName}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
</StackPanel>-->
|
||||
|
||||
<Grid Grid.Row="2" Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -92,16 +94,18 @@
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="Ok"
|
||||
Command="{Binding Ok_Command}"
|
||||
IsDefault="True"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
Command="{Binding Ok_Command}"
|
||||
IsDefault="True"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="Cancel"
|
||||
IsCancel="True"
|
||||
Grid.Column="3"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
IsCancel="True"
|
||||
Grid.Column="3"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
|
||||
@@ -11,7 +11,6 @@ Public Class AddFeatureWndVM
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
Friend m_MacroFilePathList As List(Of String)
|
||||
Friend m_MacroCustomFilePathList As List(Of String)
|
||||
|
||||
Private m_PrevSelPRCIndex_L As Integer = 0
|
||||
Private m_PrevSelPRCIndex_T As Integer = 0
|
||||
@@ -38,8 +37,8 @@ Public Class AddFeatureWndVM
|
||||
ElseIf m_SelGRPType = GRPType.T Then
|
||||
nSelPRC = PRCList(m_PrevSelPRCIndex_T)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(PRCList))
|
||||
NotifyPropertyChanged(NameOf(nSelPRC))
|
||||
NotifyPropertyChanged("PRCList")
|
||||
NotifyPropertyChanged("nSelPRC")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -50,36 +49,6 @@ Public Class AddFeatureWndVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_PRCListView As New List(Of PRC)
|
||||
Public ReadOnly Property PRCListView As List(Of PRC)
|
||||
Get
|
||||
Return m_PRCListView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "New Macro OnlyProdPage"
|
||||
|
||||
Private m_MacroDefaultList As New ObservableCollection(Of Object)
|
||||
Public ReadOnly Property MacroDefaultList As ObservableCollection(Of Object)
|
||||
Get
|
||||
Return m_MacroDefaultList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nSelMacroDefault As Integer = -1
|
||||
Public Property nSelMacroDefault As Integer
|
||||
Get
|
||||
Return m_nSelMacroDefault
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
If value <> m_nSelMacroDefault Then
|
||||
m_nSelMacroDefault = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' New Macro OnlyProdPage
|
||||
|
||||
Private m_nSelPRC As PRC = Nothing
|
||||
Public Property nSelPRC As PRC
|
||||
Get
|
||||
@@ -95,31 +64,47 @@ Public Class AddFeatureWndVM
|
||||
m_PrevSelPRCIndex_T = PRCList.IndexOf(m_nSelPRC)
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sDrawPath))
|
||||
NotifyPropertyChanged("sDrawPath")
|
||||
' carico eventuali file Macro
|
||||
MacroCustomList.Clear()
|
||||
If Core.Configuration.bOnlyProd Then
|
||||
MacroDefaultList.Clear()
|
||||
End If
|
||||
MacroList.Clear()
|
||||
m_MacroFilePathList = New List(Of String)
|
||||
m_MacroCustomFilePathList = New List(Of String)
|
||||
If Not IsNothing(nSelPRC) Then
|
||||
Dim nGRPFromFileName As Integer = 0
|
||||
Dim nPRCFromFileName As Integer = 0
|
||||
Dim sMacroNameFromFileName As String = String.Empty
|
||||
Dim nIdMacroName As Integer = 0
|
||||
' ricavo lista file Macro Default
|
||||
GetMacroListDefault(nGRPFromFileName, nPRCFromFileName, sMacroNameFromFileName, nIdMacroName)
|
||||
' ricavo lista file Macro Custom
|
||||
If Core.Configuration.bOnlyProd Then GetMacroListCustom(nGRPFromFileName, nPRCFromFileName, sMacroNameFromFileName, nIdMacroName)
|
||||
If MacroCustomList.Count > 0 Then
|
||||
' ricavo lista file Macro
|
||||
Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Map.refMainWindowVM.MainWindowM.sMacroDir)
|
||||
For Each File In AllFilesInDir
|
||||
If Path.GetExtension(File).ToLower() = ".lua" Then
|
||||
If File.Contains(FILENAMESEPARATOR) Then
|
||||
Dim FileName As String = Path.GetFileNameWithoutExtension(File)
|
||||
Dim DataFromFileName As String() = FileName.Split(FILENAMESEPARATOR)
|
||||
If DataFromFileName.Count = 2 Then
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
||||
Dim NumbersFromFileName As String() = DataFromFileName(0).Split(".")
|
||||
Integer.TryParse(NumbersFromFileName(0), nGRPFromFileName)
|
||||
Integer.TryParse(NumbersFromFileName(1), nPRCFromFileName)
|
||||
End If
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
||||
sMacroNameFromFileName = DataFromFileName(1)
|
||||
End If
|
||||
If nGRPFromFileName = CalcBeamPrivateProfileGRP(nSelPRC.nGRP) AndAlso nPRCFromFileName = nSelPRC.nPRC Then
|
||||
MacroList.Add(New IdNameStruct(nIdMacroName, sMacroNameFromFileName))
|
||||
m_MacroFilePathList.Add(File)
|
||||
nIdMacroName = nIdMacroName + 1
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If MacroList.Count > 0 Then
|
||||
MacroList_IsEnabled = True
|
||||
Else
|
||||
MacroList_IsEnabled = False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(nSelPRC))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -131,26 +116,26 @@ Public Class AddFeatureWndVM
|
||||
Set(value As Boolean)
|
||||
If value <> m_MacroList_IsEnabled Then
|
||||
m_MacroList_IsEnabled = value
|
||||
NotifyPropertyChanged(NameOf(MacroList_IsEnabled))
|
||||
NotifyPropertyChanged("MacroList_IsEnabled")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MacroCustomList As New ObservableCollection(Of Object)
|
||||
Public ReadOnly Property MacroCustomList As ObservableCollection(Of Object)
|
||||
Private m_MacroList As New ObservableCollection(Of Object)
|
||||
Public ReadOnly Property MacroList As ObservableCollection(Of Object)
|
||||
Get
|
||||
Return m_MacroCustomList
|
||||
Return m_MacroList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nSelMacroCustom As Integer = -1
|
||||
Public Property nSelMacroCustom As Integer
|
||||
Private m_nSelMacro As Integer = -1
|
||||
Public Property nSelMacro As Integer
|
||||
Get
|
||||
Return m_nSelMacroCustom
|
||||
Return m_nSelMacro
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
If value <> m_nSelMacroCustom Then
|
||||
m_nSelMacroCustom = value
|
||||
If value <> m_nSelMacro Then
|
||||
m_nSelMacro = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -172,133 +157,17 @@ Public Class AddFeatureWndVM
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property Process_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61805).ToUpper()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Default_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61899).ToUpper()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Custom_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61801).ToUpper()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
If Core.Configuration.bOnlyProd Then
|
||||
' carico lista process
|
||||
Dim TempPRCList As New ObservableCollection(Of Integer)
|
||||
Dim TempPRCLList As New ObservableCollection(Of Integer)
|
||||
Dim TempPRCLTist As New ObservableCollection(Of Integer)
|
||||
GetBeamPrivateProfileProcessList(0, TempPRCLList)
|
||||
GetBeamPrivateProfileProcessList(1, TempPRCLTist)
|
||||
' riporto le liste process in un unica lista
|
||||
For Each PRCL In TempPRCLList
|
||||
TempPRCList.Add(PRCL)
|
||||
Next
|
||||
For Each PRCT In TempPRCLTist
|
||||
TempPRCList.Add(PRCT)
|
||||
Next
|
||||
m_PRCList.Clear()
|
||||
' ciclo sulla lista process eliminado i doppi
|
||||
For Each PRC In TempPRCList.Distinct()
|
||||
' leggo gruppi
|
||||
Dim GRPLList As New ObservableCollection(Of Integer)
|
||||
Dim GRPTList As New ObservableCollection(Of Integer)
|
||||
GetBeamPrivateProfileGRPList(0, PRC, GRPLList)
|
||||
GetBeamPrivateProfileGRPList(1, PRC, GRPTList)
|
||||
If GRPLList.Count > 0 Then m_PRCList.Add(New PRC(GRPLList(0), PRC, GetBeamPrivateProfileName(0, PRC)))
|
||||
If GRPTList.Count > 0 Then m_PRCList.Add(New PRC(GRPTList(0), PRC, GetBeamPrivateProfileName(1, PRC)))
|
||||
Next
|
||||
m_PRCListView = m_PRCList.OrderBy(Function(x) x.nPRC).ToList()
|
||||
nSelPRC = m_PRCList(0)
|
||||
NotifyPropertyChanged(NameOf(PRCListView))
|
||||
NotifyPropertyChanged(NameOf(PRCList))
|
||||
Else
|
||||
SelGRPType = 0
|
||||
nSelPRC = PRCList(0)
|
||||
End If
|
||||
SelGRPType = 0
|
||||
nSelPRC = PRCList(0)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Private Sub GetMacroListDefault(ByRef nGRPFromFileName As Integer, ByRef nPRCFromFileName As Integer, ByRef sMacroNameFromFileName As String, ByRef nIdMacroName As Integer)
|
||||
Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Map.refMainWindowVM.MainWindowM.sMacroCustomDir)
|
||||
For Each File In AllFilesInDir
|
||||
If Path.GetExtension(File).ToLower() = ".lua" Then
|
||||
If File.Contains(FILENAMESEPARATOR) Then
|
||||
Dim FileName As String = Path.GetFileNameWithoutExtension(File)
|
||||
Dim DataFromFileName As String() = FileName.Split(FILENAMESEPARATOR)
|
||||
If DataFromFileName.Count = 2 Then
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
||||
Dim NumbersFromFileName As String() = DataFromFileName(0).Split(".")
|
||||
Integer.TryParse(NumbersFromFileName(0), nGRPFromFileName)
|
||||
Integer.TryParse(NumbersFromFileName(1), nPRCFromFileName)
|
||||
End If
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
||||
sMacroNameFromFileName = DataFromFileName(1)
|
||||
End If
|
||||
If nGRPFromFileName = CalcBeamPrivateProfileGRP(nSelPRC.nGRP) AndAlso nPRCFromFileName = nSelPRC.nPRC Then
|
||||
If Core.Configuration.bOnlyProd Then
|
||||
MacroCustomList.Add(New NewMacro(nIdMacroName, sMacroNameFromFileName, Map.refMainWindowVM.MainWindowM.sMacroCustomDir & "\Template\" & sMacroNameFromFileName & ".png"))
|
||||
Else
|
||||
MacroCustomList.Add(New IdNameStruct(nIdMacroName, sMacroNameFromFileName))
|
||||
End If
|
||||
m_MacroFilePathList.Add(File)
|
||||
nIdMacroName += 1
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub GetMacroListCustom(ByRef nGRPFromFileName As Integer, ByRef nPRCFromFileName As Integer, ByRef sMacroNameFromFileName As String, ByRef nIdMacroName As Integer)
|
||||
nIdMacroName = 0
|
||||
Dim AllFilesInDirCustom As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Map.refMainWindowVM.MainWindowM.sMacroDefaultDir)
|
||||
For Each File In AllFilesInDirCustom
|
||||
If Path.GetExtension(File).ToLower() = ".lua" Then
|
||||
If File.Contains(FILENAMESEPARATOR) Then
|
||||
Dim FileName As String = Path.GetFileNameWithoutExtension(File)
|
||||
Dim DataFromFileName As String() = FileName.Split(FILENAMESEPARATOR)
|
||||
If DataFromFileName.Count = 2 Then
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
||||
Dim NumbersFromFileName As String() = DataFromFileName(0).Split(".")
|
||||
Integer.TryParse(NumbersFromFileName(0), nGRPFromFileName)
|
||||
Integer.TryParse(NumbersFromFileName(1), nPRCFromFileName)
|
||||
End If
|
||||
If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
||||
sMacroNameFromFileName = DataFromFileName(1)
|
||||
End If
|
||||
If nGRPFromFileName = CalcBeamPrivateProfileGRP(nSelPRC.nGRP) AndAlso nPRCFromFileName = nSelPRC.nPRC Then
|
||||
MacroDefaultList.Add(New NewMacro(nIdMacroName, sMacroNameFromFileName))
|
||||
m_MacroCustomFilePathList.Add(File)
|
||||
nIdMacroName += 1
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "Ok"
|
||||
@@ -390,43 +259,4 @@ Public Class PRC
|
||||
m_QBTLParamVMList = QBTLParamList
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class NewMacro
|
||||
|
||||
' Indice Macro
|
||||
Private m_nIndexMacro As Integer
|
||||
Public ReadOnly Property nIndexMacro As Integer
|
||||
Get
|
||||
Return m_nIndexMacro
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Nome Macro
|
||||
Private m_sMacroName As String
|
||||
Public ReadOnly Property sMacroName As String
|
||||
Get
|
||||
Return m_sMacroName.ToUpper()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Cartella dove sono contenuti i templete delle macro
|
||||
Private m_sMacroDrawPath As String
|
||||
Public ReadOnly Property sMacroDrawPath As String
|
||||
Get
|
||||
Return m_sMacroDrawPath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(IndexMacro As Integer, MacroName As String)
|
||||
m_nIndexMacro = IndexMacro
|
||||
m_sMacroName = MacroName
|
||||
End Sub
|
||||
|
||||
Sub New(IndexMacro As Integer, MacroName As String, MacroDrawPath As String)
|
||||
m_nIndexMacro = IndexMacro
|
||||
m_sMacroName = MacroName
|
||||
m_sMacroDrawPath = MacroDrawPath
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user