每月1号,自动生成本月份的物业费。如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费。 缴费功能。根据用户缴纳金额,修改“应缴纳物业费”。 统计功能。 能够按楼号分类统计所有未交清物业费的记录。的代码
时间: 2024-05-09 18:19:56 浏览: 8
这里使用 Python 语言来实现上述功能:
```python
class PropertyManagement:
def __init__(self):
self.property_records = {} # 物业费记录,以住户名为 key,value 为元组 (应缴纳物业费, 已缴纳物业费)
self.building_records = {} # 按楼号分类的未交清物业费记录,以楼号为 key,value 为住户名列表
def generate_property_fee(self):
# 自动生成本月份的物业费
for name, (unpaid_fee, paid_fee) in self.property_records.items():
if unpaid_fee > 0:
self.property_records[name] = (unpaid_fee + 100, paid_fee)
def update_property_fee(self, name, amount):
# 根据用户缴纳金额,修改“应缴纳物业费”
unpaid_fee, paid_fee = self.property_records[name]
if amount >= unpaid_fee:
paid_fee += unpaid_fee
unpaid_fee = 0
else:
paid_fee += amount
unpaid_fee -= amount
self.property_records[name] = (unpaid_fee, paid_fee)
# 更新按楼号分类的未交清物业费记录
building = name.split('-')[0]
if unpaid_fee > 0:
if building not in self.building_records:
self.building_records[building] = []
if name not in self.building_records[building]:
self.building_records[building].append(name)
def get_unpaid_fee_by_building(self, building):
# 按楼号分类统计所有未交清物业费的记录
if building not in self.building_records:
return []
unpaid_records = []
for name in self.building_records[building]:
unpaid_fee, paid_fee = self.property_records[name]
if unpaid_fee > 0:
unpaid_records.append((name, unpaid_fee))
return unpaid_records
```
使用示例:
```python
pm = PropertyManagement()
# 添加物业费记录
pm.property_records['101-张三'] = (100, 0)
pm.property_records['102-李四'] = (200, 0)
pm.property_records['201-王五'] = (0, 0)
# 自动生成本月份的物业费
pm.generate_property_fee()
# 缴费功能测试
pm.update_property_fee('101-张三', 150)
pm.update_property_fee('102-李四', 100)
pm.update_property_fee('201-王五', 50)
# 统计功能测试
print(pm.get_unpaid_fee_by_building('101')) # [('101-张三', 50)]
print(pm.get_unpaid_fee_by_building('102')) # []
print(pm.get_unpaid_fee_by_building('201')) # []
```