Arbeit an Version 6.2

This commit is contained in:
Daniel Schick 2021-05-01 09:34:11 +00:00
parent 094079986c
commit ca290f55e6
12 changed files with 92 additions and 31 deletions

View File

@ -773,7 +773,7 @@ namespace ENI2
DateTime comparison; DateTime comparison;
if (noanod.ETDFromLastPort.HasValue) comparison = noanod.ETDFromLastPort.Value.ToLocalTime().Date; if (noanod.ETDFromLastPort.HasValue) comparison = noanod.ETDFromLastPort.Value.ToLocalTime().Date;
else comparison = DateTime.Now.Date; else comparison = DateTime.Now.Date;
if(sec.LastTenPortFacilitesCalled[0].PortFacilityDateOfDeparture != comparison) if((sec.LastTenPortFacilitesCalled[0].PortFacilityDateOfDeparture == null) || (sec.LastTenPortFacilitesCalled[0].PortFacilityDateOfDeparture != comparison))
{ {
MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "SEC last port departure doesn't match NOANOD ETDFromLastPort", null, "Last port departure mismatch", null, "SEC"); MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "SEC last port departure doesn't match NOANOD ETDFromLastPort", null, "Last port departure mismatch", null, "SEC");
mv.MessageGroupName = Properties.Resources.textOverview; mv.MessageGroupName = Properties.Resources.textOverview;

View File

@ -34,8 +34,8 @@
<MinimumRequiredVersion>5.4.0.0</MinimumRequiredVersion> <MinimumRequiredVersion>5.4.0.0</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish> <CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.html</WebPage> <WebPage>publish.html</WebPage>
<ApplicationRevision>1</ApplicationRevision> <ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>6.1.1.%2a</ApplicationVersion> <ApplicationVersion>6.2.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>

View File

@ -484,6 +484,9 @@ namespace ENI2
// Meldeklassen für neuen Anlauf erzeugen: // Meldeklassen für neuen Anlauf erzeugen:
bsmd.database.Util.CreateMessagesForCore(newCore, null, userEntity); bsmd.database.Util.CreateMessagesForCore(newCore, null, userEntity);
this.AnmeldungenControl_MessageCoreSelected(newCore); // in einem neuen Reiter öffnen this.AnmeldungenControl_MessageCoreSelected(newCore); // in einem neuen Reiter öffnen
// watchdog registrieren, damit die "grüne" Markierung erscheint, sobald die Anmeldung durch den Excel-Prozess gelaufen ist.
this._dbWatchDog.Register(newCore);
} }
} }

View File

