/*******************************************************************************
* 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.client.services;
import java.util.Date;
import org.opensheet.client.exceptions.ParentTimelineIsNullException;
import org.opensheet.client.exceptions.ParentTimelineTooSmallException;
import org.opensheet.client.exceptions.TimelineSmallerWhanSumChildException;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("service/TimelineService")
public interface TimelineService extends RemoteService{
public Integer getAssignmentTimeline(Integer assignmentId);
public BaseModel setAssignmentTimeline(Integer assignmentId,Integer timeline,Boolean allocate) throws ParentTimelineTooSmallException, ParentTimelineIsNullException, TimelineSmallerWhanSumChildException;
public Integer getAssignmentDepartmentTimeline(Integer assignmentId,Integer departmentId);
public BaseModel getAssignmentDepartmentDetail(Integer assignmentId,Integer departmentId);
public BaseModel setAssignmentDepartmentTimeline(Integer assignmentId,Integer departmentId,Integer timeline,Boolean allocate) throws ParentTimelineIsNullException, ParentTimelineTooSmallException;
public void setUserAssignmentTimeline(Integer userId,Integer assignmentId,Integer timeline) throws ParentTimelineIsNullException, ParentTimelineTooSmallException;
public void setUserAssignmentRate(Integer userId,Integer assignmentId,Integer rate);
public void setUserAssignmentTimelineAndRate(Integer userId,Integer assignmentId,Integer timeline,Integer rate);
public Integer getUserInternalRate(Integer userId);
public void recalculateInternalRate(Integer userId,Integer rate,Date start,Date end);
}