From 9e70cd8362a097da0ebe03261ea56674b73af388 Mon Sep 17 00:00:00 2001 From: Petr Šmerkl <46304018+SveterCZE@users.noreply.github.com> Date: Sat, 26 Jun 2021 23:35:00 +0200 Subject: display common ownership interests --- db_creation.py | 40 +++++++++++++++++++++++++++-- justice_build.py | 7 +++--- main.py | 2 +- models.py | 17 ++++++++++++- templates/extract-actual.html | 58 +++++++++++++++++++++++++++++++++++++++++-- templates/extract.html | 37 ++++++++++++++++++++++----- update_db.py | 31 +++++++++++++++++++++-- 7 files changed, 174 insertions(+), 18 deletions(-) diff --git a/db_creation.py b/db_creation.py index 70a08df..c3836aa 100644 --- a/db_creation.py +++ b/db_creation.py @@ -195,6 +195,21 @@ def create_tables(conn): PRIMARY KEY("id" AUTOINCREMENT) ); """ + podilnici = """ CREATE TABLE "podilnici" ( + "id" INTEGER NOT NULL UNIQUE, + "podil_id" INTEGER, + "podilnik_fo_id" INTEGER, + "podilnik_po_id" INTEGER, + "zapis_datum" DATE, + "vymaz_datum" DATE, + "adresa_id" INTEGER, + FOREIGN KEY("adresa_id") REFERENCES "adresy_v2"("id"), + PRIMARY KEY("id" AUTOINCREMENT), + FOREIGN KEY("podilnik_fo_id") REFERENCES "fyzicke_osoby"("id"), + FOREIGN KEY("podilnik_po_id") REFERENCES "pravnicke_osoby"("id"), + FOREIGN KEY("podil_id") REFERENCES "spolecnici_spolecny_podil"("id") +); """ + podily = """ CREATE TABLE "podily" ( "id" INTEGER NOT NULL UNIQUE, "spolecnik_id" INTEGER, @@ -465,7 +480,7 @@ def create_tables(conn): ); """ list_of_tables = [companies, adresy_v2, akcie, dr_relation, dr_organ_clen_relation, druhy_podilu, fyzicke_osoby, insolvency_events, - jediny_akcionar, konkurz_events, nazvy, ostatni_skutecnosti, pocty_clenu_DR, pocty_clenu_organu, podily, pravni_formy, + jediny_akcionar, konkurz_events, nazvy, ostatni_skutecnosti, pocty_clenu_DR, pocty_clenu_organu, podily, podilnici, pravni_formy, pravni_formy_relation, pravnicke_osoby, predmety_cinnosti, predmety_cinnosti_relation, prdmety_podnikani, predmety_podnikani_relation, prokura_common_texts, prokuriste, sidlo_relation, spolecnici, spolecnici_uvolneny_podil, spolecnici_spolecny_podil, statutarni_organ_clen_relation, statutarni_organ_relation, statutarni_organy, ubo, ucel, ucel_relation, zakladni_kapital, zapis_soudy, zpusoby_jednani, zpusoby_jednani_relation] @@ -601,6 +616,26 @@ def create_indices(conn): "spolecny_podil_id" ); """ + podilnici1 = """ CREATE INDEX "index podilnici1" ON "podilnici" ( + "id" +); """ + + podilnici2 = """ CREATE INDEX "index podilnici2" ON "podilnici" ( + "podil_id" +); """ + + podilnici3 = """ CREATE INDEX "index podilnici3" ON "podilnici" ( + "podilnik_fo_id" +); """ + + podilnici4 = """ CREATE INDEX "index podilnici4" ON "podilnici" ( + "podilnik_po_id" +); """ + + podilnici5 = """ CREATE INDEX "index podilnici5" ON "podilnici" ( + "adresa_id" +); """ + pravni_formy = """ CREATE INDEX "index pravni_formy" ON "pravni_formy" ( "pravni_forma" ); """ @@ -847,7 +882,8 @@ def create_indices(conn): list_of_indices = [companies1, companies2, companies3, companies4, companies5, adresy1, adresy2, adresy3, akcie, akcie2, akcionari1, akcionari2, akcionari3, dr_clen_relation1, dr_clen_relation2, dr_relation, dr_relation2, dr_relation_3, dr_relation_4, insolvency1, insolvency2, konkurz1, konkurz2, nazvy1, nazvy2, nazvy3, ostatni_skutecnosti, ostatni_skutecnosti2, - pocty_clenu_organ1, pocty_clenu_organ2, podily1, podily2, podily3, podily4, pravni_formy, pravni_formy_relation1, pravni_formy_relation2, + pocty_clenu_organ1, pocty_clenu_organ2, podily1, podily2, podily3, podily4, podilnici1, podilnici2, podilnici3, podilnici4, podilnici5, + pravni_formy, pravni_formy_relation1, pravni_formy_relation2, predmety_cinnosti_relation1, predmety_cinnosti_relation2, predmety_cinnosti_relation3, predmety_podnikani_relation1, predmety_podnikani_relation2, predmety_podnikani_relation3, predmety_cinnosti1, predmety_cinnosti2, predmety_podnikani1, predmety_podnikani2, prokuriste1, prokuriste2, prokuriste3, prokuriste4, sidlo_relation1, sidlo_relation_2, sidlo_relation_3, soudni_zapis1, soudni_zapis2, spolecnici1, diff --git a/justice_build.py b/justice_build.py index 4b82660..9acf1e7 100644 --- a/justice_build.py +++ b/justice_build.py @@ -8,11 +8,10 @@ def main(): DB_name = "justice.db" # backup_DB() create_DB(DB_name) - # valid_files = get_valid_filenames() - valid_files = ["sro-full-ceske_budejovice-2021"] + valid_files = get_valid_filenames() os.makedirs("data", exist_ok=True) - # for valid_file in valid_files: - # download_data(valid_file) + for valid_file in valid_files: + download_data(valid_file) for valid_file in valid_files: modified_file_name = os.path.join(str(os.getcwd()), "data", valid_file + ".xml") update_DB(modified_file_name, DB_name) diff --git a/main.py b/main.py index 31dde42..a4d8293 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ from models import Company, Insolvency_Events, Konkurz_Events, Predmet_Podnikani from models import Zakladni_Kapital, Akcie, Nazvy, Sidlo, Sidlo_Association, Pravni_Forma_Association_v2, Pravni_Formy, Statutarni_Organ_Association, Statutarni_Organy, Pocty_Clenu_Organu from models import Zpusob_Jednani_Association, Zpusob_Jednani, Statutarni_Organ_Clen_Association, Fyzicka_Osoba, Spolecnici_Association, Podily_Association, Druhy_Podilu, Pravnicka_Osoba from models import Prokurista_Association, Dozorci_Rada_Clen_Association, Jediny_Akcionar_Association, Prokura_Common_Text_Association, Soudni_Zapisy, Ucel, Ucel_Association -from models import Adresy_v2, Uvolneny_Podil_Association, Spolecny_Podil_Association +from models import Adresy_v2, Uvolneny_Podil_Association, Spolecny_Podil_Association, Podilnici_Association from tables import Results from sqlalchemy.sql import select from sqlalchemy.sql import text diff --git a/models.py b/models.py index a6d2eaf..400e5de 100644 --- a/models.py +++ b/models.py @@ -301,6 +301,21 @@ class Spolecnici_Association(db.Model): podily = db.relationship("Podily_Association") company = db.relationship("Company") +class Podilnici_Association(db.Model): + __tablename__ = "podilnici" + id = db.Column(db.Integer, primary_key=True) + podil_id = db.Column(db.Integer, db.ForeignKey('spolecnici_spolecny_podil.id')) + podilnik_fo_id = db.Column(db.Integer, db.ForeignKey('fyzicke_osoby.id')) + podilnik_po_id = db.Column(db.Integer, db.ForeignKey('pravnicke_osoby.id')) + zapis_datum = db.Column(MyType) + vymaz_datum = db.Column(MyType) + adresa_id = db.Column(db.Integer, db.ForeignKey('adresy_v2.id')) + # text_podilnik = db.Column(db.String) + adresa = db.relationship("Adresy_v2") + jmeno = db.relationship("Fyzicka_Osoba") + oznaceni_po = db.relationship("Pravnicka_Osoba") + podily = db.relationship("Spolecny_Podil_Association") + class Uvolneny_Podil_Association(db.Model): __tablename__ = "spolecnici_uvolneny_podil" id = db.Column(db.Integer, primary_key=True) @@ -319,9 +334,9 @@ class Spolecny_Podil_Association(db.Model): vymaz_datum = db.Column(MyType) text_spolecny_podil = db.Column(db.String) podily = db.relationship("Podily_Association") + podilnici = db.relationship("Podilnici_Association") company = db.relationship("Company") - class Ubo(db.Model): __tablename__ = "ubo" id = db.Column(db.Integer, primary_key=True) diff --git a/templates/extract-actual.html b/templates/extract-actual.html index f24cb80..691dae3 100644 --- a/templates/extract-actual.html +++ b/templates/extract-actual.html @@ -49,7 +49,6 @@ {% endif %} {% endfor %} - {% set vacant_shares_notes = [] %} {% for i in range (row.spolecnici_uvolneny_podil|length) %} {% if row.spolecnici_uvolneny_podil[i].vymaz_datum == 0 %} @@ -57,6 +56,13 @@ {% endif %} {% endfor %} +{% set common_shares_notes = [] %} +{% for i in range (row.spolecnici_spolecny_podil|length) %} + {% if row.spolecnici_spolecny_podil[i].vymaz_datum == 0 %} + {% set common_shares_notes = common_shares_notes.append(row.spolecnici_spolecny_podil[i]) %} + {% endif %} +{% endfor %} + {% set sole_shareholder_notes = [] %} {% for i in range (row.jediny_akcionar|length) %} {% if row.jediny_akcionar[i].vymaz_datum == 0 %} @@ -376,7 +382,7 @@ - {% if spolecnici_notes|length > 0 or vacant_shares_notes|length > 0 %} + {% if spolecnici_notes|length > 0 or vacant_shares_notes|length > 0 or common_shares_notes|length > 0 %}