Trevidia에서 반복 기능을 구현한 방법
발행: (2025년 12월 14일 오전 05:55 GMT+9)
2 min read
원문: Dev.to
Source: Dev.to
Trevidia의 반복 청구서
- 청구서를 매일, 매주, 격주, 매월, 분기별, 연간으로 반복 설정합니다.
- 다음 청구서 날짜를 자동으로 계산합니다.
- 청구서를 연결된 상태로 유지하여 사용자가 시간 경과에 따른 결제 내역을 추적할 수 있게 합니다.
- 언제든지 반복 청구서를 편집하거나 중단할 수 있습니다.
- 해킹도, 중복된 잡동사니도 없습니다. 하나의 진실된 소스만 존재합니다.
각 반복 청구서는 원본 청구서 데이터와 연결되어 있어, 반복 주기와 다음 반복 날짜가 해당 단일 소스에서 파생됩니다.
구현 세부 사항
Laravel 스케줄러를 만들어 ProcessRecurringInvoices 작업을 매일 실행하도록 했습니다. 이 작업은:
- 다음 반복 날짜가 현재 날짜와 일치하는 청구서를 데이터베이스에서 검색합니다.
- 원본 청구서의 관련 값을 복제합니다.
- 이전 청구서 번호를 기준으로 청구서 번호를 증가시킵니다.
- 수신자가 이메일 알림을 구독 해제하지 않은 경우, 원본 청구서에 사용된 이메일 주소로 새 청구서를 전송합니다.
이 접근 방식은 수동 복제 없이 자동으로 반복 청구서를 생성하도록 보장하며, 깔끔하고 일관된 데이터 구조를 유지합니다.