@ -16,20 +16,20 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Grid.Row="0"> <Grid Grid.Row="0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" /> <ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" /> <ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="30" /> <RowDefinition Height="30" />
<RowDefinition Height="30" /> <RowDefinition Height="30" />
<RowDefinition Height="30" /> <RowDefinition Height="30" />
<RowDefinition Height="30" /> <RowDefinition Height="30" />
<RowDefinition Height="30" /> <RowDefinition Height="30" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Label HorizontalContentAlignment="Right" Grid.Column="0" Grid.Row="0" Content="Id" Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Column="0" Grid.Row="0" Content="Id" Margin="0,0,10,0"/>
<Label HorizontalContentAlignment="Right" Grid.Column="0" Grid.Row="1" Content="IMO / ENI No." Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Column="0" Grid.Row="1" Content="IMO / ENI No." Margin="0,0,10,0"/>
@ -37,32 +37,32 @@
<Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="0" Content="Port of call" Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="0" Content="Port of call" Margin="0,0,10,0"/>
<Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="1" Content="ETA" Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="1" Content="ETA" Margin="0,0,10,0"/>
<Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="2" Content="Ticket-No." Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="2" Content="Ticket-No." Margin="0,0,10,0"/>
<TextBox Grid.Column="1" Grid.Row="0" Name="textBoxId" VerticalContentAlignment="Center" Margin="2"/> <TextBox Grid.Column="1" Grid.Row="0" Name="textBoxId" VerticalContentAlignment="Center" Margin="2"/>
<TextBox Grid.Column="1" Grid.Row="1" Name="textBoxIMO" VerticalContentAlignment="Center" Margin="2" MaxLength="8"/> <TextBox Grid.Column="1" Grid.Row="1" Name="textBoxIMO" VerticalContentAlignment="Center" Margin="2" MaxLength="8"/>
<TextBox Grid.Column="1" Grid.Row="2" Name="textBoxName" VerticalContentAlignment="Center" Margin="2"/> <TextBox Grid.Column="1" Grid.Row="2" Name="textBoxName" VerticalContentAlignment="Center" Margin="2"/>
<TextBox Grid.Column="3" Grid.Row="0" Name="textBoxHafen" VerticalContentAlignment="Center" Margin="2"/> <TextBox Grid.Column="3" Grid.Row="0" Name="textBoxHafen" VerticalContentAlignment="Center" Margin="2"/>
<Grid Grid.Column="3" Grid.Row="1" Height="Auto" Margin="2">
<Grid.ColumnDefinitions> <Grid Grid.Column="3" Grid.Row="1" Height="Auto" Margin="2">
<ColumnDefinition Width="1*" /> <Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*" /> <ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions> <ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="From:" HorizontalAlignment="Left" /> <Label Grid.Column="0" Grid.Row="0" Content="From:" HorizontalAlignment="Left" />
<DatePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" VerticalContentAlignment="Center" SelectedDateChanged="etaValueChanged" ContextMenu="{DynamicResource ClearContextMenu}" /> <DatePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" VerticalContentAlignment="Center" SelectedDateChanged="etaValueChanged" ContextMenu="{DynamicResource ClearContextMenu}" />
<Label Grid.Column="2" Grid.Row="0" Content="To:" HorizontalAlignment="Left" /> <Label Grid.Column="2" Grid.Row="0" Content="To:" HorizontalAlignment="Left" />
<DatePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" VerticalContentAlignment="Center" SelectedDateChanged="etaValueChanged" ContextMenu="{DynamicResource ClearContextMenu}"/> <DatePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" VerticalContentAlignment="Center" SelectedDateChanged="etaValueChanged" ContextMenu="{DynamicResource ClearContextMenu}"/>
</Grid> </Grid>
<TextBox Grid.Column="3" Grid.Row="2" Name="textBoxTicketNr" VerticalContentAlignment="Center" Margin="2"/> <TextBox Grid.Column="3" Grid.Row="2" Name="textBoxTicketNr" VerticalContentAlignment="Center" Margin="2"/>
<Button Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="1" Content="Search" Name="buttonSuche" Click="buttonSuche_Click" Margin="2" FontSize="14"/>
<Grid Grid.Column="3" Grid.Row="3"> <Grid Grid.Column="3" Grid.Row="3">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="1" Content="Clear" Name="buttonClearInput" Click="Button_Click" Margin="2"/> <Button Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="1" Content="Last 10 Ids" Name="buttonLast10Ids" Click="buttonSuche_Click" Margin="2"/>
<Button Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="1" Content="Last 10 Ids" Name="buttonLast10Ids" Click="buttonSuche_Click" Margin="2"/> <Button Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="1" Content="Clear" Name="buttonClearInput" Click="Button_Click" Margin="2"/>
<Button Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="1" Content="Search" Name="buttonSuche" Click="buttonSuche_Click" Margin="2"/>
</Grid> </Grid>
<Label Name="searchResultLabel" Grid.ColumnSpan="4" Grid.Row="4" VerticalContentAlignment="Center" /> <Label Name="searchResultLabel" Grid.ColumnSpan="4" Grid.Row="4" VerticalContentAlignment="Center" />
</Grid> </Grid>
@ -92,6 +92,7 @@
<DataGridTextColumn Header="Id" Binding="{Binding DisplayId}" IsReadOnly="True" /> <DataGridTextColumn Header="Id" Binding="{Binding DisplayId}" IsReadOnly="True" />
<DataGridTextColumn Header="Status" Binding="{Binding BSMDStatusInternal}" IsReadOnly="True" /> <DataGridTextColumn Header="Status" Binding="{Binding BSMDStatusInternal}" IsReadOnly="True" />
<DataGridTextColumn Header="{x:Static p:Resources.textTicketNo}" Binding="{Binding TicketNo}" IsReadOnly="True" Width="*"/> <DataGridTextColumn Header="{x:Static p:Resources.textTicketNo}" Binding="{Binding TicketNo}" IsReadOnly="True" Width="*"/>
<DataGridTextColumn Header="# Sent" Binding="{Binding NumberSent}" IsReadOnly="True" />
<DataGridCheckBoxColumn Header="Locked" Binding="{Binding Locked}" IsReadOnly="True" /> <DataGridCheckBoxColumn Header="Locked" Binding="{Binding Locked}" IsReadOnly="True" />
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>

View File

