koipa_edu_2025-1/src/main/java/kcc/ve/cmm/VeInstrFeeMng.java
2023-05-03 18:30:24 +09:00

164 lines
6.2 KiB
Java

package kcc.ve.cmm;
import java.util.List;
import javax.annotation.Resource;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
public class VeInstrFeeMng {
public VEInstrFeeAcmdtVO VeInstrFeeMng(VEInstrFeeService vEInstrFeeService , String eduAplctOrd, String eduChasiOrd) throws Exception {
// 강사료
VEInstrFeeAcmdtVO infoVO = new VEInstrFeeAcmdtVO();
infoVO.setEduAplctOrd(eduAplctOrd);
infoVO.setEduChasiOrd(eduChasiOrd);
VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = vEInstrFeeService.selectDetail(infoVO);
if(vEInstrFeeAcmdtVO.getInstrFeeOrd() == null) {
List<VEInstrFeeAcmdtVO> selectChasiList = vEInstrFeeService.selectChasiList(vEInstrFeeAcmdtVO);
System.out.println("@@ "+selectChasiList.get(0).getTotCnt());
boolean check = false;
System.out.println(" 조회 차시 정보 "+vEInstrFeeAcmdtVO.getEduChasiOrd());
System.out.println(" 첫번쨰 차시 정보 "+selectChasiList.get(0).getEduChasiOrd());
if(selectChasiList.get(0).getEduChasiOrd().equals(vEInstrFeeAcmdtVO.getEduChasiOrd())) {
check = true;
}
/*
* 강사료 계산 정리
* 강사료 계산 : 기본요금 * 차시 수량
* 도서벽지수당 : 오프라인 교육이며 AND 교육지역이 도서벽지에 해당이 되면 기본 값 15,000원 * 차시 수량
* 교통비 : 왕복 거리 * 160원
*
* */
// 강사료 계산 (강의차시 * 강사 기본값)
int instrFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_INSTR_FEE);
System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ instrFee : "+instrFee);
vEInstrFeeAcmdtVO.setInstrFee(Integer.toString(instrFee));
// 온라인 여부 확인(10:온라인, 20:오프라인)
if("20".equals(vEInstrFeeAcmdtVO.getEduSlctCd())){
// 도서벽지수당 계산(강의 차시 * 15,000원) 22.06.15 도서벽지 수당 중복하도록 요청으로 인한 변경
if(vEInstrFeeAcmdtVO.getIsltnScholYn().equals("Y")) {
int isltnFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_ISLTN_FEE);
vEInstrFeeAcmdtVO.setSpecialWorkAllow(Integer.toString(isltnFee));
}
if(check) {
if(vEInstrFeeAcmdtVO.getOnewayDstnc() == null || vEInstrFeeAcmdtVO.getOnewayDstnc().equals("")) {
vEInstrFeeAcmdtVO.setOnewayDstnc("0");
}
// 거리비교 200Km 이상 : 40000원, 100Km 이상 : 30000원, 12Km 이상 : 20000원, 1Km 이상 10000원
int dstnc = (Integer.parseInt(vEInstrFeeAcmdtVO.getOnewayDstnc()) * 2);
String[] scholArea = vEInstrFeeAcmdtVO.getScholArea().split(" ");
String[] instrRsdnc = vEInstrFeeAcmdtVO.getInstrRsdnc().split(" ");
System.out.println("학교 : "+scholArea[0]+" "+scholArea[1]+" _강사 :"+instrRsdnc[0]+" "+instrRsdnc[1]+" _거리 :" + dstnc);
/*
강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도
광주광역시,대구광역시,대전광역시,부산광역시,서울특별시,세종특별자치시,울산광역시,인천광역시
*/
String passCityList = "강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도";
String[] passCityArray = passCityList.split(",");
// 주소 앞자리 비교
boolean passCity = true;
if(scholArea[0].contains(instrRsdnc[0])){
for(int i=0; i < passCityArray.length; i++) {
if(passCityArray[i].equals(scholArea[0])) {
if(!scholArea[1].equals(instrRsdnc[1])){
System.out.println("타지역 ");
passCity = false;
break;
}else {
System.out.println("거주지");
break;
}
}
}
}else{
// 다르면 끝
passCity = false;
}
// 장거리교육수당 확인(거주지 : 10000)
if(passCity || dstnc < 12){ // 거주지 인경우
System.out.println("거주지");
vEInstrFeeAcmdtVO.setDistanceAllow("10000");
}else { // 타지역 인경우
System.out.println("타지역 : " + vEInstrFeeAcmdtVO.getOnewayDstnc());
if(dstnc >= 200) {
vEInstrFeeAcmdtVO.setDistanceAllow("40000");
}else if(dstnc >= 100 && dstnc < 200) {
vEInstrFeeAcmdtVO.setDistanceAllow("30000");
}else if(dstnc >= 12 && dstnc < 100) {
vEInstrFeeAcmdtVO.setDistanceAllow("20000");
}else {
vEInstrFeeAcmdtVO.setDistanceAllow("10000");
}
// 교통비 계산 (거리 * 교통비 기본값)
int trafficFee = (Integer.parseInt(vEInstrFeeAcmdtVO.getOnewayDstnc()) * 2) * Integer.parseInt(VeConstants.BASE_TRAFFIC_FEE);
vEInstrFeeAcmdtVO.setTrafficFee(Integer.toString(trafficFee));
}
vEInstrFeeAcmdtVO.setLikeCheckYn("N");
}else {
vEInstrFeeAcmdtVO.setDistanceAllow("0");
vEInstrFeeAcmdtVO.setLikeCheckYn("Y");
}
// 수당 합계
int sum = + Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow());
vEInstrFeeAcmdtVO.setAllowance(sum);
// 여비 합계
sum = Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee());
vEInstrFeeAcmdtVO.setSpareFee(String.format("%,d", sum));
}else if("10".equals(vEInstrFeeAcmdtVO.getEduSlctCd())){
}
}
// 강사료 합계
int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee());
vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum);
// 세금 합계 -> 세금 제거 요청으로 제거
// int taxSum = Integer.parseInt(vEInstrFeeAcmdtVO.getIncomeTax())
// + Integer.parseInt(vEInstrFeeAcmdtVO.getLocalIncomeTax());
// vEInstrFeeAcmdtVO.setTaxSum(taxSum);
// 강사료 합계-세금 합계
// int totalSum = instrFeeSum - taxSum;
return vEInstrFeeAcmdtVO;
}
}