NSW 6.0 Unterlagen eingetroffen

This commit is contained in:
Daniel Schick 2020-02-16 21:11:09 +00:00
parent 7d4196acee
commit f94c68fe43
13 changed files with 3462 additions and 13 deletions

Binary file not shown.

View File

@ -0,0 +1,27 @@
-- Meldeklasse SERV: prüfen, ob die Felder lang genug sind und ggf. anpassen..
-- (99 -> 255 chars)
-- Meldeklasse WAS, LastWasteDisposalPort: Hier bisher nur das Validierungsattribut geändert
-- CREW: zwei neue Spalten
PRINT N'Altering [dbo].[CREW]...';
GO
ALTER TABLE [dbo].[CREW] ADD [CrewMemberIdentityDocumentIssuingState] CHAR(2) NULL;
GO
ALTER TABLE [dbo].[CREW] ADD [CrewMemberIdentityDocumentExpiryDate] DATE NULL;
GO
-- PAS: zwei neue Spalten
PRINT N'Altering [dbo].[PAS]...';
GO
ALTER TABLE [dbo].[PAS] ADD [PassengerIdentityDocumentIssuingState] CHAR(2) NULL;
GO
ALTER TABLE [dbo].[PAS] ADD [PassengerIdentityDocumentExpiryDate] DATE NULL;
GO

View File

