V3.2.0 结转不依赖考核记录 + 补发查对应月盈亏
1. 结转不依赖考核记录: - 1月有结转但2月/3月无考核记录 → 创建虚拟group(目标=满月,实际=0) - 虚拟记录正常发放结转奖金 - 无客户关联 → 不查盈亏,正常发放 2. 补发查对应月盈亏: - 补发1月 → 查1月亏损表 - 补发2月 → 查2月亏损表 - 当月/结转/累计补发 → 查当月亏损表 - 奖金发放记录新增"盈亏查询月"列 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -98,6 +98,26 @@ def calc_feb(G1, G2):
|
||||
g2['可结转'] = fc + jr
|
||||
g2['2月已发'] = carry>0 or bonus2>0 or cbp2>0
|
||||
g2['1月已补发'] = bp1>0
|
||||
|
||||
# 补充:1月有结转但2月无考核记录的车 → 创建虚拟2月group并发放结转
|
||||
for k, g1 in G1.items():
|
||||
if k not in G2 and g1['可结转'] >= 1:
|
||||
bf = g1['奖励额']
|
||||
carry = bf
|
||||
feb_data['结转'].append({'车牌':k[0],'销售':g1['销售'],'部门':g1['部门'],'额':carry})
|
||||
# 创建虚拟2月group(考核里程=满月目标,实际=0)
|
||||
G2[k] = {
|
||||
'recs':[], '应考核':g1['目标km'], '实际':0, '奖金':0, '天数':DAYS[2],
|
||||
'有达标':False, '目标km':g1['目标km'], '奖励额':g1['奖励额'],
|
||||
'部门':g1['部门'], '销售':g1['销售'], '车牌':k[0],
|
||||
'cum_t':g1['应考核']+g1['目标km'], 'cum_a':g1['实际'],
|
||||
'cum_q': g1['实际'] >= g1['应考核']+g1['目标km'],
|
||||
'结转':carry, '补发1月':0, '补发1月对应':'',
|
||||
'当月奖金':0, '累计补发2月':0, '结转占位':True,
|
||||
'可结转': max(0, g1['可结转'] - 1),
|
||||
'2月已发':True, '1月已补发':False,
|
||||
'虚拟':True, # 标记为无考核记录
|
||||
}
|
||||
return feb_data
|
||||
|
||||
def calc_mar(G1, G2, G3, feb_data):
|
||||
@@ -134,6 +154,25 @@ def calc_mar(G1, G2, G3, feb_data):
|
||||
g3['结转']=carry; g3['补发1月']=bj; g3['补发1月对应']=g1['销售'] if g1 and bj>0 else ''
|
||||
g3['补发2月']=bf2; g3['补发2月对应']=g2['销售'] if g2 and bf2>0 else ''
|
||||
g3['当月奖金']=bonus3; g3['累计补发3月']=cbp3; g3['结转占位']=carry>0
|
||||
|
||||
# 补充:2月有结转但3月无考核记录的车
|
||||
for k, g2 in G2.items():
|
||||
if k not in G3 and g2.get('可结转', 0) >= 1:
|
||||
bf = g2['奖励额']
|
||||
carry = bf
|
||||
mar_data['结转'].append({'车牌':k[0],'销售':g2['销售'],'部门':g2['部门'],'额':carry})
|
||||
G3[k] = {
|
||||
'recs':[], '应考核':g2['目标km'], '实际':0, '奖金':0, '天数':DAYS[3],
|
||||
'有达标':False, '目标km':g2['目标km'], '奖励额':g2['奖励额'],
|
||||
'部门':g2['部门'], '销售':g2['销售'], '车牌':k[0],
|
||||
'cum_t':(G1.get(k,{}).get('应考核',0))+g2['应考核']+g2['目标km'],
|
||||
'cum_a':(G1.get(k,{}).get('实际',0))+g2['实际'],
|
||||
'cum_q':False,
|
||||
'结转':carry, '补发1月':0, '补发1月对应':'',
|
||||
'补发2月':0, '补发2月对应':'',
|
||||
'当月奖金':0, '累计补发3月':0, '结转占位':True,
|
||||
'虚拟':True,
|
||||
}
|
||||
return mar_data
|
||||
|
||||
def collect_vehicle_payments(G, feb_data, mar_data):
|
||||
|
||||
Reference in New Issue
Block a user