summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlushechka/notaryautomation/App.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlushechka/notaryautomation/App.java')
-rw-r--r--src/main/java/com/mavlushechka/notaryautomation/App.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/notaryautomation/App.java b/src/main/java/com/mavlushechka/notaryautomation/App.java
new file mode 100644
index 0000000..0849da6
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notaryautomation/App.java
@@ -0,0 +1,136 @@
+package com.mavlushechka.notaryautomation;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.xwpf.usermodel.*;
+
+public class App {
+ private static final Scanner SCANNER = new Scanner(System.in);
+
+ public static void main(String[] args) throws Exception {
+ Person deadPerson;
+ LocalDate dateOfDeath;
+ String roleOfDeadPerson;
+ ArrayList<Person> heirs = new ArrayList<>();
+ Person finalHeir;
+ String roleOfFinalHeir;
+
+ System.out.println("Погибший человек:\n");
+ deadPerson = createPerson();
+ System.out.print("Дата смерти (1990-12-31): ");
+ dateOfDeath = LocalDate.parse(SCANNER.next());
+ System.out.print("Роль в семье (Мать, Отец и т.д.): ");
+ roleOfDeadPerson = SCANNER.next().toLowerCase();
+
+ boolean isThereAnotherHeir;
+ System.out.println("\nНаследникики:");
+ do {
+ System.out.println();
+ heirs.add(createPerson());
+ System.out.print("\nЕсть ещё наследники? (Да/Нет) ");
+ isThereAnotherHeir = "Да".equalsIgnoreCase(SCANNER.next());
+ } while (isThereAnotherHeir);
+
+ System.out.println("\nВсе наследники:");
+ for (int i = 0; i < heirs.size(); i++) {
+ System.out.println(i+1 + ". " + heirs.get(i).firstName() + " " + heirs.get(i).secondName() + " " + heirs.get(i).middleName());
+ }
+ System.out.print("Окончательный наследник (введите число): ");
+ finalHeir = heirs.get(SCANNER.nextInt() - 1);
+
+ System.out.print("Роль в семье (Сын, Дочь и т.д.): ");
+ roleOfFinalHeir = SCANNER.next().toLowerCase();
+
+ updateApplicationOfTheHeirToRenounceTheInheritanceShareDocument(deadPerson, dateOfDeath, roleOfDeadPerson, heirs, finalHeir, roleOfFinalHeir);
+ }
+
+ private static Person createPerson() {
+ System.out.print("Введите имя: ");
+ String firstName = SCANNER.next().toUpperCase();
+ System.out.print("Введите фамилию: ");
+ String secondName = SCANNER.next().toUpperCase();
+ System.out.print("Введите отчество: ");
+ SCANNER.nextLine();
+ String middleName = SCANNER.nextLine().toUpperCase();
+ System.out.print("Введите серию паспорта (AA): ");
+ String serial = SCANNER.next().toUpperCase();
+ if (" ".equals(serial)) {
+ serial = "AA";
+ }
+ System.out.print("Введите номер паспорта (1234567): ");
+ int number = SCANNER.nextInt();
+ System.out.print("Введите гражданство человека (Uzbekistan): ");
+ String citizenship = SCANNER.next();
+ if (" ".equals(citizenship)) {
+ citizenship = "Uzbekistan";
+ }
+ System.out.print("Введите место выдачи паспорта (XORAZM VILOYATI URGANCH TUMANI IIB): ");
+ SCANNER.nextLine();
+ String placeOfIssue = SCANNER.nextLine().toUpperCase();
+ if (" ".equals(placeOfIssue)) {
+ placeOfIssue = "XORAZM VILOYATI URGANCH TUMANI IIB";
+ }
+ System.out.print("Введите дату выдачи паспорта (1990-12-31): ");
+ LocalDate dateOfIssue = LocalDate.parse(SCANNER.next());
+ System.out.print("Введите ЖШШИР (12345678901234): ");
+ String personalIdentificationNumberOfThePhysicalPerson = SCANNER.next();
+ System.out.print("Введите место проживания: ");
+ SCANNER.nextLine();
+ String placeOfResidence = SCANNER.nextLine();
+
+ return new Person(firstName, secondName, middleName, new Passport(serial, number, citizenship, placeOfIssue, dateOfIssue, personalIdentificationNumberOfThePhysicalPerson, placeOfResidence));
+ }
+
+ private static void updateApplicationOfTheHeirToRenounceTheInheritanceShareDocument(Person deadPerson, LocalDate dateOfDeath, String roleOfDeadPerson, ArrayList<Person> heirs, Person finalHeir, String roleOfFinalHeir) throws Exception {
+ FileInputStream fileInputStream = new FileInputStream("Application of the heir to renounce the inheritance share.docx");
+
+ try (XWPFDocument xwpfDocument = new XWPFDocument(OPCPackage.open(fileInputStream))) {
+ List<XWPFParagraph> xwpfParagraphList = xwpfDocument.getParagraphs();
+
+ for (XWPFParagraph xwpfParagraph : xwpfParagraphList) {
+ for (XWPFRun xwpfRun : xwpfParagraph.getRuns()) {
+ String oldText = xwpfRun.getText(0);
+ if (oldText == null) continue;
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
+ String text = oldText
+ .replace("${dateOfDeath}", dateOfDeath.format(dateTimeFormatter))
+ .replace("${currentDate}", LocalDate.now().format(dateTimeFormatter)
+ .replace("${relationship1}", roleOfDeadPerson)
+ .replace("${relationship2}", roleOfFinalHeir)
+ .replace("${deadPerson.firstName}", deadPerson.firstName())
+ .replace("${deadPerson.secondName}", deadPerson.secondName())
+ .replace("${finalHeir.firstName}", finalHeir.firstName())
+ .replace("${finalHeir.secondName}", finalHeir.secondName())
+ .replace("${numberOfArticle}", "Отец".equalsIgnoreCase(roleOfDeadPerson) && "Мать".equalsIgnoreCase(roleOfFinalHeir) ? "1135" : "?"));
+
+ for (int i = 1; i < heirs.size(); i++) {
+ String personsFullInfo = "${personsFullInfo" + i + "}";
+ String personsLine = "${personsLine" + (i + 1) + "}";
+ Person person = heirs.get(i - 1);
+
+ text = text
+ .replace(personsFullInfo,person.passport().placeOfResidence() + "да\n"
+ + "рўйхатда турувчи " + person.firstName() + " " + person.secondName() + " " + person.middleName() + "\n"
+ + "(" + person.passport().citizenship() + " фуқаросининг биометрик паспорти " + person.passport().serial() + " " + person.passport().number() + ",\n"
+ + person.passport().placeOfIssue() + " томонидан\n"
+ + person.passport().dateOfIssue().format(dateTimeFormatter) + " йилда берилган, ЖШШИР " + person.passport().personalIdentificationNumberOfThePhysicalPerson() + ")\n"
+ + (heirs.size() > i + 1 ? "${personsFullInfo" + (i + 1) + "}" : ""))
+ .replace(personsLine,(i + 1) + "._______________________________________________________________________\n"
+ + (heirs.size() > i + 1 ? "${personsLine" + (i + 2) + "}" : ""));
+ }
+ xwpfRun.setText(text, 0);
+ }
+ }
+ try (FileOutputStream out = new FileOutputStream(finalHeir.firstName() + " " + finalHeir.secondName() + " " + finalHeir.middleName() + ", Меросхўрнинг мерос улушидан воз кечиш ҳақидаги аризаси.docx")) {
+ xwpfDocument.write(out);
+ }
+ }
+ }
+}