diff --git a/ENI2/Controls/EditWindowBase.cs b/ENI2/Controls/EditWindowBase.cs index a434934c..38fe3b4c 100644 --- a/ENI2/Controls/EditWindowBase.cs +++ b/ENI2/Controls/EditWindowBase.cs @@ -10,6 +10,7 @@ using System.Text.RegularExpressions; using Xceed.Wpf.Toolkit; +using bsmd.database; using ENI2.Util; namespace ENI2.Controls @@ -82,8 +83,8 @@ namespace ENI2.Controls #region "BHV Spezial" Datetime Parsing.. protected void DateTimePicker_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e) - { - if ((sender is DateTimePicker thePicker) && rdt.IsMatch(thePicker.Text)) + { + if ((sender is DateTimePicker thePicker) && !thePicker.Text.IsNullOrEmpty() && rdt.IsMatch(thePicker.Text)) { try { @@ -100,7 +101,7 @@ namespace ENI2.Controls } protected void DateTimePicker_PreviewKeyUpDate(object sender, System.Windows.Input.KeyEventArgs e) - { + { if ((sender is DatePicker thePicker) && rd.IsMatch(thePicker.Text)) { try diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj index c6f1cd17..0f432297 100644 --- a/ENI2/ENI2.csproj +++ b/ENI2/ENI2.csproj @@ -36,8 +36,8 @@ 5.4.0.0 true publish.html - 8 - 7.0.0.8 + 9 + 7.0.0.9 false true true diff --git a/bsmd.database/Message.cs b/bsmd.database/Message.cs index 2aa9c3a0..26b2d1a9 100644 --- a/bsmd.database/Message.cs +++ b/bsmd.database/Message.cs @@ -586,7 +586,7 @@ namespace bsmd.database } public static bool IsListClass(NotificationClass notificationClass) - { + { switch(notificationClass) { @@ -601,6 +601,7 @@ namespace bsmd.database case NotificationClass.STO: case NotificationClass.TOWA: case NotificationClass.TOWD: + case NotificationClass.WAS_RCPT: return true; } diff --git a/bsmd.database/WAS_RCPT.cs b/bsmd.database/WAS_RCPT.cs index 78eb38e7..a8d865ba 100644 --- a/bsmd.database/WAS_RCPT.cs +++ b/bsmd.database/WAS_RCPT.cs @@ -39,9 +39,11 @@ namespace bsmd.database public ObservableCollection WasteReceived { get; private set; } = new ObservableCollection(); [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? WasteDeliveryDateFrom { get; set; } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? WasteDeliveryDateTo { get; set; } [Browsable(false)] @@ -162,7 +164,7 @@ namespace bsmd.database foundWasteReceived.WasteDescription = ""; break; } - } + } } } diff --git a/bsmd.hisnord/Request.cs b/bsmd.hisnord/Request.cs index dc34df20..863c8ba6 100644 --- a/bsmd.hisnord/Request.cs +++ b/bsmd.hisnord/Request.cs @@ -1200,6 +1200,9 @@ namespace bsmd.hisnord was_item_names.Add(ItemsChoiceType6.LastWasteDisposalDate); } + was_items.Add(was.NextWasteDisposalPort); + was_item_names.Add(ItemsChoiceType6.NextWasteDisposalPort); + for (int i = 0; i < was.WasteDisposalServiceProvider.Count; i++) { if (!((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName.IsNullOrEmpty()) @@ -1207,10 +1210,7 @@ namespace bsmd.hisnord was_items.Add(((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName); was_item_names.Add(ItemsChoiceType6.WasteDisposalServiceProviderName); } - } - - was_items.Add(was.NextWasteDisposalPort); - was_item_names.Add(ItemsChoiceType6.NextWasteDisposalPort); + } if (was.Waste.Count > 0) { @@ -1312,7 +1312,8 @@ namespace bsmd.hisnord hn_was_rcpt.Items[i].WasteReceived[j].AmountWasteReceived_MTQ = (decimal) (was_rcpt.WasteReceived[j].AmountWasteReceived_MTQ ?? 0); hn_was_rcpt.Items[i].WasteReceived[j].WasteType = new was_rcptWasteDeliveryReceiptWasteReceivedWasteType(); hn_was_rcpt.Items[i].WasteReceived[j].WasteType.WasteCode = was_rcpt.WasteReceived[j].WasteCode; - hn_was_rcpt.Items[i].WasteReceived[j].WasteType.WasteDescription = was_rcpt.WasteReceived[j].WasteDescription; + if(!was_rcpt.WasteReceived[j].WasteDescription.IsNullOrEmpty()) + hn_was_rcpt.Items[i].WasteReceived[j].WasteType.WasteDescription = was_rcpt.WasteReceived[j].WasteDescription; } } } @@ -1491,6 +1492,8 @@ namespace bsmd.hisnord #region CREW // das ist bei mir dasselbe wie CREWA und muss daher zum Zeitpunkt X geƤndert werden + // ACHTUNG! CREWA ist bei HIS Nord anders aufgebaut als das CREW hier + if (message.MessageNotificationClass == Message.NotificationClass.CREW) { if (message.Reset) @@ -1562,14 +1565,17 @@ namespace bsmd.hisnord hn_crew.CountryOfBirth = crewd.CrewMemberCountryOfBirth; if(crewd.CrewMemberDateOfBirth.HasValue) hn_crew.DateOfBirth = crewd.CrewMemberDateOfBirth.Value; - hn_crew.DetailsSchengen = new crewtypeCrewMemberDetailsSchengen(); - if (crewd.CrewMemberIdentityDocumentExpiryDate.HasValue) - hn_crew.DetailsSchengen.IdentityDocumentExpiryDate = crewd.CrewMemberIdentityDocumentExpiryDate.Value; - hn_crew.DetailsSchengen.IdentityDocumentId = crewd.CrewMemberIdentityDocumentId; - hn_crew.DetailsSchengen.IdentityDocumentIssuingState = crewd.CrewMemberIdentityDocumentIssuingState; - if (crewd.CrewMemberIdentityDocumentType.HasValue) - hn_crew.DetailsSchengen.IdentityDocumentType = (documenttype)crewd.CrewMemberIdentityDocumentType.Value; - hn_crew.DetailsSchengen.VisaNumber = crewd.CrewMemberVisaNumber; + if (acrewd.NotificationSchengen ?? false) + { + hn_crew.DetailsSchengen = new crewtypeCrewMemberDetailsSchengen(); + if (crewd.CrewMemberIdentityDocumentExpiryDate.HasValue) + hn_crew.DetailsSchengen.IdentityDocumentExpiryDate = crewd.CrewMemberIdentityDocumentExpiryDate.Value; + hn_crew.DetailsSchengen.IdentityDocumentId = crewd.CrewMemberIdentityDocumentId; + hn_crew.DetailsSchengen.IdentityDocumentIssuingState = crewd.CrewMemberIdentityDocumentIssuingState; + if (crewd.CrewMemberIdentityDocumentType.HasValue) + hn_crew.DetailsSchengen.IdentityDocumentType = (documenttype)crewd.CrewMemberIdentityDocumentType.Value; + hn_crew.DetailsSchengen.VisaNumber = crewd.CrewMemberVisaNumber; + } hn_crew.DutyOnBoard = crewd.CrewMemberDuty; hn_crew.FirstName = crewd.CrewMemberFirstName; if(crewd.CrewMemberGender.HasValue)