{% extends "base_authenticated.html" %} {% block title %}Import Time Attendance Data - {{ COMPANY_NAME }}{% endblock %} {% block extra_head %} {% endblock %} {% block content %}

Import Time Attendance Data

Upload Excel files containing employee time attendance records with enhanced validation

Import Instructions

Supported Formats

Excel files (.xlsx, .xls) with time attendance data

Required Columns

ID, Date, Time, Location Name, Action Description

Smart Validation

Automatic duplicate detection and data validation

Duplicate Handling

Automatically skip duplicate records during import

Expected Excel Format

ID Name Platform Date Time Location Name Action Description Event Description Recorded Address
12345 John Doe iPhone - iOS 2025-10-06 09:00:00 HQ Suite 210 Check In Main Office 123 Main St
67890 Jane Smith Android 2025-10-06 17:30:00 HQ Suite 210 Check Out Main Office 123 Main St

Upload Excel File

Drag & Drop Excel File

Or click to browse and select an Excel file (.xlsx, .xls)

Import Options

Select Project *

Required: Select which project this import data belongs to for filtering and reporting

Optional description for this import batch

Processing your file, please wait...

{% if validation_result %}

{% if validation_result.valid %} File Validation Successful {% else %} File Validation Failed {% endif %}

{{ validation_result.total_rows }}
Total Rows
{{ validation_result.valid_rows }}
Valid Rows
{% if validation_result.invalid_rows > 0 %}
{{ validation_result.invalid_rows }}
Invalid Rows
{% endif %}
{{ validation_result.columns|length }}
Columns Found
{% if validation_result.file_info %}

File Size: {{ validation_result.file_info.size_mb }} MB

{% endif %} {% if validation_result.errors %}

Validation Errors

    {% for error in validation_result.errors %}
  • {{ error }}
  • {% endfor %}
{% endif %} {% if validation_result.warnings %}

Warnings

    {% for warning in validation_result.warnings %}
  • {{ warning }}
  • {% endfor %}
{% endif %} {% if validation_result.sample_data %}

Sample Data Preview (First 3 Rows)

{% for column in validation_result.columns %} {% endfor %} {% for row in validation_result.sample_data[:3] %} {% for column in validation_result.columns %} {% endfor %} {% endfor %}
{{ column }}
{{ row.get(column, '') }}
{% endif %}
{% endif %} {% if import_result %}

{% if import_result.success %} Import Completed {% else %} Import Failed {% endif %}

{{ import_result.total_records }}
Total Records
{{ import_result.imported_records }}
Successfully Imported
{% if import_result.duplicate_records > 0 %}
{{ import_result.duplicate_records }}
Duplicates Skipped
{% endif %} {% if import_result.failed_records > 0 %}
{{ import_result.failed_records }}
Failed Records
{% endif %}
{% if import_result.success %}

Batch ID: {{ import_result.batch_id }}

{% endif %} {% if import_result.errors %}

Import Errors (Showing first 10)

    {% for error in import_result.errors[:10] %}
  • {{ error }}
  • {% endfor %} {% if import_result.errors|length > 10 %}
  • ...and {{ import_result.errors|length - 10 }} more errors
  • {% endif %}
{% endif %} {% if import_result.warnings %}

Import Warnings (Showing first 10)

    {% for warning in import_result.warnings[:10] %}
  • {{ warning }}
  • {% endfor %} {% if import_result.warnings|length > 10 %}
  • ...and {{ import_result.warnings|length - 10 }} more warnings
  • {% endif %}
{% endif %}
{% endif %}
{% endblock %}