INSERT INTO operating_report_new (id_,principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,maintenance_amount_,
business_refund_,total_income_,sale_cost_,fixed_costs_,variable_costs_,internal_settlement_,
total_cost_,quasi_discretionary_profit_,prepaid_fee_,cloud_prepaid_fee_,course_prepaid_fee_,sale_prepaid_fee_,other_prepaid_fee_
,prepayments_,receivables_,payable_,month_)
VALUES(#{id},#{principal},#{organId},#{organName},#{saleAmount},#{serviceAmount},#{cloudAmount},#{courseAmount},#{maintenanceAmount},
#{businessRefund},#{totalIncome},#{saleCost},#{fixedCosts},#{variableCosts},#{internalSettlement},
#{totalCost},#{quasiDiscretionaryProfit},#{prepaidFee},#{cloudPrepaidFee},#{coursePrepaidFee},#{salePrepaidFee},#{otherPrepaidFee},
#{prepayments},#{receivables},#{payable},#{month})
INSERT INTO operating_report_new (principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,maintenance_amount_,business_refund_,total_income_,sale_cost_,
fixed_costs_,variable_costs_,internal_settlement_,total_cost_,quasi_discretionary_profit_,
prepaid_fee_,cloud_prepaid_fee_,course_prepaid_fee_,sale_prepaid_fee_,other_prepaid_fee_,prepayments_,receivables_,payable_,month_)
VALUES
(#{bean.principal},#{bean.organId},#{bean.organName},#{bean.saleAmount},#{bean.serviceAmount},#{bean.cloudAmount},#{bean.courseAmount},#{bean.maintenanceAmount},#{bean.businessRefund},#{bean.totalIncome},
#{bean.saleCost},#{bean.fixedCosts},#{bean.variableCosts},#{bean.internalSettlement},#{bean.totalCost},#{bean.quasiDiscretionaryProfit},
#{bean.prepaidFee},#{bean.cloudPrepaidFee},#{bean.coursePrepaidFee},#{bean.salePrepaidFee},#{bean.otherPrepaidFee},
#{bean.prepayments},#{bean.receivables},#{bean.payable},#{bean.month})
UPDATE operating_report_new
sale_amount_ = #{saleAmount},
prepaid_fee_ = #{prepaidFee},
service_amount_ = #{serviceAmount},
payable_ = #{payable},
business_refund_ = #{businessRefund},
total_cost_ = #{totalCost},
total_income_ = #{totalIncome},
quasi_discretionary_profit_ = #{quasiDiscretionaryProfit},
fixed_costs_ = #{fixedCosts},
internal_settlement_ = #{internalSettlement},
prepayments_ = #{prepayments},
month_ = #{month},
variable_costs_ = #{variableCosts},
organ_name_ = #{organName},
sale_cost_ = #{saleCost},
receivables_ = #{receivables},
principal_ = #{principal},
WHERE id_ = #{id}
update operating_report_cloud orc
left join (
select orc.calender_id_,MIN(cs.class_date_) start_date_ from operating_report_cloud orc
left join music_group_payment_calender mgpc ON mgpc.id_ = orc.calender_id_
left join course_schedule_student_payment cssp ON cssp.batch_no_ = mgpc.batch_no_
left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
where orc.month_flag_ = false AND orc.settlement_flag_ = false AND orc.start_date_ IS NULL
AND cs.class_date_ <= #{lastDay}
group by orc.calender_id_) mc ON orc.calender_id_ = mc.calender_id_
LEFT JOIN (select calender_id_,DATE_ADD(
DATE_ADD(create_time_, interval CASE WHEN period_ = 'YEAR_HALF' THEN 6
WHEN period_ = 'YEAR' THEN 12
WHEN period_ = 'QUARTERLY' THEN 3 ELSE num_ END MONTH),interval 1 DAY) end_date_
from music_group_payment_calender_member order by id_ DESC) mgpcm
ON mc.calender_id_ = mgpcm.calender_id_
set orc.start_date_ = mc.start_date_,orc.end_date_ = mgpcm.end_date_
where orc.calender_id_ = mc.calender_id_ AND orc.month_flag_ = 0
DELETE FROM operating_report_new WHERE id_ = #{id}
DELETE FROM operating_report_new WHERE month_ = #{month}
AND FIND_IN_SET(organ_id_,#{organId})
AND month_ = #{date}