/*******************************************************************************
* 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.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.map.LinkedMap;
import org.opensheet.shared.model.Assignment;
import org.opensheet.shared.model.Department;
import org.opensheet.shared.model.User;
import com.extjs.gxt.ui.client.data.BaseModel;
public interface StatDAO {
public List<Number> getAssignmentSumByMonthByYear(int year, int assignemntId);
public List<BaseModel> getAssignmentStatByPeriod(Date start,Date end,int assignemntId);
public List<Number> getAssignmentDepartmentSumByMonthByYear(int year, int assignemntId,int departmentId);
public Integer getAssignmentDepartmentSum(int assignemntId,int departmentId);
public Integer getHourSumByAssignmentAndByDepartmentOnPeriod(Assignment assignment, Department department,Calendar starting,Calendar ending);
public BaseModel getAssignmentQuickDetails(Assignment assignment);
public List<BaseModel> getAssignmentHoursInternalExternalRatesSummThisYear(int assignmentId);
public List<BaseModel> getAssignmentHoursMonthThisYear(int assignmentId);
public Integer getHourSumByAssignmentAndByUser(Assignment assignment,User user);
public Integer getHourSumByAssignmentAndByUserOnPeriod(Assignment assignment,User user,Calendar starting,Calendar ending);
public Integer getInternalRateSumByAssignmentAndByDepartment(Assignment assignment,Department department);
public Integer getInternalRateSumByAssignmentAndByDepartmentOnPeriod(Assignment assignment,Department department,Calendar starting,Calendar ending);
public Integer getExternalRateSumByAssignmentAndByDepartment(Assignment assignment,Department department);
public Integer getExternalRateSumByAssignmentAndByDepartmentOnPeriod(Assignment assignment,Department department,Calendar starting,Calendar ending);
public Integer getInternalRateSumByAssignmentAndByDepartmentAndByUser(Assignment assignment,Department department,User user);
public Integer getExternalRateSumByAssignmentAndByDepartmentAndByUser(Assignment assignment,Department department,User user);
public List<BaseModel> getHourReportByUserByPeriodByTypeByBranch(Integer branch,Integer type,Date start,Date end);
public List<BaseModel> getHourReportByUserByPeriodByAssignmentByTypeByBranch(Integer assignment, Integer branch,Integer type,Date start,Date end);
}