From 089497ef8f7c94ec0cf4dcbeb74226f0fcecf719 Mon Sep 17 00:00:00 2001 From: Nguyen Ngo Date: Wed, 10 Sep 2025 17:12:00 -0400 Subject: [PATCH] Updated remove travel time related in calculation --- app.py | 17 ++---- payroll_excel_exporter.py | 16 ++---- templates/payroll_dashboard.html | 26 --------- working_hours_calculator.py | 94 ++------------------------------ 4 files changed, 15 insertions(+), 138 deletions(-) diff --git a/app.py b/app.py index 441a3d9..14c2fb3 100644 --- a/app.py +++ b/app.py @@ -5053,8 +5053,7 @@ def payroll_dashboard(): date_from = request.args.get('date_from', '') date_to = request.args.get('date_to', '') project_filter = request.args.get('project_filter', '') - include_travel_time = request.args.get('include_travel_time', 'true').lower() == 'true' - + # Set default date range if not provided (last 2 weeks) if not date_from or not date_to: end_date = datetime.now().date() @@ -5163,7 +5162,6 @@ def payroll_dashboard(): date_to=date_to, project_filter=project_filter, selected_project_name=selected_project_name, - include_travel_time=include_travel_time, user_role=user_role) except Exception as e: @@ -5199,7 +5197,6 @@ def export_payroll_excel(): date_from = request.form.get('date_from') date_to = request.form.get('date_to') project_filter = request.form.get('project_filter', '') - include_travel_time = request.form.get('include_travel_time', 'false').lower() == 'true' report_type = request.form.get('report_type', 'payroll') # 'payroll' or 'detailed' if not date_from or not date_to: @@ -5283,7 +5280,7 @@ def export_payroll_excel(): # Generate Excel file with employee names if report_type == 'detailed': excel_file = exporter.create_detailed_hours_report( - start_date, end_date, attendance_records, employee_names, include_travel_time + start_date, end_date, attendance_records, employee_names ) filename_prefix = 'detailed_hours_report' elif report_type == 'template': @@ -5298,12 +5295,12 @@ def export_payroll_excel(): print(f"⚠️ Error getting project name for template: {e}") excel_file = exporter.create_template_format_report( - start_date, end_date, attendance_records, employee_names, include_travel_time, project_name + start_date, end_date, attendance_records, employee_names, project_name ) filename_prefix = 'time_attendance_report' else: excel_file = exporter.create_payroll_report( - start_date, end_date, attendance_records, employee_names, include_travel_time + start_date, end_date, attendance_records, employee_names ) filename_prefix = 'payroll_report' @@ -5320,8 +5317,7 @@ def export_payroll_excel(): if excel_file: # Generate filename with timestamp and project name timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') - travel_suffix = '_with_travel' if include_travel_time else '_no_travel' - filename = f'{filename_prefix}_{date_from}_to_{date_to}{project_name}{travel_suffix}_{timestamp}.xlsx' + filename = f'{filename_prefix}_{date_from}_to_{date_to}{project_name}_{timestamp}.xlsx' print(f"📊 Payroll Excel file generated successfully: {filename}") @@ -5449,8 +5445,7 @@ def get_miss_punch_details(employee_id): date_from = request.args.get('date_from') date_to = request.args.get('date_to') project_filter = request.args.get('project_filter', '') - include_travel_time = request.args.get('include_travel_time', 'true').lower() == 'true' - + if not all([date_from, date_to]): return jsonify({ 'success': False, diff --git a/payroll_excel_exporter.py b/payroll_excel_exporter.py index d630e82..519f374 100644 --- a/payroll_excel_exporter.py +++ b/payroll_excel_exporter.py @@ -160,8 +160,7 @@ class PayrollExcelExporter: @log_database_operations('payroll_excel_export') def create_payroll_report(self, start_date: datetime, end_date: datetime, - attendance_records: List[Dict], employee_names: Dict[str, str] = None, - include_travel_time: bool = True) -> io.BytesIO: + attendance_records: List[Dict], employee_names: Dict[str, str] = None) -> io.BytesIO: """ Create a comprehensive payroll report with working hours @@ -170,8 +169,7 @@ class PayrollExcelExporter: end_date: Report end date attendance_records: List of attendance records employee_names: Dictionary mapping employee_id to full name - include_travel_time: Whether to include travel time in calculations - + Returns: BytesIO buffer containing the Excel file """ @@ -370,7 +368,6 @@ class PayrollExcelExporter: ("Total Regular Hours:", round(total_regular_hours, 2)), ("Total Overtime Hours:", round(total_overtime_hours, 2)), ("Grand Total Hours:", round(total_hours, 2)), - ("Travel Time Included:", "Yes" if hours_data['include_travel_time'] else "No"), ("Report Generated:", datetime.now().strftime('%Y-%m-%d %H:%M:%S')) ] @@ -399,8 +396,7 @@ class PayrollExcelExporter: @log_database_operations('detailed_hours_export') def create_detailed_hours_report(self, start_date: datetime, end_date: datetime, - attendance_records: List[Dict], employee_names: Dict[str, str] = None, - include_travel_time: bool = True) -> io.BytesIO: + attendance_records: List[Dict], employee_names: Dict[str, str] = None) -> io.BytesIO: """ Create a detailed daily hours report for all employees @@ -409,8 +405,7 @@ class PayrollExcelExporter: end_date: Report end date attendance_records: List of attendance records employee_names: Dictionary mapping employee_id to full name - include_travel_time: Whether to include travel time in calculations - + Returns: BytesIO buffer containing the Excel file """ @@ -526,7 +521,7 @@ class PayrollExcelExporter: @log_database_operations('template_hours_export') def create_template_format_report(self, start_date: datetime, end_date: datetime, attendance_records: List[Dict], employee_names: Dict[str, str] = None, - include_travel_time: bool = True, project_name: str = None) -> io.BytesIO: + project_name: str = None) -> io.BytesIO: """ Create a template-format report matching the provided Excel template. This creates a single sheet with all employees' detailed reports. @@ -536,7 +531,6 @@ class PayrollExcelExporter: end_date: Report end date attendance_records: List of attendance records employee_names: Dictionary mapping employee_id to full name - include_travel_time: Whether to include travel time in calculations project_name: Project name for the report header Returns: diff --git a/templates/payroll_dashboard.html b/templates/payroll_dashboard.html index 3a2b373..c1a8570 100644 --- a/templates/payroll_dashboard.html +++ b/templates/payroll_dashboard.html @@ -680,12 +680,6 @@ Calculate Hours - -
- - -
@@ -786,7 +780,6 @@ -