From 87773b1eaedc5166f720c1e3e1b2f40e7e1d6960 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 4 Dec 2024 13:29:33 +0500 Subject: [PATCH] 3 test --- test_apps/test_app3.py | 98 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 test_apps/test_app3.py diff --git a/test_apps/test_app3.py b/test_apps/test_app3.py new file mode 100644 index 0000000..919cf63 --- /dev/null +++ b/test_apps/test_app3.py @@ -0,0 +1,98 @@ +import pandas as pd +from flask import Flask, request, render_template_string +import os +import re + +app = Flask(__name__) + +# Directory to store converted CSV files +UPLOAD_FOLDER = 'converted_files' +os.makedirs(UPLOAD_FOLDER, exist_ok=True) + +@app.route('/') +def index(): + return ''' +

Upload Excel File

+
+ +

+ +

+ +
+ ''' + +@app.route('/upload', methods=['POST']) +def upload_file(): + if 'file' not in request.files or 'tracking_no' not in request.form: + return "No file or tracking number provided.", 400 + + file = request.files['file'] + tracking_no = request.form['tracking_no'] + filename = file.filename + + if not filename.endswith(('.xls', '.xlsx')): + return "Unsupported file type. Please upload an Excel file.", 400 + + try: + # Read all sheets from the Excel file with no header + file.seek(0) # Reset file pointer + sheet_data = pd.read_excel(file, sheet_name=None, header=None, dtype=str) + + result_html = "

Tracking Information

" + tracking_found = False + mail_bag_found = False + + # Define regex pattern for Mail Bag No (e.g., HDOD-L04-2024-47 or similar formats) + mail_bag_pattern = r"\b[A-Za-z]{4,6}-\d{2,4}-?\d{1,4}-?\d{1,4}\b" # Refined pattern for mail bag no + + # Process each sheet + for sheet_name, df in sheet_data.items(): + sheet_found = False + mail_bag_no = None + tracking_found_in_sheet = None + hash_value = None + + # Iterate through every row and column to search for the tracking number and Mail Bag No + for row_idx, row in df.iterrows(): + for col_idx, cell in row.items(): + cell_str = str(cell) + # Debugging: print the content of each cell being checked + print(f"Checking row {row_idx}, col {col_idx}: {cell_str}") + + # Check for tracking number match + if tracking_no.lower() in cell_str.lower() and not tracking_found_in_sheet: + tracking_found = True + tracking_found_in_sheet = cell_str + adjusted_row_idx = row_idx + 1 + adjusted_col_idx = col_idx + 1 + + # Check for "Mail Bag No" match using regex pattern + if re.search(mail_bag_pattern, cell_str) and not mail_bag_no: + mail_bag_no = cell_str.strip() + + # Check for "#" match + if "#" in cell_str and not hash_value: + hash_value = cell_str.strip() + + # Debugging: Print whether mail bag no and tracking no were found + print(f"Mail Bag No: {mail_bag_no}, Tracking Found: {tracking_found_in_sheet}, Hash: {hash_value}") + + if tracking_found_in_sheet and mail_bag_no and hash_value: + result_html += f"

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

" + result_html += f"

Mail Bag No: {mail_bag_no}

" + result_html += f"

Tracking No: {tracking_found_in_sheet}

" + result_html += f"

#: {hash_value}

" + result_html += f"

Details found in sheet '{sheet_name}'.

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

No data found for Tracking No: {tracking_no}

" + + return render_template_string(result_html) + + except Exception as e: + return f"Error processing file: {e}", 500 + + +if __name__ == '__main__': + app.run(debug=True, port=5000, host='0.0.0.0')