Untitled
package com.dcx.service.writeup.markettransfer.servlet; import com.dcx.dealerconnect.servlet.*; import com.dcx.dealerconnect.user.DCUser; import com.dcx.dealerconnect.log.*; import com.dcx.dealerconnect.config.*; import com.dcx.dealerconnect.organization.*; import com.dcx.dealerconnect.security.*; import com.dcx.dealerconnect.session.*; import com.dcx.dealerconnect.session.client.*; import java.io.*; import java.sql.Date; import java.sql.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import javax.sql.*; /** * @version 1.0 * @author */ public class MarketTransfer extends DCServlet implements MarketTransferConstant { private String errorMessage = ""; public String getAppName() { return appName; } /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { performTask(req, resp); } /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { performTask(req, resp); } private Connection conn = null; public void performTask( HttpServletRequest request, HttpServletResponse response) { appLogger.debug(" Market Transfer begin*******************************"); try { conn = dataSource.getConnection(appConfig, appLogger); // request.setAttribute("appLogger", appLogger); appLogger.debug(" try block started conn=" + conn.toString()); // String SID = "T1304JC"; String SID = DCUtil.getUserId(request); String warningMessage = ""; boolean WCCOK = true; String VINWhere = ""; final java.util.Calendar calendaer20030930 = java.util.Calendar.getInstance(); calendaer20030930.set(2003,8,30); final java.sql.Date date20030930 = new java.sql.Date(calendaer20030930.getTime().getTime()); final java.util.Calendar now = java.util.Calendar.getInstance(); // int dayOfToday = now.get(Calendar.DAY_OF_MONTH); // int moOfToday = now.get(Calendar.MONTH)+1; // int yrOfToday = now.get(Calendar.YEAR); final java.sql.Date today = new java.sql.Date(now.getTime().getTime()); DateFormat defaultDate = DateFormat.getDateInstance(DateFormat.LONG); //get the entered data String vin = request.getParameter("vin"); if (vin == null) { vin = ""; } String odometer = request.getParameter("odom"); int odom = 0; if (odometer == null) { odometer = ""; } else { odom = Integer.parseInt(odometer); } String odomtype = request.getParameter("odomtype"); if (odomtype == null) { odomtype = ""; } String transfer = request.getParameter("transfer"); if (transfer == null) { transfer = ""; } String printPDF = request.getParameter("printPDF"); if (printPDF == null) { printPDF = ""; } request.setAttribute("vin", vin); request.setAttribute("odom", odometer); request.setAttribute("odomtype", odomtype); request.setAttribute("transfer", transfer); request.setAttribute("printPDF", printPDF); appLogger.debug(" today=" + today.toString() +" vin="+vin +" odom="+odom +" odomtype="+odomtype +" transfer="+transfer +" printPDF="+printPDF); // if not print the pdf if (!"Y".equals(printPDF)) { conn.setAutoCommit(false); appLogger.debug("MT: setAutoCommit(false)"); /// Get vehicle information VehicleDTO VDTO = null; VehicleDTO NEWVDTO = null; if (!"".equals(vin) && !"".equals(odometer)) { vin = vin.toUpperCase(); if (vin.length() == 17) { VINWhere = " I_VIN ='" + vin + "'"; } else if (vin.length() == 8) { VINWhere = " I_VIN_LAST_8 = '" + vin + "'"; } VehicleDAO VDAO = new VehicleDAO(conn); VDTO = VDAO.getWarranty(VINWhere, appLogger); appLogger.debug("MT: got VDTO"); //1. check WCC 395, 396, 397, 510, 516, 571, 572, 795 or 796 if( VDTO.getC_CURR_WCC() != 395 && VDTO.getC_CURR_WCC() != 396 && VDTO.getC_CURR_WCC() != 397 && VDTO.getC_CURR_WCC() != 510 && VDTO.getC_CURR_WCC() != 516 && VDTO.getC_CURR_WCC() != 571 && VDTO.getC_CURR_WCC() != 572 && VDTO.getC_CURR_WCC() != 795 && VDTO.getC_CURR_WCC() != 796 && VDTO.getC_CURR_WCC() != 595 && VDTO.getC_CURR_WCC() != 596 && VDTO.getC_CURR_WCC() != 597 && VDTO.getC_CURR_WCC() != 336 ){ appLogger.debug("Cond1 Warning :"+ VDTO.getC_CURR_WCC()); warningMessage = warningMessage + ".<BR>" + WCCWarning; WCCOK = false; } // new amendament added by Jack, requested by carl if( VDTO.getC_CURR_WCC() == 336 && VDTO.getI_VIN_MOD_YR() !=1997 && VDTO.getI_VIN_MOD_YR() !=1998 && VDTO.getI_VIN_MOD_YR() !=1999 && VDTO.getI_VIN_MOD_YR() !=2000 ){ appLogger.debug("Cond2 Warning :"+ VDTO.getC_CURR_WCC()); if(WCCOK){ warningMessage = warningMessage + ".<BR>" + WCCWarning; } WCCOK = false; } if( (VDTO.getC_CURR_WCC() == 510 || VDTO.getC_CURR_WCC() == 516 )&& VDTO.getI_VIN_MOD_YR() >2002 ){ appLogger.debug("Cond3 Warning :"+ VDTO.getC_CURR_WCC()); if(WCCOK){warningMessage = warningMessage + ".<BR>" + WCCWarning;} WCCOK = false; } // check WCC 395, 396, 397, 795 or 796 if( VDTO.getC_CURR_WCC() != 510 && VDTO.getC_CURR_WCC() != 516 && VDTO.getC_CURR_WCC() != 336 && VDTO.getC_CURR_WCC() != 571 && VDTO.getC_CURR_WCC() != 572 ){ appLogger.debug("Cond4 Warning :"+ VDTO.getC_CURR_WCC()); //2. mileage less than 9314 miles or 14986 kms if (odom < 9314 && "M".equals(odomtype) && odom != 0) { appLogger.debug("Cond4 sub1 Warning, odom :"+ VDTO.getC_CURR_WCC()+" "+odom); if(WCCOK){ warningMessage = warningMessage + ".<BR>" + mileageWarning;} } if (odom < 14986 && "K".equals(odomtype) && odom != 0) { appLogger.debug("Cond4 sub2 Warning, odom :"+ VDTO.getC_CURR_WCC()+" "+odom); if(WCCOK){warningMessage = warningMessage + ".<BR>" + mileageWarning;} } //4. months in service less than six months java.sql.Date rentDate = new java.sql.Date(0); if( !"0001-01-01".equals(VDTO.getD_VHCL_IN_SERV().toString()) && !"9999-12-31".equals(VDTO.getD_VHCL_IN_SERV().toString()) && !"1969-12-31".equals(VDTO.getD_VHCL_IN_SERV().toString()) ){ rentDate = VDTO.getD_VHCL_IN_SERV(); } else{ rentDate = VDTO.getD_WARR_STRT() ; } int inServiceDays = (int) (today.getTime()/1000 -rentDate.getTime()/1000)/(3600*24); appLogger.debug(" rentDate"+rentDate+ " inServiceDays" + inServiceDays +" VDTO.getD_WARR_STRT()"+VDTO.getD_WARR_STRT() + " VDTO.getD_VHCL_IN_SERV()" + VDTO.getD_VHCL_IN_SERV()); if (inServiceDays < 180) { if(WCCOK){warningMessage = warningMessage + ".<BR>" + monthWarning;} } } //3. check mileage less than previous reported if( "K".equals(odomtype) && "M".equals(VDTO.getC_ODOM_TYP()) ){ if (odom < VDTO.getQ_MILG_REPTD_LAST()*1.609 ) { if(WCCOK){warningMessage = warningMessage + ".<BR>" + mileageWarning2;} } } else if( "M".equals(odomtype) && "K".equals(VDTO.getC_ODOM_TYP()) ){ if (odom *1.609 < VDTO.getQ_MILG_REPTD_LAST() ) { if(WCCOK){warningMessage = warningMessage + ".<BR>" + mileageWarning2;} } } else{ if (odom < VDTO.getQ_MILG_REPTD_LAST() ) { if(WCCOK){warningMessage = warningMessage + ".<BR>" + mileageWarning2;} } } appLogger.debug("warningMessage="+warningMessage); // update the datas if("Y".equals(transfer) ) { appLogger.debug("MT: Start DB update"); int I_LINE_SEQ = VDAO.getSVEHNAR(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),appLogger); double odomSave = odom ; if( "K".equals(odomtype)){ odomSave = odom/1.609;} String webUpdSQLs = " INSERT INTO S.SWEBUPD (I_PRTITN,I_VHCL_SAN,T_STMP_UPD,I_VIN,C_SVEHCLM_FLAG,C_SVEHWAR_FLAG,X_NARR_VEH_DESC) VALUES (" + VDTO.getI_PRTITN() + "," + VDTO.getI_VHCL_SAN() + ",CURRENT TIMESTAMP,'" + VDTO.getI_VIN(); String vehNar1 ="Mkt Veh Registered updated From C to U; " + "DATE FROM "+VDTO.getD_ODOM_CONV()+" TO "+ today ; String vehNar2 ="Odom Last Repair upd From "+VDTO.getQ_MILG_REPTD_LAST()+" to "+(int)odomSave+"; " + "DATE "+VDTO.getD_VHCL_MILG_LAST()+" TO "+ today ; String vehNar3 ="Current Odom Type updated From K to M; " + "DATE FROM "+VDTO.getD_ODOM_CONV()+" TO "+ today ; VDAO.updVEHCLM(today.toString(),(int)odomSave,N_CMPTRPGM,SID,VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),appLogger); I_LINE_SEQ++; VDAO.updVEHNAR(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),N_CMPTRPGM,SID,I_LINE_SEQ,vehNar1,appLogger); I_LINE_SEQ++; VDAO.updVEHNAR(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),N_CMPTRPGM,SID,I_LINE_SEQ,vehNar2,appLogger); I_LINE_SEQ++; VDAO.updVEHNAR(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),N_CMPTRPGM,SID,I_LINE_SEQ,vehNar3,appLogger); VDAO.updWEBUPD(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),VDTO.getI_VIN(),"Y","Y",vehNar1,appLogger); VDAO.updWEBUPD(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),VDTO.getI_VIN(),"N","N",vehNar2,appLogger); VDAO.updWEBUPD(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),VDTO.getI_VIN(),"N","N",vehNar3,appLogger); //update WCC int WCC ; appLogger.debug("TT="+VDTO.getT_STMP_BLT_WARR().toString()); appLogger.debug("TT1="+date20030930.toString()); if(VDTO.getC_CURR_WCC() == 795 && VDTO.getT_STMP_BLT_WARR().before(date20030930)) { WCC = 770; } else if(VDTO.getC_CURR_WCC() == 795) { WCC = 333; }else if(VDTO.getC_CURR_WCC() == 796 && VDTO.getT_STMP_BLT_WARR().before(date20030930)) { WCC = 710; }else if(VDTO.getC_CURR_WCC() == 796) { WCC = 334; } else if(VDTO.getC_CURR_WCC() == 395 || VDTO.getC_CURR_WCC() == 595) { WCC = 333; } else if(VDTO.getC_CURR_WCC() == 396 || VDTO.getC_CURR_WCC() == 596) { WCC = 334; } else if(VDTO.getC_CURR_WCC() == 397 || VDTO.getC_CURR_WCC() == 597) { WCC = 335; } else if(VDTO.getC_CURR_WCC() == 510 || VDTO.getC_CURR_WCC() == 571) { WCC = 336; } else if(VDTO.getC_CURR_WCC() == 516 || VDTO.getC_CURR_WCC() == 572) { WCC = 300; } /* Adding New Wcc's review for 510 and 595 it is already there 510-wcc 336 but here it is 333 and for 595 wcc is correct review for 516 and 596 is already there foor 516 -wcc 300 but here it is 334 and for 596 wccc is correct review for 597 wcc is 335 but here 298 */ else if(VDTO.getC_CURR_WCC() == 540 || VDTO.getC_CURR_WCC() == 590) { WCC = 332; } else if(VDTO.getC_CURR_WCC() == 541 || VDTO.getC_CURR_WCC() == 591) { WCC = 337; } else if(VDTO.getC_CURR_WCC() == 542 || VDTO.getC_CURR_WCC() == 592) { WCC = 338; } else if(VDTO.getC_CURR_WCC() == 543 || VDTO.getC_CURR_WCC() == 593) { WCC = 339; } else if(VDTO.getC_CURR_WCC() == 548 || VDTO.getC_CURR_WCC() == 594) { WCC = 335; } else if(VDTO.getC_CURR_WCC() == 510 || VDTO.getC_CURR_WCC() == 595) { WCC = 333; } else if(VDTO.getC_CURR_WCC() == 516 || VDTO.getC_CURR_WCC() == 596) { WCC = 334; } else if(VDTO.getC_CURR_WCC() == 597) { WCC = 298; } else if(VDTO.getC_CURR_WCC() == 538 || VDTO.getC_CURR_WCC() == 598) { WCC = 331; } else if(VDTO.getC_CURR_WCC() == 539 || VDTO.getC_CURR_WCC() == 599) { WCC = 330; } else if(VDTO.getC_CURR_WCC() == 360 || VDTO.getC_CURR_WCC() == 395) { WCC = 333; } else { WCC= VDTO.getC_CURR_WCC(); } appLogger.debug("MT: WCC "+VDTO.getC_CURR_WCC()+ " --> "+WCC); //skip WCC 336 if (VDTO.getC_CURR_WCC() != 336) { VDAO.UpdWCC(VDTO,WCC,today,odomSave,SID,appLogger); String wccNar = "WCC UPDATED FROM "+ VDTO.getC_CURR_WCC() +" TO "+ WCC +"; " + "DATE FROM "+VDTO.getD_COVRG_CURR_EFF().toString()+" TO "+ today +""; I_LINE_SEQ++; VDAO.updVEHNAR(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),N_CMPTRPGM,SID,I_LINE_SEQ,wccNar,appLogger); VDAO.updWEBUPD(VDTO.getI_PRTITN(),VDTO.getI_VHCL_SAN(),VDTO.getI_VIN(),"N","N",wccNar,appLogger); } } conn.commit(); NEWVDTO = VDAO.getWarranty(VINWhere, appLogger); appLogger.debug("MT:end of DB update"); } /// End of Get vehicle information request.setAttribute("VDTO", VDTO); request.setAttribute("NEWVDTO", NEWVDTO); request.setAttribute("warningMessage", warningMessage); // getServletConfig().getServletContext().getRequestDispatcher(JSP_PAGE).forward(request,response) ; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(JSP_PAGE); appLogger.debug("OK Before call dispatcher: " + dispatcher.toString()); dispatcher.forward(request, response); } // if print the pdf else { MTAckPDF AckDao = new MTAckPDF( GCS_PDF_FONT_PATH, request.getParameter("vin"), request.getParameter("desc"), request.getParameter("mktOld"), request.getParameter("WCCOld"), request.getParameter("odomOld"), request.getParameter("odomtypeOld"), request.getParameter("mktNew"), request.getParameter("WCCNew"), request.getParameter("odomNew"), request.getParameter("odomtypeNew"), defaultDate.format(today).toString(), request.getParameter("year"), request.getParameter("desc") ); ByteArrayOutputStream ba = AckDao.generateReport(null); if (ba != null) { response.setContentType("application/pdf"); response.setContentLength(ba.size()); response.setHeader("Cache-Control","max-age=5"); ServletOutputStream output = response.getOutputStream(); ba.writeTo(output); output.flush(); appLogger.debug("Print preview done*******************"); return; } } }catch ( SQLException se ) { request.setAttribute("errorMessage", se.toString()); appLogger.error(se.toString()); try { conn.rollback(); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(JSP_PAGE); appLogger.error("SEQException block,Before call dispatcher " + se.toString()); dispatcher.forward(request, response); }catch (Exception ec) { appLogger.error("SQLException Can not dispatch:"+ec.toString()); } } catch (Exception e) { request.setAttribute("errorMessage", e.toString()); e.printStackTrace(); try { RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(JSP_PAGE); appLogger.error("Exception block,Before call dispatcher "+ JSP_PAGE+" " +e.toString()); e.printStackTrace(); dispatcher.forward(request, response); }catch (Exception ec) { ec.printStackTrace(); appLogger.error("Exception Can not dispatch:"+ec.toString()); } } finally { try { if (conn != null) { conn.close(); conn = null; } } catch (Exception ce) { appLogger.error("Close con failed"); } } } }
Leave a Comment