fix: Loan repayment schedule date
diff --git a/erpnext/loan_management/doctype/loan/loan.py b/erpnext/loan_management/doctype/loan/loan.py
index 73134ee..878fd18 100644
--- a/erpnext/loan_management/doctype/loan/loan.py
+++ b/erpnext/loan_management/doctype/loan/loan.py
@@ -9,7 +9,7 @@
 
 import frappe
 from frappe import _
-from frappe.utils import add_months, flt, getdate, now_datetime, nowdate
+from frappe.utils import add_months, flt, get_last_day, getdate, now_datetime, nowdate
 from six import string_types
 
 import erpnext
@@ -102,7 +102,7 @@
 				"total_payment": total_payment,
 				"balance_loan_amount": balance_amount
 			})
-			next_payment_date = add_months(payment_date, 1)
+			next_payment_date = add_single_month(payment_date)
 			payment_date = next_payment_date
 
 	def set_repayment_period(self):
@@ -391,3 +391,9 @@
 		"value": len(applicants),
 		"fieldtype": "Int"
 	}
+
+def add_single_month(date):
+	if getdate(date) == get_last_day(date):
+		return get_last_day(add_months(date, 1))
+	else:
+		return add_months(date, 1)
\ No newline at end of file
diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
index 9f3fe76..53ff43a 100644
--- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
+++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
@@ -414,7 +414,10 @@
 		return None, 0
 
 def regenerate_repayment_schedule(loan):
-	from erpnext.loan_management.doctype.loan.loan import get_monthly_repayment_amount
+	from erpnext.loan_management.doctype.loan.loan import (
+		add_single_month,
+		get_monthly_repayment_amount,
+	)
 
 	loan_doc = frappe.get_doc('Loan', loan)
 	next_accrual_date = None
@@ -456,7 +459,7 @@
 			"total_payment": total_payment,
 			"balance_loan_amount": balance_amount
 		})
-		next_payment_date = add_months(payment_date, 1)
+		next_payment_date = add_single_month(payment_date)
 		payment_date = next_payment_date
 
 	loan_doc.save()