Merge pull request #4 from puls200/feature/authority_id_for_berths
Feature/authority id for berths
This commit is contained in:
commit
c282f5d5e0
@ -523,7 +523,10 @@ components:
|
|||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
maxLength: 128
|
maxLength: 128
|
||||||
participant_id:
|
owner_id:
|
||||||
|
type: integer
|
||||||
|
nullable: true
|
||||||
|
authority_id:
|
||||||
type: integer
|
type: integer
|
||||||
nullable: true
|
nullable: true
|
||||||
lock:
|
lock:
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
CREATE DATABASE IF NOT EXISTS `bremen_calling` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
|
|
||||||
USE `bremen_calling`;
|
|
||||||
-- MySQL dump 10.13 Distrib 8.0.33, for Win64 (x86_64)
|
-- MySQL dump 10.13 Distrib 8.0.33, for Win64 (x86_64)
|
||||||
--
|
--
|
||||||
-- Host: localhost Database: bremen_calling
|
-- Host: localhost Database: bremen_calling_test
|
||||||
-- ------------------------------------------------------
|
-- ------------------------------------------------------
|
||||||
-- Server version 8.0.34-0ubuntu0.22.04.1
|
-- Server version 8.0.34-0ubuntu0.22.04.1
|
||||||
|
|
||||||
@ -27,14 +25,17 @@ DROP TABLE IF EXISTS `berth`;
|
|||||||
CREATE TABLE `berth` (
|
CREATE TABLE `berth` (
|
||||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(128) DEFAULT NULL COMMENT 'Descriptive name',
|
`name` varchar(128) DEFAULT NULL COMMENT 'Descriptive name',
|
||||||
`participant_id` int unsigned DEFAULT NULL COMMENT 'If berth belongs to a participant, reference it here',
|
|
||||||
`lock` bit(1) DEFAULT NULL COMMENT 'The lock must be used',
|
`lock` bit(1) DEFAULT NULL COMMENT 'The lock must be used',
|
||||||
|
`owner_id` int unsigned DEFAULT NULL,
|
||||||
|
`authority_id` int unsigned DEFAULT NULL,
|
||||||
`created` datetime DEFAULT CURRENT_TIMESTAMP,
|
`created` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||||
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||||
`deleted` bit(1) DEFAULT b'0',
|
`deleted` bit(1) DEFAULT b'0',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `FK_BERTH_PART` (`participant_id`),
|
KEY `FK_OWNER_PART_idx` (`owner_id`),
|
||||||
CONSTRAINT `FK_BERTH_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
KEY `FK_AUTHORITY_PART_idx` (`authority_id`),
|
||||||
|
CONSTRAINT `FK_AUTHORITY_PART` FOREIGN KEY (`authority_id`) REFERENCES `participant` (`id`),
|
||||||
|
CONSTRAINT `FK_OWNER_PART` FOREIGN KEY (`owner_id`) REFERENCES `participant` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Berth of ship for a ship call';
|
) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Berth of ship for a ship call';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ CREATE TABLE `participant` (
|
|||||||
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||||
`deleted` bit(1) DEFAULT b'0',
|
`deleted` bit(1) DEFAULT b'0',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='An organization taking part';
|
) ENGINE=InnoDB AUTO_INCREMENT=137 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='An organization taking part';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -165,7 +166,7 @@ CREATE TABLE `ship` (
|
|||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `FK_SHIP_PARTICIPANT` (`participant_id`),
|
KEY `FK_SHIP_PARTICIPANT` (`participant_id`),
|
||||||
CONSTRAINT `FK_SHIP_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
CONSTRAINT `FK_SHIP_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -198,9 +199,9 @@ CREATE TABLE `shipcall` (
|
|||||||
`recommended_tugs` int DEFAULT '0',
|
`recommended_tugs` int DEFAULT '0',
|
||||||
`anchored` bit(1) DEFAULT NULL,
|
`anchored` bit(1) DEFAULT NULL,
|
||||||
`moored_lock` bit(1) DEFAULT NULL,
|
`moored_lock` bit(1) DEFAULT NULL,
|
||||||
`evaluation` int DEFAULT NULL,
|
|
||||||
`evaluation_message` varchar(512) DEFAULT NULL,
|
|
||||||
`canceled` bit(1) DEFAULT NULL,
|
`canceled` bit(1) DEFAULT NULL,
|
||||||
|
`evaluation` int unsigned DEFAULT NULL,
|
||||||
|
`evaluation_message` varchar(512) DEFAULT NULL,
|
||||||
`created` datetime DEFAULT CURRENT_TIMESTAMP,
|
`created` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||||
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
`modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
@ -210,7 +211,7 @@ CREATE TABLE `shipcall` (
|
|||||||
CONSTRAINT `FK_SHIPCALL_BERTH_ARRIVAL` FOREIGN KEY (`arrival_berth_id`) REFERENCES `berth` (`id`),
|
CONSTRAINT `FK_SHIPCALL_BERTH_ARRIVAL` FOREIGN KEY (`arrival_berth_id`) REFERENCES `berth` (`id`),
|
||||||
CONSTRAINT `FK_SHIPCALL_BERTH_DEPARTURE` FOREIGN KEY (`departure_berth_id`) REFERENCES `berth` (`id`),
|
CONSTRAINT `FK_SHIPCALL_BERTH_DEPARTURE` FOREIGN KEY (`departure_berth_id`) REFERENCES `berth` (`id`),
|
||||||
CONSTRAINT `FK_SHIPCALL_SHIP` FOREIGN KEY (`ship_id`) REFERENCES `ship` (`id`)
|
CONSTRAINT `FK_SHIPCALL_SHIP` FOREIGN KEY (`ship_id`) REFERENCES `ship` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Incoming, outgoing or moving to another berth';
|
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Incoming, outgoing or moving to another berth';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -231,7 +232,7 @@ CREATE TABLE `shipcall_participant_map` (
|
|||||||
KEY `FK_MAP_SHIPCALL_PARTICIPANT` (`participant_id`),
|
KEY `FK_MAP_SHIPCALL_PARTICIPANT` (`participant_id`),
|
||||||
CONSTRAINT `FK_MAP_PARTICIPANT_SHIPCALL` FOREIGN KEY (`shipcall_id`) REFERENCES `shipcall` (`id`),
|
CONSTRAINT `FK_MAP_PARTICIPANT_SHIPCALL` FOREIGN KEY (`shipcall_id`) REFERENCES `shipcall` (`id`),
|
||||||
CONSTRAINT `FK_MAP_SHIPCALL_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
CONSTRAINT `FK_MAP_SHIPCALL_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Associates a participant with a shipcall';
|
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Associates a participant with a shipcall';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -289,7 +290,7 @@ CREATE TABLE `times` (
|
|||||||
KEY `FK_TIME_BERTH` (`berth_id`) /*!80000 INVISIBLE */,
|
KEY `FK_TIME_BERTH` (`berth_id`) /*!80000 INVISIBLE */,
|
||||||
CONSTRAINT `FK_TIME_BERTH` FOREIGN KEY (`berth_id`) REFERENCES `berth` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
CONSTRAINT `FK_TIME_BERTH` FOREIGN KEY (`berth_id`) REFERENCES `berth` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||||
CONSTRAINT `FK_TIME_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
CONSTRAINT `FK_TIME_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='the planned time for the participants work';
|
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='the planned time for the participants work';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -314,7 +315,7 @@ CREATE TABLE `user` (
|
|||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `FK_USER_PART` (`participant_id`),
|
KEY `FK_USER_PART` (`participant_id`),
|
||||||
CONSTRAINT `FK_USER_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
CONSTRAINT `FK_USER_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='member of a participant';
|
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='member of a participant';
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -347,4 +348,4 @@ CREATE TABLE `user_role_map` (
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
-- Dump completed on 2023-09-05 10:36:12
|
-- Dump completed on 2023-10-06 14:52:04
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -5,7 +5,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:RoleEditor"
|
xmlns:local="clr-namespace:RoleEditor"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Edit berth" Height="160" Width="450" Loaded="Window_Loaded">
|
Title="Edit berth" Height="188" Width="450" Loaded="Window_Loaded">
|
||||||
<Grid x:Name="berthGrid">
|
<Grid x:Name="berthGrid">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width=".3*" />
|
<ColumnDefinition Width=".3*" />
|
||||||
@ -15,25 +15,37 @@
|
|||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
|
<RowDefinition Height="28" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Content="Name" HorizontalAlignment="Right" />
|
<Label Content="Name" HorizontalAlignment="Right" />
|
||||||
<TextBox x:Name="textBoxName" Grid.Column="1" Margin="2" VerticalContentAlignment="Center" Text="{Binding Name, Mode=OneWay}" />
|
<TextBox x:Name="textBoxName" Grid.Column="1" Margin="2" VerticalContentAlignment="Center" Text="{Binding Name, Mode=OneWay}" />
|
||||||
<Label Content="Participant / Terminal" HorizontalAlignment="Right" Grid.Row="1" />
|
<Label Content="Owner / Terminal" HorizontalAlignment="Right" Grid.Row="1" />
|
||||||
<Grid Grid.Row="1" Grid.Column="1">
|
<Grid Grid.Row="1" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
<ColumnDefinition Width="28" />
|
<ColumnDefinition Width="28" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<ComboBox x:Name="comboBoxParticipants" Margin="2" SelectedItem="{Binding Participant, Mode=OneWay}" />
|
<ComboBox x:Name="comboBoxParticipants" Margin="2" SelectedItem="{Binding Owner, Mode=OneWay}" />
|
||||||
<Button x:Name="buttonResetParticipant" Grid.Column="1" Margin="2" Click="buttonResetParticipant_Click">
|
<Button x:Name="buttonResetParticipant" Grid.Column="1" Margin="2" Click="buttonResetParticipant_Click">
|
||||||
<Image Source="./Resources/delete2.png"/>
|
<Image Source="./Resources/delete2.png"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Content="Uses lock" HorizontalAlignment="Right" Grid.Row="2" />
|
<Label Content="Authority" HorizontalAlignment="Right" Grid.Row="2" />
|
||||||
<CheckBox x:Name="checkBoxLock" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" Margin="2" IsChecked="{Binding Path=Lock, Mode=OneWay}"/>
|
<Grid Grid.Row="2" Grid.Column="1">
|
||||||
<StackPanel Grid.Column="1" Grid.Row="4" Orientation="Horizontal" FlowDirection="RightToLeft">
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="28" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<ComboBox x:Name="comboBoxAuthorities" Margin="2" SelectedItem="{Binding Authority, Mode=OneWay}" />
|
||||||
|
<Button x:Name="buttonResetAuthority" Grid.Column="1" Margin="2" Click="buttonResetAuthority_Click">
|
||||||
|
<Image Source="./Resources/delete2.png"/>
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
<Label Content="Uses lock" HorizontalAlignment="Right" Grid.Row="3" />
|
||||||
|
<CheckBox x:Name="checkBoxLock" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center" Margin="2" IsChecked="{Binding Path=Lock, Mode=OneWay}"/>
|
||||||
|
<StackPanel Grid.Column="1" Grid.Row="5" Orientation="Horizontal" FlowDirection="RightToLeft">
|
||||||
<Button x:Name="buttonCancel" Width="80" Content="Cancel" Margin="2" Click="buttonCancel_Click" />
|
<Button x:Name="buttonCancel" Width="80" Content="Cancel" Margin="2" Click="buttonCancel_Click" />
|
||||||
<Button x:Name="buttonOK" Width="80" Content="OK" Margin="2" Click="buttonOK_Click"/>
|
<Button x:Name="buttonOK" Width="80" Content="OK" Margin="2" Click="buttonOK_Click"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@ -16,7 +16,9 @@ namespace RoleEditor
|
|||||||
|
|
||||||
public Berth Berth { get; set; } = new Berth();
|
public Berth Berth { get; set; } = new Berth();
|
||||||
|
|
||||||
public List<Participant> Participants { get; } = new List<Participant>();
|
public List<Participant> Owners { get; } = new List<Participant>();
|
||||||
|
|
||||||
|
public List<Participant> Authorities { get; } = new List<Participant>();
|
||||||
|
|
||||||
private void buttonCancel_Click(object sender, RoutedEventArgs e)
|
private void buttonCancel_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
@ -28,11 +30,19 @@ namespace RoleEditor
|
|||||||
{
|
{
|
||||||
this.Berth.Name = this.textBoxName.Text.Trim();
|
this.Berth.Name = this.textBoxName.Text.Trim();
|
||||||
this.Berth.Lock = this.checkBoxLock.IsChecked;
|
this.Berth.Lock = this.checkBoxLock.IsChecked;
|
||||||
this.Berth.Participant = this.comboBoxParticipants.SelectedItem as Participant;
|
|
||||||
if (this.Berth.Participant != null)
|
this.Berth.Owner = this.comboBoxParticipants.SelectedItem as Participant;
|
||||||
this.Berth.Participant_Id = this.Berth.Participant.Id;
|
if (this.Berth.Owner != null)
|
||||||
|
this.Berth.Owner_Id = this.Berth.Owner.Id;
|
||||||
else
|
else
|
||||||
this.Berth.Participant_Id = null;
|
this.Berth.Owner_Id = null;
|
||||||
|
|
||||||
|
this.Berth.Authority = this.comboBoxAuthorities.SelectedItem as Participant;
|
||||||
|
if (this.Berth.Authority != null)
|
||||||
|
this.Berth.Authority_Id = this.Berth.Authority.Id;
|
||||||
|
else
|
||||||
|
this.Berth.Authority_Id = null;
|
||||||
|
|
||||||
this.DialogResult = true;
|
this.DialogResult = true;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
@ -40,12 +50,18 @@ namespace RoleEditor
|
|||||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
this.DataContext = this.Berth;
|
this.DataContext = this.Berth;
|
||||||
this.comboBoxParticipants.ItemsSource = this.Participants;
|
this.comboBoxParticipants.ItemsSource = this.Owners;
|
||||||
|
this.comboBoxAuthorities.ItemsSource = this.Authorities;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonResetParticipant_Click(object sender, RoutedEventArgs e)
|
private void buttonResetParticipant_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
this.comboBoxParticipants.SelectedItem = null;
|
this.comboBoxParticipants.SelectedItem = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void buttonResetAuthority_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
this.comboBoxAuthorities.SelectedItem = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -261,6 +261,7 @@
|
|||||||
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" IsReadOnly="True"/>
|
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" IsReadOnly="True"/>
|
||||||
<DataGridCheckBoxColumn Header="Lock" Binding="{Binding Path=Lock}" IsReadOnly="True"/>
|
<DataGridCheckBoxColumn Header="Lock" Binding="{Binding Path=Lock}" IsReadOnly="True"/>
|
||||||
<DataGridTextColumn Header="Terminal" Binding="{Binding Path=Terminal, Mode=OneWay}" IsReadOnly="True"/>
|
<DataGridTextColumn Header="Terminal" Binding="{Binding Path=Terminal, Mode=OneWay}" IsReadOnly="True"/>
|
||||||
|
<DataGridTextColumn Header="Authority" Binding="{Binding Path=Authority_Text, Mode=OneWay}" IsReadOnly="True" />
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</local:ENIDataGrid>
|
</local:ENIDataGrid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@ -28,6 +28,9 @@ namespace RoleEditor
|
|||||||
#region private fields
|
#region private fields
|
||||||
|
|
||||||
private readonly ObservableCollection<Participant> _participants = new ObservableCollection<Participant>();
|
private readonly ObservableCollection<Participant> _participants = new ObservableCollection<Participant>();
|
||||||
|
private readonly ObservableCollection<Participant> _terminals = new ObservableCollection<Participant>();
|
||||||
|
private readonly ObservableCollection<Participant> _authorities = new ObservableCollection<Participant>();
|
||||||
|
|
||||||
private readonly ObservableCollection<Role> _roles = new ObservableCollection<Role>();
|
private readonly ObservableCollection<Role> _roles = new ObservableCollection<Role>();
|
||||||
private readonly ObservableCollection<Securable> _securables = new ObservableCollection<Securable>();
|
private readonly ObservableCollection<Securable> _securables = new ObservableCollection<Securable>();
|
||||||
private readonly ObservableCollection<User> _users = new ObservableCollection<User>();
|
private readonly ObservableCollection<User> _users = new ObservableCollection<User>();
|
||||||
@ -56,8 +59,12 @@ namespace RoleEditor
|
|||||||
|
|
||||||
// load all participants
|
// load all participants
|
||||||
List<Participant> participants = await Participant.LoadAll(_dbManager);
|
List<Participant> participants = await Participant.LoadAll(_dbManager);
|
||||||
foreach(Participant p in participants)
|
foreach (Participant p in participants)
|
||||||
|
{
|
||||||
_participants.Add(p);
|
_participants.Add(p);
|
||||||
|
if(p.IsTypeFlagSet(Participant.ParticipantType.TERMINAL)) { _terminals.Add(p); }
|
||||||
|
if(p.IsTypeFlagSet(Participant.ParticipantType.PORT_ADMINISTRATION)) { _authorities.Add(p); }
|
||||||
|
}
|
||||||
this.listBoxParticipant.ItemsSource = _participants;
|
this.listBoxParticipant.ItemsSource = _participants;
|
||||||
|
|
||||||
// load all roles
|
// load all roles
|
||||||
@ -74,9 +81,13 @@ namespace RoleEditor
|
|||||||
foreach (Berth b in await Berth.LoadAll(_dbManager))
|
foreach (Berth b in await Berth.LoadAll(_dbManager))
|
||||||
{
|
{
|
||||||
_berths.Add(b);
|
_berths.Add(b);
|
||||||
if(b.Participant_Id != null)
|
if (b.Owner_Id != null)
|
||||||
{
|
{
|
||||||
b.Participant = participants.Where( p => p.Id== b.Participant_Id ).FirstOrDefault();
|
b.Owner = participants.Where(p => p.Id == b.Owner_Id).FirstOrDefault();
|
||||||
|
}
|
||||||
|
if (b.Authority_Id != null)
|
||||||
|
{
|
||||||
|
b.Authority = participants.Where(p => p.Id == b.Authority_Id).FirstOrDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.dataGridBerths.Initialize();
|
this.dataGridBerths.Initialize();
|
||||||
@ -173,7 +184,8 @@ namespace RoleEditor
|
|||||||
{
|
{
|
||||||
EditBerthDialog ebd = new();
|
EditBerthDialog ebd = new();
|
||||||
ebd.Berth = b;
|
ebd.Berth = b;
|
||||||
ebd.Participants.AddRange(this._participants);
|
ebd.Owners.AddRange(this._terminals);
|
||||||
|
ebd.Authorities.AddRange(this._authorities);
|
||||||
if (ebd.ShowDialog() ?? false)
|
if (ebd.ShowDialog() ?? false)
|
||||||
{
|
{
|
||||||
await b.Save(_dbManager);
|
await b.Save(_dbManager);
|
||||||
@ -188,7 +200,8 @@ namespace RoleEditor
|
|||||||
Berth b = new();
|
Berth b = new();
|
||||||
EditBerthDialog ebd = new();
|
EditBerthDialog ebd = new();
|
||||||
ebd.Berth = b;
|
ebd.Berth = b;
|
||||||
ebd.Participants.AddRange(this._participants);
|
ebd.Owners.AddRange(this._terminals);
|
||||||
|
ebd.Authorities.AddRange(this._authorities);
|
||||||
if (ebd.ShowDialog() ?? false)
|
if (ebd.ShowDialog() ?? false)
|
||||||
{
|
{
|
||||||
_berths.Add(b);
|
_berths.Add(b);
|
||||||
@ -634,7 +647,7 @@ namespace RoleEditor
|
|||||||
{
|
{
|
||||||
if ((p.Name != null) && p.Name.Contains(participant_name, StringComparison.OrdinalIgnoreCase))
|
if ((p.Name != null) && p.Name.Contains(participant_name, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
b.Participant_Id = p.Id;
|
b.Owner_Id = p.Id;
|
||||||
found_participant = true;
|
found_participant = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -649,7 +662,7 @@ namespace RoleEditor
|
|||||||
await p.Save(_dbManager);
|
await p.Save(_dbManager);
|
||||||
_participants.Add(p);
|
_participants.Add(p);
|
||||||
pCounter++;
|
pCounter++;
|
||||||
b.Participant_Id = p.Id;
|
b.Owner_Id = p.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
await b.Save(_dbManager);
|
await b.Save(_dbManager);
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
using System;
|
// Copyright (c) 2023- schick Informatik
|
||||||
|
// Description: Model class for berth entity
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -16,11 +19,17 @@ namespace brecal.model
|
|||||||
|
|
||||||
public bool? Lock { get; set; }
|
public bool? Lock { get; set; }
|
||||||
|
|
||||||
public uint? Participant_Id { get; set; }
|
public uint? Owner_Id { get; set; }
|
||||||
|
|
||||||
public Participant? Participant { get; set; }
|
public uint? Authority_Id { get; set; }
|
||||||
|
|
||||||
public string? Terminal { get { if (Participant != null) return Participant.Name; else return "n/a"; } }
|
public Participant? Owner { get; set; }
|
||||||
|
|
||||||
|
public Participant? Authority { get; set; }
|
||||||
|
|
||||||
|
public string? Terminal { get { if (Owner != null) return Owner.Name; else return "n/a"; } }
|
||||||
|
|
||||||
|
public string? Authority_Text { get { if (Authority != null) return Authority.Name; else return "n/a"; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -37,7 +46,7 @@ namespace brecal.model
|
|||||||
|
|
||||||
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
|
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
|
||||||
{
|
{
|
||||||
cmd.CommandText = "SELECT id, name, participant_id, `lock`, created, modified FROM berth";
|
cmd.CommandText = "SELECT id, name, owner_id, authority_id, `lock`, created, modified FROM berth";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<DbEntity> LoadElems(IDataReader reader)
|
public static List<DbEntity> LoadElems(IDataReader reader)
|
||||||
@ -48,10 +57,11 @@ namespace brecal.model
|
|||||||
Berth b = new();
|
Berth b = new();
|
||||||
b.Id = (uint)reader.GetInt32(0);
|
b.Id = (uint)reader.GetInt32(0);
|
||||||
if (!reader.IsDBNull(1)) b.Name = reader.GetString(1);
|
if (!reader.IsDBNull(1)) b.Name = reader.GetString(1);
|
||||||
if (!reader.IsDBNull(2)) b.Participant_Id = (uint) reader.GetInt32(2);
|
if (!reader.IsDBNull(2)) b.Owner_Id = (uint) reader.GetInt32(2);
|
||||||
if (!reader.IsDBNull(3)) b.Lock = reader.GetBoolean(3);
|
if (!reader.IsDBNull(3)) b.Authority_Id = (uint) reader.GetInt32(3);
|
||||||
if (!reader.IsDBNull(4)) b.Created = reader.GetDateTime(4);
|
if (!reader.IsDBNull(4)) b.Lock = reader.GetBoolean(4);
|
||||||
if (!reader.IsDBNull(5)) b.Modified = reader.GetDateTime(5);
|
if (!reader.IsDBNull(5)) b.Created = reader.GetDateTime(5);
|
||||||
|
if (!reader.IsDBNull(6)) b.Modified = reader.GetDateTime(6);
|
||||||
result.Add(b);
|
result.Add(b);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -63,7 +73,7 @@ namespace brecal.model
|
|||||||
|
|
||||||
public override void SetCreate(IDbCommand cmd)
|
public override void SetCreate(IDbCommand cmd)
|
||||||
{
|
{
|
||||||
cmd.CommandText = "INSERT INTO berth (participant_id, name, `lock`) VALUES ( @PID, @NAME, @LOCK)";
|
cmd.CommandText = "INSERT INTO berth (owner_id, authority_id, name, `lock`) VALUES ( @PID, @AID, @NAME, @LOCK)";
|
||||||
this.SetParameters(cmd);
|
this.SetParameters(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +89,7 @@ namespace brecal.model
|
|||||||
|
|
||||||
public override void SetUpdate(IDbCommand cmd)
|
public override void SetUpdate(IDbCommand cmd)
|
||||||
{
|
{
|
||||||
cmd.CommandText = "UPDATE berth SET name = @NAME, participant_id = @PID, `lock` = @LOCK WHERE id = @ID";
|
cmd.CommandText = "UPDATE berth SET name = @NAME, owner_id = @PID, authority_id = @AID, `lock` = @LOCK WHERE id = @ID";
|
||||||
this.SetParameters(cmd);
|
this.SetParameters(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,9 +106,14 @@ namespace brecal.model
|
|||||||
|
|
||||||
IDbDataParameter pid = cmd.CreateParameter();
|
IDbDataParameter pid = cmd.CreateParameter();
|
||||||
pid.ParameterName = "PID";
|
pid.ParameterName = "PID";
|
||||||
pid.Value = this.Participant_Id;
|
pid.Value = this.Owner_Id;
|
||||||
cmd.Parameters.Add(pid);
|
cmd.Parameters.Add(pid);
|
||||||
|
|
||||||
|
IDbDataParameter aid = cmd.CreateParameter();
|
||||||
|
aid.ParameterName = "AID";
|
||||||
|
aid.Value = this.Authority_Id;
|
||||||
|
cmd.Parameters.Add(aid);
|
||||||
|
|
||||||
IDbDataParameter name = cmd.CreateParameter();
|
IDbDataParameter name = cmd.CreateParameter();
|
||||||
name.ParameterName = "NAME";
|
name.ParameterName = "NAME";
|
||||||
name.Value = this.Name;
|
name.Value = this.Name;
|
||||||
|
|||||||
@ -15,7 +15,7 @@ def GetBerths(token):
|
|||||||
try:
|
try:
|
||||||
pooledConnection = local_db.getPoolConnection()
|
pooledConnection = local_db.getPoolConnection()
|
||||||
commands = pydapper.using(pooledConnection)
|
commands = pydapper.using(pooledConnection)
|
||||||
data = commands.query("SELECT id, name, participant_id, `lock`, created, modified, deleted FROM berth ORDER BY name", model=model.Berth)
|
data = commands.query("SELECT id, name, participant_id, `lock`, owner_id, authority_id, created, modified, deleted FROM berth WHERE deleted = 0 ORDER BY name", model=model.Berth)
|
||||||
pooledConnection.close()
|
pooledConnection.close()
|
||||||
|
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
|
|||||||
@ -18,6 +18,8 @@ class Berth(Schema):
|
|||||||
name: str
|
name: str
|
||||||
participant_id: int
|
participant_id: int
|
||||||
lock: bool
|
lock: bool
|
||||||
|
owner_id: int
|
||||||
|
authority_id: int
|
||||||
created: datetime
|
created: datetime
|
||||||
modified: datetime
|
modified: datetime
|
||||||
deleted: bool
|
deleted: bool
|
||||||
|
|||||||
Reference in New Issue
Block a user