diff --git a/ENI-2/ENI2/ENI2/LocalizedLookup.cs b/ENI-2/ENI2/ENI2/LocalizedLookup.cs
index 293c5bb5..94ca1163 100644
--- a/ENI-2/ENI2/ENI2/LocalizedLookup.cs
+++ b/ENI-2/ENI2/ENI2/LocalizedLookup.cs
@@ -92,7 +92,7 @@ namespace ENI2
if (!reader.IsDBNull(0)) code = reader.GetString(0);
if (!reader.IsDBNull(1)) name = reader.GetString(1);
if ((code != null) && (name != null))
- result[code] = name; // string.Format("{0} {1}", code, name);
+ result[code] = string.Format("{0} {1}", code, name);
}
reader.Close();
return result;
diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index 5976d1a8..da412df0 100644
Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ
diff --git a/nsw/Source/CoreDeleteTool/Main.cs b/nsw/Source/CoreDeleteTool/Main.cs
index 5bfcc848..1311e32c 100644
--- a/nsw/Source/CoreDeleteTool/Main.cs
+++ b/nsw/Source/CoreDeleteTool/Main.cs
@@ -45,6 +45,7 @@ namespace CoreDeleteTool
{
this.toolStripProgressBar.Maximum = this.dataGridView.SelectedRows.Count;
this.toolStripStatusLabel.Text = string.Format("Removing {0} items..", this.dataGridView.SelectedRows.Count);
+ int total = this.dataGridView.SelectedRows.Count;
for (int i = 0; i < this.dataGridView.SelectedRows.Count; i++)
{
@@ -54,6 +55,8 @@ namespace CoreDeleteTool
DBManager.Instance.DeleteCore(selectedCore);
this.messageCores.Remove(selectedCore);
this.toolStripProgressBar.Value = i;
+ this.toolStripStatusLabel.Text = string.Format("Removed {0}/{1}", (i + 1), total);
+ Application.DoEvents();
}
}
}
@@ -100,18 +103,19 @@ namespace CoreDeleteTool
if (MessageBox.Show("Delete all items?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
Application.UseWaitCursor = true;
- this.toolStripProgressBar.Maximum = this.messageCores.Count;
- this.toolStripStatusLabel.Text = string.Format("Removing {0} items..", this.messageCores.Count);
+ int total = this.messageCores.Count;
+ this.toolStripProgressBar.Maximum = this.messageCores.Count;
for (int i = 0; i < this.messageCores.Count; i++)
{
MessageCore selectedCore = this.messageCores[i];
- DBManager.Instance.DeleteCore(selectedCore);
- this.messageCores.Remove(selectedCore);
+ DBManager.Instance.DeleteCore(selectedCore);
this.toolStripProgressBar.Value = i;
+ this.toolStripStatusLabel.Text = string.Format("Removed {0}/{1}", (i + 1), total);
Application.DoEvents();
}
Application.UseWaitCursor = false;
+ this.messageCores.Clear();
}
}
}
diff --git a/nsw/Source/bsmd.ReportGenerator/App.config b/nsw/Source/bsmd.ReportGenerator/App.config
index a8a4c6c1..a6a6e091 100644
--- a/nsw/Source/bsmd.ReportGenerator/App.config
+++ b/nsw/Source/bsmd.ReportGenerator/App.config
@@ -10,12 +10,6 @@
-
- Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
-
-
- E:\temp>
-
300
@@ -42,12 +36,18 @@
donotreply@bsmd.de
-
- E:\svnlager\BSMD\nsw\Source\misc\EUREPORT.png
-
False
+
+ Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
+
+
+ E:\temp
+
+
+ E:\svnlager\BSMD\nsw\Source\misc\Logo.gif
+
\ No newline at end of file
diff --git a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs
index d15e3643..efa1163f 100644
--- a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs
+++ b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs
@@ -26,7 +26,51 @@ using bsmd.database;
namespace bsmd.ReportGenerator
{
public class BSMDDocument
- {
+ {
+ #region static lookup helpers
+
+ private static Dictionary _cargoCodesNST = null;
+
+ private static Dictionary cargoCodesNST
+ {
+ get
+ {
+ if(_cargoCodesNST == null)
+ {
+ _cargoCodesNST = LocalizedLookup.getCargoCodesNST();
+ }
+ return _cargoCodesNST;
+ }
+ }
+
+ public static Dictionary Edifact8025 = new Dictionary {
+ {1, "Cargo operations" },
+ {2, "Passenger movement" },
+ {3, "Taking bunkers" },
+ {4, "Changing crew" },
+ {5, "Goodwill visit" },
+ {6, "Taking supplies" },
+ {7, "Repair" },
+ {8, "Laid-up" },
+ {9, "Awaiting orders" },
+ {10, "Miscellaneous" },
+ {11, "Crew movement" },
+ {12, "Cruise, leisure and recreation" },
+ {13, "Under government order" },
+ {14, "Quarantine inspection" },
+ {15, "Refuge" },
+ {16, "Unloading cargo" },
+ {17, "Loading cargo" },
+ {18, "Repair in dry dock" },
+ {19, "Repair in wet dock" },
+ {20, "Cargo tank cleaning" },
+ {21, "Means of transport customs clearance" },
+ {22, "De-gassing" },
+ {23, "Waste disposal" },
+ {98, "Pass through" }
+ };
+
+ #endregion
#region create document
@@ -369,7 +413,7 @@ namespace bsmd.ReportGenerator
/// Defines page setup, headers, and footers.
///
public static void DefineContentSection(Document document, Orientation orientation, bool isInitialSection)
- {
+ {
Section section = document.AddSection();
section.PageSetup.OddAndEvenPagesHeaderFooter = true;
if(isInitialSection)
@@ -487,9 +531,63 @@ namespace bsmd.ReportGenerator
#endregion
+ #region NOA_NOD
+
+ if ((message != null) && (message.MessageNotificationClass == Message.NotificationClass.NOA_NOD))
+ {
+
+ NOA_NOD noa_nod = message.Elements[0] as NOA_NOD;
+
+ Table table = document.LastSection.AddTable();
+ table.Rows.VerticalAlignment = VerticalAlignment.Center;
+ table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
+
+ table.AddColumn(290);
+ table.AddColumn(200);
+
+ Row row = table.AddRow();
+
+ if (noa_nod.ETAToPortOfCall.HasValue)
+ {
+ row.Cells[0].AddParagraph("Estimated time of arrival (ETA) at port of call");
+ row.Cells[1].AddParagraph(noa_nod.ETAToPortOfCall.Value.ToLocalTime().ToString("g"));
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Estimated time of departure (ETD) from port of call");
+ row.Cells[1].AddParagraph(noa_nod.ETDFromPortOfCall.HasValue ? noa_nod.ETDFromPortOfCall.Value.ToLocalTime().ToString("g") : "");
+ }
+ else // Kiel passage
+ {
+ row.Cells[0].AddParagraph("Estimated time of arrival (ETA) at Kiel Canal entrance (Transit)");
+ row.Cells[1].AddParagraph(noa_nod.ETAToKielCanal.HasValue ? noa_nod.ETAToKielCanal.Value.ToLocalTime().ToString("g") : "");
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Estimated time of departure (ETD) from Kiel Canal (Transit)");
+ row.Cells[1].AddParagraph(noa_nod.ETDFromKielCanal.HasValue ? noa_nod.ETDFromKielCanal.Value.ToLocalTime().ToString("g") : "");
+ }
+
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Last port");
+ row.Cells[1].AddParagraph(LocodeDB.PortNameFromLocode(noa_nod.LastPort) ?? "");
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Estimated time of departure from last port");
+ row.Cells[1].AddParagraph(noa_nod.ETDFromLastPort.HasValue ? noa_nod.ETDFromLastPort.Value.ToLocalTime().ToString("g") : "");
+
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Next port");
+ row.Cells[1].AddParagraph(LocodeDB.PortNameFromLocode(noa_nod.NextPort) ?? "");
+ row = table.AddRow();
+ row.Cells[0].AddParagraph("Estimated time of arrival at next port");
+ row.Cells[1].AddParagraph(noa_nod.ETAToNextPort.HasValue ? noa_nod.ETAToNextPort.Value.ToLocalTime().ToString("g") : "");
+
+ BSMDDocument.CreateCallPurposeTable(document, message);
+ return;
+ }
+
+ #endregion
+
#region BKRD
- if((message != null) && (message.MessageNotificationClass == Message.NotificationClass.BKRD))
+ if ((message != null) && (message.MessageNotificationClass == Message.NotificationClass.BKRD))
{
BSMDDocument.CreateBKRDTable(document, message);
return;
@@ -539,17 +637,7 @@ namespace bsmd.ReportGenerator
return;
}
- #endregion
-
- #region NOA_NOD
-
- if ((message != null) && (message.MessageNotificationClass == Message.NotificationClass.NOA_NOD))
- {
- BSMDDocument.CreateCallPurposeTable(document, message);
- return;
- }
-
- #endregion
+ #endregion
#region BPOL
@@ -591,6 +679,7 @@ namespace bsmd.ReportGenerator
{
Table table = document.LastSection.AddTable();
table.Rows.VerticalAlignment = VerticalAlignment.Center;
+ table.Borders.Color = Colors.LightGray;
table.Borders.Visible = true;
Column column = table.AddColumn();
@@ -602,9 +691,9 @@ namespace bsmd.ReportGenerator
column = table.AddColumn();
column.Width = Unit.FromCentimeter(3);
column = table.AddColumn();
- column.Width = Unit.FromCentimeter(2);
+ column.Width = Unit.FromCentimeter(2.5);
column = table.AddColumn();
- column.Width = Unit.FromCentimeter(2);
+ column.Width = Unit.FromCentimeter(1.5);
column = table.AddColumn();
column.Width = Unit.FromCentimeter(1);
column = table.AddColumn();
@@ -653,6 +742,7 @@ namespace bsmd.ReportGenerator
Table table = document.LastSection.AddTable();
table.Rows.VerticalAlignment = VerticalAlignment.Center;
table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
Column column = table.AddColumn();
column.Width = Unit.FromCentimeter(0.8);
@@ -727,17 +817,13 @@ namespace bsmd.ReportGenerator
Table table = document.LastSection.AddTable();
table.Rows.VerticalAlignment = VerticalAlignment.Center;
table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
- Column column = table.AddColumn();
- column.Width = Unit.FromCentimeter(0.8);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(2);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(3);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(1.2);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(9);
+ table.AddColumn(20);
+ table.AddColumn(80);
+ table.AddColumn(70);
+ table.AddColumn(100);
+ table.AddColumn(220);
Row hRow = table.AddRow();
@@ -763,15 +849,12 @@ namespace bsmd.ReportGenerator
Table table = document.LastSection.AddTable();
table.Rows.VerticalAlignment = VerticalAlignment.Center;
table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
- Column column = table.AddColumn();
- column.Width = Unit.FromCentimeter(0.8);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(2);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(3);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(1.5);
+ table.AddColumn(20);
+ table.AddColumn(200);
+ table.AddColumn(200);
+ table.AddColumn(70);
Row hRow = table.AddRow();
hRow.Cells[1].AddParagraph("Type");
@@ -798,13 +881,11 @@ namespace bsmd.ReportGenerator
Table table = document.LastSection.AddTable();
table.Rows.VerticalAlignment = VerticalAlignment.Center;
table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
- Column column = table.AddColumn();
- column.Width = Unit.FromCentimeter(0.8);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(3);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(2);
+ table.AddColumn(20);
+ table.AddColumn(400);
+ table.AddColumn(70);
Row hRow = table.AddRow();
hRow.Cells[1].AddParagraph("Port");
@@ -870,7 +951,8 @@ namespace bsmd.ReportGenerator
LADG ladg = message.Elements[i] as LADG;
row.Cells[0].AddParagraph((i + 1).ToString());
row.Cells[1].AddParagraph(ladg.CargoHandlingType.HasValue ? (ladg.CargoHandlingType.Value == 0) ? "Load" : "Discharge" : "");
- row.Cells[2].AddParagraph(ladg.CargoCodeNST ?? "");
+ if(!ladg.CargoCodeNST.IsNullOrEmpty() && cargoCodesNST.ContainsKey(ladg.CargoCodeNST))
+ row.Cells[2].AddParagraph(cargoCodesNST[ladg.CargoCodeNST].Substring(3));
row.Cells[3].AddParagraph(ladg.CargoNumberOfItems.HasValue ? ladg.CargoNumberOfItems.Value.ToString() : "");
row.Cells[4].AddParagraph(ladg.CargoGrossQuantity_TNE.HasValue ? ladg.CargoGrossQuantity_TNE.Value.ToString("N2") : "");
}
@@ -1038,7 +1120,11 @@ namespace bsmd.ReportGenerator
row.Cells[4].AddParagraph(s2sActivity.ShipToShipActivityLocationCoordinatesLongitude.HasValue ? s2sActivity.ShipToShipActivityLocationCoordinatesLongitude.ToString() : "");
row.Cells[5].AddParagraph(s2sActivity.ShipToShipActivityDateFrom.HasValue ? s2sActivity.ShipToShipActivityDateFrom.Value.ToShortDateString() : "");
row.Cells[6].AddParagraph(s2sActivity.ShipToShipActivityDateTo.HasValue ? s2sActivity.ShipToShipActivityDateTo.Value.ToShortDateString() : "");
- row.Cells[7].AddParagraph(s2sActivity.ShipToShipActivityType ?? "");
+ if(!s2sActivity.ShipToShipActivityType.IsNullOrEmpty())
+ {
+ if (Int32.TryParse(s2sActivity.ShipToShipActivityType, out int s2sCode) && Edifact8025.ContainsKey(s2sCode))
+ row.Cells[7].AddParagraph(Edifact8025[s2sCode]);
+ }
row.Cells[8].AddParagraph(s2sActivity.ShipToShipActivitySecurityMattersToReport ?? "");
}
@@ -1052,17 +1138,13 @@ namespace bsmd.ReportGenerator
table.Format.Font.Size = 8;
table.Rows.VerticalAlignment = VerticalAlignment.Center;
table.Borders.Visible = true;
+ table.Borders.Color = Colors.LightGray;
- Column column = table.AddColumn();
- column.Width = Unit.FromCentimeter(0.8);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(5);
- column = table.AddColumn();
- column.Width = Unit.FromCentimeter(1.5);
- column = table.AddColumn();
+ table.AddColumn(20);
+ table.AddColumn(350);
+ table.AddColumn(120);
- Row hRow = table.AddRow();
- hRow.Cells[0].AddParagraph("No.");
+ Row hRow = table.AddRow();
hRow.Cells[1].AddParagraph("Name");
hRow.Cells[2].AddParagraph("ETA");
@@ -1161,8 +1243,8 @@ namespace bsmd.ReportGenerator
row = table.AddRow();
row.Cells[0].AddParagraph("Last port where waste or cargo residues were discharged");
row.Cells[1].AddParagraph("Date of last disposal");
- row = table.AddRow();
- row.Cells[0].AddParagraph(was.LastWasteDisposalPort ?? "");
+ row = table.AddRow();
+ row.Cells[0].AddParagraph(LocodeDB.PortNameFromLocode(was.LastWasteDisposalPort) ?? "");
if(was.LastWasteDisposalDate.HasValue)
row.Cells[1].AddParagraph(was.LastWasteDisposalDate?.ToShortDateString());
row = table.AddRow();
@@ -1266,7 +1348,7 @@ namespace bsmd.ReportGenerator
row.Cells[2].AddParagraph(waste.WasteDisposalAmount_MTQ.HasValue ? waste.WasteDisposalAmount_MTQ.Value.ToString("N3") : "");
row.Cells[3].AddParagraph(waste.WasteCapacity_MTQ.HasValue ? waste.WasteCapacity_MTQ.Value.ToString("N3") : "");
row.Cells[4].AddParagraph(waste.WasteAmountRetained_MTQ.HasValue ? waste.WasteAmountRetained_MTQ.Value.ToString("N3") : "");
- row.Cells[5].AddParagraph(waste.WasteDisposalPort ?? "");
+ row.Cells[5].AddParagraph(LocodeDB.PortNameFromLocode(waste.WasteDisposalPort) ?? "");
row.Cells[6].AddParagraph(waste.WasteAmountGeneratedTillNextPort_MTQ.HasValue ? waste.WasteAmountGeneratedTillNextPort_MTQ.Value.ToString("N3") : "");
}
}
@@ -1285,7 +1367,13 @@ namespace bsmd.ReportGenerator
table.AddColumn(20); // lfd. Nr.
table.AddColumn(50); // Name
- table.AddColumn(30); // Flag
+ table.AddColumn(30); // Flag
+ table.AddColumn(30); // Gross ton
+ table.AddColumn(30); // Length
+ table.AddColumn(30); // Beam
+ table.AddColumn(60); // Purpose of call
+ table.AddColumn(35); // Draft
+ table.AddColumn(70); // Remarks
table.AddColumn(60); // Company
table.AddColumn(70); // Street
table.AddColumn(40); // Postal code
@@ -1293,34 +1381,28 @@ namespace bsmd.ReportGenerator
table.AddColumn(60); // Phone
table.AddColumn(60); // Fax
table.AddColumn(70); // EMail
- table.AddColumn(30); // Gross ton
- table.AddColumn(30); // Length
- table.AddColumn(30); // Beam
- table.AddColumn(60); // Purpose of call
- table.AddColumn(35); // Draft
- table.AddColumn(70); // Remarks
// 770
Row opRow = table.AddRow();
- opRow.Cells[2].AddParagraph("Operator");
- opRow.Cells[2].MergeRight = 8;
+ opRow.Cells[9].AddParagraph("Operator");
+ opRow.Cells[9].MergeRight = 6;
Row hRow = table.AddRow();
hRow.Cells[1].AddParagraph("Name");
- hRow.Cells[2].AddParagraph("Flag");
- hRow.Cells[3].AddParagraph("Company name");
- hRow.Cells[4].AddParagraph("Street / No.");
- hRow.Cells[5].AddParagraph("Postal Code");
- hRow.Cells[6].AddParagraph("Co.");
- hRow.Cells[7].AddParagraph("Phone");
- hRow.Cells[8].AddParagraph("Fax");
- hRow.Cells[9].AddParagraph("Email");
- hRow.Cells[10].AddParagraph("Gross ton.");
- hRow.Cells[11].AddParagraph("Len (m)");
- hRow.Cells[12].AddParagraph("Beam (m)");
- hRow.Cells[13].AddParagraph("Purpose of call");
- hRow.Cells[14].AddParagraph("Dr. (m)");
- hRow.Cells[15].AddParagraph("Remarks");
+ hRow.Cells[2].AddParagraph("Flag");
+ hRow.Cells[3].AddParagraph("Gross ton.");
+ hRow.Cells[4].AddParagraph("Len (m)");
+ hRow.Cells[5].AddParagraph("Beam (m)");
+ hRow.Cells[6].AddParagraph("Purpose of call");
+ hRow.Cells[7].AddParagraph("Draft (dm)");
+ hRow.Cells[8].AddParagraph("Remarks");
+ hRow.Cells[9].AddParagraph("Company name");
+ hRow.Cells[10].AddParagraph("Street / No.");
+ hRow.Cells[11].AddParagraph("Postal Code");
+ hRow.Cells[12].AddParagraph("Co.");
+ hRow.Cells[13].AddParagraph("Phone");
+ hRow.Cells[14].AddParagraph("Fax");
+ hRow.Cells[15].AddParagraph("Email");
for (int i = 0; i < message.Elements.Count; i++)
{
@@ -1328,20 +1410,20 @@ namespace bsmd.ReportGenerator
Row row = table.AddRow();
row.Cells[0].AddParagraph((i + 1).ToString());
row.Cells[1].AddParagraph(towa.TowageOnArrivalName ?? "");
- row.Cells[2].AddParagraph(towa.TowageOnArrivalFlag ?? "");
- row.Cells[3].AddParagraph(towa.TowageOnArrivalOperatorCompanyName ?? "");
- row.Cells[4].AddParagraph(towa.TowageOnArrivalOperatorStreetNameAndNumber);
- row.Cells[5].AddParagraph(towa.TowageOnArrivalOperatorPostalCode);
- row.Cells[6].AddParagraph(towa.TowageOnArrivalOperatorCountry ?? "");
- row.Cells[7].AddParagraph(towa.TowageOnArrivalOperatorPhone);
- row.Cells[8].AddParagraph(towa.TowageOnArrivalOperatorFax ?? "");
- row.Cells[9].AddParagraph(towa.TowageOnArrivalOperatorEmail ?? "");
- row.Cells[10].AddParagraph(towa.TowageOnArrivalGrossTonnage.HasValue ? towa.TowageOnArrivalGrossTonnage.Value.ToString() : "");
- row.Cells[11].AddParagraph(towa.TowageOnArrivalLengthOverall_MTR.HasValue ? towa.TowageOnArrivalLengthOverall_MTR.Value.ToString("N1") : "");
- row.Cells[12].AddParagraph(towa.TowageOnArrivalBeam_MTR.HasValue ? towa.TowageOnArrivalBeam_MTR.Value.ToString("N1") : "");
- row.Cells[13].AddParagraph(towa.TowageOnArrivalPurposeOfCall ?? "");
- row.Cells[14].AddParagraph(towa.TowageOnArrivalDraught_DMT.HasValue ? towa.TowageOnArrivalDraught_DMT.Value.ToString("N1") : "");
- row.Cells[15].AddParagraph(towa.TowageOnArrivalRemarks ?? "");
+ row.Cells[2].AddParagraph(towa.TowageOnArrivalFlag ?? "");
+ row.Cells[3].AddParagraph(towa.TowageOnArrivalGrossTonnage.HasValue ? towa.TowageOnArrivalGrossTonnage.Value.ToString() : "");
+ row.Cells[4].AddParagraph(towa.TowageOnArrivalLengthOverall_MTR.HasValue ? towa.TowageOnArrivalLengthOverall_MTR.Value.ToString("N1") : "");
+ row.Cells[5].AddParagraph(towa.TowageOnArrivalBeam_MTR.HasValue ? towa.TowageOnArrivalBeam_MTR.Value.ToString("N1") : "");
+ row.Cells[6].AddParagraph(towa.TowageOnArrivalPurposeOfCall ?? "");
+ row.Cells[7].AddParagraph(towa.TowageOnArrivalDraught_DMT.HasValue ? towa.TowageOnArrivalDraught_DMT.Value.ToString("N1") : "");
+ row.Cells[8].AddParagraph(towa.TowageOnArrivalRemarks ?? "");
+ row.Cells[9].AddParagraph(towa.TowageOnArrivalOperatorCompanyName ?? "");
+ row.Cells[10].AddParagraph(towa.TowageOnArrivalOperatorStreetNameAndNumber);
+ row.Cells[11].AddParagraph(towa.TowageOnArrivalOperatorPostalCode);
+ row.Cells[12].AddParagraph(towa.TowageOnArrivalOperatorCountry ?? "");
+ row.Cells[13].AddParagraph(towa.TowageOnArrivalOperatorPhone);
+ row.Cells[14].AddParagraph(towa.TowageOnArrivalOperatorFax ?? "");
+ row.Cells[15].AddParagraph(towa.TowageOnArrivalOperatorEmail ?? "");
}
}
@@ -1358,38 +1440,38 @@ namespace bsmd.ReportGenerator
table.AddColumn(20); // lfd. Nr.
table.AddColumn(50); // Name
- table.AddColumn(30); // Flag
- table.AddColumn(60); // Company
- table.AddColumn(70); // Street
- table.AddColumn(40); // Postal code
- table.AddColumn(25); // Country
- table.AddColumn(60); // Phone
- table.AddColumn(60); // Fax
- table.AddColumn(70); // EMail
+ table.AddColumn(30); // Flag
table.AddColumn(30); // Length
table.AddColumn(30); // Beam
table.AddColumn(35); // Draft
- table.AddColumn(160); // Remarks
+ table.AddColumn(120); // Remarks
+ table.AddColumn(60); // Company
+ table.AddColumn(70); // Street
+ table.AddColumn(40); // Postal code
+ table.AddColumn(65); // Country
+ table.AddColumn(60); // Phone
+ table.AddColumn(60); // Fax
+ table.AddColumn(70); // EMail
// 770
Row opRow = table.AddRow();
- opRow.Cells[2].AddParagraph("Operator");
- opRow.Cells[2].MergeRight = 8;
+ opRow.Cells[7].AddParagraph("Operator");
+ opRow.Cells[7].MergeRight = 6;
Row hRow = table.AddRow();
hRow.Cells[1].AddParagraph("Name");
- hRow.Cells[2].AddParagraph("Flag");
- hRow.Cells[3].AddParagraph("Company Name");
- hRow.Cells[4].AddParagraph("Street / No.");
- hRow.Cells[5].AddParagraph("Postal Code");
- hRow.Cells[6].AddParagraph("Co.");
- hRow.Cells[7].AddParagraph("Phone");
- hRow.Cells[8].AddParagraph("Fax");
- hRow.Cells[9].AddParagraph("Email");
- hRow.Cells[10].AddParagraph("Len (m)");
- hRow.Cells[11].AddParagraph("Beam (m)");
- hRow.Cells[12].AddParagraph("Dr. (m)");
- hRow.Cells[13].AddParagraph("Remarks");
+ hRow.Cells[2].AddParagraph("Flag");
+ hRow.Cells[3].AddParagraph("Len (m)");
+ hRow.Cells[4].AddParagraph("Beam (m)");
+ hRow.Cells[5].AddParagraph("Draft (dm)");
+ hRow.Cells[6].AddParagraph("Remarks");
+ hRow.Cells[7].AddParagraph("Company Name");
+ hRow.Cells[8].AddParagraph("Street / No.");
+ hRow.Cells[9].AddParagraph("Postal Code");
+ hRow.Cells[10].AddParagraph("Co.");
+ hRow.Cells[11].AddParagraph("Phone");
+ hRow.Cells[12].AddParagraph("Fax");
+ hRow.Cells[13].AddParagraph("Email");
for (int i = 0; i < message.Elements.Count; i++)
{
@@ -1397,18 +1479,18 @@ namespace bsmd.ReportGenerator
Row row = table.AddRow();
row.Cells[0].AddParagraph((i + 1).ToString());
row.Cells[1].AddParagraph(towd.TowageOnDepartureName ?? "");
- row.Cells[2].AddParagraph(towd.TowageOnDepartureFlag ?? "");
- row.Cells[3].AddParagraph(towd.TowageOnDepartureOperatorCompanyName ?? "");
- row.Cells[4].AddParagraph(towd.TowageOnDepartureOperatorStreetNameAndNumber);
- row.Cells[5].AddParagraph(towd.TowageOnDepartureOperatorPostalCode);
- row.Cells[6].AddParagraph(towd.TowageOnDepartureOperatorCountry ?? "");
- row.Cells[7].AddParagraph(towd.TowageOnDepartureOperatorPhone);
- row.Cells[8].AddParagraph(towd.TowageOnDepartureOperatorFax ?? "");
- row.Cells[9].AddParagraph(towd.TowageOnDepartureOperatorEmail ?? "");
- row.Cells[10].AddParagraph(towd.TowageOnDepartureLengthOverall_MTR.HasValue ? towd.TowageOnDepartureLengthOverall_MTR.Value.ToString() : "");
- row.Cells[11].AddParagraph(towd.TowageOnDepartureBeam_MTR.HasValue ? towd.TowageOnDepartureBeam_MTR.Value.ToString() : "");
- row.Cells[12].AddParagraph(towd.TowageOnDepartureDraught_DMT.HasValue ? towd.TowageOnDepartureDraught_DMT.Value.ToString() : "");
- row.Cells[13].AddParagraph(towd.TowageOnDepartureRemarks ?? "");
+ row.Cells[2].AddParagraph(towd.TowageOnDepartureFlag ?? "");
+ row.Cells[3].AddParagraph(towd.TowageOnDepartureLengthOverall_MTR.HasValue ? towd.TowageOnDepartureLengthOverall_MTR.Value.ToString() : "");
+ row.Cells[4].AddParagraph(towd.TowageOnDepartureBeam_MTR.HasValue ? towd.TowageOnDepartureBeam_MTR.Value.ToString() : "");
+ row.Cells[5].AddParagraph(towd.TowageOnDepartureDraught_DMT.HasValue ? towd.TowageOnDepartureDraught_DMT.Value.ToString() : "");
+ row.Cells[6].AddParagraph(towd.TowageOnDepartureRemarks ?? "");
+ row.Cells[7].AddParagraph(towd.TowageOnDepartureOperatorCompanyName ?? "");
+ row.Cells[8].AddParagraph(towd.TowageOnDepartureOperatorStreetNameAndNumber);
+ row.Cells[9].AddParagraph(towd.TowageOnDepartureOperatorPostalCode);
+ row.Cells[10].AddParagraph(towd.TowageOnDepartureOperatorCountry ?? "");
+ row.Cells[11].AddParagraph(towd.TowageOnDepartureOperatorPhone);
+ row.Cells[12].AddParagraph(towd.TowageOnDepartureOperatorFax ?? "");
+ row.Cells[13].AddParagraph(towd.TowageOnDepartureOperatorEmail ?? "");
}
}
@@ -1476,8 +1558,8 @@ namespace bsmd.ReportGenerator
Row row = table.AddRow();
Cell cell = row.Cells[0];
Paragraph aParagraph = cell.AddParagraph(elem.Key);
- if (elem.Value.IsNullOrEmpty())
- aParagraph.Style = "Gray";
+ // if (elem.Value.IsNullOrEmpty()) // 14.6.21: CH: nichts ausgrauen
+ // aParagraph.Style = "Gray";
string val = elem.Value;
// funktioniert leider nicht, müsste das auf PDFsharp umstellen (http://www.pdfsharp.net/wiki/Unicode-sample.ashx)
if (val == "True") val = "Yes"; // @"\u2611"; // unicode ballot box with check
@@ -1525,6 +1607,11 @@ namespace bsmd.ReportGenerator
// ACHTUNG! Die Name (propertyName) sind die bereits in report.db *ersetzten* Namen, d.h. ändert man dort
// wieder etwas funktioniert es ggf. hier nicht mehr. Das ist leider aufwändig zu ändern, man müsste die Report
// Erzeugung komplett umbauen
+
+ if(propertyName.Contains("fumigated", StringComparison.OrdinalIgnoreCase))
+ {
+ int bla = 23;
+ }
switch(propertyName)
{
@@ -1543,9 +1630,12 @@ namespace bsmd.ReportGenerator
}
}
break;
- case "Ship Type":
- if (LocalizedLookup.getVesselTypes().ContainsKey(value))
- result = string.Format("{0} - {1}", value, LocalizedLookup.getVesselTypes()[value]);
+ case "ShipType":
+ if (LocalizedLookup.getVesselTypes().ContainsKey(value))
+ {
+ string codeAndText = LocalizedLookup.getVesselTypes()[value];
+ result = codeAndText.Substring(codeAndText.IndexOf(' ')); // snip off the code
+ }
break;
case "INFShipClass":
case "INF-Ship-Class":
@@ -1582,7 +1672,7 @@ namespace bsmd.ReportGenerator
}
}
break;
- case "General Description of Cargo":
+ case "GeneralDescriptionOfCargo":
{
switch(value)
{
@@ -1620,13 +1710,33 @@ namespace bsmd.ReportGenerator
}
}
break;
+ case "TankerHullConfiguration":
+ {
+ switch (value)
+ {
+ case "0": result = "Single hull"; break;
+ case "1": result = "Single hull with SBT"; break;
+ case "2": result = "Double hull"; break;
+ }
+ }
+ break;
+ case "ConditionCargoBallastTanks":
+ {
+ switch(value)
+ {
+ case "0": result = "Full"; break;
+ case "1": result = "Empty"; break;
+ case "2": result = "Inerted"; break;
+ }
+ }
+ break;
default:
break;
- }
+ }
if(propertyName.Contains("flag", StringComparison.OrdinalIgnoreCase))
if (LocalizedLookup.getNationalities().ContainsKey(value))
- result = LocalizedLookup.getNationalities()[value];
+ result = LocalizedLookup.getNationalities()[value].Substring(3); // remove code from result
if(propertyName.Contains("port", StringComparison.OrdinalIgnoreCase))
{
@@ -1639,9 +1749,8 @@ namespace bsmd.ReportGenerator
}
if (propertyName.Contains("nst2007", StringComparison.OrdinalIgnoreCase))
- if (LocalizedLookup.getCargoCodesNST().ContainsKey(value))
- result = LocalizedLookup.getCargoCodesNST()[value];
-
+ if (cargoCodesNST.ContainsKey(value))
+ result = cargoCodesNST[value];
return result;
}
diff --git a/nsw/Source/bsmd.ReportGenerator/Properties/Settings.Designer.cs b/nsw/Source/bsmd.ReportGenerator/Properties/Settings.Designer.cs
index abf8e5aa..39d80d17 100644
--- a/nsw/Source/bsmd.ReportGenerator/Properties/Settings.Designer.cs
+++ b/nsw/Source/bsmd.ReportGenerator/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace bsmd.ReportGenerator.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -23,24 +23,6 @@ namespace bsmd.ReportGenerator.Properties {
}
}
- [global::System.Configuration.ApplicationScopedSettingAttribute()]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("replace me!")]
- public string ConnectionString {
- get {
- return ((string)(this["ConnectionString"]));
- }
- }
-
- [global::System.Configuration.ApplicationScopedSettingAttribute()]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("")]
- public string OutputDirectory {
- get {
- return ((string)(this["OutputDirectory"]));
- }
- }
-
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("300")]
@@ -106,15 +88,6 @@ namespace bsmd.ReportGenerator.Properties {
}
}
- [global::System.Configuration.ApplicationScopedSettingAttribute()]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("")]
- public string LogoPath {
- get {
- return ((string)(this["LogoPath"]));
- }
- }
-
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
@@ -123,5 +96,34 @@ namespace bsmd.ReportGenerator.Properties {
return ((bool)(this["DeleteFileAfterSend"]));
}
}
+
+ [global::System.Configuration.ApplicationScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=E:\\DATA\\DB\\NSW.MDF;Integrated " +
+ "Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;Appl" +
+ "icationIntent=ReadWrite;MultiSubnetFailover=False")]
+ public string ConnectionString {
+ get {
+ return ((string)(this["ConnectionString"]));
+ }
+ }
+
+ [global::System.Configuration.ApplicationScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("E:\\temp")]
+ public string OutputDirectory {
+ get {
+ return ((string)(this["OutputDirectory"]));
+ }
+ }
+
+ [global::System.Configuration.ApplicationScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("E:\\svnlager\\BSMD\\nsw\\Source\\misc\\Logo.gif")]
+ public string LogoPath {
+ get {
+ return ((string)(this["LogoPath"]));
+ }
+ }
}
}
diff --git a/nsw/Source/bsmd.ReportGenerator/Properties/Settings.settings b/nsw/Source/bsmd.ReportGenerator/Properties/Settings.settings
index da3a5781..cc86f5e3 100644
--- a/nsw/Source/bsmd.ReportGenerator/Properties/Settings.settings
+++ b/nsw/Source/bsmd.ReportGenerator/Properties/Settings.settings
@@ -2,12 +2,6 @@
-
- replace me!
-
-
-
-
300
@@ -32,11 +26,17 @@
donotreply@bsmd.de
-
-
-
False
+
+ Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
+
+
+ E:\temp
+
+
+ E:\svnlager\BSMD\nsw\Source\misc\Logo.gif
+
\ No newline at end of file
diff --git a/nsw/Source/bsmd.database/BPOL.cs b/nsw/Source/bsmd.database/BPOL.cs
index 3d023069..bf7462fa 100644
--- a/nsw/Source/bsmd.database/BPOL.cs
+++ b/nsw/Source/bsmd.database/BPOL.cs
@@ -173,6 +173,7 @@ namespace bsmd.database
}
}
+ /*
public override List ChildParagraphs
{
get
@@ -183,6 +184,7 @@ namespace bsmd.database
return result;
}
}
+ */
#endregion
diff --git a/nsw/Source/bsmd.database/DatabaseEntity.cs b/nsw/Source/bsmd.database/DatabaseEntity.cs
index 907a94ea..6854cc38 100644
--- a/nsw/Source/bsmd.database/DatabaseEntity.cs
+++ b/nsw/Source/bsmd.database/DatabaseEntity.cs
@@ -401,7 +401,7 @@ namespace bsmd.database
}
else
{
- value = ((DateTime)propValue).ToLocalTime().ToString(); // perform UTC-LocalTime Conversion
+ value = ((DateTime)propValue).ToLocalTime().ToString("g"); // perform UTC-LocalTime Conversion (no seconds)
}
}
else
diff --git a/nsw/Source/bsmd.database/Message.cs b/nsw/Source/bsmd.database/Message.cs
index 595b2d24..1f64e107 100644
--- a/nsw/Source/bsmd.database/Message.cs
+++ b/nsw/Source/bsmd.database/Message.cs
@@ -705,6 +705,13 @@ namespace bsmd.database
public void DeleteElements()
{
+ foreach (MessageError me in ErrorList)
+ DBManager.Instance.Delete(me);
+ foreach (MessageViolation mv in ViolationList)
+ DBManager.Instance.Delete(mv);
+ foreach (SystemError se in SystemErrorList)
+ DBManager.Instance.Delete(se);
+
foreach (DatabaseEntity dbEntity in this.Elements)
{
if (dbEntity is ISublistContainer sublistContainer)
diff --git a/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs b/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs
index f4bb32c1..28ed7077 100644
--- a/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs
+++ b/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs
@@ -88,7 +88,7 @@ namespace bsmd.database
break;
}
- query += " ORDER BY CAST(Identifier AS INT)";
+ query += " ORDER BY TRY_CAST(Identifier AS INT)";
cmd.CommandText = query;
}
diff --git a/nsw/Source/misc/report.db b/nsw/Source/misc/report.db
index 4a19fd40..06cad679 100644
Binary files a/nsw/Source/misc/report.db and b/nsw/Source/misc/report.db differ