aboutsummaryrefslogtreecommitdiffstats
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py157
1 files changed, 133 insertions, 24 deletions
diff --git a/main.py b/main.py
index ee090d3..5d43f97 100644
--- a/main.py
+++ b/main.py
@@ -1,5 +1,5 @@
from app import app
-from forms import JusticeSearchForm, CompanyForm, PersonSearchForm, EntitySearchForm
+from forms import GeneralSearchForm, JusticeSearchForm, CompanyForm, PersonSearchForm, EntitySearchForm
from flask import flash, render_template, request, redirect
from models import Company, Insolvency_Events, Konkurz_Events, Predmet_Podnikani, Predmety_Podnikani_Association, Predmet_Cinnosti, Predmety_Cinnosti_Association
from models import Zakladni_Kapital, Akcie, Nazvy, Sidlo, Sidlo_Association, Pravni_Forma_Association_v2, Pravni_Formy, Statutarni_Organ_Association, Statutarni_Organy, Pocty_Clenu_Organu
@@ -14,7 +14,7 @@ from sqlalchemy import create_engine
@app.route('/', methods=['GET', 'POST'])
def index():
search = JusticeSearchForm(request.form)
- print(search)
+ # print(search)
if request.method == 'POST':
return search_results(search)
@@ -23,7 +23,7 @@ def index():
@app.route('/osoby', methods=['GET', 'POST'])
def search_person():
search = PersonSearchForm(request.form)
- print(search)
+ # print(search)
if request.method == 'POST':
return search_results_person(search)
@@ -32,7 +32,7 @@ def search_person():
@app.route('/entity', methods=['GET', 'POST'])
def search_entity():
search = EntitySearchForm(request.form)
- print(search)
+ # print(search)
if request.method == 'POST':
return search_results_entity(search)
@@ -51,6 +51,18 @@ def search_results_person(search):
birthday = search.birthday.data
+ obec = search.obec_search.data
+ obec_search_method = search.obec_search_selection.data
+
+ ulice = search.ulice_search.data
+ ulice_search_method = search.ulice_search_selection.data
+
+ co = search.co_search.data
+ co_search_method = search.co_search_selection.data
+
+ cp = search.cp_search.data
+ cp_search_method = search.cp_search_selection.data
+
actual_selection = search.person_actual_selection.data
qry = Fyzicka_Osoba.query
@@ -70,7 +82,43 @@ def search_results_person(search):
qry = qry.filter(Fyzicka_Osoba.prijmeni.like(f'{surname}%'))
elif surname_search_method == "text_exact":
qry = qry.filter(Fyzicka_Osoba.prijmeni == surname)
-
+
+ if obec:
+ qry = qry.join(Adresy_v2, Fyzicka_Osoba.adresa)
+ if obec_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.obec.contains(obec))
+ elif obec_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.obec.like(f'{obec}%'))
+ elif obec_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.obec == obec)
+
+ if ulice:
+ qry = qry.join(Adresy_v2, Fyzicka_Osoba.adresa)
+ if ulice_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.ulice.contains(ulice))
+ elif ulice_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.ulice.like(f'{ulice}%'))
+ elif ulice_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.ulice == ulice)
+
+ if cp:
+ qry = qry.join(Adresy_v2, Fyzicka_Osoba.adresa)
+ if cp_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloPo.contains(cp))
+ elif cp_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloPo.like(f'{cp}%'))
+ elif cp_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloPo == cp)
+
+ if co:
+ qry = qry.join(Adresy_v2, Fyzicka_Osoba.adresa)
+ if co_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloOr.contains(co))
+ elif co_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloOr.like(f'{co}%'))
+ elif co_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloOr == co)
+
if birthday:
qry = qry.filter(Fyzicka_Osoba.datum_naroz == birthday)
@@ -94,8 +142,17 @@ def search_results_entity(search):
entity_number = search.entity_number_search.data
entity_number_search_method = search.entity_number_search_selection.data
- # foreign_entity_number = search.foreign_entity_number_search.data
- # foreign_entity_number_search_method = search.foreign_entity_number_search_selection.data
+ obec = search.obec_search.data
+ obec_search_method = search.obec_search_selection.data
+
+ ulice = search.ulice_search.data
+ ulice_search_method = search.ulice_search_selection.data
+
+ co = search.co_search.data
+ co_search_method = search.co_search_selection.data
+
+ cp = search.cp_search.data
+ cp_search_method = search.cp_search_selection.data
actual_selection = search.entity_actual_selection.data
@@ -114,22 +171,6 @@ def search_results_entity(search):
qry1 = qry1.filter(Pravnicka_Osoba.reg_cislo == entity_number)
qry = qry.union(qry1)
- # if entity_number:
- # if entity_number_search_method == "text_anywhere":
- # qry = qry.filter(Pravnicka_Osoba.ico.contains(entity_number))
- # elif entity_number_search_method == "text_beginning":
- # qry = qry.filter(Pravnicka_Osoba.ico.like(f'{entity_number}%'))
- # elif entity_number_search_method == "text_exact":
- # qry = qry.filter(Pravnicka_Osoba.ico == entity_number)
-
- # if foreign_entity_number:
- # if foreign_entity_number_search_method == "text_anywhere":
- # qry = qry.filter(Pravnicka_Osoba.reg_cislo.contains(foreign_entity_number))
- # elif foreign_entity_number_search_method == "text_beginning":
- # qry = qry.filter(Pravnicka_Osoba.reg_cislo.like(f'{foreign_entity_number}%'))
- # elif foreign_entity_number_search_method == "text_exact":
- # qry = qry.filter(Pravnicka_Osoba.reg_cislo == foreign_entity_number)
-
if entity_name:
if entity_name_search_method == "text_anywhere":
qry = qry.filter(Pravnicka_Osoba.nazev.contains(entity_name))
@@ -138,6 +179,42 @@ def search_results_entity(search):
elif entity_name_search_method == "text_exact":
qry = qry.filter(Pravnicka_Osoba.nazev == entity_name)
+ if obec:
+ qry = qry.join(Adresy_v2, Pravnicka_Osoba.adresa)
+ if obec_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.obec.contains(obec))
+ elif obec_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.obec.like(f'{obec}%'))
+ elif obec_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.obec == obec)
+
+ if ulice:
+ qry = qry.join(Adresy_v2, Pravnicka_Osoba.adresa)
+ if ulice_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.ulice.contains(ulice))
+ elif ulice_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.ulice.like(f'{ulice}%'))
+ elif ulice_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.ulice == ulice)
+
+ if cp:
+ qry = qry.join(Adresy_v2, Pravnicka_Osoba.adresa)
+ if cp_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloPo.contains(cp))
+ elif cp_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloPo.like(f'{cp}%'))
+ elif cp_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloPo == cp)
+
+ if co:
+ qry = qry.join(Adresy_v2, Pravnicka_Osoba.adresa)
+ if co_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloOr.contains(co))
+ elif co_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloOr.like(f'{co}%'))
+ elif co_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloOr == co)
+
results = qry.all()
print(results)
@@ -178,6 +255,14 @@ def search_results(search):
ulice_search_method = search.ulice_search_selection.data
ulice_actual_or_full = search.ulice_search_actual.data
+ co = search.co_search.data
+ co_search_method = search.co_search_selection.data
+ co_actual_or_full = search.co_search_actual.data
+
+ cp = search.cp_search.data
+ cp_search_method = search.cp_search_selection.data
+ cp_actual_or_full = search.cp_search_actual.data
+
pravni_forma = search.pravni_forma_search.data
pravni_forma_actual_or_full = search.pravni_forma_actual.data
@@ -263,7 +348,31 @@ def search_results(search):
qry = qry.filter(Adresy_v2.ulice.like(f'{ulice}%'))
elif ulice_search_method == "text_exact":
qry = qry.filter(Adresy_v2.ulice == ulice)
-
+
+ if cp:
+ qry = qry.join(Sidlo_Association, Company.sidlo_text)
+ if cp_actual_or_full == "actual_results":
+ qry = qry.filter(Sidlo_Association.vymaz_datum == 0)
+ qry = qry.join(Adresy_v2, Sidlo_Association.sidlo_text)
+ if cp_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloPo.contains(cp))
+ elif cp_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloPo.like(f'{cp}%'))
+ elif cp_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloPo == cp)
+
+ if co:
+ qry = qry.join(Sidlo_Association, Company.sidlo_text)
+ if co_actual_or_full == "actual_results":
+ qry = qry.filter(Sidlo_Association.vymaz_datum == 0)
+ qry = qry.join(Adresy_v2, Sidlo_Association.sidlo_text)
+ if co_search_method == "text_anywhere":
+ qry = qry.filter(Adresy_v2.cisloOr.contains(co))
+ elif co_search_method == "text_beginning":
+ qry = qry.filter(Adresy_v2.cisloOr.like(f'{co}%'))
+ elif co_search_method == "text_exact":
+ qry = qry.filter(Adresy_v2.cisloOr == co)
+
if pravni_forma:
qry = qry.join(Pravni_Forma_Association_v2, Company.pravni_forma_text)
if pravni_forma_actual_or_full == "actual_results":