Package org.projectforge.timesheet

Examples of org.projectforge.timesheet.TimesheetDO


    final TimeSeries sollSeries = new TimeSeries("Soll");
    final TimeSeries istSeries = new TimeSeries("Ist");
    planWorkingHours = 0;
    actualWorkingHours = 0;
    final Iterator<TimesheetDO> it = list.iterator();
    TimesheetDO current = null;
    if (it.hasNext() == true) {
      current = it.next();
    }
    for (int i = 0; i <= forLastNDays; i++) {
      while (current != null && (dh.isSameDay(current.getStartTime()) == true || current.getStartTime().before(dh.getDate()) == true)) {
        actualWorkingHours += ((double) current.getWorkFractionDuration()) / 3600000;
        if (it.hasNext() == true) {
          current = it.next();
        } else {
          current = null;
          break;
View Full Code Here


    filter.setOrderType(OrderDirection.ASC);
    final List<TimesheetDO> list = timesheetDao.getList(filter);
    final TimeSeries planSeries = new TimeSeries("Soll");
    final TimeSeries actualSeries = new TimeSeries("Ist");
    final Iterator<TimesheetDO> it = list.iterator();
    TimesheetDO current = null;
    if (it.hasNext() == true) {
      current = it.next();
    }
    long numberOfBookedDays = 0;
    long totalDifference = 0;
    for (int i = 0; i <= forLastNDays; i++) {
      long difference = 0;
      long totalDuration = 0; // Weight for average.
      while (current != null && (dh.isSameDay(current.getStartTime()) == true || current.getStartTime().before(dh.getDate()) == true)) {
        final long duration = current.getWorkFractionDuration();
        difference += (current.getCreated().getTime() - current.getStartTime().getTime()) * duration;
        totalDuration += duration;
        if (it.hasNext() == true) {
          current = it.next();
        } else {
          current = null;
View Full Code Here

      // This node is not the root node:
      node.setParent(root);
    }
    taskMap.put(node.getId(), node);
    final TimesheetDao timesheetDao = Registry.instance().getDao(TimesheetDao.class);
    final TimesheetDO timesheet = new TimesheetDO().setTask(task);
    final boolean bookable = timesheetDao.checkTaskBookable(timesheet, null, OperationType.INSERT, false);
    node.bookableForTimesheets = bookable;
    return addTaskNode(node, parent);
  }
View Full Code Here

    }
    readTotalDurations();
    refreshOrderPositionReferences();
    // Now update the status: bookable for time sheets:
    final TimesheetDao timesheetDao = Registry.instance().getDao(TimesheetDao.class);
    final TimesheetDO timesheet = new TimesheetDO();
    for (final TaskDO task : taskList) {
      node = taskMap.get(task.getId());
      timesheet.setTask(task);
      final boolean bookable = timesheetDao.checkTaskBookable(timesheet, null, OperationType.INSERT, false);
      node.bookableForTimesheets = bookable;
    }
    log.info("Initializing task tree done.");
  }
View Full Code Here

      {
    final List<IColumn<TimesheetDO, String>> columns = new ArrayList<IColumn<TimesheetDO, String>>();
    final CellItemListener<TimesheetDO> cellItemListener = new CellItemListener<TimesheetDO>() {
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final Serializable highlightedRowId;
        if (page instanceof AbstractListPage< ? , ? , ? >) {
          highlightedRowId = ((AbstractListPage< ? , ? , ? >) page).getHighlightedRowId();
        } else {
          highlightedRowId = null;
        }
        appendCssClasses(item, timesheet.getId(), highlightedRowId, timesheet.isDeleted());
      }
    };
    if (page instanceof TimesheetMassUpdatePage) {
      columns.add(new UserPropertyColumn<TimesheetDO>(page.getString("timesheet.user"), getSortable("user.fullname", sortable), "user",
          cellItemListener).withUserFormatter(userFormatter));
    } else {
      // Show first column not for TimesheetMassUpdatePage!
      if (isMassUpdateMode == true && page instanceof TimesheetListPage) {
        final TimesheetListPage timesheetListPage = (TimesheetListPage) page;
        columns.add(new CellItemListenerPropertyColumn<TimesheetDO>("", null, "selected", cellItemListener) {
          @Override
          public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId,
              final IModel<TimesheetDO> rowModel)
          {
            final TimesheetDO timesheet = rowModel.getObject();
            final CheckBoxPanel checkBoxPanel = new CheckBoxPanel(componentId, timesheetListPage.new SelectItemModel(timesheet.getId()),
                null);
            item.add(checkBoxPanel);
            cellItemListener.populateItem(item, componentId, rowModel);
            addRowClick(item, isMassUpdateMode);
          }
        });
        columns.add(new UserPropertyColumn<TimesheetDO>(page.getString("timesheet.user"), getSortable("user.fullname", sortable), "user",
            cellItemListener).withUserFormatter(userFormatter));
      } else {
        columns.add(new UserPropertyColumn<TimesheetDO>(page.getString("timesheet.user"), getSortable("user.fullname", sortable), "user",
            cellItemListener) {
          @Override
          public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId,
              final IModel<TimesheetDO> rowModel)
          {
            item.add(new ListSelectActionPanel(componentId, rowModel, TimesheetEditPage.class, rowModel.getObject().getId(), page,
                getLabelString(rowModel)));
            cellItemListener.populateItem(item, componentId, rowModel);
            addRowClick(item);
          }
        }.withUserFormatter(userFormatter));
      }
    }
    final SystemInfoCache systemInfoCache = SystemInfoCache.instance();
    if (systemInfoCache.isCost2EntriesExists() == true) {
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(new Model<String>(page.getString("fibu.kunde")), getSortable(
          "kost2.projekt.kunde.name", sortable), "kost2.projekt.kunde.name", cellItemListener));
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(new Model<String>(page.getString("fibu.projekt")), getSortable(
          "kost2.projekt.name", sortable), "kost2.projekt.name", cellItemListener));
    }
    columns.add(new TaskPropertyColumn<TimesheetDO>(page.getString("task"), getSortable("task.title", sortable), "task", cellItemListener)
        .withTaskTree(taskTree));
    if (systemInfoCache.isCost2EntriesExists() == true) {
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("fibu.kost2"), getSortable("kost2.shortDisplayName",
          sortable), "kost2.shortDisplayName", cellItemListener));
    }
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("calendar.weekOfYearShortLabel"), getSortable(
        "formattedWeekOfYear", sortable), "formattedWeekOfYear", cellItemListener));
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("calendar.dayOfWeekShortLabel"), getSortable("startTime",
        sortable), "startTime", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final Label label = new Label(componentId, dateTimeFormatter.getFormattedDate(timesheet.getStartTime(),
            DateFormats.getFormatString(DateFormatType.DAY_OF_WEEK_SHORT)));
        cellItemListener.populateItem(item, componentId, rowModel);
        item.add(label);
      }
    });
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("timePeriod"), getSortable("startTime", sortable),
        "timePeriod", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final Label label = new Label(componentId, dateTimeFormatter.getFormattedTimePeriod(timesheet.getTimePeriod()));
        label.setEscapeModelStrings(false);
        cellItemListener.populateItem(item, componentId, rowModel);
        item.add(label);
      }
    });
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("timesheet.duration"), getSortable("duration", sortable),
        "duration", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final Label label = new Label(componentId, dateTimeFormatter.getFormattedDuration(timesheet.getDuration()));
        label.setEscapeModelStrings(false);
        cellItemListener.populateItem(item, componentId, rowModel);
        item.add(label);
      }
    });
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("timesheet.location"), getSortable("location", sortable),
        "location", cellItemListener));
    columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(page.getString("description"), getSortable("shortDescription", sortable),
        "shortDescription", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final Label label = new Label(componentId, new Model<String>() {
          @Override
          public String getObject()
          {
            String text;
            if (timesheetFilter != null && timesheetFilter.isLongFormat() == true) {
              text = HtmlHelper.escapeXml(timesheet.getDescription());
            } else {
              text = HtmlHelper.escapeXml(timesheet.getShortDescription());
            }
            if (isMassUpdateMode == true) {
              return text;
            } else {
              return JiraUtils.linkJiraIssues(text); // Not in mass update mode: link on table row results otherwises in JIRA-Link.
View Full Code Here

  {
    final List<IColumn<TimesheetDO, String>> columns = new ArrayList<IColumn<TimesheetDO, String>>();
    final CellItemListener<TimesheetDO> cellItemListener = new CellItemListener<TimesheetDO>() {
      public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
      {
        final TimesheetDO timesheet = rowModel.getObject();
        final int rowIndex = ((Item< ? >) item.findParent(Item.class)).getIndex();
        String cssClasses = null;
        if (timesheet.isDeleted() == true) {
          cssClasses = RowCssClass.MARKED_AS_DELETED.getCssClass();
        } else if (rowIndex < TimesheetEditPage.SIZE_OF_FIRST_RECENT_BLOCK) {
          cssClasses = RowCssClass.IMPORTANT_ROW.getCssClass();
        }
        if (cssClasses != null) {
          item.add(AttributeModifier.append("class", cssClasses));
        }
      }
    };
    if (showCost2Column == true) { // Is maybe invisible but does always exist if cost2 entries does exist in the system.
      columns
      .add(new CellItemListenerPropertyColumn<TimesheetDO>(getString("fibu.kost2"), null, "kost2.shortDisplayName", cellItemListener) {
        @Override
        public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId,
            final IModel<TimesheetDO> rowModel)
        {
          final TimesheetDO timesheet = rowModel.getObject();
          final ListSelectActionPanel actionPanel = new ListSelectActionPanel(componentId,
              createRecentTimeSheetSelectionLink(timesheet), new Model<String>() {
            @Override
            public String getObject()
            {
              final StringBuffer buf = new StringBuffer();
              if (timesheet.getKost2() != null) {
                buf.append(timesheet.getKost2().getShortDisplayName());
              }
              if (timesheet.getUserId() != null && timesheet.getUserId().equals(PFUserContext.getUserId()) == false) {
                if (timesheet.getKost2() != null) {
                  buf.append(", ");
                }
                buf.append(userFormatter.getFormattedUser(timesheet.getUserId()));
              }
              return buf.toString();
            }
          });
          item.add(actionPanel);
          item.add(AttributeModifier.append("style", new Model<String>("white-space: nowrap;")));
          final Item< ? > row = item.findParent(Item.class);
          WicketUtils.addRowClick(row);
          cellItemListener.populateItem(item, componentId, rowModel);
        }
      });
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(new Model<String>(getString("fibu.kunde")), null,
          "kost2.projekt.kunde.name", cellItemListener));
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(new Model<String>(getString("fibu.projekt")), null, "kost2.projekt.name",
          cellItemListener));
      columns.add(new TaskPropertyColumn<TimesheetDO>(getString("task"), null, "task", cellItemListener).withTaskTree(taskTree));
    } else {
      columns.add(new CellItemListenerPropertyColumn<TimesheetDO>(new Model<String>(getString("task")), null, "task.title",
          cellItemListener) {
        @Override
        public void populateItem(final Item<ICellPopulator<TimesheetDO>> item, final String componentId, final IModel<TimesheetDO> rowModel)
        {
          final TimesheetDO timesheet = rowModel.getObject();
          final TaskDO task = rowModel.getObject().getTask();
          final Label label = new Label("label", task != null ? task.getTitle() : "");
          final ListSelectActionPanel actionPanel = new ListSelectActionPanel(componentId, createRecentTimeSheetSelectionLink(timesheet),
              label);
          WicketUtils.addTooltip(label, TaskFormatter.instance().getTaskPath(task.getId(), false, OutputType.HTML));
View Full Code Here

  private TimesheetPageSupport timesheetPageSupport;

  public TimesheetMassUpdateForm(final TimesheetMassUpdatePage parentPage)
  {
    super(parentPage);
    data = new TimesheetDO();
  }
View Full Code Here

            final String breakId = String.valueOf(++breaksCounter);
            breakEvent.setClassName(BREAK_EVENT_CLASS_NAME).setId(breakId).setStart(lastStopTime).setEnd(startTime)
            .setTitle(getString("timesheet.break"));
            breakEvent.setTextColor("#666666").setBackgroundColor("#F9F9F9").setColor("#F9F9F9");
            events.put(breakId, breakEvent);
            final TimesheetDO breakTimesheet = new TimesheetDO().setStartDate(lastStopTime.toDate()).setStopTime(startTime.getMillis());
            breaksMap.put(breakId, breakTimesheet);
          }
          lastStopTime = stopTime;
        }
        final long duration = timesheet.getDuration();
View Full Code Here

  public TimesheetDO getLatestTimesheetOfDay(final DateTime date)
  {
    if (timesheets == null) {
      return null;
    }
    TimesheetDO latest = null;
    for (final TimesheetDO timesheet : timesheets) {
      if (DateHelper.isSameDay(timesheet.getStopTime(), date.toDate()) == true) {
        if (latest == null) {
          latest = timesheet;
        } else if (latest.getStopTime().before(timesheet.getStopTime()) == true) {
          latest = timesheet;
        }
      }
    }
    return latest;
View Full Code Here

  {
    final TimesheetPrefData data = getTimesheetPrefData();
    final List<TimesheetDO> list = new ArrayList<TimesheetDO>();
    if (data != null && data.getRecents() != null) {
      for (final TimesheetPrefEntry entry : data.getRecents()) {
        final TimesheetDO sheet = getRecentSheet(entry);
        list.add(sheet);
      }
      Collections.sort(list, new Comparator<TimesheetDO>() {
        public int compare(final TimesheetDO t1, final TimesheetDO t2)
        {
          final Kost2DO kost1 = t1.getKost2();
          final Kost2DO kost2 = t2.getKost2();
          final ProjektDO project1 = kost1 != null ? kost1.getProjekt() : null;
          final ProjektDO project2 = kost2 != null ? kost2.getProjekt() : null;
          final String kunde1 = project1 != null && project1.getKunde() != null ? project1.getKunde().getName() : null;
          final String kunde2 = project2 != null && project2.getKunde() != null ? project2.getKunde().getName() : null;
          return new CompareToBuilder().append(kunde1, kunde2)
              .append(project1 != null ? project1.getName() : null, project2 != null ? project2.getName() : null)
              .append(t1.getTask() != null ? t1.getTask().getTitle() : null, t2.getTask() != null ? t2.getTask().getTitle() : null)
              .toComparison();
        }
      });
      // Don't show recent block for new users if all entries are already displayed.
      if (data.getRecents().size() > SIZE_OF_FIRST_RECENT_BLOCK) {
        int i = 0;
        for (final TimesheetPrefEntry entry : data.getRecents()) {
          final TimesheetDO sheet = getRecentSheet(entry);
          list.add(i, sheet);
          if (i++ >= SIZE_OF_FIRST_RECENT_BLOCK) {
            break;
          }
        }
View Full Code Here

TOP

Related Classes of org.projectforge.timesheet.TimesheetDO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.