diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index b7d26f2..043b693 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -13,7 +13,8 @@
 from erpnext.utilities.transaction_base import TransactionBase
 from frappe.utils.background_jobs import enqueue
 from erpnext.hr.doctype.additional_salary_component.additional_salary_component import get_additional_salary_component
-from erpnext.hr.doctype.employee_benefit_application.employee_benefit_application import get_employee_benefit_application
+from erpnext.hr.doctype.employee_benefit_application.employee_benefit_application import get_employee_benefit_application, get_amount
+from erpnext.hr.doctype.payroll_period.payroll_period import get_payroll_period_days
 
 class SalarySlip(TransactionBase):
 	def autoname(self):
@@ -71,6 +72,27 @@
 			for employee_benefit in employee_benefits:
 				benefit_component = frappe._dict(employee_benefit)
 				self.update_component_row(frappe._dict(benefit_component.struct_row), benefit_component.amount, "earnings")
+		else:
+			max_benefits = self._salary_structure_doc.get("max_benefits")
+			if max_benefits > 0:
+				default_flexi_compenent = frappe.db.exists(
+					'Salary Component',
+					{
+						'is_flexible_benefit': 1,
+						'is_pro_rata_applicable': 1,
+						'flexi_default': 1
+					}
+				)
+				if default_flexi_compenent:
+					salary_component = frappe.get_doc("Salary Component", default_flexi_compenent)
+					flexi_struct_row = {}
+					flexi_struct_row['depends_on_lwp'] = salary_component.depends_on_lwp
+					flexi_struct_row['salary_component'] = salary_component.name
+					flexi_struct_row['abbr'] = salary_component.salary_component_abbr
+					flexi_struct_row['do_not_include_in_total'] = salary_component.do_not_include_in_total
+					payroll_period_days = get_payroll_period_days(self.start_date, self.end_date, self.company)
+					amount = get_amount(payroll_period_days, self.start_date, self.end_date, max_benefits)
+					self.update_component_row(flexi_struct_row, amount, "earnings")
 
 	def update_component_row(self, struct_row, amount, key):
 		component_row = None
