insert ALL
into cu_member_bonus_coach(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_generation,coach_generation,coach_no_capping,
coach_capping,coach_normal_half,coach_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentGeneration},#{item.coachGeneration},
#{item.coachNoCapping},#{item.coachCapping},#{item.coachNormalHalf},#{item.coachNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
SELECT 1 FROM dual
delete
from CU_MEMBER_BONUS_COACH
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period}
and grant_status <= 2)
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,
cu.service_code,
cu.pk_vertex,
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,cc.coach_no_capping,
cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from
cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where cb.income_status=0 and cc.income_status = 0
and cc.pk_bonus_items = #{pkBonusItems}
and cc.pk_bonus = #{pkBonus}
and cb.period =#{period}
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
1=1 and b.pk_member=#{pkMember}
and so.order_code like #{orderCode}|| '%'
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
and cp.settle_date >= #{startDate, jdbcType=DATE}
and cp.settle_date < #{endDate, jdbcType=DATE}
order by b.period,b.pk_bonus_items,b.real_income desc
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,bct.short_name settle_country from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where 1=1
and cb.period =#{bonusParam.period}
and exists(
select 1 from (
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
union
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
) a
where a.pk_id = cb.pk_member
)
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
1=1
and tar.pk_settle_country = #{bonusParam.pkCountry}
and so.order_type = #{bonusParam.orderType}
and bv.pk_id = #{bonusParam.pkVertex}
and ct.pk_id =#{bonusParam.pkTeamCode}
and bt.pk_id = #{bonusParam.sourceCountry}
and b.income_status = #{bonusParam.incomeStatus}
and so.order_code like #{bonusParam.orderCode}|| '%'
and cu.member_code = #{bonusParam.sourceMemberCode}
and cu.member_name = #{bonusParam.sourceMemberName}
and tar.member_code = #{bonusParam.memberCode}
and tar.member_name = #{bonusParam.memberName}
and tar.pk_settle_country = #{bonusParam.settleCountry}
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
and cp.settle_date <#{bonusParam.endDate, jdbcType=DATE}
order by cp.settle_date desc, so.order_code,b.current_generation
order by tar.pk_vertex, b.real_income desc
order by tar.pk_teamcode