diff --git a/test_apps/test_app17.py b/test_apps/test_app17.py new file mode 100644 index 0000000..3072b79 --- /dev/null +++ b/test_apps/test_app17.py @@ -0,0 +1,105 @@ +import pandas as pd +from flask import Flask, request, render_template, session +import os + +app = Flask(__name__) +app.secret_key = "supersecretkey" # Required for session management + +# Directory to store temporarily uploaded files +UPLOAD_FOLDER = 'converted_file' +os.makedirs(UPLOAD_FOLDER, exist_ok=True) + +@app.route('/', methods=['GET', 'POST']) +def index(): + result_html = "" + file_path = session.get('uploaded_file') # Retrieve the path of the uploaded file from the session + uploaded_file_name = session.get('uploaded_file_name', "No file selected") # Get the uploaded file name + + if request.method == 'POST': + # Handle file upload if provided + if 'file' in request.files and request.files['file'].filename: + file = request.files['file'] + filename = file.filename + + if not filename.endswith(('.xls', '.xlsx')): + result_html = "

Unsupported file type. Please upload an Excel file.

" + else: + # Save the uploaded file + file_path = os.path.join(UPLOAD_FOLDER, filename) + file.save(file_path) + session['uploaded_file'] = file_path # Save the file path to the session + session['uploaded_file_name'] = filename # Save the file name to the session + uploaded_file_name = filename # Update the displayed file name + result_html = "

File uploaded successfully.

" + + # Process tracking number search if a file is already uploaded + if file_path and 'tracking_no' in request.form: + tracking_no = request.form['tracking_no'] + try: + # Read all sheets from the Excel file + sheet_data = pd.read_excel(file_path, sheet_name=None, header=None, dtype=str) + + # Flags and variables + tracking_found = False + mail_bag_no = None + hash_value = None # To store the # value + + # Process each sheet + for sheet_name, df in sheet_data.items(): + for row_idx, row in df.iterrows(): + for col_idx, cell in row.items(): + cell_str = str(cell) + + if tracking_no.lower() in cell_str.lower(): + tracking_found = True + adjusted_row_idx = row_idx + 1 + adjusted_col_idx = col_idx + 1 + result_html += f"

Tracking No: {tracking_no} found in sheet '{sheet_name}'

" + result_html += f"

Row {adjusted_row_idx}, Column {adjusted_col_idx}: {cell_str}

" + + try: + mail_bag_no_parts = [ + str(df.iloc[3, 2]) if not pd.isna(df.iloc[3, 2]) else "", + str(df.iloc[3, 3]) if not pd.isna(df.iloc[3, 3]) else "" + ] + mail_bag_no = " ".join(part for part in mail_bag_no_parts if part.strip()) + except IndexError: + mail_bag_no = None + + try: + hash_value = df.iloc[row_idx, 0] + if pd.isna(hash_value): + hash_value = None + except IndexError: + hash_value = None + + break + if tracking_found: + break + if tracking_found: + break + + if tracking_found and mail_bag_no: + result_html += f"

Mail Bag No: {mail_bag_no}

" + elif tracking_found: + result_html += f"

Mail Bag No: Not found

" + + if tracking_found and hash_value: + result_html += f"

#: {hash_value}

" + elif tracking_found: + result_html += f"

#: Not found

" + + if not tracking_found: + result_html += f"

No data found for Tracking No: {tracking_no}

" + + except Exception as e: + result_html = f"

Error processing file: {e}

" + + elif not file_path: + result_html = "

Please upload a file before searching.

" + + return render_template('index.html', result_html=result_html, uploaded_file_name=uploaded_file_name) + + +if __name__ == '__main__': + app.run(debug=True, port=5000, host='0.0.0.0')