import streamlit as st from utils.logger import setup_logger import pandas as pd from PIL import Image import os logger = setup_logger(__name__) def prune_p60_for_display(analysis_results_for_id): data_to_display = {} data_to_display["document_category"] = "income_document" data_to_display["document_type"] = "p60" employee_details = analysis_results_for_id.get( "employee_details", None) data_to_display["surname"] = employee_details.get( "surname", None) data_to_display["forenames_or_initials"] = employee_details.get( "forenames_or_initials", None) data_to_display["national_insurance_number"] = employee_details.get( "national_insurance_number", None) data_to_display["works_payroll_number"] = employee_details.get( "works_payroll_number", None) pay_and_income_tax_details = analysis_results_for_id.get( "pay_and_income_tax_details", None) data_to_display["previous_employments"] = pay_and_income_tax_details.get( "previous_employments", None) data_to_display["current_employment"] = pay_and_income_tax_details.get( "current_employment", None) data_to_display["total_for_year"] = pay_and_income_tax_details.get( "total_for_year", None) data_to_display["final_tax_code"] = pay_and_income_tax_details.get( "final_tax_code", None) data_to_display["national_insurance_contributions"] = analysis_results_for_id.get( "national_insurance_contributions", None) employer_details = analysis_results_for_id.get( "employer_details", None) data_to_display["employer_name_and_address"] = employer_details.get( "employer_name_and_address", None) data_to_display["paye_reference"] = employer_details.get( "paye_reference", None) return data_to_display def display_p60(extracted_files, analysis_results_pruned): col1, col2 = st.columns([2, 3]) logger.info(f"file_path while displaying: {extracted_files}") st.markdown("---") with col1: if len(extracted_files) > 1: st.image(extracted_files, caption=[os.path.basename( img) for img in extracted_files], use_container_width=True) else: image = Image.open(extracted_files[0]) st.image(image, caption=os.path.basename( extracted_files[0])) # , # use_container_width=True) logger.info( f"analysis_results_pruned : {analysis_results_pruned}") with col2: dict_str = {} for key, value in analysis_results_pruned.items(): # if key not in ['other_deductions', 'salary_components']: dict_str[key] = value simple_df = pd.DataFrame.from_dict( dict_str, orient='index', columns=['Value']).reset_index() simple_df.columns = ['Key', 'Value'] simple_df = simple_df.fillna(value="Missing") simple_df.index += 1 st.dataframe(simple_df, use_container_width=True) # st.markdown("Other Deductions") # other_dedecutions_dict = st.session_state['tab_ocr'][ # 'values_display'][original_file]['other_deductions'] # logger.info(f"other_dedecutions_dict : {other_dedecutions_dict}") # for other_deduc in other_dedecutions_dict: # simple_df = pd.DataFrame.from_dict( # other_deduc, # orient='index', columns=['Value']).reset_index() # simple_df.columns = ['Key', 'Value'] # simple_df = simple_df.fillna(value="Missing") # st.dataframe(simple_df, use_container_width=True) logger.info(f"simple_df: {simple_df}")