перед настройкой базы данных. Выгрузка кадровых файлов разделена по дням.

This commit is contained in:
2026-07-30 17:11:23 +03:00
parent 127c979505
commit d39618c891
+11 -3
View File
@@ -96,7 +96,7 @@ def format_row_cells(ws, r_num, fill_obj, is_bold=False, align_b="right", bold_f
cell_b.alignment = Alignment(horizontal=align_b, vertical="center", wrap_text=wrap_b)
# --- 1. СВОДКА НА СЕГОДНЯ (ОСТАВЛЕНА БЕЗ ИЗМЕНЕНИЙ, КАК ЕСТЬ) ---
# --- 1. СВОДКА НА СЕГОДНЯ ---
def generate_summary_excel(merged_df, date_str="27.07.2026", filename=None):
if not filename:
filename = f"{format_date_ru(date_str)} сводка.xlsx"
@@ -162,7 +162,7 @@ def generate_summary_excel(merged_df, date_str="27.07.2026", filename=None):
ws.row_dimensions[current_row].hidden = True
current_row += 1
# 5. ИТОГО НА РАБОТЕ (Включает: пришли по СКУД + Командировки + Удаленная работа)
# 5. ИТОГО НА РАБОТЕ (Раскрывающийся список, свернут hidden=True)
is_working_mask = (merged_df['Пришел'] == True) | (
merged_df['Вид_отсутствия'].astype(str).str.lower().str.contains('командировк|удален|дистанцион|разъездн', regex=True, na=False)
)
@@ -173,6 +173,14 @@ def generate_summary_excel(merged_df, date_str="27.07.2026", filename=None):
format_row_cells(ws, current_row, FILL_PRESENT, is_bold=True, bold_font=bold_font)
current_row += 1
if not present.empty:
for idx, fio in enumerate(sorted(present['Сотрудник'].dropna().unique()), 1):
ws.cell(row=current_row, column=1, value=f"{idx}. {fio}")
format_row_cells(ws, current_row, FILL_PRESENT, is_bold=False)
ws.row_dimensions[current_row].outlineLevel = 1
ws.row_dimensions[current_row].hidden = True
current_row += 1
# 6. АНОМАЛИИ (В самом низу таблицы, раскрывающийся список)
anomalies = merged_df[(merged_df['Пришел'] == True) & (merged_df['Вид_отсутствия'].notna())]
@@ -223,7 +231,7 @@ def generate_summary_excel(merged_df, date_str="27.07.2026", filename=None):
print(f"[⚠️] Файл открыт в Excel! Сохранено как: {alt_path}")
# --- 2. ДЕТАЛЬНЫЙ ОТЧЕТ ЗА ВЧЕРА (С ДОРАБОТАННЫМ РАСЧЕТОМ И ЗЕЛЕНОЙ ПОДСВЕТКОЙ АНОМАЛИЙ) ---
# --- 2. ДЕТАЛЬНЫЙ ОТЧЕТ ЗА ВЧЕРА ---
def generate_detailed_excel(merged_df, date_str="26.07.2026", filename=None):
if not filename:
filename = f"{format_date_ru(date_str)} отчет.xlsx"