diff --git a/MEMORY.md b/MEMORY.md index 26b129e..30ec632 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -50,6 +50,7 @@ - [x] **Parser Global de NUMERIC (Postgres):** Configurado o driver `pg` nos servidores do Manager e do Portal para converter automaticamente `NUMERIC`/`DECIMAL` (OID 1700) para `Number`, cumprindo as regras 19 e 32 do `GEMINI.md`. - [x] **Resolução de Condição de Corrida:** Implementado `await` no update duplo de cobranças do SQL na edição de cobranças do Manager (`Finance.tsx`), assegurando consistência na re-busca de dados. - [x] **Ordem de Exclusão e Notificação (Regra 34):** Removida a exclusão local imediata no endpoint `/api/excluir_cobranca`. A remoção local é delegada ao webhook do Asaas, permitindo que a mensagem de WhatsApp acesse os dados necessários antes da deleção. +- [x] **Limpeza de Faltas no Reagendamento:** Ajustada a função `handleRescheduleLesson` no `LessonSchedule.tsx` para filtrar e deletar automaticamente do banco de dados/estado todas as faltas geradas de forma automática para uma aula que estava no passado e foi reagendada para o futuro. - [x] **Validação de Build e Git Push:** Confirmada compilação bem-sucedida do frontend/backend e efetuado o push para a branch remota `main` sob autorização do usuário. ## 📋 Próximos Passos diff --git a/manager/components/LessonSchedule.tsx b/manager/components/LessonSchedule.tsx index e984358..a346565 100644 --- a/manager/components/LessonSchedule.tsx +++ b/manager/components/LessonSchedule.tsx @@ -321,6 +321,11 @@ const LessonSchedule: React.FC = ({ classObj, data, updateD l.id === lesson.id ? { ...l, date: replacementDate, startTime: replacementStartTime, endTime: replacementEndTime, status: 'rescheduled', type: l.type, cancelReason: undefined } : l ); + // Remove qualquer registro de falta (absence) gerado automaticamente para esta aula (Regra 21) + const updatedAttendance = (data.attendance || []).filter( + a => !(a.lessonId === lesson.id && a.type === 'absence') + ); + const oldDateStr = new Date(lesson.date + 'T12:00:00Z').toLocaleDateString('pt-BR'); const newDateStr = new Date(replacementDate + 'T12:00:00Z').toLocaleDateString('pt-BR'); @@ -330,8 +335,8 @@ const LessonSchedule: React.FC = ({ classObj, data, updateD const newNotifs = notifyLessonAction('Aula Reagendada', notifMsg, waMsg); const updatedNotifications = [...(data.notifications || []), ...newNotifs]; - updateData({ lessons: updatedLessons, notifications: updatedNotifications }); - await dbService.saveData({ ...data, lessons: updatedLessons, notifications: updatedNotifications }); + updateData({ lessons: updatedLessons, notifications: updatedNotifications, attendance: updatedAttendance }); + await dbService.saveData({ ...data, lessons: updatedLessons, notifications: updatedNotifications, attendance: updatedAttendance }); setTimeout(() => { setShowLessonDetail(null);