Пример #1
0
 public static boolean checkDateRanges(String fromDate, String toDate) {
   try {
     Date parsedDate = CoreApiServiceLocator.getDateTimeService().convertToDate(fromDate.trim());
     Calendar fromCalendar = Calendar.getInstance();
     fromCalendar.setLenient(false);
     fromCalendar.setTime(parsedDate);
     fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
     fromCalendar.set(Calendar.MINUTE, 0);
     fromCalendar.set(Calendar.SECOND, 0);
     fromCalendar.set(Calendar.MILLISECOND, 0);
     parsedDate = CoreApiServiceLocator.getDateTimeService().convertToDate(toDate.trim());
     Calendar toCalendar = Calendar.getInstance();
     toCalendar.setLenient(false);
     toCalendar.setTime(parsedDate);
     toCalendar.set(Calendar.HOUR_OF_DAY, 0);
     toCalendar.set(Calendar.MINUTE, 0);
     toCalendar.set(Calendar.SECOND, 0);
     toCalendar.set(Calendar.MILLISECOND, 0);
     if (fromCalendar.after(toCalendar)) {
       return false;
     }
     return true;
   } catch (Exception ex) {
     return false;
   }
 }
Пример #2
0
 public void removeSubAwardAttachment(BudgetSubAwards subAward) {
   subAward.setFormName(null);
   subAward.setNamespace(null);
   subAward.setSubAwardXfdFileData(null);
   subAward.setSubAwardXfdFileName(null);
   subAward.setSubAwardXmlFileData(null);
   subAward.setXfdUpdateUser(null);
   subAward.getBudgetSubAwardAttachments().clear();
   subAward.getBudgetSubAwardFiles().clear();
   subAward.setXfdUpdateUser(getLoggedInUserNetworkId());
   subAward.setXfdUpdateTimestamp(
       CoreApiServiceLocator.getDateTimeService().getCurrentTimestamp());
   subAward.setXmlUpdateUser(getLoggedInUserNetworkId());
   subAward.setXmlUpdateTimestamp(
       CoreApiServiceLocator.getDateTimeService().getCurrentTimestamp());
 }
Пример #3
0
  public void populateBudgetSubAwardFiles(
      Budget budget, BudgetSubAwards subAward, String newFileName, byte[] newFileData) {
    subAward.setSubAwardStatusCode(1);
    BudgetSubAwardFiles newSubAwardFile = new BudgetSubAwardFiles();
    newSubAwardFile.setSubAwardXfdFileData(newFileData);
    subAward.getBudgetSubAwardAttachments().clear();
    subAward.getBudgetSubAwardFiles().clear();
    subAward.getBudgetSubAwardFiles().add(newSubAwardFile);

    boolean subawardBudgetExtracted = false;

    try {
      byte[] pdfFileContents = newSubAwardFile.getSubAwardXfdFileData();
      subAward.setSubAwardXfdFileData(pdfFileContents);
      PdfReader reader = new PdfReader(pdfFileContents);
      byte[] xmlContents = getXMLFromPDF(reader);
      subawardBudgetExtracted = (xmlContents != null && xmlContents.length > 0);
      if (subawardBudgetExtracted) {
        Map fileMap = extractAttachments(reader);
        updateXML(xmlContents, fileMap, subAward, budget);
      }
    } catch (Exception e) {
      LOG.error("Not able to extract xml from pdf", e);
      subawardBudgetExtracted = false;
    }

    newSubAwardFile.setSubAwardXfdFileData(subAward.getSubAwardXfdFileData());
    if (subawardBudgetExtracted) {
      newSubAwardFile.setSubAwardXmlFileData(new String(subAward.getSubAwardXmlFileData()));
    }
    newSubAwardFile.setSubAwardXfdFileName(newFileName);
    newSubAwardFile.setBudgetId(subAward.getBudgetId());
    newSubAwardFile.setSubAwardNumber(subAward.getSubAwardNumber());
    subAward.setSubAwardXfdFileName(newFileName);
    subAward.setXfdUpdateUser(getLoggedInUserNetworkId());
    subAward.setXfdUpdateTimestamp(
        CoreApiServiceLocator.getDateTimeService().getCurrentTimestamp());
    subAward.setXmlUpdateUser(getLoggedInUserNetworkId());
    subAward.setXmlUpdateTimestamp(
        CoreApiServiceLocator.getDateTimeService().getCurrentTimestamp());
  }
  /**
   * Determines what Timestamp should be used for active queries on effective dated records.
   * Determination made as follows:
   *
   * <ul>
   *   <li>Use activeAsOfDate value from search values Map if value is not empty
   *   <li>If search value given, try to convert to sql date, if conversion fails, try to convert to
   *       Timestamp
   *   <li>If search value empty, use current Date
   *   <li>If Timestamp value not given, create Timestamp from given Date setting the time as 1
   *       second before midnight
   * </ul>
   *
   * @param searchValues - Map containing search key/value pairs
   * @return Timestamp to be used for active criteria
   */
  public static Timestamp getActiveDateTimestampForCriteria(Map searchValues) {
    Date activeDate = CoreApiServiceLocator.getDateTimeService().getCurrentSqlDate();
    Timestamp activeTimestamp = null;
    if (searchValues.containsKey(KRADPropertyConstants.ACTIVE_AS_OF_DATE)) {
      String activeAsOfDate = (String) searchValues.get(KRADPropertyConstants.ACTIVE_AS_OF_DATE);
      if (StringUtils.isNotBlank(activeAsOfDate)) {
        try {
          activeDate =
              CoreApiServiceLocator.getDateTimeService()
                  .convertToSqlDate(ObjectUtils.clean(activeAsOfDate));
        } catch (ParseException e) {
          // try to parse as timestamp
          try {
            activeTimestamp =
                CoreApiServiceLocator.getDateTimeService()
                    .convertToSqlTimestamp(ObjectUtils.clean(activeAsOfDate));
          } catch (ParseException e1) {
            throw new RuntimeException(
                "Unable to convert date: " + ObjectUtils.clean(activeAsOfDate));
          }
        }
      }
    }

    // if timestamp not given set to 1 second before midnight on the given date
    if (activeTimestamp == null) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(activeDate);
      cal.set(Calendar.HOUR, cal.getMaximum(Calendar.HOUR));
      cal.set(Calendar.MINUTE, cal.getMaximum(Calendar.MINUTE));
      cal.set(Calendar.SECOND, cal.getMaximum(Calendar.SECOND));

      activeTimestamp = new Timestamp(cal.getTime().getTime());
    }

    return activeTimestamp;
  }
 protected DateTimeService getDateTimeService() {
   if (this.dateTimeService == null) {
     this.dateTimeService = CoreApiServiceLocator.getDateTimeService();
   }
   return this.dateTimeService;
 }