فهرست منبع

MarriageCertificate Domain and Command BaseCertificate attributes

Andrew Grant 4 ماه پیش
والد
کامیت
c9a65880c3

+ 30 - 0
src/main/java/scot/carricksoftware/grants/commands/certificates/marriagecertificates/MarriageCertificateCommand.java

@@ -6,7 +6,9 @@
 package scot.carricksoftware.grants.commands.certificates.marriagecertificates;
 
 import scot.carricksoftware.grants.domains.people.Person;
+import scot.carricksoftware.grants.domains.places.Organisation;
 import scot.carricksoftware.grants.domains.places.Place;
+import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 public interface MarriageCertificateCommand {
 
@@ -111,4 +113,32 @@ public interface MarriageCertificateCommand {
     String getUntrackedSecondWitness();
 
     void setUntrackedSecondWitness(String untrackedSecondWitness);
+
+    String getCertificateNumber();
+
+    void setCertificateNumber(String certificateNumber);
+
+    Organisation getCertificateSource();
+
+    void setCertificateSource(Organisation certificateSource);
+
+    String getCertificateDate();
+
+    void setCertificateDate(String certificateDate);
+
+    CertificateType getCertificateType();
+
+    void setCertificateType(CertificateType certificateType);
+
+    Organisation getRegistrationAuthority();
+
+    void setRegistrationAuthority(Organisation registrationAuthority);
+
+    String getVolume();
+
+    void setVolume(String volume);
+
+    String getNumber();
+
+    void setNumber(String number);
 }

+ 79 - 0
src/main/java/scot/carricksoftware/grants/commands/certificates/marriagecertificates/MarriageCertificateCommandImpl.java

@@ -6,11 +6,20 @@
 package scot.carricksoftware.grants.commands.certificates.marriagecertificates;
 
 import scot.carricksoftware.grants.domains.people.Person;
+import scot.carricksoftware.grants.domains.places.Organisation;
 import scot.carricksoftware.grants.domains.places.Place;
+import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 public class MarriageCertificateCommandImpl implements MarriageCertificateCommand {
 
     private Long Id;
+    private String certificateNumber;
+    private Organisation certificateSource;
+    private String certificateDate;
+    private CertificateType certificateType;
+    private Organisation registrationAuthority;
+    private String volume;
+    private String number;
     private Person bride;
     private Person groom;
     private String whenMarried;
@@ -285,4 +294,74 @@ public class MarriageCertificateCommandImpl implements MarriageCertificateComman
     public void setUntrackedSecondWitness(String untrackedSecondWitness) {
         this.untrackedSecondWitness = untrackedSecondWitness;
     }
+
+    @Override
+    public String getCertificateNumber() {
+        return certificateNumber;
+    }
+
+    @Override
+    public void setCertificateNumber(String certificateNumber) {
+        this.certificateNumber = certificateNumber;
+    }
+
+    @Override
+    public Organisation getCertificateSource() {
+        return certificateSource;
+    }
+
+    @Override
+    public void setCertificateSource(Organisation certificateSource) {
+        this.certificateSource = certificateSource;
+    }
+
+    @Override
+    public String getCertificateDate() {
+        return certificateDate;
+    }
+
+    @Override
+    public void setCertificateDate(String certificateDate) {
+        this.certificateDate = certificateDate;
+    }
+
+    @Override
+    public CertificateType getCertificateType() {
+        return certificateType;
+    }
+
+    @Override
+    public void setCertificateType(CertificateType certificateType) {
+        this.certificateType = certificateType;
+    }
+
+    @Override
+    public Organisation getRegistrationAuthority() {
+        return registrationAuthority;
+    }
+
+    @Override
+    public void setRegistrationAuthority(Organisation registrationAuthority) {
+        this.registrationAuthority = registrationAuthority;
+    }
+
+    @Override
+    public String getVolume() {
+        return volume;
+    }
+
+    @Override
+    public void setVolume(String volume) {
+        this.volume = volume;
+    }
+
+    @Override
+    public String getNumber() {
+        return number;
+    }
+
+    @Override
+    public void setNumber(String number) {
+        this.number = number;
+    }
 }

+ 1 - 2
src/main/java/scot/carricksoftware/grants/domains/certificates/MarriageCertificate.java

@@ -10,13 +10,12 @@ import jakarta.persistence.Entity;
 import jakarta.persistence.JoinColumn;
 import jakarta.persistence.ManyToOne;
 import org.springframework.format.annotation.DateTimeFormat;
-import scot.carricksoftware.grants.BaseEntity;
 import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.domains.places.Place;
 
 @Entity
-public class MarriageCertificate extends BaseEntity {
+public class MarriageCertificate extends BaseCertificate {
 
     @SuppressWarnings("JpaDataSourceORMInspection")
     @ManyToOne

+ 148 - 22
src/main/resources/templates/certificates/marriageCertificate/form.html

@@ -22,15 +22,149 @@
 <div th:insert="~{fragments/layout::banner}"></div>
 
 <div class="container border border-info rounded-3 text-center p-4">
+    <h3>Marriage Certificate Details</h3>
     <form th:object="${marriageCertificateCommand}" th:action="@{/marriageCertificate}" method="post">
         <div th:if="${#fields.hasErrors('*')}" class="alert alert-danger">
             <p>Please Correct The Errors Below</p>
         </div>
-        <div class="form-group row justify-content-center">
-            <div class="col-xs-4" style="margin-right:20px;">
-                <label for="bride">Bride</label>
-                <div>
-                    <select id="bride" style="width: 300px;" name="newBorn" th:field="*{bride}">
+        <table style="width:100%;">
+            <tr>
+                <td style="text-align: right;">
+                    <label for="id"><span style="color: rgb(255,0,0);">*</span>Database Id :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <input class="form-control" id="id"
+                           th:field="*{id}" type="text" readonly>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="certificateNumber">Certificate Number :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <input class="form-control" id="certificateNumber"
+                           th:field="*{certificateNumber}" type="text">
+                    <div th:if="${#fields.hasErrors('certificateNumber')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('certificateNumber')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="certificateSource">Certificate Source&nbsp;:&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <div>
+                        <select id="certificateSource" name="certificateSource" th:field="*{certificateSource}">
+                            <option th:value="${''}" th:text="${''}"></option>
+                            <!--/*@thymesVar id="organisations" type="scot.carricksoftware.grants.domains.places.Organisation"*/-->
+                            <option th:each="organisation : ${organisations}"
+                                    th:value="${organisation.id}" th:text="${organisation.toString()}"></option>
+                        </select>
+                        <div th:if="${#fields.hasErrors('certificateSource')}">
+                            <ul class="text-danger">
+                                <li th:each="err : ${#fields.errors('certificateSource')}" th:text="${err}"/>
+                            </ul>
+                        </div>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="certificateDate">Certificate Date (dd/mm/yyyy) :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <input class="form-control" id="certificateDate"
+                           th:field="*{certificateDate}" type="text">
+                    <div th:if="${#fields.hasErrors('certificateDate')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('certificateDate')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+                </td>
+            </tr>
+            <tr style="border-bottom: 5px solid #ccc;">
+                <td style="text-align: right;">
+                    <label for="certificateType">Certificate Type :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <div>
+                        <select id="certificateType" style="width: 200px;" name="certificateType"
+                                th:field="*{certificateType}">
+                            <option th:value="${''}" th:text="${''}"></option>
+                            <option th:each="value : ${T(scot.carricksoftware.grants.enums.certificates.CertificateType).values()}"
+                                    th:value="${value}" th:text="${value.label}"></option>
+                        </select>
+                    </div>
+                    <div th:if="${#fields.hasErrors('certificateType')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('certificateType')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="registrationAuthority">Registration Authority :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <div>
+                        <select id="registrationAuthority" style="width: 200px;" name="registrationAuthority"
+                                th:field="*{registrationAuthority}">
+                            <option th:value="${''}" th:text="${''}"></option>
+                            <!--/*@thymesVar id="organisations" type="scot.carricksoftware.grants.domains.places.Organisation"*/-->
+                            <option th:each="organisation : ${organisations}"
+                                    th:value="${organisation.id}" th:text="${organisation.name}"></option>
+                        </select>
+                    </div>
+                    <div th:if="${#fields.hasErrors('registrationAuthority')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('registrationAuthority')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="volume">Volume :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <div>
+                        <input class="volume" id="volume"
+                               th:field="*{volume}" type="text">
+                        <div th:if="${#fields.hasErrors('volume')}">
+                            <ul class="text-danger">
+                                <li th:each="err : ${#fields.errors('volume')}" th:text="${err}"/>
+                            </ul>
+                        </div>
+                    </div>
+                </td>
+            </tr>
+            <tr style="border-bottom: 5px solid #ccc;">
+                <td style="text-align: right;">
+                    <label for="number">Number :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <div>
+                        <input class="number" id="number"
+                               th:field="*{number}" type="text">
+                        <div th:if="${#fields.hasErrors('number')}">
+                            <ul class="text-danger">
+                                <li th:each="err : ${#fields.errors('number')}" th:text="${err}"/>
+                            </ul>
+                        </div>
+                    </div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td style="text-align: right;">
+                    <label for="bride">Bride</label>
+                </td>
+                <td style="text-align: left;">
+                    <select id="bride" style="width: 300px;" name="bride" th:field="*{bride}">
                         <option th:value="${''}" th:text="${''}"></option>
                         <option th:each="person : ${people}"
                                 th:value="${person.id}" th:text="${person.toString()}"></option>
@@ -40,12 +174,13 @@
                             <li th:each="err : ${#fields.errors('bride')}" th:text="${err}"/>
                         </ul>
                     </div>
-                </div>
-            </div>
-
-            <div class="col-xs-4" style="margin-right:20px;">
-                <label for="groom">Groom</label>
-                <div>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="groom">Groom</label>
+                </td>
+                <td style="text-align: left;">
                     <select id="groom" style="width: 300px;" name="groom" th:field="*{groom}">
                         <option th:value="${''}" th:text="${''}"></option>
                         <option th:each="person : ${people}"
@@ -56,18 +191,9 @@
                             <li th:each="err : ${#fields.errors('groom')}" th:text="${err}"/>
                         </ul>
                     </div>
-                </div>
-            </div>
-        </div>
-        <div class="form-group row justify-content-center">
+                </td>
 
-            <div class="col-xs-2">
-                <label for="id">Database Id<span style="color: rgb(255,0,0);">*</span></label>
-                <input class="form-control" id="id"
-                       th:field="*{id}" type="text" readonly>
-            </div>
-
-        </div>
+        </table>
         <button type="submit" class="btn btn-primary">Commit</button>
         <a class="btn btn-secondary" th:href="@{/marriageCertificates}" th:text="${'List all'}">List all</a>
         <a class="btn btn-success" th:href="@{/static}" th:text="${'Home'}">Home</a>