List of usage examples for org.apache.commons.lang.time DateUtils isSameDay
public static boolean isSameDay(Calendar cal1, Calendar cal2)
Checks if two calendar objects are on the same day ignoring time.
28 Mar 2002 13:45 and 28 Mar 2002 06:01 would return true.
From source file:uk.ac.ebi.metabolights.repository.dao.StudyDAOSubmissionsTest.java
@Test public void testCRUDStudy() throws Exception { File submissionFolder = getStudyFolderToSubmit("MTBLS1"); Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, 1);/* w w w . jav a 2 s . c o m*/ Date publicReleaseDate = cal.getTime(); Study study = studyDAO.add(submissionFolder, publicReleaseDate, curator.getApiToken()); assertNotNull("studyAccession filled up", study.getStudyIdentifier()); assertNotNull("Accession starts with prefix", study.getStudyIdentifier().startsWith(DAOFactory.getDefaultPrefix())); assertTrue("Public release date set properly", DateUtils.isSameDay(study.getStudyPublicReleaseDate(), publicReleaseDate)); assertEquals("All files are moved", 0, submissionFolder.list().length); // Test READ... Study readStudy = studyDAO.getStudy(study.getStudyIdentifier(), curator.getApiToken()); assertNotNull("Reading study just added", readStudy); // Test a failure submission File emptyInvestigationFile = new File(submissionFolder, "i_Investigation.txt"); emptyInvestigationFile.createNewFile(); try { studyDAO.update(submissionFolder, readStudy.getStudyIdentifier(), curator.getApiToken()); assertTrue("Update with invalid isaTab files should throw an exception", false); } catch (IsaTabException e) { // Expected } // Test audit has happened File auditFolder = FileAuditUtil.getAuditFolder(uk.ac.ebi.metabolights.repository.dao.filesystem.StudyDAO .getDestinationFolder(readStudy.getStudyIdentifier())); // 3 subfolders should be created // 1 - i_Investigation file with the original file (add) (done when replacing ids) // 2 - i_Investigation file with updated id's and date (studyDAO.update()). // 3 - i_Investigation file original 2nd submission (empty one). assertEquals("Audit folder has 3 subfolders", 3, auditFolder.list().length); // Test the deletion testDeletion(readStudy); }
From source file:uk.ac.ebi.metabolights.repository.dao.StudyDAOTest.java
@Test public void testGetPublicStudy() throws DAOException, IsaTabException { Study study = studyDAO.getStudy(publicStudy.getAcc()); assertEquals("Test DB part it's been populated: obfuscation code", publicStudy.getObfuscationcode(), study.getObfuscationCode()); assertEquals("Test DB part it's been populated: study status", publicStudy.getStatus(), study.getStudyStatus().ordinal()); assertNotNull("Test FS part it's been populated: study title", study.getTitle()); assertTrue("Test release date is the one from the DB and not from the file", DateUtils.isSameDay(publicStudy.getReleaseDate(), study.getStudyPublicReleaseDate())); }
From source file:uk.ac.ebi.metabolights.repository.dao.StudyDAOTest.java
@Test public void testStatusesForSubmitter() throws Exception { // Get the full study Study study = studyDAO.getStudy(inconsistent.getAcc(), owner.getApiToken()); assertEquals("Default status of a study must be submitted", LiteStudy.StudyStatus.SUBMITTED, study.getStudyStatus());/*from w ww. ja va 2 s . c o m*/ // Change the statuses as owner Study savedStudy = updateStatus(study, owner, LiteStudy.StudyStatus.INCURATION, false); updateStatus(study, owner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, owner, LiteStudy.StudyStatus.PUBLIC, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.PUBLIC, true); assertFalse("Public release date has been changed", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); // Change the status as curator updateStatus(study, curator, LiteStudy.StudyStatus.INCURATION, false); // Change the statuses as owner, shouldn't be allowed. updateStatus(study, owner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, owner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, owner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, owner, LiteStudy.StudyStatus.PUBLIC, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.PUBLIC, true); assertFalse("Public release date has been changed", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); updateStatus(study, curator, LiteStudy.StudyStatus.INREVIEW, false); // Change the statuses as owner, shouldn't be allowed. updateStatus(study, owner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, owner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, owner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, owner, LiteStudy.StudyStatus.PUBLIC, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.PUBLIC, true); assertFalse("Public release date has been changed", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); // Make it public savedStudy = updateStatus(study, curator, LiteStudy.StudyStatus.PUBLIC, false); assertTrue("Public release date not updated when changing study to public", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); // Change the statuses as owner, shouldn't be allowed. updateStatus(study, owner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, owner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, owner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, owner, LiteStudy.StudyStatus.PUBLIC, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.SUBMITTED, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INCURATION, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.INREVIEW, true); updateStatus(study, notOwner, LiteStudy.StudyStatus.PUBLIC, true); // Make study Private again updateStatus(study, curator, LiteStudy.StudyStatus.SUBMITTED, false); // Change the release date to yesterday studyDAO.updateReleaseDate(inconsistent.getAcc(), new Date(new Date().getTime() - DateUtils.MILLIS_PER_DAY), owner.getApiToken()); // Make study INCURATION again savedStudy = updateStatus(study, owner, LiteStudy.StudyStatus.INCURATION, false); assertFalse("Public release date updated when changing study to INCURATION and date has passed", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); // Make study READY again this should change de public release date to today and the status to public updateStatus(savedStudy, curator, LiteStudy.StudyStatus.INREVIEW, false); }
From source file:uk.ac.ebi.metabolights.repository.dao.StudyDAOTest.java
private Study updateStatus(Study study, UserData user, LiteStudy.StudyStatus newStatus, boolean exceptionExpected) throws IsaTabException { try {/*from w w w .ja va 2 s . c om*/ // Should fail // Change the status to PUBLIC. studyDAO.updateStatus(study.getStudyIdentifier(), newStatus, user.getApiToken()); if (exceptionExpected) { throw new AssertionError( "User " + user.getUserName() + " should NOT be allowed to update the study status from " + study.getStudyStatus() + " to " + newStatus); } else { // Check status has changed Study savedStudy = studyDAO.getStudy(study.getStudyIdentifier(), user.getApiToken()); // For approved we need to check promotion to public. if (newStatus == LiteStudy.StudyStatus.INREVIEW && study.getStudyPublicReleaseDate().before(new Date())) { assertTrue("Public release not updated when changing study to INREVIEW and date has passed", DateUtils.isSameDay(new Date(), savedStudy.getStudyPublicReleaseDate())); assertEquals( "Status not promoted to PUBLIC when changing study to INREVIEW and date has passed", LiteStudy.StudyStatus.PUBLIC, savedStudy.getStudyStatus()); } else { assertEquals("Study status hasn't been persisted", newStatus, savedStudy.getStudyStatus()); } return savedStudy; } } catch (DAOException e) { if (exceptionExpected) { logger.info("Security exception expected"); } else { throw new AssertionError( "User " + user.getUserName() + " should be allowed to update the study status from " + study.getStudyStatus() + " to " + newStatus); } } return null; }
From source file:uk.ac.ebi.metabolights.webservice.model.StudySerializationTest.java
@Test public void testSerialization() throws IOException { Study study = getTestStudy();/*from w w w .j a v a 2s.c om*/ ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); String studyString = mapper.writeValueAsString(study); Assert.assertTrue("Test serialization of a title", studyString.contains("\"title\":\"title\"")); // Test serialization of fields Assert.assertTrue("Test serialization of a fields", studyString.contains("\"header\":\"Field1\"")); // Test serialization of users Assert.assertTrue("Test serialization of a users", studyString.contains("\"users\":[{")); // Test serialization of users, listofallstatus not serialized Assert.assertFalse("listofstatus is being serialized!", studyString.contains("listOfAllStatus")); // Test deserialisation now Study deserializedStudy = mapper.readValue(studyString, Study.class); Assert.assertTrue("Public release date is not properly kept during serialization and parsing.", DateUtils .isSameDay(study.getStudyPublicReleaseDate(), deserializedStudy.getStudyPublicReleaseDate())); }
From source file:ume.pareva.it.ITDr.java
private void processBillingDR(HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter("id"); String report = request.getParameter("report"); // This can be DELIVERED, ACKNOWLEDGED, FAILED String messageid = request.getParameter("message_id"); String msisdn = request.getParameter("number"); Calendar deliverytime = new GregorianCalendar(); String serviceId = "6119598063441KDS"; String defClubDomain = "5510024809921CDS"; String freeCostId = "0"; String deliveryReceipt = "11"; String transactionId = Misc.generateUniqueIntegerId() + ""; String typeId = "2"; if (id.contains("-")) { serviceId = getClubId(id, "-").trim(); System.out.println("IPXDr INSIDE - condition SERVICE ID IS " + serviceId); }// ww w .j ava 2 s . com MobileClub club = UmeTempCmsCache.mobileClubMap.get(serviceId); UmeClubDetails clubdetail = UmeTempCmsCache.umeClubDetailsMap.get(club.getUnique()); quizsmsdao.updateResponse(id, report, sdf.format(deliverytime.getTime()), report, ""); umesmsdao.updateResponse(id, report, sdf.format(deliverytime.getTime()), report, ""); if (report.equals("DELIVERED")) { MobileClubBillingPlan mobileClubBillingPlan = null; String successResponse = "00"; SdcSmsSubmit smsrecord = quizsmsdao.getSmsMsgLog(id); if (smsrecord != null && smsrecord.getMsgType().equalsIgnoreCase("premium")) { //====================== USER- CLUBUSER - BILLING PLANS =============================== UmeUser user = null; SdcMobileClubUser clubUser = null; String userUnique = umeuserdao.getUserUnique(msisdn, "msisdn", defClubDomain); if (!userUnique.equals("")) { user = umeuserdao.getUser(msisdn); } try { System.out.println("IPXDr ITDR getting userunique from msisdn " + user.toString()); } catch (Exception e) { System.out.println("IPXDr ITDR Exception at line 178 EngageDR for msisdn " + msisdn); } if (user != null) { clubUser = user.getClubMap().get(club.getUnique()); if (clubUser == null) { clubUser = umeMobileClubUserDao.getClubUserByMsisdn(msisdn, club.getUnique()); } if (clubUser != null) { mobileClubBillingPlan = billingplandao.getAnyStatusBillingPlanByMsisdnAndClubUnique(msisdn, club.getUnique()); System.out.println("ITBillingSuccess BillingPlan is " + mobileClubBillingPlan.toString()); } } //====================== USER- CLUBUSER - BILLING PLANS =============================== boolean cpaLog = false; if (smsrecord.getLogUnique().equals(id) && smsrecord.getMsgType().equalsIgnoreCase("premium") //&& (smsrecord.getMsgCode1().equals("txtmo.jsp") || smsrecord.getMsgCode1().equals("billingITd1")) && smsrecord.getReqType().equals("firstbillable")) { //first billable System.out.println("IPXDr ITDR getting userunique from msisdn " + smsrecord.getMsgCode1()); if (user != null && clubUser != null) { //System.out.println("IPXDr ITDR getting ClubUser from msisdn "+clubUser.toString()); //boolean cpaLog = false; //BillingTry Logging for first success if (DateUtils.isSameDay(new Date(), clubUser.getSubscribed())) { successResponse = "003"; cpaLog = true; } String biloggednetwork = mobilenetwork.getMobileNetwork(club.getRegion().toUpperCase(), clubUser.getNetworkCode()); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("IPX"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode(successResponse); mobileClubBillingTry.setResponseDesc("successful"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("success"); mobileClubBillingTry.setTariffClass(club.getPrice()); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); //End BillingTry Logging if (mobileClubBillingPlan != null) { Calendar c = Calendar.getInstance(); mobileClubBillingPlan.setLastSuccess(c.getTime()); mobileClubBillingPlan.setLastPaid(c.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //Date nextPush = new Date(); if (mobileClubBillingPlan.getLastPush().before(mobileClubBillingPlan.getSubscribed())) { mobileClubBillingPlan.setLastPush(new Date()); } Date nextPush = DateUtils.addDays(mobileClubBillingPlan.getLastPush(), 7); nextPush = DateUtils.setHours(nextPush, 9); nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); mobileClubBillingPlan.setLastSuccess(new Date()); //mobileClubBillingPlan.setLastPaid(new Date()); if (mobileClubBillingPlan.getServiceDateBillsRemaining() > 0) { mobileClubBillingPlan.setServiceDateBillsRemaining( mobileClubBillingPlan.getServiceDateBillsRemaining() - 1); } umeMobileClubUserDao.updateBillingRenew(clubUser.getUserUnique(), club.getUnique()); billingplandao.update(mobileClubBillingPlan); System.out.println("ITBillingSuccess calling UP billing success in ITDR "); MobileClubBillingSuccesses mobileClubBillingSuccesses = new MobileClubBillingSuccesses( mobileClubBillingPlan, mobileClubBillingTry); System.out.println("ITBillingSuccess Saving Billing Successes " + mobileClubBillingSuccesses.toString()); try { mobilebillingdao.insertBillingSuccess(mobileClubBillingSuccesses); mobilebillingdao.insertBillingTry(mobileClubBillingTry); } catch (Exception e) { } } } //End if user!=null } //end if first billable if (smsrecord.getLogUnique().equals(id) && smsrecord.getMsgType().equalsIgnoreCase("premium") //&& (smsrecord.getMsgCode1().equals("txtdr.jsp") || smsrecord.getMsgCode1().equals("billingITd2")) && smsrecord.getReqType().equals("secondbillable")) { if (user != null && clubUser != null) { //BillingTry Logging for first success if (DateUtils.isSameDay(new Date(), clubUser.getSubscribed())) { successResponse = "003"; cpaLog = true; } String biloggednetwork = mobilenetwork.getMobileNetwork(club.getRegion().toUpperCase(), clubUser.getNetworkCode()); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode(successResponse); mobileClubBillingTry.setResponseDesc("successful"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("success"); mobileClubBillingTry.setTariffClass(club.getPrice()); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); //End BillingTry Logging if (mobileClubBillingPlan != null) { Calendar c = Calendar.getInstance(); mobileClubBillingPlan.setLastSuccess(c.getTime()); mobileClubBillingPlan.setLastPaid(c.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //Date nextPush = new Date(); if (mobileClubBillingPlan.getLastPush().before(mobileClubBillingPlan.getSubscribed())) { mobileClubBillingPlan.setLastPush(new Date()); } Date nextPush = DateUtils.addDays(mobileClubBillingPlan.getLastPush(), 7); nextPush = DateUtils.setHours(nextPush, 9); nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); mobileClubBillingPlan.setLastSuccess(new Date()); //mobileClubBillingPlan.setLastPaid(new Date()); if (mobileClubBillingPlan.getServiceDateBillsRemaining() > 0) { mobileClubBillingPlan.setServiceDateBillsRemaining( mobileClubBillingPlan.getServiceDateBillsRemaining() - 1); } umeMobileClubUserDao.updateBillingRenew(clubUser.getUserUnique(), club.getUnique()); billingplandao.update(mobileClubBillingPlan); MobileClubBillingSuccesses mobileClubBillingSuccesses = new MobileClubBillingSuccesses( mobileClubBillingPlan, mobileClubBillingTry); try { mobilebillingdao.insertBillingSuccess(mobileClubBillingSuccesses); mobilebillingdao.insertBillingTry(mobileClubBillingTry); } catch (Exception e) { } } } //END SEcond bilable uesr!=null } //END Second Billable if (smsrecord.getLogUnique().equals(id) && smsrecord.getMsgType().equalsIgnoreCase("premium") //&& (smsrecord.getMsgCode1().equals("txtdr.jsp") || smsrecord.getMsgCode1().equals("billingITd3")) && smsrecord.getReqType().equals("thirdbillable")) { //Third Billable //=================================================================== if (user != null && clubUser != null) { //boolean cpaLog = false; //BillingTry Logging for first success if (DateUtils.isSameDay(new Date(), clubUser.getSubscribed())) { successResponse = "003"; cpaLog = true; } String biloggednetwork = mobilenetwork.getMobileNetwork(club.getRegion().toUpperCase(), clubUser.getNetworkCode()); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode(successResponse); mobileClubBillingTry.setResponseDesc("successful"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("success"); mobileClubBillingTry.setTariffClass(club.getPrice()); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); //End BillingTry Logging if (mobileClubBillingPlan != null) { Calendar c = Calendar.getInstance(); mobileClubBillingPlan.setLastSuccess(c.getTime()); mobileClubBillingPlan.setLastPaid(c.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //Date nextPush = new Date(); if (mobileClubBillingPlan.getLastPush().before(mobileClubBillingPlan.getSubscribed())) { mobileClubBillingPlan.setLastPush(new Date()); } if (mobileClubBillingPlan.getServiceDateBillsRemaining() > 0) { mobileClubBillingPlan.setServiceDateBillsRemaining( mobileClubBillingPlan.getServiceDateBillsRemaining() - 1); } Date nextPush = DateUtils.addDays(mobileClubBillingPlan.getLastPush(), 7); nextPush = DateUtils.setHours(nextPush, 9); nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); mobileClubBillingPlan.setLastSuccess(new Date()); /* @Date- 2016-04-05 @Author Madan Trying weeks of subscription and their success */ //=========== START WEEK Calculation for User Total Bill ==================== try { Date subscribedDate = clubUser.getSubscribed(); Date today = new Date(); DateTime dateTime1 = new DateTime(subscribedDate); DateTime dateTime2 = new DateTime(today); int weeks = Weeks.weeksBetween(dateTime1, dateTime2).getWeeks(); int totalSuccess = billingplandao.getTotalSuccess(clubUser.getParsedMobile(), clubUser.getClubUnique()); int pendingTickets = 0; int successfrequency = weeks * 3; //We need to use Frequency here... if (totalSuccess == successfrequency) // User is upto-date { mobileClubBillingPlan.setServiceDateBillsRemaining(0.0); mobileClubBillingPlan.setLastPaid(new Date()); } else if (totalSuccess < successfrequency) { //UnderBill Users pendingTickets = successfrequency - totalSuccess; if (pendingTickets >= 3) { mobileClubBillingPlan.setServiceDateBillsRemaining(3.0); } else if (pendingTickets < 3 && pendingTickets > 1) { mobileClubBillingPlan.setServiceDateBillsRemaining(2.0); } else { mobileClubBillingPlan.setServiceDateBillsRemaining(1.0); } nextPush = DateUtils.addDays(mobileClubBillingPlan.getLastPush(), 1); nextPush = DateUtils.setHours(nextPush, 9); nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); } else if (totalSuccess > successfrequency) { //overbill users Or can be ok due to week calculation. mobileClubBillingPlan.setLastPaid(new Date()); int weekdifference = (totalSuccess - successfrequency) / 3; nextPush = DateUtils.addWeeks(mobileClubBillingPlan.getLastPush(), weekdifference); //Adding not to overbill continuously mobileClubBillingPlan.setNextPush(nextPush); } System.out.println("weeks IT Billing -- " + clubUser.getParsedMobile() + "-- " + clubUser.getClubUnique() + "-- " + clubUser.getSubscribed() + "-- no. of weeks " + weeks + " noofsuccess " + totalSuccess + " successfrequency " + successfrequency + " pending tickets " + pendingTickets + " ------- "); } catch (Exception e) { } //=============End Calculating the User's Week of billings ================================= umeMobileClubUserDao.updateBillingRenew(clubUser.getUserUnique(), club.getUnique()); billingplandao.update(mobileClubBillingPlan); MobileClubBillingSuccesses mobileClubBillingSuccesses = new MobileClubBillingSuccesses( mobileClubBillingPlan, mobileClubBillingTry); try { mobilebillingdao.insertBillingSuccess(mobileClubBillingSuccesses); mobilebillingdao.insertBillingTry(mobileClubBillingTry); } catch (Exception e) { } } QuizUserAttempted quizUserAttempted = new QuizUserAttempted(); quizUserAttempted.setaParsedMsisdn(msisdn); quizUserAttempted.setClubUnique(club.getUnique()); quizUserAttempted.setType("Entry Confirmation"); quizUserAttempted.setStatus("true"); quizUserAttempted.setaUnique(String.valueOf(transactionId)); quizUserAttempted.setaCreated(new Date()); umequizdao.saveQuizUserAttempted(quizUserAttempted); } //END thirdbillable user!=null //===================================================================== } //End of third billable CpaVisitLog visitorLog = cpavisitlogdao.getDetails(msisdn, clubUser.getCampaign()); if (visitorLog != null) { String campaignId = visitorLog.getaCampaignId(); if (null != campaignId && !"".equals(campaignId)) { MobileClubCampaign cmpg = UmeTempCmsCache.campaignMap.get(campaignId); if (cmpg != null) { if (cmpg.getSrc().toLowerCase().endsWith("cpa") && cmpg.getCpaType().equalsIgnoreCase("billing")) { // 2016.01.13 - AS - Removed commented code, check repo history if needed if (cpaLog) { // 2016.01.13 - AS - Removed commented code, check repo history if needed int insertedRows = cpaloggerdao.insertIntoCpaLogging(msisdn, campaignId, club.getUnique(), 10, clubUser.getNetworkCode(), cmpg.getSrc()); } } } } } } //End smsrecord!=null } //end if report equals delivered else { //FOR ALL FAILURE SdcSmsSubmit smsrecord = quizsmsdao.getSmsMsgLog(id); if (smsrecord != null && smsrecord.getMsgType().equalsIgnoreCase("premium")) { UmeUser user = null; MobileClubBillingPlan mobileClubBillingPlan = null; SdcMobileClubUser clubUser = null; String userUnique = ""; try { userUnique = umeuserdao.getUserUnique(msisdn, "msisdn", defClubDomain); } catch (Exception e) { System.out.println("IT Exception for at line 404 EngageDR " + msisdn); e.printStackTrace(); } if (!userUnique.equals("")) { user = umeuserdao.getUser(msisdn); } if (user != null) { clubUser = user.getClubMap().get(club.getUnique()); if (clubUser == null) { clubUser = umeMobileClubUserDao.getClubUserByMsisdn(msisdn, club.getUnique()); } } if (clubUser != null) { mobileClubBillingPlan = billingplandao.getAnyStatusBillingPlanByMsisdnAndClubUnique(msisdn, club.getUnique()); } String biloggednetwork = "unknown"; try { biloggednetwork = mobilenetwork.getMobileNetwork("IT", clubUser.getNetworkCode()); } catch (Exception e) { biloggednetwork = "unknown"; } if (report.equals("REJECTED")) {// || report.equals("INVALID_MSISDN")){ //DEACtivate user as we can't bill them if (clubUser != null && clubUser.getActive() == 1) { // 2016-05-10 Alex Sanchez if (smsrecord != null) { MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode("99"); mobileClubBillingTry.setResponseDesc(report.toLowerCase()); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("fail"); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); mobileClubBillingTry.setTariffClass(club.getPrice()); mobilebillingdao.insertBillingTry(mobileClubBillingTry); //stopuser.stopSingleSubscription(msisdn, club.getUnique(), null, null); /* SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String unSubscribed = sdf2.format(new Date()); clubUser.setActive(0); clubUser.setUnsubscribed(SdcMiscDate.parseSqlDateString(unSubscribed)); umemobileclubuserdao.saveItem(clubUser); String stop = "STOP"; try { if (DateUtils.isSameDay(clubUser.getSubscribed(), clubUser.getUnsubscribed())) { stop = "STOPFD"; } campaigndao.log("ITdr", clubUser.getLandingpage(), clubUser.getParsedMobile(), clubUser.getParsedMobile(), null, null, clubUser.getCampaign(), clubUser.getClubUnique(), stop, 0, null, null, biloggednetwork.toLowerCase()); } catch (Exception e) { System.out.println("Exception EngageDr while campaignlog for stops " + e); e.printStackTrace(); } //umemobileclubuserdao.disable(clubUser.getUnique()); if (mobileClubBillingPlan != null) { billingplandao.disableBillingPlan(msisdn, club.getUnique()); } */ // 2016-05-10 Alex Sanchez } //end smsrecord!=null } // If ClubUser is active } //end rejected or invalid msisdn else if (report.equalsIgnoreCase("ACKNOWLEDGED") || report.equalsIgnoreCase("ACCEPTED")) { //Don't do anything here as nextpush will be 7 days set from billing daemon //This is treated as the msg might have been delivered !! We will receive //notification of Delivered later on. } else { //For all other //NO_CREDIT, FAILED,VALIDITY_EXPIRED,UNKNOWN,OPERATOR_ERROR //DATETIME SCHEDULER FOR FAILURE Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.HOUR, 3); //cal.add(Calendar.HOUR, 72); if (cal.get(Calendar.HOUR_OF_DAY) > 18) { cal.add(Calendar.DATE, 1); cal.set(Calendar.HOUR_OF_DAY, 9); } else if (cal.get(Calendar.HOUR_OF_DAY) > 12) { cal.set(Calendar.HOUR_OF_DAY, 18); } else if (cal.get(Calendar.HOUR_OF_DAY) > 9) { cal.set(Calendar.HOUR_OF_DAY, 12); } else { cal.set(Calendar.HOUR_OF_DAY, 9); } cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("ipx"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode("51"); mobileClubBillingTry.setResponseDesc("Insufficient Funds"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("fail"); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); mobileClubBillingTry.setTariffClass(club.getPrice()); mobilebillingdao.insertBillingTry(mobileClubBillingTry); if (mobileClubBillingPlan != null) { //Calendar cal = Calendar.getInstance(); //cal.setTime(new Date()); //mobileClubBillingPlan.setLastPush(cal.getTime()); mobileClubBillingPlan.setNextPush(cal.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //cal.add(Calendar.HOUR_OF_DAY, 12); System.out.println( "ITMODR == FAILED BILLING UPDATE to " + mobileClubBillingPlan.getParsedMobile() + " --- " + mobileClubBillingPlan.getNextPush()); billingplandao.update(mobileClubBillingPlan);//, cal.getTime()); } } //end for all the failures } //END if smsrecord!=null or Premium } // end ELSE } }
From source file:ume.pareva.veeo.VeeoDR.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./* w ww . j a va2 s .c o m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs action mp_report id the unique * message id number number the originating telephone number report the * delivery report (e.g. delivered/acked/failed) * Status * 1: delivery success Delivered to handset * 2: delivery failure Message failed * 4: message buffered Message in queue * 8: smsc submit Submitted to SMSC * 16: smsc reject Rejected by SMSC * 32: (smsc intermediate notifications) Non-final statuses */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); Calendar deliverytime = new GregorianCalendar(); String serviceId = "6119598063441KDS"; String defClubDomain = "5510024809921CDS"; String transactionId = Misc.generateUniqueIntegerId() + ""; boolean cpaqueue = true; Enumeration parameterList = request.getParameterNames(); while (parameterList.hasMoreElements()) { String sName = parameterList.nextElement().toString(); System.out.println("VeeoDR: callback VeeoDR " + sName + ":" + request.getParameter(sName)); } Map<String, String> callbackMap = mappingUtil.mapRequestToCallback(request); String id = callbackMap.get("id"); String report = callbackMap.get("status"); // This can be DELIVERED, ACKNOWLEDGED, FAILED String msisdn = callbackMap.get("msisdn"); if (id.contains("-")) { serviceId = getClubId(id, "-").trim(); System.out.println("VeeoDR INSIDE - condition SERVICE ID IS " + serviceId); } MobileClub club = UmeTempCmsCache.mobileClubMap.get(serviceId); UmeClubDetails clubdetail = UmeTempCmsCache.umeClubDetailsMap.get(club.getUnique()); quizsmsdao.updateResponse(id, report, sdf.format(deliverytime.getTime()), report, ""); umesmsdao.updateResponse(id, report, sdf.format(deliverytime.getTime()), report, ""); if (report.equals("1")) { MobileClubBillingPlan mobileClubBillingPlan = null; String successResponse = "00"; SdcSmsSubmit smsrecord = quizsmsdao.getSmsMsgLog(id); if (smsrecord != null && smsrecord.getMsgType().equalsIgnoreCase("premium")) { //====================== USER- CLUBUSER - BILLING PLANS =============================== UmeUser user = null; SdcMobileClubUser clubUser = null; String userUnique = umeuserdao.getUserUnique(msisdn, "msisdn", defClubDomain); if (!userUnique.equals("")) { user = umeuserdao.getUser(msisdn); } if (user != null) { clubUser = user.getClubMap().get(club.getUnique()); if (clubUser == null) { clubUser = umemobileclubuserdao.getClubUserByMsisdn(msisdn, club.getUnique()); } if (clubUser != null) { mobileClubBillingPlan = billingplandao.getActiveBillingPlanByMsisdnAndClubUnique(msisdn, club.getUnique()); //System.out.println("IEBillingSuccess BillingPlan is " + mobileClubBillingPlan.toString()); } } //====================== USER- CLUBUSER - BILLING PLANS =============================== boolean cpaLog = false; if (smsrecord.getLogUnique().equals(id) && smsrecord.getMsgType().equalsIgnoreCase("premium")) { //Billable //=================================================================== if (user != null && clubUser != null) { //boolean cpaLog = false; //BillingTry Logging for first success if (DateUtils.isSameDay(new Date(), clubUser.getSubscribed())) { successResponse = "003"; cpaLog = true; } String biloggednetwork = mobilenetwork.getMobileNetwork(club.getRegion().toUpperCase(), clubUser.getNetworkCode()); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode(successResponse); mobileClubBillingTry.setResponseDesc("successful"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("success"); mobileClubBillingTry.setTariffClass(club.getPrice()); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); //End BillingTry Logging if (mobileClubBillingPlan != null) { Calendar c = Calendar.getInstance(); mobileClubBillingPlan.setLastSuccess(c.getTime()); mobileClubBillingPlan.setLastPaid(c.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //Date nextPush = new Date(); if (mobileClubBillingPlan.getLastPush().before(mobileClubBillingPlan.getSubscribed())) { mobileClubBillingPlan.setLastPush(new Date()); } if (mobileClubBillingPlan.getServiceDateBillsRemaining() > 0) { mobileClubBillingPlan.setServiceDateBillsRemaining( mobileClubBillingPlan.getServiceDateBillsRemaining() - 1); } Date nextPush = DateUtils.addDays(mobileClubBillingPlan.getLastPush(), 7); nextPush = DateUtils.setHours(nextPush, 9); nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); mobileClubBillingPlan.setLastSuccess(new Date()); if (clubdetail.getBillingType().equalsIgnoreCase("Adhoc")) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.HOUR, 1); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); mobileClubBillingPlan.setNextPush(cal.getTime()); if (mobileClubBillingPlan.getServiceDateBillsRemaining() > 0D) { mobileClubBillingPlan.setServiceDateBillsRemaining( mobileClubBillingPlan.getServiceDateBillsRemaining() - 1); } if ((mobileClubBillingPlan.getPartialsRequired() - mobileClubBillingPlan.getServiceDateBillsRemaining()) <= 2) { cpaqueue = true; } else { cpaqueue = false; } System.out.println("IEMODR == ADHOC BILLING UPDATE to " + mobileClubBillingPlan.getParsedMobile() + " --- " + mobileClubBillingPlan.getNextPush()); } else { /* @Date- 2016-04-05 @Author Madan Trying weeks of subscription and their success */ //=========== START WEEK Calculation for User Total Bill ==================== try { Date subscribedDate = clubUser.getSubscribed(); Date today = new Date(); DateTime dateTime1 = new DateTime(subscribedDate); DateTime dateTime2 = new DateTime(today); int weeks = Weeks.weeksBetween(dateTime1, dateTime2).getWeeks(); int totalSuccess = billingplandao.getTotalSuccessAfterEachSubscription( clubUser.getParsedMobile(), clubUser.getClubUnique(), clubUser.getSubscribed()); int pendingTickets = 0; int expectedSuccesses = weeks * clubdetail.getFrequency(); //We need to use Frequency here... if (totalSuccess == expectedSuccesses) { // User is upto-date mobileClubBillingPlan .setServiceDateBillsRemaining(clubdetail.getFrequency() * 1D); mobileClubBillingPlan.setLastPaid(new Date()); mobileClubBillingPlan.setNextPush(nextPush); } else if (totalSuccess < expectedSuccesses) { //UnderBill Users pendingTickets = expectedSuccesses - totalSuccess; if (pendingTickets >= clubdetail.getFrequency()) { mobileClubBillingPlan .setServiceDateBillsRemaining(1D + clubdetail.getFrequency()); } else { mobileClubBillingPlan.setServiceDateBillsRemaining(1D * pendingTickets); } nextPush = DateUtils.addHours(new Date(), 1); //nextPush = DateUtils.setHours(nextPush, 9); //nextPush = DateUtils.truncate(nextPush, Calendar.HOUR_OF_DAY); mobileClubBillingPlan.setNextPush(nextPush); } else if (totalSuccess > expectedSuccesses) { //overbill users Or can be ok due to week calculation. mobileClubBillingPlan.setLastPaid(new Date()); int weekdifference = (totalSuccess - expectedSuccesses) / clubdetail.getFrequency(); nextPush = DateUtils.addWeeks(mobileClubBillingPlan.getLastPush(), weekdifference); //Adding not to overbill continuously mobileClubBillingPlan.setNextPush(nextPush); } if (!mobileClubBillingPlan.getExternalId().toLowerCase().startsWith("adhoc")) { Date billingEnd = DateUtils.addDays(nextPush, 7); mobileClubBillingPlan.setBillingEnd(billingEnd); } System.out.println("weeks VEEO Billing -- " + clubUser.getParsedMobile() + "-- " + clubUser.getClubUnique() + "-- " + clubUser.getSubscribed() + "-- no. of weeks " + weeks + " noofsuccess " + totalSuccess + " successfrequency " + expectedSuccesses + " pending tickets " + pendingTickets + " ------- "); } catch (Exception e) { } //=============End Calculating the User's Week of billings ================================= } umemobileclubuserdao.updateBillingRenew(clubUser.getUserUnique(), club.getUnique()); billingplandao.update(mobileClubBillingPlan); MobileClubBillingSuccesses mobileClubBillingSuccesses = new MobileClubBillingSuccesses( mobileClubBillingPlan, mobileClubBillingTry); try { mobilebillingdao.insertBillingSuccess(mobileClubBillingSuccesses); mobilebillingdao.insertBillingTry(mobileClubBillingTry); } catch (Exception e) { } } // QuizUserAttempted quizUserAttempted = new QuizUserAttempted(); // quizUserAttempted.setaParsedMsisdn(msisdn); // quizUserAttempted.setClubUnique(club.getUnique()); // quizUserAttempted.setType("Entry Confirmation"); // quizUserAttempted.setStatus("true"); // quizUserAttempted.setaUnique(String.valueOf(transactionId)); // quizUserAttempted.setaCreated(new Date()); // umequizdao.saveQuizUserAttempted(quizUserAttempted); } //END thirdbillable user!=null //===================================================================== } //End of third billable CpaVisitLog visitorLog = cpavisitlogdao.getDetails(msisdn, clubUser.getCampaign()); if (visitorLog != null && cpaqueue) { String campaignId = visitorLog.getaCampaignId(); if (null != campaignId && !"".equals(campaignId)) { MobileClubCampaign cmpg = UmeTempCmsCache.campaignMap.get(campaignId); if (cmpg != null) { if (cmpg.getSrc().toLowerCase().endsWith("cpa") && cmpg.getCpaType().equalsIgnoreCase("billing")) { // 2016.01.13 - AS - Removed commented code, check repo history if needed if (cpaLog) { // 2016.01.13 - AS - Removed commented code, check repo history if needed int insertedRows = cpaloggerdao.insertIntoCpaLogging(msisdn, campaignId, club.getUnique(), 10, clubUser.getNetworkCode(), cmpg.getSrc()); } } } } } } //End smsrecord!=null } //end if report equals delivered else { //FOR ALL FAILURE SdcSmsSubmit smsrecord = quizsmsdao.getSmsMsgLog(id); if (smsrecord != null && smsrecord.getMsgType().equalsIgnoreCase("premium")) { UmeUser user = null; MobileClubBillingPlan mobileClubBillingPlan = null; SdcMobileClubUser clubUser = null; String userUnique = ""; try { userUnique = umeuserdao.getUserUnique(msisdn, "msisdn", defClubDomain); } catch (Exception e) { System.out.println("IE Exception for at line 365 EngageDR " + msisdn); e.printStackTrace(); } if (!userUnique.equals("")) { user = umeuserdao.getUser(msisdn); } if (user != null) { clubUser = user.getClubMap().get(club.getUnique()); if (clubUser == null) { clubUser = umemobileclubuserdao.getClubUserByMsisdn(msisdn, club.getUnique()); } } if (clubUser != null) { mobileClubBillingPlan = billingplandao.getActiveBillingPlanByMsisdnAndClubUnique(msisdn, club.getUnique()); } String biloggednetwork = "unknown"; try { biloggednetwork = mobilenetwork.getMobileNetwork("IE", clubUser.getNetworkCode()); } catch (Exception e) { biloggednetwork = "unknown"; } if (report.equals("REJECTED")) {// || report.equals("INVALID_MSISDN")){ //DEACtivate user as we can't bill them if (clubUser != null && clubUser.getActive() == 1) { // 2016-05-10 Alex Sanchez if (smsrecord != null) { MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode("99"); mobileClubBillingTry.setResponseDesc(report.toLowerCase()); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("fail"); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); mobileClubBillingTry.setTariffClass(club.getPrice()); mobilebillingdao.insertBillingTry(mobileClubBillingTry); //stopuser.stopSingleSubscription(msisdn, club.getUnique(), null, null); /* SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String unSubscribed = sdf2.format(new Date()); clubUser.setActive(0); clubUser.setUnsubscribed(SdcMiscDate.parseSqlDateString(unSubscribed)); umemobileclubuserdao.saveItem(clubUser); String stop = "STOP"; try { if (DateUtils.isSameDay(clubUser.getSubscribed(), clubUser.getUnsubscribed())) { stop = "STOPFD"; } campaigndao.log("iedr", clubUser.getLandingpage(), clubUser.getParsedMobile(), clubUser.getParsedMobile(), null, null, clubUser.getCampaign(), clubUser.getClubUnique(), stop, 0, null, null, biloggednetwork.toLowerCase()); } catch (Exception e) { System.out.println("Exception EngageDr while campaignlog for stops " + e); e.printStackTrace(); } //umemobileclubuserdao.disable(clubUser.getUnique()); if (mobileClubBillingPlan != null) { billingplandao.disableBillingPlan(msisdn, club.getUnique()); } */ // 2016-05-10 Alex Sanchez } //end smsrecord!=null } // If ClubUser is active } //end rejected or invalid msisdn else if (report.equalsIgnoreCase("ACKNOWLEDGED") || report.equalsIgnoreCase("ACCEPTED")) { //Don't do anything here as nextpush will be 7 days set from billing daemon //This is treated as the msg might have been delivered !! We will receive //notification of Delivered later on. } else { //For all other //NO_CREDIT, FAILED,VALIDITY_EXPIRED,UNKNOWN,OPERATOR_ERROR //DATETIME SCHEDULER FOR FAILURE Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); if (clubdetail.getPaymentType().equalsIgnoreCase("Adhoc")) { cal.set(Calendar.HOUR_OF_DAY, 21); } else { cal.add(Calendar.HOUR, 3); } //cal.add(Calendar.HOUR, 72); if (cal.get(Calendar.HOUR_OF_DAY) > 18) { cal.add(Calendar.DATE, 1); cal.set(Calendar.HOUR_OF_DAY, 9); } else if (cal.get(Calendar.HOUR_OF_DAY) > 12) { cal.set(Calendar.HOUR_OF_DAY, 18); } else if (cal.get(Calendar.HOUR_OF_DAY) > 9) { cal.set(Calendar.HOUR_OF_DAY, 12); } else { cal.set(Calendar.HOUR_OF_DAY, 9); } cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); MobileClubBillingTry mobileClubBillingTry = new MobileClubBillingTry(); mobileClubBillingTry.setUnique(id); mobileClubBillingTry.setLogUnique(id); mobileClubBillingTry.setAggregator("TXT"); mobileClubBillingTry.setClubUnique(club.getUnique()); mobileClubBillingTry.setCreated(new Date()); mobileClubBillingTry.setNetworkCode(biloggednetwork.toLowerCase()); mobileClubBillingTry.setParsedMsisdn(msisdn); mobileClubBillingTry.setRegionCode(club.getRegion().toUpperCase()); mobileClubBillingTry.setResponseCode("51"); mobileClubBillingTry.setResponseDesc("Insufficient Funds"); mobileClubBillingTry.setResponseRef(transactionId); mobileClubBillingTry.setStatus("fail"); mobileClubBillingTry.setTransactionId(transactionId); mobileClubBillingTry.setCampaign(clubUser.getCampaign()); mobileClubBillingTry.setTariffClass(club.getPrice()); mobilebillingdao.insertBillingTry(mobileClubBillingTry); if (mobileClubBillingPlan != null) { //Calendar cal = Calendar.getInstance(); //cal.setTime(new Date()); //mobileClubBillingPlan.setLastPush(cal.getTime()); mobileClubBillingPlan.setNextPush(cal.getTime()); mobileClubBillingPlan.setPushCount(mobileClubBillingPlan.getPushCount() + 1); //cal.add(Calendar.HOUR_OF_DAY, 12); System.out.println( "VEEODR == FAILED BILLING UPDATE to " + mobileClubBillingPlan.getParsedMobile() + " --- " + mobileClubBillingPlan.getNextPush()); billingplandao.update(mobileClubBillingPlan);//, cal.getTime()); } } //end for all the failures } //END if smsrecord!=null or Premium } // end ELSE }