package kcc.ve.cmm; import java.util.List; 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 도서벽지 수당 중복하도록 요청으로 인한 변경 try { if(vEInstrFeeAcmdtVO.getIsltnScholYn().equals("Y")) { int isltnFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_ISLTN_FEE); vEInstrFeeAcmdtVO.setSpecialWorkAllow(Integer.toString(isltnFee)); } }catch(Exception ex) { System.out.println(ex.getMessage()); } 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 passCityList = "강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도"; String[] passCityArray = passCityList.split(","); boolean passCity = true; try { String[] scholArea = vEInstrFeeAcmdtVO.getScholArea().split(" "); String[] instrRsdnc = vEInstrFeeAcmdtVO.getInstrRsdnc().split(" "); System.out.println("학교 : "+scholArea[0]+" "+scholArea[1]+" _강사 :"+instrRsdnc[0]+" "+instrRsdnc[1]+" _거리 :" + dstnc); /* 강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도 광주광역시,대구광역시,대전광역시,부산광역시,서울특별시,세종특별자치시,울산광역시,인천광역시 */ // 주소 앞자리 비교 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; } }catch(Exception ex) { System.out.println(ex.getMessage()); } // 장거리교육수당 확인(거주지 : 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"); //식비지급 vEInstrFeeAcmdtVO.setFoodExpenses("7000"); }else { vEInstrFeeAcmdtVO.setDistanceAllow("0"); vEInstrFeeAcmdtVO.setLikeCheckYn("Y"); //식비지급 vEInstrFeeAcmdtVO.setFoodExpenses("0"); } // 수당 합계 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)); vEInstrFeeAcmdtVO.setSpareFee(Integer.toString(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.getFoodExpenses()) + 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; } //청소년강사용 강사료 계산-excel 전용 (excel의 경우는 거리계산, 식대가 다른 row와 연결되어서 결정되어야 하므로, 별도 함수로 처리한다. // public VEInstrFeeAcmdtVO VeInstrFeeMng4Excel( VEInstrFeeService vEInstrFeeService , String eduAplctOrd , String eduChasiOrd , String p_rankNo //순위 1 이고, 값이 없으면 가상값을 넣어준다. 2이상이고, 값이 없으면 0 , String p_foodExpenses //식비 존재여부 확인 용 - 값 or null , String p_trafficFee //교통비 존재여부 확인 용 - 값 or null ) throws Exception { System.out.println("p_rankNo"); System.out.println(p_rankNo); System.out.println(p_foodExpenses); System.out.println(p_trafficFee); //System.out.println(vEInstrFeeAcmdtVO.getInstrFeeOrd()); // 강사료 VEInstrFeeAcmdtVO infoVO = new VEInstrFeeAcmdtVO(); infoVO.setEduAplctOrd(eduAplctOrd); infoVO.setEduChasiOrd(eduChasiOrd); VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = vEInstrFeeService.selectDetail(infoVO); if(vEInstrFeeAcmdtVO.getInstrFeeOrd() == null) { //if(true) { 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 도서벽지 수당 중복하도록 요청으로 인한 변경 try { if(vEInstrFeeAcmdtVO.getIsltnScholYn().equals("Y")) { int isltnFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_ISLTN_FEE); vEInstrFeeAcmdtVO.setSpecialWorkAllow(Integer.toString(isltnFee)); } }catch(Exception ex) { System.out.println(ex.getMessage()); } 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 passCityList = "강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도"; String[] passCityArray = passCityList.split(","); boolean passCity = true; try { String[] scholArea = vEInstrFeeAcmdtVO.getScholArea().split(" "); String[] instrRsdnc = vEInstrFeeAcmdtVO.getInstrRsdnc().split(" "); System.out.println("학교 : "+scholArea[0]+" "+scholArea[1]+" _강사 :"+instrRsdnc[0]+" "+instrRsdnc[1]+" _거리 :" + dstnc); /* 강원도,경기도,경상북도,경상남도,충청북도,충청남도,전라북도,전라남도,제주특별자치도 광주광역시,대구광역시,대전광역시,부산광역시,서울특별시,세종특별자치시,울산광역시,인천광역시 */ // 주소 앞자리 비교 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; } }catch(Exception ex) { System.out.println(ex.getMessage()); } // 장거리교육수당 확인(거주지 : 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)); if ("1".equals(p_rankNo)) { if (p_trafficFee == null) { vEInstrFeeAcmdtVO.setTrafficFee(Integer.toString(trafficFee)); } } } vEInstrFeeAcmdtVO.setLikeCheckYn("N"); //식비지급 vEInstrFeeAcmdtVO.setFoodExpenses("7000"); }else { vEInstrFeeAcmdtVO.setDistanceAllow("0"); vEInstrFeeAcmdtVO.setLikeCheckYn("Y"); //식비지급 vEInstrFeeAcmdtVO.setFoodExpenses("0"); } //식비지급 //vEInstrFeeAcmdtVO.setFoodExpenses("7000"); /* if ("1".equals(p_rankNo)) { if (p_foodExpenses == null) { vEInstrFeeAcmdtVO.setFoodExpenses("7000"); } } */ // 수당 합계(a+b) int sum = Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()); vEInstrFeeAcmdtVO.setAllowance(sum); // 여비 합계(c+d) sum = Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee()); //vEInstrFeeAcmdtVO.setSpareFee(String.format("%,d", sum)); vEInstrFeeAcmdtVO.setSpareFee(Integer.toString(sum)); System.out.println("Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow())"); System.out.println(Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow())); System.out.println(Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow())); System.out.println(vEInstrFeeAcmdtVO.getAllowance()); System.out.println(Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee())); System.out.println(Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee())); }else if("10".equals(vEInstrFeeAcmdtVO.getEduSlctCd())){ } } // 수당 합계(a+b) int sum = Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()); vEInstrFeeAcmdtVO.setAllowance(sum); // 여비 합계(c+d) sum = Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee()); //vEInstrFeeAcmdtVO.setSpareFee(String.format("%,d", sum)); vEInstrFeeAcmdtVO.setSpareFee(Integer.toString(sum)); // 강사료 합계 int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getFoodExpenses()) + 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; } //성인강사용 강사료 계산 - just instrFee public int VeInstrFeePreCalc4Adult(String p_divCd, String p_lrnTm) throws Exception { int instrFee = 0; instrFee = this._calcInstrFee(p_divCd, p_lrnTm); return instrFee; } //성인강사용 강사료 계산 public VEInstrFeeAcmdtVO VeInstrFeeMng4Adult(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원 * * */ // 강사료 계산 (강의차시 * 강사 기본값) //성인은 구분에 따라 강사료가 다르다 String s_divCd = vEInstrFeeAcmdtVO.getDivCd(); int i_lrnTm = Integer.parseInt(selectChasiList.get(0).getLrnTm()); int i_lrnCnt = 0; System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ divCd : "+s_divCd); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ lrnTm : "+i_lrnTm); /* * (금액기준) 10,60)입문은 시간당 150,000원(최초3시간까지, 이후 시간당 75,000원) - 2급 20,50)전문은 시간당 200,000원(최초3시간까지, 이후 시간당 100,000원) - 1급 30)내부는 시간당 100,000원(최초3시간까지, 이후 시간당 50,000원) 50)1급은 전문과 동일 60)2급은 입문과 동일 40)청년은 청년강사만 해당 */ int instrFee = 0; instrFee = this._calcInstrFee(vEInstrFeeAcmdtVO.getDivCd(), selectChasiList.get(0).getLrnTm()); /* while(i_lrnTm>=30 && i_lrnCnt<3) { //비용 정산을 위한 시간이 남았음 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30); } i_lrnTm = i_lrnTm - 60; //기본 시간제외 i_lrnCnt = i_lrnCnt +1; } //나머지 시간에 대한 강사 비용추가(3시간 이상은 시간수당이 다름) while(i_lrnTm>=30) { //비용 정산을 위한 시간이 남았음 //구분에 따라서 추가 비용 지급 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10_A); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20_A); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30_A); } i_lrnTm = i_lrnTm - 60; //기본 시간제외 } */ if (!"02".equals(vEInstrFeeAcmdtVO.getFeeInsttCd())) { System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ instrFee : "+instrFee); vEInstrFeeAcmdtVO.setInstrFee(Integer.toString(instrFee)); } } // 강사료 합계 int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getFoodExpenses()) + 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; } //기반, 기소유예 강사료 계산 public VEInstrFeeAcmdtVO VeInstrFeeMng4Fndth(VEInstrFeeService vEInstrFeeService , String eduAplctOrd, String eduChasiOrd) throws Exception { // 강사료 VEInstrFeeAcmdtVO infoVO = new VEInstrFeeAcmdtVO(); infoVO.setEduAplctOrd(eduAplctOrd); infoVO.setEduChasiOrd(eduChasiOrd); VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = vEInstrFeeService.selectDetail4Fndth(infoVO); if(vEInstrFeeAcmdtVO.getInstrFeeOrd() == null) { /* * 강사료 계산 정리 * 강사료 계산 : 기본요금 * 차시 수량 * 도서벽지수당 : 오프라인 교육이며 AND 교육지역이 도서벽지에 해당이 되면 기본 값 15,000원 * 차시 수량 * 교통비 : 왕복 거리 * 160원 * * */ // 강사료 계산 (강의차시 * 강사 기본값) //성인은 구분에 따라 강사료가 다르다 String s_divCd = vEInstrFeeAcmdtVO.getDivCd(); //int i_lrnTm = Integer.parseInt(selectChasiList.get(0).getLrnTm()); int i_lrnTm = 0; //기소유예, 기반강화는 교육시간을 알수 없어서 추가 교육 시간 강사비용 계산이 안됨 System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ divCd : "+s_divCd); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ lrnTm : "+i_lrnTm); /* * (금액기준) 10,60)입문은 시간당 150,000원(최초3시간까지, 이후 시간당 75,000원) - 2급 20,50)전문은 시간당 200,000원(최초3시간까지, 이후 시간당 100,000원) - 1급 30)내부는 시간당 100,000원(최초3시간까지, 이후 시간당 50,000원) 50)1급은 전문과 동일 60)2급은 입문과 동일 40)청년은 청년강사만 해당 */ int instrFee = 0; if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30); } i_lrnTm = i_lrnTm - 180; //기본 시간제외 //나머지 시간에 대한 강사 비용추가 while(i_lrnTm>0) { //비용 정산을 위한 시간이 남았음 //구분에 따라서 추가 비용 지급 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10_A); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20_A); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30_A); } i_lrnTm = i_lrnTm - 180; //기본 시간제외 } //int instrFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_INSTR_FEE); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ instrFee : "+instrFee); vEInstrFeeAcmdtVO.setInstrFee(Integer.toString(instrFee)); } // 강사료 합계 int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getFoodExpenses()) // + Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee()) ; if ("Y".equals(vEInstrFeeAcmdtVO.getSbmtYn())) { //vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum); } vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum); // 세금 합계 -> 세금 제거 요청으로 제거 // int taxSum = Integer.parseInt(vEInstrFeeAcmdtVO.getIncomeTax()) // + Integer.parseInt(vEInstrFeeAcmdtVO.getLocalIncomeTax()); // vEInstrFeeAcmdtVO.setTaxSum(taxSum); // 강사료 합계-세금 합계 // int totalSum = instrFeeSum - taxSum; return vEInstrFeeAcmdtVO; } //기반, 기소유예 강사료 계산 public VEInstrFeeAcmdtVO VeInstrFeeMng4Fndth4Excel(VEInstrFeeService vEInstrFeeService , String eduAplctOrd, String eduChasiOrd) throws Exception { // 강사료 VEInstrFeeAcmdtVO infoVO = new VEInstrFeeAcmdtVO(); infoVO.setEduAplctOrd(eduAplctOrd); infoVO.setEduChasiOrd(eduChasiOrd); VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = vEInstrFeeService.selectDetail4Fndth(infoVO); if(vEInstrFeeAcmdtVO.getInstrFeeOrd() == null) { /* * 강사료 계산 정리 * 강사료 계산 : 기본요금 * 차시 수량 * 도서벽지수당 : 오프라인 교육이며 AND 교육지역이 도서벽지에 해당이 되면 기본 값 15,000원 * 차시 수량 * 교통비 : 왕복 거리 * 160원 * * */ // 강사료 계산 (강의차시 * 강사 기본값) //성인은 구분에 따라 강사료가 다르다 String s_divCd = vEInstrFeeAcmdtVO.getDivCd(); //int i_lrnTm = Integer.parseInt(selectChasiList.get(0).getLrnTm()); int i_lrnTm = 0; //기소유예, 기반강화는 교육시간을 알수 없어서 추가 교육 시간 강사비용 계산이 안됨 System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ divCd : "+s_divCd); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ lrnTm : "+i_lrnTm); /* * (금액기준) 10,60)입문은 시간당 150,000원(최초3시간까지, 이후 시간당 75,000원) - 2급 20,50)전문은 시간당 200,000원(최초3시간까지, 이후 시간당 100,000원) - 1급 30)내부는 시간당 100,000원(최초3시간까지, 이후 시간당 50,000원) 50)1급은 전문과 동일 60)2급은 입문과 동일 40)청년은 청년강사만 해당 */ int instrFee = 0; if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30); } i_lrnTm = i_lrnTm - 180; //기본 시간제외 //나머지 시간에 대한 강사 비용추가 while(i_lrnTm>0) { //비용 정산을 위한 시간이 남았음 //구분에 따라서 추가 비용 지급 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10_A); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20_A); }else { //maybe 30 instrFee = instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30_A); } i_lrnTm = i_lrnTm - 180; //기본 시간제외 } //int instrFee = Integer.parseInt(vEInstrFeeAcmdtVO.getChasi()) * Integer.parseInt(VeConstants.BASE_INSTR_FEE); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ instrFee : "+instrFee); vEInstrFeeAcmdtVO.setInstrFee(Integer.toString(instrFee)); } // 강사료 합계 int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getSpecialWorkAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getDistanceAllow()) + Integer.parseInt(vEInstrFeeAcmdtVO.getTrafficFee()) + Integer.parseInt(vEInstrFeeAcmdtVO.getFoodExpenses()) // + Integer.parseInt(vEInstrFeeAcmdtVO.getAcmdtFee()) ; if ("Y".equals(vEInstrFeeAcmdtVO.getSbmtYn())) { vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum); } //vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum); // 세금 합계 -> 세금 제거 요청으로 제거 // int taxSum = Integer.parseInt(vEInstrFeeAcmdtVO.getIncomeTax()) // + Integer.parseInt(vEInstrFeeAcmdtVO.getLocalIncomeTax()); // vEInstrFeeAcmdtVO.setTaxSum(taxSum); // 강사료 합계-세금 합계 // int totalSum = instrFeeSum - taxSum; return vEInstrFeeAcmdtVO; } private int _calcInstrFee( String p_divCd , String p_lrnTm )throws Exception { // 강사료 계산 (강의차시 * 강사 기본값) //성인은 구분에 따라 강사료가 다르다 String s_divCd = p_divCd; int i_lrnTm = Integer.parseInt(p_lrnTm); int i_lrnCnt = 0; System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ divCd : "+s_divCd); System.out.println(" @@@@@@@@@@@@@@@@@@@@@@ lrnTm : "+i_lrnTm); /* * (금액기준) 10,60)입문은 시간당 150,000원(최초3시간까지, 이후 시간당 75,000원) - 2급 20,50)전문은 시간당 200,000원(최초3시간까지, 이후 시간당 100,000원) - 1급 30)내부는 시간당 100,000원(최초3시간까지, 이후 시간당 50,000원) 50)1급은 전문과 동일 60)2급은 입문과 동일 40)청년은 청년강사만 해당 */ int v_instrFee = 0; while(i_lrnTm>=30 && i_lrnCnt<3) { //비용 정산을 위한 시간이 남았음 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20); }else { //maybe 30 v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30); } i_lrnTm = i_lrnTm - 60; //기본 시간제외 i_lrnCnt = i_lrnCnt +1; } //나머지 시간에 대한 강사 비용추가(3시간 이상은 시간수당이 다름) while(i_lrnTm>=30) { //비용 정산을 위한 시간이 남았음 //구분에 따라서 추가 비용 지급 if ("10".equals(s_divCd) || "60".equals(s_divCd)) { v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A10_A); }else if ("20".equals(s_divCd) || "50".equals(s_divCd)) { v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A20_A); }else { //maybe 30 v_instrFee = v_instrFee + Integer.parseInt(VeConstants.BASE_INSTR_FEE_A30_A); } i_lrnTm = i_lrnTm - 60; //기본 시간제외 } return v_instrFee; } }