@ -107,6 +107,18 @@ namespace bsmd.database
[ENI2Validation]
public bool IsDeparture { get; set; }
[ShowReport]
[ReportDisplayName("Issuing state")]
[Validation(ValidationCode.FLAG_CODE)]
[MaxLength(2)]
[ENI2Validation]
public string CrewMemberIdentityDocumentIssuingState { get; set; }
[ShowReport]
[ReportDisplayName("Expiry date")]
[ENI2Validation]
public DateTime? CrewMemberIdentityDocumentExpiryDate { get; set; }
public string Identifier { get; set; }
public string SublistCollectionKey { get { return "crew"; } }
@ -143,6 +155,8 @@ namespace bsmd.database
scmd.Parameters.AddWithNullableValue("@P11", this.CrewMemberDuty);
scmd.Parameters.AddWithNullableValue("@P12", this.Identifier);
scmd.Parameters.AddWithValue("@P13", this.IsDeparture);
scmd.Parameters.AddWithNullableValue("@P14", this.CrewMemberIdentityDocumentIssuingState);
scmd.Parameters.AddWithNullableValue("@P15", this.CrewMemberIdentityDocumentExpiryDate);
if (this.IsNew)
{
@ -150,8 +164,9 @@ namespace bsmd.database
scmd.Parameters.AddWithValue("@ID", this.Id);
scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, CrewMemberLastName, CrewMemberFirstName, " +
"CrewMemberPlaceOfBirth, CrewMemberDateOfBirth, CrewMemberGender, CrewMemberNationality,CrewMemberIdentityDocumentType, " +
"CrewMemberIdentityDocumentId, CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture) " +
"VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13 )", this.Tablename);
"CrewMemberIdentityDocumentId, CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture, " +
"CrewMemberIdentityDocumentIssuingState, CrewMemberIdentityDocumentExpiryDate) " +
"VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15 )", this.Tablename);
}
else
{
@ -159,7 +174,8 @@ namespace bsmd.database
scmd.CommandText = string.Format("UPDATE {0} SET CrewMemberLastName = @P2, CrewMemberFirstName = @P3, " +
"CrewMemberPlaceOfBirth = @P4, CrewMemberDateOfBirth = @P5, CrewMemberGender = @P6, CrewMemberNationality = @P7, "+
"CrewMemberIdentityDocumentType = @P8, CrewMemberIdentityDocumentId = @P9, CrewMemberVisaNumber = @P10, " +
"CrewMemberDuty = @P11, Identifier = @P12, IsDeparture = @P13 WHERE Id = @ID", this.Tablename);
"CrewMemberDuty = @P11, Identifier = @P12, IsDeparture = @P13, CrewMemberIdentityDocumentIssuingState = @P14, " +
"CrewMemberIdentityDocumentExpiryDate = @P15 WHERE Id = @ID", this.Tablename);
}
}
@ -167,7 +183,8 @@ namespace bsmd.database
{
string query = string.Format("SELECT Id, CrewMemberLastName, CrewMemberFirstName, CrewMemberPlaceOfBirth, " +
"CrewMemberDateOfBirth, CrewMemberGender, CrewMemberNationality, CrewMemberIdentityDocumentType, CrewMemberIdentityDocumentId, " +
"CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture FROM {0}", this.Tablename);
"CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture, CrewMemberIdentityDocumentIssuingState, " +
"CrewMemberIdentityDocumentExpiryDate FROM {0}", this.Tablename);
switch (filter)
{
@ -207,6 +224,9 @@ namespace bsmd.database
if (!reader.IsDBNull(10)) crew.CrewMemberDuty = reader.GetString(10);
if (!reader.IsDBNull(11)) crew.Identifier = reader.GetString(11);
if (!reader.IsDBNull(12)) crew.IsDeparture = reader.GetBoolean(12);
if (!reader.IsDBNull(13)) crew.CrewMemberIdentityDocumentIssuingState = reader.GetString(13);
if (!reader.IsDBNull(14)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(14);
result.Add(crew);
}
reader.Close();

View File

@ -116,6 +116,18 @@ namespace bsmd.database
[ENI2Validation]
public bool? PassengerInTransit { get; set; }
[ShowReport]
[ReportDisplayName("Issuing state")]
[Validation(ValidationCode.FLAG_CODE)]
[ENI2Validation]
public string PassengerIdentityDocumentIssuingState { get; set; }
[ShowReport]
[ReportDisplayName("Expiry date")]
[ENI2Validation]
public DateTime? PassengerIdentityDocumentExpiryDate { get; set; }
public string Identifier { get; set; }
public string SublistCollectionKey { get { return "pas"; } }
@ -156,6 +168,8 @@ namespace bsmd.database
scmd.Parameters.AddWithNullableValue("@P13", this.PassengerInTransit);
scmd.Parameters.AddWithNullableValue("@P14", this.Identifier);
scmd.Parameters.AddWithValue("@P15", this.IsDeparture);
scmd.Parameters.AddWithNullableValue("@P16", this.PassengerIdentityDocumentIssuingState);
scmd.Parameters.AddWithNullableValue("@P17", this.PassengerIdentityDocumentExpiryDate);
if (this.IsNew)
{
@ -164,7 +178,8 @@ namespace bsmd.database
scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, PassengerLastName, PassengerFirstName, " +
"PassengerPlaceOfBirth, PassengerDateOfBirth, PassengerGender, PassengerNationality, PassengerIdentityDocumentType, " +
"PassengerIdentityDocumentId, PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation," +
"PassengerInTransit, Identifier, IsDeparture) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15 )",
"PassengerInTransit, Identifier, IsDeparture, PassengerIdentityDocumentIssuingState, PassengerIdentityDocumentExpiryDate) " +
"VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17 )",
this.Tablename);
}
else
@ -174,7 +189,8 @@ namespace bsmd.database
"PassengerPlaceOfBirth = @P4, PassengerDateOfBirth = @P5, PassengerGender = @P6," +
"PassengerNationality = @P7, PassengerIdentityDocumentType = @P8, PassengerIdentityDocumentId = @P9, " +
"PassengerVisaNumber = @P10, PassengerPortOfEmbarkation = @P11, PassengerPortOfDisembarkation = @P12, " +
"PassengerInTransit = @P13, IsDeparture = @P15, Identifier = @P14 WHERE Id = @ID", this.Tablename);
"PassengerInTransit = @P13, IsDeparture = @P15, Identifier = @P14, PassengerIdentityDocumentIssuingState = @P16, " +
"PassengerIdentityDocumentExpiryDate = @P17 WHERE Id = @ID", this.Tablename);
}
}
@ -182,7 +198,8 @@ namespace bsmd.database
{
string query = string.Format("SELECT Id, PassengerLastName, PassengerFirstName, PassengerPlaceOfBirth, " +
"PassengerDateOfBirth, PassengerGender, PassengerNationality, PassengerIdentityDocumentType, PassengerIdentityDocumentId, " +
"PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation, PassengerInTransit, Identifier, IsDeparture FROM {0}",
"PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation, PassengerInTransit, Identifier, " +
"IsDeparture, PassengerIdentityDocumentIssuingState, PassengerIdentityDocumentExpiryDate FROM {0}",
this.Tablename);
switch (filter)
@ -225,6 +242,8 @@ namespace bsmd.database
if (!reader.IsDBNull(12)) pas.PassengerInTransit = reader.GetBoolean(12);
if (!reader.IsDBNull(13)) pas.Identifier = reader.GetString(13);
if (!reader.IsDBNull(14)) pas.IsDeparture = reader.GetBoolean(14);
if (!reader.IsDBNull(15)) pas.PassengerIdentityDocumentIssuingState = reader.GetString(15);
if (!reader.IsDBNull(16)) pas.PassengerIdentityDocumentExpiryDate = reader.GetDateTime(16);
result.Add(pas);
}
reader.Close();

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("5.9.2")]
[assembly: AssemblyCopyright("Copyright © 2014-2019 schick Informatik")]
[assembly: AssemblyInformationalVersion("6.0.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2020 schick Informatik")]
[assembly: AssemblyTrademark("")]

View File

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

View File

