|
import streamlit as st |
|
from utils import set_algorithm_name, get_pdf_iframe |
|
from menu import display_pages_menu |
|
from country_by_country.utils.constants import ( |
|
JURIDICTIONS, |
|
CURRENCIES, |
|
SECTORS, |
|
COMPANIES, |
|
) |
|
from Levenshtein import distance |
|
import sys |
|
import logging |
|
import pandas as pd |
|
import numpy as np |
|
import re |
|
|
|
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format="%(message)s") |
|
|
|
|
|
st.set_page_config(layout="wide", page_title="Report metadata") |
|
st.title("Country by Country Tax Reporting analysis : Metadata") |
|
st.subheader( |
|
"This page will allow you to fill in metadata about the report : company name, headquarter, currency, unit, ...", |
|
) |
|
display_pages_menu() |
|
|
|
|
|
if "pdf_after_page_validation" in st.session_state: |
|
col1, col2 = st.columns(2) |
|
with col1: |
|
st.markdown( |
|
get_pdf_iframe(st.session_state["pdf_after_page_validation"]), |
|
unsafe_allow_html=True, |
|
) |
|
with col2: |
|
with st.form("metadata_form"): |
|
if "metadata" in st.session_state: |
|
company_name = st.session_state["metadata"]["company_name"] |
|
sector = st.session_state["metadata"]["sector"] |
|
year = st.session_state["metadata"]["year"] |
|
currency = st.session_state["metadata"]["currency"] |
|
unit = st.session_state["metadata"]["unit"] |
|
headquarter = st.session_state["metadata"]["headquarter"] |
|
decimal_separator = st.session_state["metadata"]["separator"] |
|
else: |
|
company_name = None |
|
sector = None |
|
year = "" |
|
currency = None |
|
unit = None |
|
headquarter = "" |
|
decimal_separator = "," |
|
|
|
separator_list = [",", "."] |
|
decimal_separator = st.selectbox( |
|
"Decimal separator", |
|
separator_list, |
|
index=separator_list.index(decimal_separator), |
|
) |
|
|
|
companies = list(COMPANIES.keys()) |
|
company_name = st.selectbox( |
|
"Company name", |
|
companies, |
|
index=companies.index(company_name) if company_name else 0, |
|
) |
|
|
|
sector = st.selectbox( |
|
"Sector", SECTORS, index=SECTORS.index(sector) if sector else 0 |
|
) |
|
|
|
year = st.text_input("Year", value=year) |
|
|
|
currencies = { |
|
( |
|
CURRENCIES[currency]["AlphabeticCode"], |
|
CURRENCIES[currency]["Currency"], |
|
) |
|
for currency in CURRENCIES |
|
} |
|
currencies = sorted(currencies, key=lambda x: x[0]) |
|
currencies = [f"{currency[0]} - {currency[1]}" for currency in currencies] |
|
currency = st.selectbox( |
|
"Currency", |
|
currencies, |
|
index=currencies.index(currency) |
|
if currency |
|
else currencies.index("EUR - Euro"), |
|
) |
|
|
|
units = [ |
|
"units", |
|
"thousands", |
|
"millions", |
|
"10 millions", |
|
"100 millions", |
|
"billions", |
|
] |
|
unit = st.selectbox("Unit", units, index=units.index(unit) if unit else 0) |
|
|
|
headquarters = list(JURIDICTIONS.keys()) |
|
headquarter = st.selectbox( |
|
"Headquarter location", |
|
headquarters, |
|
index=headquarters.index(headquarter) if headquarter else 0, |
|
) |
|
|
|
submitted = st.form_submit_button( |
|
label="Submit", |
|
) |
|
if submitted: |
|
st.session_state["metadata"] = { |
|
"separator": decimal_separator, |
|
"company_name": company_name, |
|
"sector": sector, |
|
"year": year, |
|
"currency": currency, |
|
"unit": unit, |
|
"headquarter": headquarter, |
|
} |
|
st.switch_page("pages/3_Merge_Tables.py") |
|
|