Merge branch 'release/eni_7.3'
This commit is contained in:
commit
9288ee3056
@ -233,7 +233,7 @@ namespace ENI2.Controls
|
|||||||
// suche auslösen
|
// suche auslösen
|
||||||
this.searchResult = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict);
|
this.searchResult = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict);
|
||||||
// alle anderen Häfen weg
|
// alle anderen Häfen weg
|
||||||
this.searchResult.RemoveAll(item => !item.PoC.Equals("DEBRV") && !item.PoC.Equals("DEWHV") && !item.PoC.Equals("DEWVN"));
|
this.searchResult.RemoveAll(item => (item.PoC == null) || (!item.PoC.Equals("DEBRV") && !item.PoC.Equals("DEWHV") && !item.PoC.Equals("DEWVN")));
|
||||||
|
|
||||||
// rückwärts iterieren um nach ETA und ATA zu filtern
|
// rückwärts iterieren um nach ETA und ATA zu filtern
|
||||||
if (this.searchResult.Count > 0)
|
if (this.searchResult.Count > 0)
|
||||||
|
|||||||
@ -280,7 +280,9 @@ namespace ENI2
|
|||||||
int minute = Int32.Parse(timevalText.Substring(10, 2));
|
int minute = Int32.Parse(timevalText.Substring(10, 2));
|
||||||
thePicker.Value = new DateTime(year, month, day, hour, minute, 0);
|
thePicker.Value = new DateTime(year, month, day, hour, minute, 0);
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception) {
|
||||||
|
thePicker.Value = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -636,7 +636,7 @@ namespace ENI2
|
|||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(aMessage);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(aMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ata_queued_or_sent)
|
if ((!ata_queued_or_sent ) && !DBManager.Instance.GetReportingPartyDict()[App.UserId.Value].IsAdmin)
|
||||||
{
|
{
|
||||||
aMessage.InternalStatus = Message.BSMDStatus.SUSPENDED;
|
aMessage.InternalStatus = Message.BSMDStatus.SUSPENDED;
|
||||||
aMessage.ChangedBy = "";
|
aMessage.ChangedBy = "";
|
||||||
|
|||||||
@ -768,20 +768,20 @@ namespace ENI2.DetailViewControls
|
|||||||
}
|
}
|
||||||
CREW crew = new CREW();
|
CREW crew = new CREW();
|
||||||
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
||||||
if (!reader.IsDBNull(0)) crew.CrewMemberLastName = reader.GetString(0);
|
if (!reader.IsDBNull(0)) crew.CrewMemberLastName = reader.GetString(0).Clean();
|
||||||
if (crew.CrewMemberLastName.Equals("Family Name") || (crew.CrewMemberLastName.Trim().Length == 0)) continue;
|
if (crew.CrewMemberLastName.Equals("Family Name") || (crew.CrewMemberLastName.Trim().Length == 0)) continue;
|
||||||
if (!reader.IsDBNull(1)) crew.CrewMemberFirstName = reader.GetString(1);
|
if (!reader.IsDBNull(1)) crew.CrewMemberFirstName = reader.GetString(1).Clean();
|
||||||
if (!reader.IsDBNull(2)) crew.CrewMemberGender = GlobalStructures.ParseGender(reader.GetString(2));
|
if (!reader.IsDBNull(2)) crew.CrewMemberGender = GlobalStructures.ParseGender(reader.GetString(2));
|
||||||
if (!reader.IsDBNull(3)) crew.CrewMemberDuty = reader.GetString(3);
|
if (!reader.IsDBNull(3)) crew.CrewMemberDuty = reader.GetString(3).Clean();
|
||||||
if (!reader.IsDBNull(4)) crew.CrewMemberNationality = reader.GetString(4).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(4)) crew.CrewMemberNationality = reader.GetString(4).Substring(0, 2).ToUpper();
|
||||||
if (!reader.IsDBNull(5)) crew.CrewMemberPlaceOfBirth = reader.GetString(5);
|
if (!reader.IsDBNull(5)) crew.CrewMemberPlaceOfBirth = reader.GetString(5).Clean();
|
||||||
if (!reader.IsDBNull(6)) crew.CrewMemberCountryOfBirth = reader.GetString(6).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(6)) crew.CrewMemberCountryOfBirth = reader.GetString(6).Substring(0, 2).ToUpper();
|
||||||
if (!reader.IsDBNull(7)) crew.CrewMemberDateOfBirth = reader.GetDateTime(7);
|
if (!reader.IsDBNull(7)) crew.CrewMemberDateOfBirth = reader.GetDateTime(7);
|
||||||
if (!reader.IsDBNull(8)) crew.CrewMemberIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(8));
|
if (!reader.IsDBNull(8)) crew.CrewMemberIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(8));
|
||||||
if (!reader.IsDBNull(9)) crew.CrewMemberIdentityDocumentId = this.getValueAsString(reader, 9);
|
if (!reader.IsDBNull(9)) crew.CrewMemberIdentityDocumentId = this.getValueAsString(reader, 9).Clean();
|
||||||
if (!reader.IsDBNull(10)) crew.CrewMemberIdentityDocumentIssuingState = reader.GetString(10).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(10)) crew.CrewMemberIdentityDocumentIssuingState = reader.GetString(10).Substring(0, 2).ToUpper();
|
||||||
if (!reader.IsDBNull(11)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(11);
|
if (!reader.IsDBNull(11)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(11);
|
||||||
if (!reader.IsDBNull(12)) crew.CrewMemberVisaNumber = this.getValueAsString(reader, 12);
|
if (!reader.IsDBNull(12)) crew.CrewMemberVisaNumber = this.getValueAsString(reader, 12).Clean();
|
||||||
|
|
||||||
crew.MessageHeader = this._crewMessage;
|
crew.MessageHeader = this._crewMessage;
|
||||||
crew.IsDirty = true;
|
crew.IsDirty = true;
|
||||||
@ -925,28 +925,28 @@ namespace ENI2.DetailViewControls
|
|||||||
|
|
||||||
PAS pas = new PAS();
|
PAS pas = new PAS();
|
||||||
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
||||||
if (!reader.IsDBNull(0)) pas.PassengerLastName = reader.GetValue(0).ToString();
|
if (!reader.IsDBNull(0)) pas.PassengerLastName = reader.GetValue(0).ToString().Clean();
|
||||||
if (pas.PassengerLastName.Equals("Family Name") || (pas.PassengerLastName.Trim().Length == 0)) continue;
|
if (pas.PassengerLastName.Equals("Family Name") || (pas.PassengerLastName.Trim().Length == 0)) continue;
|
||||||
if (!reader.IsDBNull(1)) pas.PassengerFirstName = reader.GetValue(1).ToString();
|
if (!reader.IsDBNull(1)) pas.PassengerFirstName = reader.GetValue(1).ToString().Clean();
|
||||||
if (!reader.IsDBNull(2)) pas.PassengerGender = GlobalStructures.ParseGender(reader.GetString(2));
|
if (!reader.IsDBNull(2)) pas.PassengerGender = GlobalStructures.ParseGender(reader.GetString(2));
|
||||||
if (!reader.IsDBNull(3)) pas.PassengerPortOfEmbarkation = reader.GetString(3);
|
if (!reader.IsDBNull(3)) pas.PassengerPortOfEmbarkation = reader.GetString(3).Clean();
|
||||||
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfEmbarkation) == null)
|
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfEmbarkation) == null)
|
||||||
pas.PassengerPortOfEmbarkation = null;
|
pas.PassengerPortOfEmbarkation = null;
|
||||||
if (!reader.IsDBNull(4)) pas.PassengerPortOfDisembarkation = reader.GetString(4);
|
if (!reader.IsDBNull(4)) pas.PassengerPortOfDisembarkation = reader.GetString(4).Clean();
|
||||||
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfDisembarkation) == null)
|
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfDisembarkation) == null)
|
||||||
pas.PassengerPortOfDisembarkation = null;
|
pas.PassengerPortOfDisembarkation = null;
|
||||||
if (!reader.IsDBNull(5)) pas.PassengerInTransit = GlobalStructures.ReadBoolean(reader.GetString(5));
|
if (!reader.IsDBNull(5)) pas.PassengerInTransit = GlobalStructures.ReadBoolean(reader.GetString(5));
|
||||||
if (!reader.IsDBNull(6)) pas.PassengerNationality = reader.GetString(6).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(6)) pas.PassengerNationality = reader.GetString(6).Substring(0, 2).ToUpper();
|
||||||
if (!reader.IsDBNull(7)) pas.PassengerPlaceOfBirth = reader.GetString(7);
|
if (!reader.IsDBNull(7)) pas.PassengerPlaceOfBirth = reader.GetString(7).Clean();
|
||||||
if (!reader.IsDBNull(8)) pas.PassengerCountryOfBirth = reader.GetString(8).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(8)) pas.PassengerCountryOfBirth = reader.GetString(8).Substring(0, 2).ToUpper().Clean();
|
||||||
if (!reader.IsDBNull(9)) pas.PassengerDateOfBirth = reader.GetDateTime(9);
|
if (!reader.IsDBNull(9)) pas.PassengerDateOfBirth = reader.GetDateTime(9);
|
||||||
if (!reader.IsDBNull(10)) pas.PassengerIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(10));
|
if (!reader.IsDBNull(10)) pas.PassengerIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(10));
|
||||||
if (!reader.IsDBNull(11)) pas.PassengerIdentityDocumentId = this.getValueAsString(reader, 11);
|
if (!reader.IsDBNull(11)) pas.PassengerIdentityDocumentId = this.getValueAsString(reader, 11).Clean();
|
||||||
if (!reader.IsDBNull(12)) pas.PassengerIdentityDocumentIssuingState = reader.GetString(12).Substring(0, 2).ToUpper();
|
if (!reader.IsDBNull(12)) pas.PassengerIdentityDocumentIssuingState = reader.GetString(12).Substring(0, 2).ToUpper();
|
||||||
if (!reader.IsDBNull(13)) pas.PassengerIdentityDocumentExpiryDate = reader.GetDateTime(13);
|
if (!reader.IsDBNull(13)) pas.PassengerIdentityDocumentExpiryDate = reader.GetDateTime(13);
|
||||||
if (!reader.IsDBNull(14)) pas.PassengerVisaNumber = this.getValueAsString(reader, 14);
|
if (!reader.IsDBNull(14)) pas.PassengerVisaNumber = this.getValueAsString(reader, 14).Clean();
|
||||||
if (!reader.IsDBNull(15)) pas.EmergencyCare = reader.GetString(15);
|
if (!reader.IsDBNull(15)) pas.EmergencyCare = reader.GetString(15).Clean();
|
||||||
if (!reader.IsDBNull(16)) pas.EmergencyContactNumber = this.getValueAsString(reader, 16);
|
if (!reader.IsDBNull(16)) pas.EmergencyContactNumber = this.getValueAsString(reader, 16).Clean();
|
||||||
|
|
||||||
pas.MessageHeader = this._pasMessage;
|
pas.MessageHeader = this._pasMessage;
|
||||||
pas.IsDirty = true;
|
pas.IsDirty = true;
|
||||||
|
|||||||
@ -63,13 +63,14 @@
|
|||||||
<DataGridTextColumn Header="{x:Static p:Resources.textSubsidiaryRisk}" Binding="{Binding SubsidiaryRiskText}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textSubsidiaryRisk}" Binding="{Binding SubsidiaryRiskText}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textControlTemperature}" Binding="{Binding ControlTemperature_CEL, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textControlTemperature}" Binding="{Binding ControlTemperature_CEL, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textEmergencyTemperature}" Binding="{Binding EmergencyTemperature_CEL, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textEmergencyTemperature}" Binding="{Binding EmergencyTemperature_CEL, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textMarinePollutant}" Binding="{Binding Class7Category}" IsReadOnly="True" Width="auto" />
|
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textMarinePollutant}" Binding="{Binding MarinePollutant}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textNumberOfPackages}" Binding="{Binding NumberOfPackages}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textNumberOfPackages}" Binding="{Binding NumberOfPackages}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textPackageType}" Binding="{Binding PackageType}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textPackageType}" Binding="{Binding PackageType}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textLimitedQuantity}" Binding="{Binding LimitedQuantities}" IsReadOnly="True" Width="auto" />
|
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textLimitedQuantity}" Binding="{Binding LimitedQuantities}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textExceptedQuantities}" Binding="{Binding ExceptedQuantities}" IsReadOnly="True" Width="auto" />
|
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textExceptedQuantities}" Binding="{Binding ExceptedQuantities}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textNetQuantity}" Binding="{Binding NetQuantity_KGM, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textNetQuantity}" Binding="{Binding NetQuantity_KGM, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textExceptedQuantities}" Binding="{Binding ExceptedQuantities, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textGrossQuantity}" Binding="{Binding GrossQuantity_KGM, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
||||||
|
<!--DataGridTextColumn Header="{x:Static p:Resources.textExceptedQuantities}" Binding="{Binding ExceptedQuantities, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" /-->
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textCargoVolume}" Binding="{Binding Volume_MTQ, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textCargoVolume}" Binding="{Binding Volume_MTQ, StringFormat={}{0:N2}}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textGeneralCargo}" Binding="{Binding GeneralCargoIBC}" IsReadOnly="True" Width="auto" />
|
<DataGridCheckBoxColumn Header="{x:Static p:Resources.textGeneralCargo}" Binding="{Binding GeneralCargoIBC}" IsReadOnly="True" Width="auto" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textContainerNo}" Binding="{Binding ContainerNumber}" IsReadOnly="True" Width="auto" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textContainerNo}" Binding="{Binding ContainerNumber}" IsReadOnly="True" Width="auto" />
|
||||||
|
|||||||
@ -220,9 +220,9 @@ namespace ENI2.DetailViewControls
|
|||||||
copyMARPOL.CopyFromMARPOL(selectedMARPOL);
|
copyMARPOL.CopyFromMARPOL(selectedMARPOL);
|
||||||
copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.MARPOLPositions, "MARPOL-");
|
copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.MARPOLPositions, "MARPOL-");
|
||||||
target_haz.MARPOLPositions.Add(copyMARPOL);
|
target_haz.MARPOLPositions.Add(copyMARPOL);
|
||||||
|
target_haz.NoDPGOnBoardOnArrival = false;
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
||||||
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
|
this.OnControlCacheReset(this.IsDeparture ? Properties.Resources.textDGArrival : Properties.Resources.textDGDeparture);
|
||||||
this.SetHAZGlobalFlags();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,9 +241,9 @@ namespace ENI2.DetailViewControls
|
|||||||
copyIMSBC.CopyFromIMSBC(selectedIMSBC);
|
copyIMSBC.CopyFromIMSBC(selectedIMSBC);
|
||||||
copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMSBCPositions, "IMSBC-");
|
copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMSBCPositions, "IMSBC-");
|
||||||
target_haz.IMSBCPositions.Add(copyIMSBC);
|
target_haz.IMSBCPositions.Add(copyIMSBC);
|
||||||
|
target_haz.NoDPGOnBoardOnArrival = false;
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
||||||
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
|
this.OnControlCacheReset(this.IsDeparture ? Properties.Resources.textDGArrival : Properties.Resources.textDGDeparture);
|
||||||
this.SetHAZGlobalFlags();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -262,9 +262,9 @@ namespace ENI2.DetailViewControls
|
|||||||
copyIMDG.CopyFromIMDG(selectedIMDG);
|
copyIMDG.CopyFromIMDG(selectedIMDG);
|
||||||
copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMDGPositions, "IMDG-");
|
copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMDGPositions, "IMDG-");
|
||||||
target_haz.IMDGPositions.Add(copyIMDG);
|
target_haz.IMDGPositions.Add(copyIMDG);
|
||||||
|
target_haz.NoDPGOnBoardOnArrival = false;
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
||||||
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
|
this.OnControlCacheReset(this.IsDeparture ? Properties.Resources.textDGArrival : Properties.Resources.textDGDeparture);
|
||||||
this.SetHAZGlobalFlags();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -283,9 +283,9 @@ namespace ENI2.DetailViewControls
|
|||||||
copyIGC.CopyFromIGC(selectedIGC);
|
copyIGC.CopyFromIGC(selectedIGC);
|
||||||
copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IGCPositions, "IGC-");
|
copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IGCPositions, "IGC-");
|
||||||
target_haz.IGCPositions.Add(copyIGC);
|
target_haz.IGCPositions.Add(copyIGC);
|
||||||
|
target_haz.NoDPGOnBoardOnArrival = false;
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
||||||
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
|
this.OnControlCacheReset(this.IsDeparture ? Properties.Resources.textDGArrival : Properties.Resources.textDGDeparture);
|
||||||
this.SetHAZGlobalFlags();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -306,9 +306,9 @@ namespace ENI2.DetailViewControls
|
|||||||
copyIBC.CopyFromIBC(selectedIBC);
|
copyIBC.CopyFromIBC(selectedIBC);
|
||||||
copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IBCPositions, "IBC-");
|
copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IBCPositions, "IBC-");
|
||||||
target_haz.IBCPositions.Add(copyIBC);
|
target_haz.IBCPositions.Add(copyIBC);
|
||||||
|
target_haz.NoDPGOnBoardOnArrival = false;
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
|
||||||
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
|
this.OnControlCacheReset(this.IsDeparture ? Properties.Resources.textDGArrival : Properties.Resources.textDGDeparture);
|
||||||
this.SetHAZGlobalFlags();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,20 +322,14 @@ namespace ENI2.DetailViewControls
|
|||||||
void SetHAZGlobalFlags()
|
void SetHAZGlobalFlags()
|
||||||
{
|
{
|
||||||
HAZ haz = this.IsDeparture ? this.hazd : this.haza;
|
HAZ haz = this.IsDeparture ? this.hazd : this.haza;
|
||||||
|
|
||||||
int totalCount = haz.MARPOLPositions.Count + haz.IMDGPositions.Count + haz.IGCPositions.Count + haz.IBCPositions.Count + haz.IMSBCPositions.Count;
|
int totalCount = haz.MARPOLPositions.Count + haz.IMDGPositions.Count + haz.IGCPositions.Count + haz.IBCPositions.Count + haz.IMSBCPositions.Count;
|
||||||
if(totalCount == 1)
|
if(totalCount == 1)
|
||||||
{
|
{
|
||||||
if (!this.IsDeparture)
|
if (!(this.checkBoxDangerousGoodsOnBoard.IsChecked ?? false)) this.checkBoxDangerousGoodsOnBoard.IsChecked = true;
|
||||||
{
|
if (this.checkBoxMoUBaltic.IsChecked ?? true) this.checkBoxMoUBaltic.IsChecked = false;
|
||||||
if (!(this.checkBoxDangerousGoodsOnBoard.IsChecked ?? false)) this.checkBoxDangerousGoodsOnBoard.IsChecked = true;
|
haz.NoDPGOnBoardOnArrival = false;
|
||||||
if (this.checkBoxMoUBaltic.IsChecked ?? true) this.checkBoxMoUBaltic.IsChecked = false;
|
haz.MOUBaltic = false;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
haz.NoDPGOnBoardOnArrival = false;
|
|
||||||
// theHAZ.DPGManifestOnBoardOnArrival = true;
|
|
||||||
haz.MOUBaltic = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -62,15 +62,17 @@ namespace ENI2.DetailViewControls
|
|||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
|
bool iAmAdmin = DBManager.Instance.GetReportingPartyDict()[App.UserId.Value].IsAdmin;
|
||||||
|
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
Message.NotificationClass notificationClass = this.Core.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT;
|
Message.NotificationClass notificationClass = this.Core.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT;
|
||||||
if (this.Messages == null) return;
|
if (this.Messages == null) return;
|
||||||
if (this.Core == null) return;
|
if (this.Core == null) return;
|
||||||
|
|
||||||
this.textBoxENI.IsReadOnly = false;
|
this.textBoxENI.IsReadOnly = !iAmAdmin;
|
||||||
this.textBoxIMO.IsReadOnly = false;
|
this.textBoxIMO.IsReadOnly = !iAmAdmin;
|
||||||
this.locodePoC.IsEnabled = true;
|
this.locodePoC.IsEnabled = iAmAdmin;
|
||||||
this.textBoxDisplayId.IsReadOnly = false;
|
this.textBoxDisplayId.IsReadOnly = !iAmAdmin;
|
||||||
|
|
||||||
this.textBoxENI.DataContext = this.Core;
|
this.textBoxENI.DataContext = this.Core;
|
||||||
this.textBoxIMO.DataContext = this.Core;
|
this.textBoxIMO.DataContext = this.Core;
|
||||||
|
|||||||
@ -423,7 +423,7 @@ namespace ENI2.DetailViewControls
|
|||||||
{
|
{
|
||||||
SERV newServ = new SERV();
|
SERV newServ = new SERV();
|
||||||
newServ.ServiceBeneficiary = "Sealand Europe A/S, Dampfaergevej 10, 3.tv, DK- 2100 Copenhagen, VAT-ID: DK53139655";
|
newServ.ServiceBeneficiary = "Sealand Europe A/S, Dampfaergevej 10, 3.tv, DK- 2100 Copenhagen, VAT-ID: DK53139655";
|
||||||
newServ.ServiceInvoiceRecipient = "Sealand Europe Deutschland A/S & Co. KG, Ericusspitze 2-4, 20457 Hamburg";
|
newServ.ServiceInvoiceRecipient = "Maersk Deutschland A/S & Co. KG on behalf of Sealand Europe A/S, Ericusspitze 2-4, 20457 Hamburg";
|
||||||
newServ.ServiceName = "SeaGo BHV";
|
newServ.ServiceName = "SeaGo BHV";
|
||||||
newServ.MessageHeader = this._servMessage;
|
newServ.MessageHeader = this._servMessage;
|
||||||
newServ.Identifier = SERV.GetNewIdentifier(_servMessage.Elements);
|
newServ.Identifier = SERV.GetNewIdentifier(_servMessage.Elements);
|
||||||
|
|||||||
@ -77,9 +77,9 @@ namespace ENI2.DetailViewControls
|
|||||||
foreach (TOWD selectedTOWD in this.dataGridTowageOnDeparture.SelectedItems)
|
foreach (TOWD selectedTOWD in this.dataGridTowageOnDeparture.SelectedItems)
|
||||||
{
|
{
|
||||||
TOWA copyTOWA = new TOWA();
|
TOWA copyTOWA = new TOWA();
|
||||||
copyTOWA.MessageHeader = _towdMessage;
|
copyTOWA.MessageHeader = _towaMessage;
|
||||||
copyTOWA.CopyFromTOWD(selectedTOWD);
|
copyTOWA.CopyFromTOWD(selectedTOWD);
|
||||||
copyTOWA.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
|
copyTOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
|
||||||
this._towaMessage.Elements.Add(copyTOWA);
|
this._towaMessage.Elements.Add(copyTOWA);
|
||||||
this.dataGridTowageOnArrival.Items.Refresh();
|
this.dataGridTowageOnArrival.Items.Refresh();
|
||||||
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
||||||
|
|||||||
@ -548,7 +548,7 @@ namespace ENI2.DetailViewControls
|
|||||||
if (!reader.IsDBNull(7)) o = reader.GetValue(7); else o = null;
|
if (!reader.IsDBNull(7)) o = reader.GetValue(7); else o = null;
|
||||||
if (o != null) waste.WasteAmountRetained_MTQ = Convert.ToDouble(o);
|
if (o != null) waste.WasteAmountRetained_MTQ = Convert.ToDouble(o);
|
||||||
|
|
||||||
if (!reader.IsDBNull(8)) waste.WasteDisposalPort = reader.GetString(8);
|
if (!reader.IsDBNull(8)) waste.WasteDisposalPort = reader.GetString(8).ToUpper();
|
||||||
|
|
||||||
if (!reader.IsDBNull(9)) o = reader.GetValue(9); else o = null;
|
if (!reader.IsDBNull(9)) o = reader.GetValue(9); else o = null;
|
||||||
if (o != null) waste.WasteAmountGeneratedTillNextPort_MTQ = Convert.ToDouble(o);
|
if (o != null) waste.WasteAmountGeneratedTillNextPort_MTQ = Convert.ToDouble(o);
|
||||||
|
|||||||
@ -36,8 +36,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>2</ApplicationRevision>
|
<ApplicationRevision>3</ApplicationRevision>
|
||||||
<ApplicationVersion>7.2.0.2</ApplicationVersion>
|
<ApplicationVersion>7.3.0.3</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
@ -228,6 +228,9 @@
|
|||||||
<Compile Include="Controls\LocodeControl.xaml.cs">
|
<Compile Include="Controls\LocodeControl.xaml.cs">
|
||||||
<DependentUpon>LocodeControl.xaml</DependentUpon>
|
<DependentUpon>LocodeControl.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="EditControls\CompareExcelDialog.xaml.cs">
|
||||||
|
<DependentUpon>CompareExcelDialog.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="EditControls\EditWasteReceiptDialog.xaml.cs">
|
<Compile Include="EditControls\EditWasteReceiptDialog.xaml.cs">
|
||||||
<DependentUpon>EditWasteReceiptDialog.xaml</DependentUpon>
|
<DependentUpon>EditWasteReceiptDialog.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -236,6 +239,7 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Excel\DakosyUtil.cs" />
|
<Compile Include="Excel\DakosyUtil.cs" />
|
||||||
<Compile Include="Excel\ExcelBase.cs" />
|
<Compile Include="Excel\ExcelBase.cs" />
|
||||||
|
<Compile Include="Excel\ExcelComparer.cs" />
|
||||||
<Compile Include="Excel\ExcelManager.cs" />
|
<Compile Include="Excel\ExcelManager.cs" />
|
||||||
<Compile Include="Excel\ExcelReader.cs" />
|
<Compile Include="Excel\ExcelReader.cs" />
|
||||||
<Compile Include="Excel\ExcelUtil.cs" />
|
<Compile Include="Excel\ExcelUtil.cs" />
|
||||||
@ -532,6 +536,10 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="EditControls\CompareExcelDialog.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
<Page Include="EditControls\CopyDeclarationDialog.xaml">
|
<Page Include="EditControls\CopyDeclarationDialog.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
@ -777,10 +785,10 @@
|
|||||||
<None Include="Resources\lightbulb_on.png" />
|
<None Include="Resources\lightbulb_on.png" />
|
||||||
<None Include="Resources\rotate_left.png" />
|
<None Include="Resources\rotate_left.png" />
|
||||||
<Resource Include="Resources\sign_warning.png" />
|
<Resource Include="Resources\sign_warning.png" />
|
||||||
<None Include="Resources\trafficlight_green.png" />
|
<Resource Include="Resources\trafficlight_green.png" />
|
||||||
<None Include="Resources\trafficlight_off.png" />
|
<Resource Include="Resources\trafficlight_off.png" />
|
||||||
<None Include="Resources\trafficlight_red.png" />
|
<Resource Include="Resources\trafficlight_red.png" />
|
||||||
<None Include="Resources\trafficlight_yellow.png" />
|
<Resource Include="Resources\trafficlight_yellow.png" />
|
||||||
<None Include="Resources\user_edit.png" />
|
<None Include="Resources\user_edit.png" />
|
||||||
<Resource Include="Resources\delete2.png" />
|
<Resource Include="Resources\delete2.png" />
|
||||||
<None Include="Resources\mail_new.png" />
|
<None Include="Resources\mail_new.png" />
|
||||||
@ -814,6 +822,8 @@
|
|||||||
<Resource Include="Resources\Logo.gif" />
|
<Resource Include="Resources\Logo.gif" />
|
||||||
<Resource Include="Resources\excel.png" />
|
<Resource Include="Resources\excel.png" />
|
||||||
<Resource Include="Resources\logo_eni.png" />
|
<Resource Include="Resources\logo_eni.png" />
|
||||||
|
<Resource Include="Resources\import1.png" />
|
||||||
|
<Resource Include="Resources\import2.png" />
|
||||||
<Content Include="x64\SQLite.Interop.dll">
|
<Content Include="x64\SQLite.Interop.dll">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
|||||||
43
ENI2/EditControls/CompareExcelDialog.xaml
Normal file
43
ENI2/EditControls/CompareExcelDialog.xaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<enictrl:StatusWindowBase x:Class="ENI2.EditControls.CompareExcelDialog"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:local="clr-namespace:ENI2.EditControls"
|
||||||
|
xmlns:enictrl="clr-namespace:ENI2.Controls"
|
||||||
|
xmlns:p="clr-namespace:ENI2.Properties"
|
||||||
|
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Title="{x:Static p:Resources.textCompareExcel}" Height="260" Width="600" Background="AliceBlue" Icon="/ENI2;component/Resources/bullet_ball_grey.ico">
|
||||||
|
<Grid>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="32" />
|
||||||
|
<RowDefinition Height="60" />
|
||||||
|
<RowDefinition Height="60" />
|
||||||
|
<RowDefinition Height="28" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="80" />
|
||||||
|
<ColumnDefinition Width="80" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Grid.Row="0" Grid.Column="1" TextWrapping="Wrap" HorizontalAlignment="Center" TextAlignment="Center">Drop your Excel file here</TextBlock>
|
||||||
|
<Label VerticalAlignment="Center" Grid.Row="1" Grid.Column="0">
|
||||||
|
<AccessText TextWrapping="Wrap">
|
||||||
|
First (original) sheet
|
||||||
|
</AccessText>
|
||||||
|
</Label>
|
||||||
|
<Image x:Name="imageSource" Grid.Row="1" Grid.Column="1" Margin="4" Source="../Resources/import2.png" AllowDrop="True" Drop="imageSource_Drop" DragEnter="imageSource_DragEnter"/>
|
||||||
|
<TextBox TextWrapping="Wrap" x:Name="textBoxSource" Grid.Row="1" Grid.Column="2" IsReadOnly="True" Margin="2" Drop="imageSource_Drop" AllowDrop="True" DragEnter="imageSource_DragEnter" PreviewDragOver="textBoxSource_PreviewDragOver"/>
|
||||||
|
|
||||||
|
<Label VerticalAlignment="Center" Grid.Row="2" Grid.Column="0">
|
||||||
|
<AccessText TextWrapping="Wrap">
|
||||||
|
Second (updated) sheet
|
||||||
|
</AccessText>
|
||||||
|
</Label>
|
||||||
|
<Image x:Name="imageTarget" Grid.Row="2" Grid.Column="1" Margin="4" Source="../Resources/import1.png" AllowDrop="True" Drop="imageTarget_Drop" DragEnter="imageSource_DragEnter"/>
|
||||||
|
<TextBox TextWrapping="Wrap" x:Name="textBoxTarget" Grid.Row="2" Grid.Column="2" IsReadOnly="True" Margin="2" AllowDrop="True" Drop="imageTarget_Drop" DragEnter="imageSource_DragEnter" PreviewDragOver="textBoxSource_PreviewDragOver"/>
|
||||||
|
|
||||||
|
<Button x:Name="buttonCompare" Margin="2" Grid.Row="3" Grid.Column="1" Content="Compare" IsEnabled="False" Click="buttonCompare_Click"/>
|
||||||
|
</Grid>
|
||||||
|
</enictrl:StatusWindowBase>
|
||||||
143
ENI2/EditControls/CompareExcelDialog.xaml.cs
Normal file
143
ENI2/EditControls/CompareExcelDialog.xaml.cs
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
// Copyright (c) 2017- schick Informatik
|
||||||
|
// Description: Dialogbox zum Vergleichen zweier Excel via Named cells
|
||||||
|
//
|
||||||
|
|
||||||
|
using bsmd.database;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace ENI2.EditControls
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaction logic for CompareExcelDialog.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class CompareExcelDialog : Controls.StatusWindowBase
|
||||||
|
{
|
||||||
|
|
||||||
|
#region Fields
|
||||||
|
private string _sourcePath = null;
|
||||||
|
private string _targetPath = null;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public CompareExcelDialog()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Drag&Drop event handler
|
||||||
|
|
||||||
|
private void imageSource_Drop(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
string[] files = (string[]) e.Data.GetData(DataFormats.FileDrop);
|
||||||
|
foreach (string file in files)
|
||||||
|
Console.WriteLine(file);
|
||||||
|
if(files.Length > 0)
|
||||||
|
{
|
||||||
|
if(File.Exists(files[0]))
|
||||||
|
{
|
||||||
|
if(files[0].EndsWith("xls") || files[0].EndsWith("xlsx"))
|
||||||
|
{
|
||||||
|
_sourcePath = files[0];
|
||||||
|
textBoxSource.Text = _sourcePath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
textBoxSource.Text = null;
|
||||||
|
_sourcePath = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
textBoxSource.Text = null;
|
||||||
|
_sourcePath = null;
|
||||||
|
}
|
||||||
|
EnableCompareButton();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void imageTarget_Drop(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||||
|
foreach (string file in files)
|
||||||
|
Console.WriteLine(file);
|
||||||
|
if (files.Length > 0)
|
||||||
|
{
|
||||||
|
if (File.Exists(files[0]))
|
||||||
|
{
|
||||||
|
if (files[0].EndsWith("xls") || files[0].EndsWith("xlsx"))
|
||||||
|
{
|
||||||
|
_targetPath = files[0];
|
||||||
|
textBoxTarget.Text = _targetPath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_targetPath = null;
|
||||||
|
textBoxTarget.Text = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_targetPath = null;
|
||||||
|
textBoxTarget.Text = null;
|
||||||
|
}
|
||||||
|
EnableCompareButton();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void imageSource_DragEnter(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||||
|
{
|
||||||
|
e.Effects = DragDropEffects.Copy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void textBoxSource_PreviewDragOver(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region private methods
|
||||||
|
|
||||||
|
private void EnableCompareButton()
|
||||||
|
{
|
||||||
|
this.buttonCompare.IsEnabled = (_targetPath != null) && (_sourcePath != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Comparison button handler logic
|
||||||
|
|
||||||
|
private void buttonCompare_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
Util.UIHelper.SetBusyState();
|
||||||
|
string resultPath = Excel.ExcelComparer.Compare(_sourcePath, _targetPath, out string errorMessage);
|
||||||
|
if(!errorMessage.IsNullOrEmpty()) {
|
||||||
|
MessageBox.Show(errorMessage, "Comparison error", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
|
}
|
||||||
|
if(File.Exists(resultPath))
|
||||||
|
{
|
||||||
|
if(new FileInfo(resultPath).Length > 0)
|
||||||
|
{
|
||||||
|
Process.Start(resultPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset input values
|
||||||
|
this.textBoxSource.Text = null;
|
||||||
|
this.textBoxTarget.Text = null;
|
||||||
|
this._sourcePath = null;
|
||||||
|
this._targetPath = null;
|
||||||
|
EnableCompareButton();
|
||||||
|
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -254,6 +254,11 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
for (int i = 1; i <= 25; i++)
|
for (int i = 1; i <= 25; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
int? wasteType = (int?)reader.ReadCellAsDecimal("waste", string.Format("C{0}", i + 18));
|
||||||
|
if (!wasteType.HasValue) continue;
|
||||||
|
if (!WAS.WasteCodesInt.find(wasteType.Value)) continue;
|
||||||
|
|
||||||
if (!(was.GetSublistElementWithIdentifier(i.ToString()) is Waste waste))
|
if (!(was.GetSublistElementWithIdentifier(i.ToString()) is Waste waste))
|
||||||
{
|
{
|
||||||
waste = new Waste();
|
waste = new Waste();
|
||||||
@ -261,7 +266,8 @@ namespace ENI2.Excel
|
|||||||
waste.WAS = was;
|
waste.WAS = was;
|
||||||
was.Waste.Add(waste);
|
was.Waste.Add(waste);
|
||||||
}
|
}
|
||||||
waste.WasteType = (int?)reader.ReadCellAsDecimal("waste", string.Format("C{0}", i + 18));
|
|
||||||
|
waste.WasteType = wasteType;
|
||||||
waste.WasteDescription = reader.ReadCellAsText("waste", string.Format("D{0}", i + 18));
|
waste.WasteDescription = reader.ReadCellAsText("waste", string.Format("D{0}", i + 18));
|
||||||
waste.WasteDisposalAmount_MTQ = reader.ReadCellAsDecimal("waste", string.Format("E{0}", i + 18));
|
waste.WasteDisposalAmount_MTQ = reader.ReadCellAsDecimal("waste", string.Format("E{0}", i + 18));
|
||||||
waste.WasteCapacity_MTQ = reader.ReadCellAsDecimal("waste", string.Format("F{0}", i + 18));
|
waste.WasteCapacity_MTQ = reader.ReadCellAsDecimal("waste", string.Format("F{0}", i + 18));
|
||||||
|
|||||||
@ -25,11 +25,11 @@ namespace ENI2.Excel
|
|||||||
protected Dictionary<string, Name> _nameDict;
|
protected Dictionary<string, Name> _nameDict;
|
||||||
protected ILog _log;
|
protected ILog _log;
|
||||||
|
|
||||||
#endregion
|
#endregion Fields
|
||||||
|
|
||||||
#region Construction
|
#region Construction
|
||||||
|
|
||||||
public ExcelBase(string filePath)
|
public ExcelBase()
|
||||||
{
|
{
|
||||||
|
|
||||||
_log = LogManager.GetLogger(this.GetType().Name);
|
_log = LogManager.GetLogger(this.GetType().Name);
|
||||||
@ -39,12 +39,16 @@ namespace ENI2.Excel
|
|||||||
this._excelWorkbooks = _excelApp.Workbooks;
|
this._excelWorkbooks = _excelApp.Workbooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Construction
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
internal CountryMode Mode { get { return _countryMode; } }
|
internal CountryMode Mode { get { return _countryMode; } }
|
||||||
|
|
||||||
|
internal Dictionary<string, Name> NameDict { get { return _nameDict; } }
|
||||||
|
|
||||||
|
internal Sheets Worksheets { get { return _workBook.Worksheets; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region protected methods
|
#region protected methods
|
||||||
@ -136,6 +140,32 @@ namespace ENI2.Excel
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void Colorize(string lookup, int color)
|
||||||
|
{
|
||||||
|
if(_nameDict.ContainsKey(lookup))
|
||||||
|
{
|
||||||
|
var range = _nameDict[lookup].RefersToRange;
|
||||||
|
Colorize(range, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void Colorize(Range range, int color)
|
||||||
|
{
|
||||||
|
range.Interior.Color = color;
|
||||||
|
range.Worksheet.Tab.Color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region public methods
|
||||||
|
|
||||||
|
public void Save(string path)
|
||||||
|
{
|
||||||
|
this._workBook.SaveAs(path, XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
|
||||||
|
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
|
||||||
|
this._workBook.Saved = true;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Dispose
|
#region Dispose
|
||||||
|
|||||||
192
ENI2/Excel/ExcelComparer.cs
Normal file
192
ENI2/Excel/ExcelComparer.cs
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
// Copyright (c) 2022- schick Informatik
|
||||||
|
// Description: Compares excel files and highlights changes
|
||||||
|
//
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Drawing;
|
||||||
|
using Microsoft.Office.Interop.Excel;
|
||||||
|
|
||||||
|
namespace ENI2.Excel
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Diese Klasse beinhaltet den von Anmeldungen unabhängigen Vergleich von Excel Sheets. Damit
|
||||||
|
/// können dann Updates von "außen" einfacher abgearbeitet werden. Zellen und sheets werden bei
|
||||||
|
/// Aktualisierung bunt eingefärbt
|
||||||
|
/// </summary>
|
||||||
|
public static class ExcelComparer
|
||||||
|
{
|
||||||
|
private static int diffColor = ColorTranslator.ToOle(Color.FromArgb(150, 150, 255)); // blue
|
||||||
|
|
||||||
|
private static bool GetSheetRange(Worksheet sheet, out int lastUsedRow, out int lastUsedColumn)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Range last = sheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
|
||||||
|
Range range = sheet.get_Range("A1", last);
|
||||||
|
|
||||||
|
lastUsedRow = last.Row;
|
||||||
|
lastUsedColumn = last.Column;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch(Exception)
|
||||||
|
{
|
||||||
|
lastUsedColumn = 0;
|
||||||
|
lastUsedRow = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetExcelColumnName(int columnNumber)
|
||||||
|
{
|
||||||
|
string columnName = "";
|
||||||
|
|
||||||
|
while (columnNumber > 0)
|
||||||
|
{
|
||||||
|
int modulo = (columnNumber - 1) % 26;
|
||||||
|
columnName = Convert.ToChar('A' + modulo) + columnName;
|
||||||
|
columnNumber = (columnNumber - modulo) / 26;
|
||||||
|
}
|
||||||
|
|
||||||
|
return columnName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Compare(string sourcePath, string targetPath, out string errorMessage)
|
||||||
|
{
|
||||||
|
string fileName = Path.GetTempPath() + Guid.NewGuid().ToString() + ".xlsx";
|
||||||
|
errorMessage = "";
|
||||||
|
int counter = 0;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File.Copy(targetPath, fileName);
|
||||||
|
ExcelReader source = new ExcelReader(sourcePath, true, false);
|
||||||
|
ExcelReader comparison = new ExcelReader(fileName, false, false);
|
||||||
|
|
||||||
|
/* erste Variante Vergleich über Namen der Zellen
|
||||||
|
|
||||||
|
// loop through named cells
|
||||||
|
foreach (string name in comparison.NameDict.Keys)
|
||||||
|
{
|
||||||
|
if (!source.NameDict.ContainsKey(name)) continue;
|
||||||
|
string sourceText = source.ReadText(name);
|
||||||
|
string targetText = comparison.ReadText(name);
|
||||||
|
|
||||||
|
if (sourceText == null)
|
||||||
|
{
|
||||||
|
if (targetText != null)
|
||||||
|
{
|
||||||
|
comparison.Colorize(name, diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (targetText == null)
|
||||||
|
{
|
||||||
|
if (sourceText != null)
|
||||||
|
{
|
||||||
|
comparison.Colorize(name, diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((sourceText != null) && (targetText != null))
|
||||||
|
{
|
||||||
|
if (!sourceText.Equals(targetText))
|
||||||
|
{
|
||||||
|
// turn cell blue
|
||||||
|
comparison.Colorize(name, diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Zweite Version durch alle Sheets werden Zellen der "used range" miteinander verglichen
|
||||||
|
|
||||||
|
foreach(Worksheet sourceSheet in source.Worksheets)
|
||||||
|
{
|
||||||
|
Worksheet targetSheet = null;
|
||||||
|
foreach(Worksheet sheet in comparison.Worksheets)
|
||||||
|
{
|
||||||
|
if (sourceSheet.Name.Equals(sheet.Name))
|
||||||
|
{
|
||||||
|
targetSheet = sheet;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetSheet == null) continue;
|
||||||
|
System.Diagnostics.Trace.WriteLine(string.Format("Processing sheet {0}", targetSheet.Name));
|
||||||
|
|
||||||
|
if(GetSheetRange(sourceSheet, out int sourceRows, out int sourceCols) && GetSheetRange(targetSheet, out int targetRows, out int targetCols))
|
||||||
|
{
|
||||||
|
// read source into 2 dim array
|
||||||
|
string rangeString = string.Format("A1:{0}{1}", GetExcelColumnName(Math.Max(sourceCols, targetCols)), Math.Max(sourceRows, targetRows));
|
||||||
|
object[,] sourceArray = sourceSheet.get_Range(rangeString).Value;
|
||||||
|
// read target into 2 dim array
|
||||||
|
object[,] targetArray = targetSheet.get_Range(rangeString).Value;
|
||||||
|
|
||||||
|
for (int rowidx = 1; rowidx <= Math.Max(sourceRows, targetRows); rowidx++)
|
||||||
|
{
|
||||||
|
for( int colidx = 1; colidx <= Math.Max(sourceCols, targetCols); colidx++)
|
||||||
|
{
|
||||||
|
string sourceText = null;
|
||||||
|
if(sourceArray[rowidx,colidx] != null) sourceText = sourceArray[rowidx,colidx].ToString();
|
||||||
|
string targetText = null;
|
||||||
|
if(targetArray[rowidx,colidx] != null) targetText = targetArray[rowidx, colidx].ToString();
|
||||||
|
|
||||||
|
if (sourceText == null)
|
||||||
|
{
|
||||||
|
if (targetText != null)
|
||||||
|
{
|
||||||
|
string targetRangeName = string.Format("{0}{1}", GetExcelColumnName(colidx), rowidx);
|
||||||
|
comparison.Colorize(targetSheet.Range[targetRangeName], diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (targetText == null)
|
||||||
|
{
|
||||||
|
if (sourceText != null)
|
||||||
|
{
|
||||||
|
string targetRangeName = string.Format("{0}{1}", GetExcelColumnName(colidx), rowidx);
|
||||||
|
comparison.Colorize(targetSheet.Range[targetRangeName], diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((sourceText != null) && (targetText != null))
|
||||||
|
{
|
||||||
|
if (!sourceText.Equals(targetText))
|
||||||
|
{
|
||||||
|
string targetRangeName = string.Format("{0}{1}", GetExcelColumnName(colidx), rowidx);
|
||||||
|
// turn cell blue
|
||||||
|
comparison.Colorize(targetSheet.Range[targetRangeName], diffColor);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errorMessage = "failed to get sheet ranges";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
comparison.Save(fileName);
|
||||||
|
errorMessage = string.Format("{0} differences found", counter);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
errorMessage = ex.Message;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -83,7 +83,7 @@ namespace ENI2.Excel
|
|||||||
using (ExcelWriter ew = new ExcelWriter(fileName, isRefSheet))
|
using (ExcelWriter ew = new ExcelWriter(fileName, isRefSheet))
|
||||||
{
|
{
|
||||||
ew.WriteData(messages, core, out resultMessage, isRefSheet);
|
ew.WriteData(messages, core, out resultMessage, isRefSheet);
|
||||||
ew.Save();
|
ew.Save(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,11 +18,12 @@ using System.Linq;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using ENI2.Locode;
|
using ENI2.Locode;
|
||||||
using bsmd.database;
|
using bsmd.database;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace ENI2.Excel
|
namespace ENI2.Excel
|
||||||
{
|
{
|
||||||
internal class ExcelReader : ExcelBase
|
internal class ExcelReader : ExcelBase
|
||||||
{
|
{
|
||||||
|
|
||||||
internal enum ReadState { NONE, OK, WARN, FAIL };
|
internal enum ReadState { NONE, OK, WARN, FAIL };
|
||||||
|
|
||||||
@ -32,13 +33,15 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
internal Dictionary<string, string> ImportValues { get; } = new Dictionary<string, string>();
|
internal Dictionary<string, string> ImportValues { get; } = new Dictionary<string, string>();
|
||||||
|
|
||||||
public ExcelReader(string filePath) : base(filePath)
|
public ExcelReader(string filePath, bool openReadonly = true, bool createNameFields = true)
|
||||||
{
|
{
|
||||||
this._workBook = _excelWorkbooks.Open(filePath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false);
|
this._workBook = _excelWorkbooks.Open(filePath, 0, openReadonly, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false);
|
||||||
this.InitNameFields();
|
if(createNameFields)
|
||||||
|
this.InitNameFields();
|
||||||
|
|
||||||
// Determine if this is a Dakosy or BSMD Sheet
|
// Determine if this is a Dakosy or BSMD Sheet
|
||||||
_sheetType = (_nameDict.Count > 10) ? SheetTypeEnum.BSMD : SheetTypeEnum.DAKOSY;
|
if(createNameFields)
|
||||||
|
_sheetType = (_nameDict.Count > 10) ? SheetTypeEnum.BSMD : SheetTypeEnum.DAKOSY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SheetTypeEnum SheetType { get { return _sheetType; } }
|
public SheetTypeEnum SheetType { get { return _sheetType; } }
|
||||||
@ -77,6 +80,10 @@ namespace ENI2.Excel
|
|||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
result = result.Trim();
|
result = result.Trim();
|
||||||
|
if(result.Length > 0)
|
||||||
|
{
|
||||||
|
result = result.Clean();
|
||||||
|
}
|
||||||
this.ImportValues[lookup] = result;
|
this.ImportValues[lookup] = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +102,7 @@ namespace ENI2.Excel
|
|||||||
string val = this.ReadText(lookup);
|
string val = this.ReadText(lookup);
|
||||||
if (!val.IsNullOrEmpty())
|
if (!val.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
val = val.ToUpper();
|
val = val.ToUpper();
|
||||||
string portName = LocodeDB.PortNameFromLocode(val);
|
string portName = LocodeDB.PortNameFromLocode(val);
|
||||||
if (!justPorts) portName = LocodeDB.NameFromLocode(val);
|
if (!justPorts) portName = LocodeDB.NameFromLocode(val);
|
||||||
if (portName.IsNullOrEmpty())
|
if (portName.IsNullOrEmpty())
|
||||||
@ -569,7 +576,7 @@ namespace ENI2.Excel
|
|||||||
Worksheet workSheet = (Worksheet) _workBook.Worksheets[sheetName];
|
Worksheet workSheet = (Worksheet) _workBook.Worksheets[sheetName];
|
||||||
string result = workSheet.Range[range].Text.ToString();
|
string result = workSheet.Range[range].Text.ToString();
|
||||||
if (!result.IsNullOrEmpty())
|
if (!result.IsNullOrEmpty())
|
||||||
result = result.Trim();
|
result = result.Trim().Clean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
@ -579,6 +586,23 @@ namespace ENI2.Excel
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal string ReadCellAsText(string sheetName, int row, int col)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Worksheet workSheet = (Worksheet)_workBook.Worksheets[sheetName];
|
||||||
|
string result = workSheet.Range[row, col].Text.ToString();
|
||||||
|
if (!result.IsNullOrEmpty())
|
||||||
|
result = result.Trim().Clean();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_log.Warn(e.Message);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO THIS IS NOT WORKING
|
// TODO THIS IS NOT WORKING
|
||||||
internal string ReadTextFromDropdown(string sheetName, string range)
|
internal string ReadTextFromDropdown(string sheetName, string range)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -21,6 +21,8 @@ namespace ENI2.Excel
|
|||||||
{
|
{
|
||||||
private static readonly ILog _log = LogManager.GetLogger(typeof(ExcelUtil));
|
private static readonly ILog _log = LogManager.GetLogger(typeof(ExcelUtil));
|
||||||
|
|
||||||
|
#region Process Sheet (normal BSMD sheet import)
|
||||||
|
|
||||||
internal static bool ProcessSheet(ExcelReader reader, out string readMessage, MessageCore messageCore, List<Message.NotificationClass> notificationClasses)
|
internal static bool ProcessSheet(ExcelReader reader, out string readMessage, MessageCore messageCore, List<Message.NotificationClass> notificationClasses)
|
||||||
{
|
{
|
||||||
bool result = true;
|
bool result = true;
|
||||||
@ -134,7 +136,9 @@ namespace ENI2.Excel
|
|||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region ATA
|
#region ATA
|
||||||
|
|
||||||
@ -427,8 +431,8 @@ namespace ENI2.Excel
|
|||||||
imdgPosition.GrossQuantity_KGM = reader.ReadNumber(imdg_grossQuantity);
|
imdgPosition.GrossQuantity_KGM = reader.ReadNumber(imdg_grossQuantity);
|
||||||
imdgPosition.VehicleLicenseNumber = reader.ReadText(imdg_number);
|
imdgPosition.VehicleLicenseNumber = reader.ReadText(imdg_number);
|
||||||
imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition);
|
imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition);
|
||||||
imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading);
|
imdgPosition.PortOfLoading = reader.ReadLoCode(imdg_portOfLoading);
|
||||||
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
|
imdgPosition.PortOfDischarge = reader.ReadLoCode(imdg_portOfDischarge);
|
||||||
imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
|
imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
|
||||||
imdgPosition.Remarks = reader.ReadText(imdg_remarks);
|
imdgPosition.Remarks = reader.ReadText(imdg_remarks);
|
||||||
}
|
}
|
||||||
@ -491,8 +495,8 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
ibcPosition.Quantity_KGM = (int ?) reader.ReadNumber(ibc_quantity);
|
ibcPosition.Quantity_KGM = (int ?) reader.ReadNumber(ibc_quantity);
|
||||||
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
|
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
|
||||||
ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading);
|
ibcPosition.PortOfLoading = reader.ReadLoCode(ibc_portOfLoading);
|
||||||
ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge);
|
ibcPosition.PortOfDischarge = reader.ReadLoCode(ibc_portOfDischarge);
|
||||||
ibcPosition.Hazards = reader.ReadHazards(ibc_hazards);
|
ibcPosition.Hazards = reader.ReadHazards(ibc_hazards);
|
||||||
ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specrefs);
|
ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specrefs);
|
||||||
ibcPosition.Remarks = reader.ReadText(ibc_remarks);
|
ibcPosition.Remarks = reader.ReadText(ibc_remarks);
|
||||||
@ -529,8 +533,8 @@ namespace ENI2.Excel
|
|||||||
igcPosition.ProductName = productName;
|
igcPosition.ProductName = productName;
|
||||||
igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity);
|
igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity);
|
||||||
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
|
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
|
||||||
igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading);
|
igcPosition.PortOfLoading = reader.ReadLoCode(igc_portOfLoading);
|
||||||
igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge);
|
igcPosition.PortOfDischarge = reader.ReadLoCode(igc_portOfDischarge);
|
||||||
igcPosition.UNNumber = reader.ReadText(igc_unnumber);
|
igcPosition.UNNumber = reader.ReadText(igc_unnumber);
|
||||||
igcPosition.IMOClass = reader.ReadText(igc_imoclass);
|
igcPosition.IMOClass = reader.ReadText(igc_imoclass);
|
||||||
igcPosition.Remarks = reader.ReadText(igc_remarks);
|
igcPosition.Remarks = reader.ReadText(igc_remarks);
|
||||||
@ -570,8 +574,8 @@ namespace ENI2.Excel
|
|||||||
imsbcPosition.MHB = reader.ReadBoolean(imsbc_mhb);
|
imsbcPosition.MHB = reader.ReadBoolean(imsbc_mhb);
|
||||||
imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity);
|
imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity);
|
||||||
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
|
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
|
||||||
imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading);
|
imsbcPosition.PortOfLoading = reader.ReadLoCode(imsbc_portOfLoading);
|
||||||
imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge);
|
imsbcPosition.PortOfDischarge = reader.ReadLoCode(imsbc_portOfDischarge);
|
||||||
imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass);
|
imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass);
|
||||||
imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber);
|
imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber);
|
||||||
imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass);
|
imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass);
|
||||||
@ -622,8 +626,8 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity);
|
marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity);
|
||||||
marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition);
|
marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition);
|
||||||
marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading);
|
marpolPosition.PortOfLoading = reader.ReadLoCode(marpol_portOfLoading);
|
||||||
marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge);
|
marpolPosition.PortOfDischarge = reader.ReadLoCode(marpol_portOfDischarge);
|
||||||
marpolPosition.Remarks = reader.ReadText(marpol_remarks);
|
marpolPosition.Remarks = reader.ReadText(marpol_remarks);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -715,8 +719,8 @@ namespace ENI2.Excel
|
|||||||
imdgPosition.GrossQuantity_KGM = reader.ReadNumber(imdg_grossQuantity);
|
imdgPosition.GrossQuantity_KGM = reader.ReadNumber(imdg_grossQuantity);
|
||||||
imdgPosition.VehicleLicenseNumber = reader.ReadText(imdg_number);
|
imdgPosition.VehicleLicenseNumber = reader.ReadText(imdg_number);
|
||||||
imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition);
|
imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition);
|
||||||
imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading);
|
imdgPosition.PortOfLoading = reader.ReadLoCode(imdg_portOfLoading);
|
||||||
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
|
imdgPosition.PortOfDischarge = reader.ReadLoCode(imdg_portOfDischarge);
|
||||||
imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
|
imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
|
||||||
imdgPosition.Remarks = reader.ReadText(imdg_remarks);
|
imdgPosition.Remarks = reader.ReadText(imdg_remarks);
|
||||||
}
|
}
|
||||||
@ -777,8 +781,8 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
ibcPosition.Quantity_KGM = (int?)reader.ReadNumber(ibc_quantity);
|
ibcPosition.Quantity_KGM = (int?)reader.ReadNumber(ibc_quantity);
|
||||||
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
|
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
|
||||||
ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading);
|
ibcPosition.PortOfLoading = reader.ReadLoCode(ibc_portOfLoading);
|
||||||
ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge);
|
ibcPosition.PortOfDischarge = reader.ReadLoCode(ibc_portOfDischarge);
|
||||||
ibcPosition.Hazards = reader.ReadHazards(ibc_hazards);
|
ibcPosition.Hazards = reader.ReadHazards(ibc_hazards);
|
||||||
ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specref);
|
ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specref);
|
||||||
ibcPosition.Remarks = reader.ReadText(ibc_remarks);
|
ibcPosition.Remarks = reader.ReadText(ibc_remarks);
|
||||||
@ -815,8 +819,8 @@ namespace ENI2.Excel
|
|||||||
igcPosition.ProductName = productName;
|
igcPosition.ProductName = productName;
|
||||||
igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity);
|
igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity);
|
||||||
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
|
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
|
||||||
igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading);
|
igcPosition.PortOfLoading = reader.ReadLoCode(igc_portOfLoading);
|
||||||
igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge);
|
igcPosition.PortOfDischarge = reader.ReadLoCode(igc_portOfDischarge);
|
||||||
igcPosition.UNNumber = reader.ReadText(igc_unnumber);
|
igcPosition.UNNumber = reader.ReadText(igc_unnumber);
|
||||||
igcPosition.IMOClass = reader.ReadText(igc_imoclass);
|
igcPosition.IMOClass = reader.ReadText(igc_imoclass);
|
||||||
igcPosition.Remarks = reader.ReadText(igc_remarks);
|
igcPosition.Remarks = reader.ReadText(igc_remarks);
|
||||||
@ -856,8 +860,8 @@ namespace ENI2.Excel
|
|||||||
imsbcPosition.MHB = reader.ReadBoolean(imsbc_mhb);
|
imsbcPosition.MHB = reader.ReadBoolean(imsbc_mhb);
|
||||||
imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity);
|
imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity);
|
||||||
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
|
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
|
||||||
imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading);
|
imsbcPosition.PortOfLoading = reader.ReadLoCode(imsbc_portOfLoading);
|
||||||
imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge);
|
imsbcPosition.PortOfDischarge = reader.ReadLoCode(imsbc_portOfDischarge);
|
||||||
imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass);
|
imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass);
|
||||||
imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber);
|
imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber);
|
||||||
imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass);
|
imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass);
|
||||||
@ -907,8 +911,8 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity);
|
marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity);
|
||||||
marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition);
|
marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition);
|
||||||
marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading);
|
marpolPosition.PortOfLoading = reader.ReadLoCode(marpol_portOfLoading);
|
||||||
marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge);
|
marpolPosition.PortOfDischarge = reader.ReadLoCode(marpol_portOfDischarge);
|
||||||
marpolPosition.Remarks = reader.ReadText(marpol_remarks);
|
marpolPosition.Remarks = reader.ReadText(marpol_remarks);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -955,7 +959,7 @@ namespace ENI2.Excel
|
|||||||
#region STAT
|
#region STAT
|
||||||
|
|
||||||
private static bool ScanSTAT(Message statMessage, MessageCore messageCore, List<Message> messages, ExcelReader reader)
|
private static bool ScanSTAT(Message statMessage, MessageCore messageCore, List<Message> messages, ExcelReader reader)
|
||||||
{
|
{
|
||||||
if(statMessage.Elements.Count == 0)
|
if(statMessage.Elements.Count == 0)
|
||||||
{
|
{
|
||||||
STAT newSTAT = new STAT();
|
STAT newSTAT = new STAT();
|
||||||
@ -978,14 +982,11 @@ namespace ENI2.Excel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stat.PortOfRegistry = reader.ReadLoCode("STAT.PortOfRegistry", false);
|
stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
|
||||||
if (stat.PortOfRegistry.Length == 5)
|
stat.CallSign = reader.ReadTextNoWhitespace("STAT.CallSign");
|
||||||
stat.Flag = stat.PortOfRegistry.Substring(0, 2);
|
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
|
||||||
stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
|
|
||||||
stat.CallSign = reader.ReadTextNoWhitespace("STAT.CallSign");
|
|
||||||
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
|
|
||||||
|
|
||||||
if (!stat.ISMCompanyId.IsNullOrEmpty())
|
if (!stat.ISMCompanyId.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
// strip "ISM" at the beginning if it is there (27.12.21)
|
// strip "ISM" at the beginning if it is there (27.12.21)
|
||||||
if (stat.ISMCompanyId.StartsWith("imo", StringComparison.OrdinalIgnoreCase))
|
if (stat.ISMCompanyId.StartsWith("imo", StringComparison.OrdinalIgnoreCase))
|
||||||
@ -1005,12 +1006,12 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
if (transportMode.Contains("inland", StringComparison.OrdinalIgnoreCase)) stat.TransportMode = "8";
|
if (transportMode.Contains("inland", StringComparison.OrdinalIgnoreCase)) stat.TransportMode = "8";
|
||||||
if (transportMode.Equals("8")) stat.TransportMode = transportMode;
|
if (transportMode.Equals("8")) stat.TransportMode = transportMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vessel Email as HerbergEmail sichern
|
// Vessel Email as HerbergEmail sichern
|
||||||
messageCore.HerbergEmailContactReportingVessel = reader.ReadText("ShipMail");
|
messageCore.HerbergEmailContactReportingVessel = reader.ReadText("ShipMail");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -2335,7 +2336,7 @@ namespace ENI2.Excel
|
|||||||
if (sheetValue != null)
|
if (sheetValue != null)
|
||||||
{
|
{
|
||||||
property.SetValue(dbEntity, sheetValue);
|
property.SetValue(dbEntity, sheetValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(double?))
|
else if (property.PropertyType == typeof(double?))
|
||||||
{
|
{
|
||||||
@ -2343,7 +2344,7 @@ namespace ENI2.Excel
|
|||||||
if (sheetValue != null)
|
if (sheetValue != null)
|
||||||
{
|
{
|
||||||
property.SetValue(dbEntity, sheetValue);
|
property.SetValue(dbEntity, sheetValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(string))
|
else if (property.PropertyType == typeof(string))
|
||||||
{
|
{
|
||||||
@ -2351,7 +2352,7 @@ namespace ENI2.Excel
|
|||||||
if (sheetValue != null)
|
if (sheetValue != null)
|
||||||
{
|
{
|
||||||
property.SetValue(dbEntity, sheetValue);
|
property.SetValue(dbEntity, sheetValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(int?))
|
else if (property.PropertyType == typeof(int?))
|
||||||
{
|
{
|
||||||
@ -2359,7 +2360,7 @@ namespace ENI2.Excel
|
|||||||
if (sheetValue.HasValue)
|
if (sheetValue.HasValue)
|
||||||
{
|
{
|
||||||
property.SetValue(dbEntity, (int)sheetValue.Value);
|
property.SetValue(dbEntity, (int)sheetValue.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(byte?))
|
else if (property.PropertyType == typeof(byte?))
|
||||||
{
|
{
|
||||||
@ -2367,7 +2368,7 @@ namespace ENI2.Excel
|
|||||||
if (sheetValue.HasValue)
|
if (sheetValue.HasValue)
|
||||||
{
|
{
|
||||||
property.SetValue(dbEntity, (byte)sheetValue.Value);
|
property.SetValue(dbEntity, (byte)sheetValue.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(Boolean?))
|
else if (property.PropertyType == typeof(Boolean?))
|
||||||
{
|
{
|
||||||
@ -2375,7 +2376,7 @@ namespace ENI2.Excel
|
|||||||
string boolStringValue = reader.ReadText(lookupNameAttribute.LookupName);
|
string boolStringValue = reader.ReadText(lookupNameAttribute.LookupName);
|
||||||
if (sheetValue.HasValue) {
|
if (sheetValue.HasValue) {
|
||||||
property.SetValue(dbEntity, sheetValue);
|
property.SetValue(dbEntity, sheetValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -18,15 +18,11 @@ namespace ENI2.Excel
|
|||||||
internal class ExcelWriter : ExcelBase
|
internal class ExcelWriter : ExcelBase
|
||||||
{
|
{
|
||||||
|
|
||||||
#region Fields
|
|
||||||
|
|
||||||
private readonly string _saveFilePath;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Construction
|
#region Construction
|
||||||
|
|
||||||
public ExcelWriter(string filePath, bool isRefSheet) : base(filePath)
|
public ExcelWriter(string filePath, bool isRefSheet)
|
||||||
{
|
{
|
||||||
string filename = @"Excel\EU-NoAD-Data-Collecting-Tool-5_0.xlsx";
|
string filename = @"Excel\EU-NoAD-Data-Collecting-Tool-5_0.xlsx";
|
||||||
if (isRefSheet) filename = @"Excel\Reference_Sheet_DE.xlsx";
|
if (isRefSheet) filename = @"Excel\Reference_Sheet_DE.xlsx";
|
||||||
@ -35,7 +31,7 @@ namespace ENI2.Excel
|
|||||||
this._workBook = _excelWorkbooks.Open(refFilePath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false);
|
this._workBook = _excelWorkbooks.Open(refFilePath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false);
|
||||||
|
|
||||||
this.InitNameFields();
|
this.InitNameFields();
|
||||||
_saveFilePath = filePath;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -196,13 +192,6 @@ namespace ENI2.Excel
|
|||||||
|
|
||||||
WriteCore(core, isRefSheet);
|
WriteCore(core, isRefSheet);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Save()
|
|
||||||
{
|
|
||||||
this._workBook.SaveAs(_saveFilePath, XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
|
|
||||||
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
|
|
||||||
this._workBook.Saved = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -72,6 +72,7 @@
|
|||||||
<ColumnDefinition Width="auto"/>
|
<ColumnDefinition Width="auto"/>
|
||||||
<ColumnDefinition Width="auto"/>
|
<ColumnDefinition Width="auto"/>
|
||||||
<ColumnDefinition Width="auto"/>
|
<ColumnDefinition Width="auto"/>
|
||||||
|
<ColumnDefinition Width="auto"/>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
@ -84,7 +85,8 @@
|
|||||||
<RadioButton Grid.Column="3" x:Name="buttonStatus" Content="{x:Static p:Resources.textServerStatus}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Margin="2,5,0,0" Grid.RowSpan="2" />
|
<RadioButton Grid.Column="3" x:Name="buttonStatus" Content="{x:Static p:Resources.textServerStatus}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Margin="2,5,0,0" Grid.RowSpan="2" />
|
||||||
<RadioButton Grid.Column="4" x:Name="buttonUserAdmin" Content="{x:Static p:Resources.textUserAdministration}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Visibility="Hidden" Margin="2,5,0,0" Grid.RowSpan="2"/>
|
<RadioButton Grid.Column="4" x:Name="buttonUserAdmin" Content="{x:Static p:Resources.textUserAdministration}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Visibility="Hidden" Margin="2,5,0,0" Grid.RowSpan="2"/>
|
||||||
<RadioButton Grid.Column="5" x:Name="buttonPOListe" Content="{x:Static p:Resources.textPOLists}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Visibility="Hidden" Margin="2,5,0,0" Grid.RowSpan="2" />
|
<RadioButton Grid.Column="5" x:Name="buttonPOListe" Content="{x:Static p:Resources.textPOLists}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="auto" Click="radioButton_Click" Background="Transparent" Visibility="Hidden" Margin="2,5,0,0" Grid.RowSpan="2" />
|
||||||
<Button Grid.Column="5" x:Name="buttonAbout" Content="?" HorizontalAlignment="Right" VerticalAlignment="Top" Background="Transparent" Margin="0,2,2,0" Padding="5,0,5,0" Click="buttonAbout_Click" Grid.RowSpan="2"/>
|
<Button Grid.Column="6" x:Name="buttonCompareSheets" Content="{x:Static p:Resources.textCompareExcel}" HorizontalAlignment="Left" VerticalAlignment="Top" Click="buttonCompareSheets_Click" Background="Transparent" Margin="2,2,0,0" />
|
||||||
|
<Button Grid.Column="7" x:Name="buttonAbout" Content="?" HorizontalAlignment="Right" VerticalAlignment="Top" Background="Transparent" Margin="0,2,2,0" Padding="5,0,5,0" Click="buttonAbout_Click" Grid.RowSpan="2"/>
|
||||||
<Label Grid.Column="0" Grid.Row="1" x:Name="labelStatusId" Grid.ColumnSpan="3" Margin="2,2,0,0" HorizontalAlignment="Left"/>
|
<Label Grid.Column="0" Grid.Row="1" x:Name="labelStatusId" Grid.ColumnSpan="3" Margin="2,2,0,0" HorizontalAlignment="Left"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@ -38,7 +38,8 @@ namespace ENI2
|
|||||||
private POListControl poControl;
|
private POListControl poControl;
|
||||||
private ServerStatusControl statusControl;
|
private ServerStatusControl statusControl;
|
||||||
private readonly SucheControl sucheControl;
|
private readonly SucheControl sucheControl;
|
||||||
|
private CompareExcelDialog compareExcelDialog;
|
||||||
|
|
||||||
private bool efMode = false;
|
private bool efMode = false;
|
||||||
private bool dbConnected;
|
private bool dbConnected;
|
||||||
private readonly ScaleTransform _transform = new ScaleTransform(1.0, 1.0);
|
private readonly ScaleTransform _transform = new ScaleTransform(1.0, 1.0);
|
||||||
@ -287,6 +288,22 @@ namespace ENI2
|
|||||||
this.buttonNewWithId.Visibility = newButtonsVisible ? Visibility.Visible : Visibility.Hidden;
|
this.buttonNewWithId.Visibility = newButtonsVisible ? Visibility.Visible : Visibility.Hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void buttonCompareSheets_Click(object sender, RoutedEventArgs ev)
|
||||||
|
{
|
||||||
|
// Open compare dialog
|
||||||
|
if(compareExcelDialog == null)
|
||||||
|
{
|
||||||
|
this.compareExcelDialog = new CompareExcelDialog();
|
||||||
|
this.compareExcelDialog.Closed += (o, e) => this.compareExcelDialog = null;
|
||||||
|
compareExcelDialog.Show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
compareExcelDialog.BringUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region window lifetime event handler
|
#region window lifetime event handler
|
||||||
@ -691,6 +708,6 @@ namespace ENI2
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
29
ENI2/Properties/Resources.Designer.cs
generated
29
ENI2/Properties/Resources.Designer.cs
generated
@ -500,6 +500,26 @@ namespace ENI2.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public static System.Drawing.Bitmap import1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("import1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public static System.Drawing.Bitmap import2 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("import2", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -1345,6 +1365,15 @@ namespace ENI2.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Compare excel sheets.
|
||||||
|
/// </summary>
|
||||||
|
public static string textCompareExcel {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("textCompareExcel", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Condition.
|
/// Looks up a localized string similar to Condition.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1840,4 +1840,13 @@
|
|||||||
<data name="textCopyTo" xml:space="preserve">
|
<data name="textCopyTo" xml:space="preserve">
|
||||||
<value>Copy to {0}</value>
|
<value>Copy to {0}</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="textCompareExcel" xml:space="preserve">
|
||||||
|
<value>Compare excel sheets</value>
|
||||||
|
</data>
|
||||||
|
<data name="import1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\import1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="import2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\import2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
BIN
ENI2/Resources/import1.png
Normal file
BIN
ENI2/Resources/import1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
BIN
ENI2/Resources/import2.png
Normal file
BIN
ENI2/Resources/import2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
@ -121,7 +121,7 @@ namespace bsmd.database
|
|||||||
|
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[ReportDisplayName("Expiry date")]
|
[ReportDisplayName("Expiry date")]
|
||||||
[Validation(ValidationCode.NOT_NULL)]
|
[Validation(ValidationCode.PAST_DATE)]
|
||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
public DateTime? CrewMemberIdentityDocumentExpiryDate { get; set; }
|
public DateTime? CrewMemberIdentityDocumentExpiryDate { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ using System.Text.RegularExpressions;
|
|||||||
using log4net;
|
using log4net;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace bsmd.database
|
namespace bsmd.database
|
||||||
{
|
{
|
||||||
@ -77,6 +78,17 @@ namespace bsmd.database
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string Clean(this String str)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
foreach (char c in str)
|
||||||
|
{
|
||||||
|
if (!char.IsControl(c) || c == ' ' || c == '\t' || c == '\n')
|
||||||
|
sb.Append(c);
|
||||||
|
}
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
public static bool Contains(this string source, string toCheck, StringComparison comp)
|
public static bool Contains(this string source, string toCheck, StringComparison comp)
|
||||||
{
|
{
|
||||||
return source.IndexOf(toCheck, comp) >= 0;
|
return source.IndexOf(toCheck, comp) >= 0;
|
||||||
@ -195,6 +207,9 @@ namespace bsmd.database
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static bool find<T>(this T[] array, T target)
|
||||||
|
{
|
||||||
|
return array.Contains(target);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -125,7 +125,7 @@ namespace bsmd.database
|
|||||||
|
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[ReportDisplayName("Expiry date")]
|
[ReportDisplayName("Expiry date")]
|
||||||
[Validation(ValidationCode.NOT_NULL)]
|
[Validation(ValidationCode.PAST_DATE)]
|
||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
public DateTime? PassengerIdentityDocumentExpiryDate { get; set; }
|
public DateTime? PassengerIdentityDocumentExpiryDate { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
[assembly: AssemblyCompany("schick Informatik")]
|
[assembly: AssemblyCompany("schick Informatik")]
|
||||||
[assembly: AssemblyProduct("BSMD NSW interface")]
|
[assembly: AssemblyProduct("BSMD NSW interface")]
|
||||||
[assembly: AssemblyInformationalVersion("7.2.0")]
|
[assembly: AssemblyInformationalVersion("7.3.0")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2014-2022 schick Informatik")]
|
[assembly: AssemblyCopyright("Copyright © 2014-2022 schick Informatik")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
@ -1,4 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyVersion("7.2.0.*")]
|
[assembly: AssemblyVersion("7.3.0.*")]
|
||||||
|
|
||||||
|
|||||||
@ -354,6 +354,16 @@ namespace bsmd.database
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ValidationCode.PAST_DATE:
|
||||||
|
{
|
||||||
|
if (value.Length == 0) errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, property.Name, value, entity.Title, identifier, entity.Tablename));
|
||||||
|
if (DateTime.TryParse(value, out DateTime aTime))
|
||||||
|
{
|
||||||
|
if (aTime < DateTime.UtcNow)
|
||||||
|
errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case ValidationCode.DOT_NO_COMMA:
|
case ValidationCode.DOT_NO_COMMA:
|
||||||
{
|
{
|
||||||
if(!value.IsNullOrEmpty() && (value.Contains(",")))
|
if(!value.IsNullOrEmpty() && (value.Contains(",")))
|
||||||
|
|||||||
@ -42,7 +42,7 @@ namespace bsmd.database
|
|||||||
STRING_UNNUMBER = 23,
|
STRING_UNNUMBER = 23,
|
||||||
STRING_IMOCLASS = 24,
|
STRING_IMOCLASS = 24,
|
||||||
DRAUGHT_IMPLAUSIBLE = 25,
|
DRAUGHT_IMPLAUSIBLE = 25,
|
||||||
TIME_IMPLAUSIBLE = 26,
|
TIME_IMPLAUSIBLE = 26,
|
||||||
PORTAREA,
|
PORTAREA,
|
||||||
TRUNCATE = 28,
|
TRUNCATE = 28,
|
||||||
MMSI = 29,
|
MMSI = 29,
|
||||||
@ -50,8 +50,9 @@ namespace bsmd.database
|
|||||||
OPTIONAL_FLAG_CODE,
|
OPTIONAL_FLAG_CODE,
|
||||||
WORDOVERFLOW,
|
WORDOVERFLOW,
|
||||||
VALUE_TOO_LARGE,
|
VALUE_TOO_LARGE,
|
||||||
|
PAST_DATE,
|
||||||
V181 = 181,
|
V181 = 181,
|
||||||
V182,
|
V182,
|
||||||
E121 = 121,
|
E121 = 121,
|
||||||
E122 = 122,
|
E122 = 122,
|
||||||
E123 = 123,
|
E123 = 123,
|
||||||
|
|||||||
@ -54,6 +54,8 @@ namespace bsmd.database
|
|||||||
"101", "102", "103", "104", "105", "999", "201", "202", "203", "204", "401", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "601", "602", "991"
|
"101", "102", "103", "104", "105", "999", "201", "202", "203", "204", "401", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "601", "602", "991"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static int[] WasteCodesInt { get; } = { 101, 102, 103, 104, 105, 999, 201, 202, 203, 204, 401, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 601, 602, 991 };
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// NSW 7.0 Waste descriptions
|
/// NSW 7.0 Waste descriptions
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -711,8 +711,10 @@ namespace bsmd.hisnord
|
|||||||
lu.CargoNumberOfItems = ladg.CargoNumberOfItems.Value.ToString();
|
lu.CargoNumberOfItems = ladg.CargoNumberOfItems.Value.ToString();
|
||||||
if (ladg.CargoGrossQuantity_TNE.HasValue)
|
if (ladg.CargoGrossQuantity_TNE.HasValue)
|
||||||
lu.CargoGrossQuantity_TNE = Math.Round((decimal)ladg.CargoGrossQuantity_TNE.Value, 3);
|
lu.CargoGrossQuantity_TNE = Math.Round((decimal)ladg.CargoGrossQuantity_TNE.Value, 3);
|
||||||
lu.CargoPortOfLoading = ladg.PortOfLoading;
|
if(!ladg.PortOfLoading.IsNullOrEmpty())
|
||||||
lu.CargoPortOfDischarge = ladg.PortOfDischarge;
|
lu.CargoPortOfLoading = ladg.PortOfLoading;
|
||||||
|
if(!ladg.PortOfDischarge.IsNullOrEmpty())
|
||||||
|
lu.CargoPortOfDischarge = ladg.PortOfDischarge;
|
||||||
|
|
||||||
hn_generalcargo.Cargo[i] = lu;
|
hn_generalcargo.Cargo[i] = lu;
|
||||||
}
|
}
|
||||||
@ -1217,9 +1219,13 @@ namespace bsmd.hisnord
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < was.Waste.Count; i++)
|
for (int i = 0; i < was.Waste.Count; i++)
|
||||||
{
|
{
|
||||||
waste hn_waste = new waste();
|
|
||||||
Waste waste = was.Waste[i];
|
Waste waste = was.Waste[i];
|
||||||
|
|
||||||
|
if (!waste.WasteType.HasValue) continue;
|
||||||
|
if (!WAS.WasteCodesInt.find<int>(waste.WasteType.Value)) continue;
|
||||||
|
|
||||||
|
waste hn_waste = new waste();
|
||||||
|
|
||||||
if (waste.WasteDisposalAmount_MTQ.HasValue)
|
if (waste.WasteDisposalAmount_MTQ.HasValue)
|
||||||
hn_waste.WasteDisposalAmount_MTQ = Math.Round((decimal)waste.WasteDisposalAmount_MTQ.Value, 3);
|
hn_waste.WasteDisposalAmount_MTQ = Math.Round((decimal)waste.WasteDisposalAmount_MTQ.Value, 3);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user