@ -21,11 +21,16 @@ namespace ENI2
/// </summary> /// </summary>
public partial class SucheControl : UserControl public partial class SucheControl : UserControl
{ {
#region Fields
private List<MessageCore> anmeldungen = new List<MessageCore>(); private List<MessageCore> anmeldungen = new List<MessageCore>();
private readonly object searchLock = new object(); private readonly object searchLock = new object();
private readonly ILog _log = LogManager.GetLogger("SucheControl"); private readonly ILog _log = LogManager.GetLogger("SucheControl");
private MenuItem cancelItem; private MenuItem cancelItem;
#endregion
#region Construction #region Construction
public SucheControl() public SucheControl()

Binary file not shown.

View File

@ -1976,6 +1976,21 @@ namespace bsmd.ExcelReadService
private static void ScanTOWA(List<Message> messages, MessageCore messageCore, ExcelReader reader) private static void ScanTOWA(List<Message> messages, MessageCore messageCore, ExcelReader reader)
{ {
Message towaMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWA); Message towaMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWA);
// 24.4.21: TOWA beim Excel import
bool hasTOWAMarker = false;
for (int i = 1; i <= towaMessage.NumberOfExcelRows; i++)
{
string tName = string.Format("TOWA.TowageOnArrivalName_{0}", i);
string towageName = reader.ReadText(tName);
if (!towageName.IsNullOrEmpty())
{
hasTOWAMarker = true;
break;
}
}
if (!hasTOWAMarker) return; // no TOWA info on sheet
towaMessage.DeleteElements(); towaMessage.DeleteElements();
for (int i = 1; i <= towaMessage.NumberOfExcelRows; i++) for (int i = 1; i <= towaMessage.NumberOfExcelRows; i++)
{ {
@ -2021,6 +2036,21 @@ namespace bsmd.ExcelReadService
private static void ScanTOWD(List<Message> messages, MessageCore messageCore, ExcelReader reader) private static void ScanTOWD(List<Message> messages, MessageCore messageCore, ExcelReader reader)
{ {
Message towdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWD); Message towdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWD);
// 24.4.21: TOWD beim Excel import
bool hasTOWDMarker = false;
for (int i = 1; i <= towdMessage.NumberOfExcelRows; i++)
{
string tName = string.Format("TOWD.TowageOnDepartureName_{0}", i);
string towageName = reader.ReadText(tName);
if (!towageName.IsNullOrEmpty())
{
hasTOWDMarker = true;
break;
}
}
if (!hasTOWDMarker) return; // no TOWD info on sheet
towdMessage.DeleteElements(); towdMessage.DeleteElements();
for (int i = 1; i <= towdMessage.NumberOfExcelRows; i++) for (int i = 1; i <= towdMessage.NumberOfExcelRows; i++)

View File

@ -266,6 +266,7 @@ namespace bsmd.database
this.LoadETA_ETD(core); this.LoadETA_ETD(core);
this.LoadATA(core); this.LoadATA(core);
this.LoadATD(core); this.LoadATD(core);
this.LoadNumberSent(core);
result.Add(core); result.Add(core);
} }
@ -1359,6 +1360,22 @@ namespace bsmd.database
} }
} }
internal void LoadNumberSent(MessageCore core)
{
if (core == null) return;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "SELECT COUNT(*) FROM MessageHeader WHERE MessageHeader.MessageCoreId = @ID";
cmd.Parameters.AddWithValue("@ID", core.Id);
int total = this.PerformReadIntQuery(cmd) ?? 0;
cmd.CommandText = "SELECT COUNT(*) FROM MessageHeader WHERE MessageHeader.MessageCoreId = @ID AND MessageHeader.BSMDStatus = 3";
int sent = this.PerformReadIntQuery(cmd) ?? 0;
core.NumberSent = string.Format("{0}/{1}", sent, total);
}
}
#endregion #endregion
#region DB access methods #region DB access methods

View File

@ -329,6 +329,11 @@ namespace bsmd.database
/// </summary> /// </summary>
public bool IsHighlighted { get; set; } public bool IsHighlighted { get; set; }
/// <summary>
/// ENI helper, # of notif. classes already sent vs total number (e.g. 18/27)
/// </summary>
public string NumberSent { get; set; }
#endregion #endregion
#region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!) #region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!)

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")] [assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")] [assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("6.1.1")] [assembly: AssemblyInformationalVersion("6.2.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2021 schick Informatik")] [assembly: AssemblyCopyright("Copyright © 2014-2021 schick Informatik")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]

View File

@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("6.1.1.*")] [assembly: AssemblyVersion("6.2.0.*")]

Binary file not shown.