diff --git a/app.py b/app.py index 633100c..11c9a9c 100644 --- a/app.py +++ b/app.py @@ -6583,6 +6583,11 @@ def time_attendance_dashboard(): @log_database_operations('time_attendance_import') def import_time_attendance(): """Enhanced import with duplicate review""" + if request.method == 'GET': + # Load active projects for dropdown + projects = Project.query.filter_by(active_status=True).order_by(Project.name).all() + return render_template('time_attendance_import.html', projects=projects) + if request.method == 'POST': try: # Check if this is coming from invalid review (file is already in session) @@ -6717,12 +6722,16 @@ def import_time_attendance(): # Proceed with import print("🚀 Starting import process...") import_source = request.form.get('import_source', f"Manual Import - {filename}") + project_id = request.form.get('project_id') + project_id = int(project_id) if project_id and project_id != '' else None + import_result = import_service.import_from_excel( temp_path, created_by=session['user_id'], import_source=import_source, skip_duplicates=skip_duplicates, - force_import_hashes=force_import_hashes + force_import_hashes=force_import_hashes, + project_id=project_id ) if import_result['success']: diff --git a/models/time_attendance.py b/models/time_attendance.py index ab7594e..72defb4 100644 --- a/models/time_attendance.py +++ b/models/time_attendance.py @@ -41,11 +41,15 @@ class TimeAttendance(base.db.Model): import_batch_id = base.db.Column(base.db.String(36), nullable=True, index=True) import_date = base.db.Column(base.db.DateTime, default=datetime.utcnow) import_source = base.db.Column(base.db.String(100), nullable=True) - + project_id = base.db.Column(base.db.Integer, base.db.ForeignKey('projects.id'), nullable=True, index=True) + # Audit fields created_by = base.db.Column(base.db.Integer, base.db.ForeignKey('users.id'), nullable=True) created_date = base.db.Column(base.db.DateTime, default=datetime.utcnow) updated_date = base.db.Column(base.db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + + # Relationship + project = base.db.relationship('Project', backref='time_attendance_records') def __repr__(self): return f'' diff --git a/templates/time_attendance_import.html b/templates/time_attendance_import.html index d7db554..8bc4dc9 100644 --- a/templates/time_attendance_import.html +++ b/templates/time_attendance_import.html @@ -4,6 +4,16 @@ {% block extra_head %}