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 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; } }