/*******************************************************************************
* Copyright (c) 2012 Dmitry Tikhomirov.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Dmitry Tikhomirov - initial API and implementation
******************************************************************************/
package org.opensheet.server.dao;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.opensheet.client.dto.grid.AssignmentGridTemplate;
import org.opensheet.shared.model.Assignment;
import org.opensheet.shared.model.Department;
import org.opensheet.shared.model.Hour;
import org.opensheet.shared.model.User;
public interface HourDAO {
public void setOrUpdateHour(User user, Calendar date, Integer oldValue,Integer newValue, Integer assignmentId);
public Hour getHour(User user,Assignment assignment,Calendar date);
public List<Hour> getHours(User user,Assignment assignment,Calendar cal);
public List<Hour> getHoursSumm(User user,Calendar cal);
public List<Hour> getHoursSumByUser(User user,Calendar cal);
public Map<Assignment,ArrayList<Integer>> getHoursUserHourByAssignmentByMonth(User user,Calendar cal);
public Map<User,List<Hour>> getHours(Assignment assignment, Department department);
public Map<User,List<Hour>> getHours(Assignment assignment, Department department,Date starting,Date finishing);
public String getNote(Integer user,Integer assignment,Date date);
public void setNote(Integer user,Integer assignment,Date date,String note);
public void recalculateInternalRate(Integer userId, Integer rate,Date start, Date end);
public AssignmentGridTemplate getHoursByUserAndByAssignmentOnPeriod(Integer userId,Date start,Date end);
}