#!/usr/bin/env python3
import openpyxl
from openpyxl.styles import Font, Alignment, Border, Side
from datetime import datetime

def create_week13_timesheet():
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.title = "Timesheet"
    
    # Week 13 hours
    week_data = [
        {'day': 'Mon', 'date': '23/3', 'start': '7:00', 'finish': '4:30', 'break': '30min', 'hours': 9},
        {'day': 'Tue', 'date': '24/3', 'start': '7:00', 'finish': '3:30', 'break': '30min', 'hours': 8},
        {'day': 'Wed', 'date': '25/3', 'start': '7:00', 'finish': '4:30', 'break': '30min', 'hours': 9},
        {'day': 'Thur', 'date': '26/3', 'start': '7:00', 'finish': '4:30', 'break': '30min', 'hours': 9},
        {'day': 'Fri', 'date': '27/3', 'start': '7:00', 'finish': '4:30', 'break': '30min', 'hours': 9},
        {'day': 'Sat', 'date': '28/3', 'start': '7:00', 'finish': '3:00', 'break': '—', 'hours': 8},
    ]
    
    total_hours = sum(d['hours'] for d in week_data)
    
    # Styles
    header_font = Font(bold=True, size=16)
    subtitle_font = Font(size=10)
    bold_font = Font(bold=True)
    
    align_center = Alignment(horizontal='center', vertical='center')
    align_left = Alignment(horizontal='left', vertical='center')
    
    thin = Side(border_style="thin", color="000000")
    border = Border(top=thin, left=thin, right=thin, bottom=thin)
    
    # Title
    ws['A1'] = "LF CONSTRUCTION SERVICES PTY LTD"
    ws['A1'].font = header_font
    ws['A1'].alignment = align_center
    ws.merge_cells('A1:J1')
    
    ws['A2'] = "TIMELOG RECORD"
    ws['A2'].font = Font(bold=True, size=12)
    ws['A2'].alignment = align_center
    ws.merge_cells('A2:J2')
    
    ws['A4'] = "Employee Name: Michael McLoughlin"
    ws['A4'].font = bold_font
    ws['E4'] = "Week Ending: 29/03/2026"
    ws['E4'].font = bold_font
    ws['H4'] = "Job: Powerhouse Museum Parramatta (69 Phillip St)"
    ws['H4'].font = bold_font
    
    headers = ['Day', 'Date', 'Start', 'Finish', 'Break', 'Total Hours', 'Job #', 'Project / Task Description']
    for col_idx, header in enumerate(headers, 1):
        cell = ws.cell(row=6, column=col_idx)
        cell.value = header
        cell.font = bold_font
        cell.alignment = align_center
        cell.border = border
        
    ws.column_dimensions['A'].width = 10
    ws.column_dimensions['B'].width = 10
    ws.column_dimensions['C'].width = 10
    ws.column_dimensions['D'].width = 10
    ws.column_dimensions['E'].width = 10
    ws.column_dimensions['F'].width = 12
    ws.column_dimensions['G'].width = 15
    ws.column_dimensions['H'].width = 40
    
    current_row = 7
    for data in week_data:
        cells = [
            ws.cell(row=current_row, column=1, value=data['day']),
            ws.cell(row=current_row, column=2, value=data['date']),
            ws.cell(row=current_row, column=3, value=data['start']),
            ws.cell(row=current_row, column=4, value=data['finish']),
            ws.cell(row=current_row, column=5, value=data['break']),
            ws.cell(row=current_row, column=6, value=data['hours']),
            ws.cell(row=current_row, column=7, value="Ford Civil"),
            ws.cell(row=current_row, column=8, value="General Foreman duties / Subcontractor supervision"),
        ]
        
        for cell in cells:
            cell.alignment = align_center if cell.column < 8 else align_left
            cell.border = border
            
        current_row += 1
        
    # Total row
    current_row += 1
    total_label = ws.cell(row=current_row, column=5, value="TOTAL HOURS:")
    total_label.font = bold_font
    total_label.alignment = Alignment(horizontal='right')
    
    total_val = ws.cell(row=current_row, column=6, value=total_hours)
    total_val.font = bold_font
    total_val.alignment = align_center
    total_val.border = border
    
    filename = "/home/ccuser/rateright-growth/rivet/timesheet-Michael-W13-23Mar-29Mar.xlsx"
    wb.save(filename)
    print(f"Saved {filename}")

if __name__ == "__main__":
    create_week13_timesheet()