@ -33,14 +33,14 @@ namespace bsmd.database
[ShowReport]
[Validation(ValidationCode.NOT_NULL_MAX_LEN, 99)]
[LookupName("SERV.ServiceBeneficiary")]
[MaxLength(99)]
[MaxLength(255)]
[ENI2Validation]
public string ServiceBeneficiary { get; set; }
[ShowReport]
[Validation(ValidationCode.NOT_NULL_MAX_LEN, 99)]
[LookupName("SERV.ServiceInvoiceRecipient")]
[MaxLength(99)]
[MaxLength(255)]
[ENI2Validation]
public string ServiceInvoiceRecipient { get; set; }

View File

@ -47,7 +47,7 @@ namespace bsmd.database
public bool? WasteDisposalValidExemption { get; set; }
[ShowReport]
[Validation2(ValidationCode.LOCODE)]
[Validation2(ValidationCode.LOCODE_SSN)]
[MaxLength(5)]
[ENI2Validation]
public string LastWasteDisposalPort { get; set; }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition 7.0.3.780 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Version">
<xs:annotation>
<xs:documentation>Version number of schema</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="6.0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MessageId" type="xs:string">
<xs:annotation>
<xs:documentation>Unique message identifier.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="VisitId">
<xs:annotation>
<xs:documentation>Required when TransitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(DE)([A-Z]{3})-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="TransitId">
<xs:annotation>
<xs:documentation>Required when VisitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(ZZNOK)-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="SisNumbers">
<xs:annotation>
<xs:documentation>A list of SIS numbers. An empty list means that all sent numbers will be deleted. Sending a new list overwrites existing ones completely.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SisNumber">
<xs:annotation>
<xs:documentation>One SIS number</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z0-9]{4}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Timestamp" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Timestamp, when the message is sent</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="SenderReference">
<xs:annotation>
<xs:documentation>A customer reference that can be freely filled and will be send back in the following response. No checks are made on this field. When a new Visit- or TransitId is obtained, it should be used as a reference to match the response to its corresponding request.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="35" />
<xs:minLength value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>The message type (should be the same as in the request message):
- VISIT: Creates a new declaration with the application for a VisitId. It's allowed to send further data in one or more reporting classes
- TRANSIT: same with TransitId
- DATA: Only data for one or more reporting classes are included
- RESET: The data of one or more reporting classes are deleted
- CANCEL: The whole declaration is cancelled</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="VISIT" />
<xs:enumeration value="TRANSIT" />
<xs:enumeration value="DATA" />
<xs:enumeration value="RESET" />
<xs:enumeration value="CANCEL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesFull">
<xs:annotation>
<xs:documentation>Reporting classes that are received with all necessary data.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesPartial">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesError">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesResetted">
<xs:annotation>
<xs:documentation>Reporting classes that are resetted (due to a message with Type RESET).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesNoChanges">
<xs:annotation>
<xs:documentation>Reporting classes that are received with all necessary data, but not sent (again) to the NSW due to unchanged content.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Messages">
<xs:annotation>
<xs:documentation>Errors, Violations, etc.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Message">
<xs:complexType>
<xs:sequence>
<xs:element name="ID">
<xs:annotation>
<xs:documentation>ID (given from NSW)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="3" />
<xs:maxLength value="4" />
<xs:pattern value="([1-9][0-9]{2,3})" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>Type of Message (functional error, process error in report, process error in message basket, process error during status request, or violation)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INFO" />
<xs:enumeration value="WARNING" />
<xs:enumeration value="VIOLATION" />
<xs:enumeration value="ERROR" />
<xs:enumeration value="XSD_ERROR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Location">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="32" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Text">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="ReportingClassCode">
<xs:restriction base="xs:string">
<xs:enumeration value="NOA_NOD" />
<xs:enumeration value="ATA" />
<xs:enumeration value="ATD" />
<xs:enumeration value="SEC" />
<xs:enumeration value="AGNT" />
<xs:enumeration value="POBA" />
<xs:enumeration value="POBD" />
<xs:enumeration value="NAME" />
<xs:enumeration value="TIEFA" />
<xs:enumeration value="TIEFD" />
<xs:enumeration value="BKRA" />
<xs:enumeration value="BKRD" />
<xs:enumeration value="STAT" />
<xs:enumeration value="LADG" />
<xs:enumeration value="INFO" />
<xs:enumeration value="SERV" />
<xs:enumeration value="PRE72H" />
<xs:enumeration value="MDH" />
<xs:enumeration value="WAS" />
<xs:enumeration value="CREW" />
<xs:enumeration value="PAS" />
<xs:enumeration value="BPOL" />
<xs:enumeration value="TOWA" />
<xs:enumeration value="TOWD" />
<xs:enumeration value="HAZA" />
<xs:enumeration value="HAZD" />
</xs:restriction>
</xs:simpleType>
</xs:schema>