Package clips.delegate.shedule.individual

Source Code of clips.delegate.shedule.individual.SheduleIndividualData

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.delegate.shedule.individual;

import beans.shedule.individual.SheduleIndividualWorkDetails;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.complex.DirectoryWorkType;
import clips.delegate.directory.complex.DirectoryCabinet;
import clips.delegate.directory.complex.DirectoryCabinetItem;
import clips.delegate.directory.complex.DirectoryWorkTypeItem;
import cli_fmw.main.ClipsException;
import cli_fmw.delegate.lists.DataChunk;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
import java.util.Date;


/**
* Делегат, представляющий работу сотрудника в заданное время.
* Т.к родительский делегат является уникальным, данный делегат
* ьудет уникальным и без программной обработки
* @author Axe Ilshat
*/
public class SheduleIndividualData extends DataChunk<SheduleIndividualWorkDetails> {
   
   
    public SheduleIndividualData(DirectoryCollaboratorItem collaborator) {
        super(new SheduleIndividualWorkDetails());
        getDetails().collID = collaborator.getID();
    }
   
    public SheduleIndividualData(SheduleIndividualWorkDetails details) {
        super(details);
    }

    /**
     * Возвращает время начала работы
     * @return TimeOffset, минут с начала точки отсчета 2007
     */
    public Date getBegin() {
        return getDetails().begin;
    }


    /**
     * Задает начало работы
     * @param begin - время в минутах с начала точки отсчета 2007
     */
    public void setBegin(Date begin) {
        if(getDetails().begin ==  null
                || !getDetails().begin.equals(begin)) {
            getDetails().begin = begin;
            fireContentStateEvent();
        }
    }

    /**
     * Возвращает продожительность работы в минутах
     * @return минуты
     */
    public int getWorkDuration() {
        return getDetails().workDuration;
    }

    /**
     * Задает продолжительность работы в минутах
     * @param workDuration минуты
     */
    public void setWorkDuration(int workDuration) {
        if(getDetails().workDuration != workDuration) {
            getDetails().workDuration = workDuration;
            fireContentStateEvent();
        }
    }

    /**
     * Возвращает тип работы по справочнику
     * @return элемент справочника
     * @throws cli_fmw.delegate.exception.ClipsException
     */
    public DirectoryWorkTypeItem getType() throws ClipsException {
        DirectoryWorkType workTypes = (DirectoryWorkType)
                DirectoryLocator.getDirectory(DirectoryWorkType.class, false);
        return workTypes.getItemFromID(getDetails().typeID);
    }

    /**
     * Задает тип работы по справочнику
     * @param type элемент справочника
     */
    public void setType(DirectoryWorkTypeItem type) {
        if(getDetails().typeID != type.getID()) {
            getDetails().typeID = type.getID();
            fireContentStateEvent();
        }
    }

    /**
     * Возвращает дефолтовое время приема для данной работы
     * @return время приема в минутах
     */
    public int getDefaultServiceDuration() {
        return getDetails().defaultServiceDuration;
    }

    /**
     * Задает дефолтовое время приема для данной работы в минутах
     * @param defaultServiceDuration минуты
     */
    public void setDefaultServiceDuration(int defaultServiceDuration) {
        if(getDetails().defaultServiceDuration != defaultServiceDuration) {
            getDetails().defaultServiceDuration = defaultServiceDuration;
            fireContentStateEvent();
        }
    }

    /**
     * Возвращает кабинет, где проводится данная работа
     * @return элемент справочника
     * @throws ClipsException
     */
    public DirectoryCabinetItem getCabinet() throws ClipsException {
        DirectoryCabinet cabinets = DirectoryLocator.getDirectory(DirectoryCabinet.class, false);
        return cabinets.getItemFromID(getDetails().cabinetID);
    }

    /**
     * Задает кабинет, где проводится данная работа
     * @param cabinet элемент справочника
     */
    public void setCabinet(DirectoryCabinetItem cabinet) {
        if (cabinet == null || cabinet.getID() == 0) {
            getDetails().cabinetID = 0;
            fireContentStateEvent();
        } else if (getDetails().cabinetID != cabinet.getID()) {
            getDetails().cabinetID = cabinet.getID();
            fireContentStateEvent();
        }
    }
}
TOP

Related Classes of clips.delegate.shedule.individual.SheduleIndividualData

TOP
Copyright © 2018 www.massapi.com. 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.