Package beans.profcheckup

Source Code of beans.profcheckup.ProfcheckupBean

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

package beans.profcheckup;

import framework.beans.EntityDetails;
import framework.beans.FacadeBean;
import framework.beans.security.BeanRights;
import beans.profcheckup.entity.Profcheckup;
import beans.profcheckup.entity.ProfcheckupDetails;
import beans.profcheckup.entity.ProfcheckupItem;
import beans.profcheckup.entity.ProfcheckupItemDetails;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import javax.ejb.Stateful;
import beans.UserRightsSet;import framework.audit.AuditDoc;
import framework.security.RightChecker;
import framework.security.UserRight;
import java.util.Date;

/**
* @security - Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/ProfcheckupBean")
public class ProfcheckupBean extends FacadeBean<Profcheckup>
        implements ProfcheckupBeanRemote {
   
    public static final UserRight RIGHT_CREATION = UserRightsSet.WRITE_PROFCHECKUP;
    public static int COMMAND_READ_PROFCHECKUP_ITEM = 4;

    public ProfcheckupBean() {
        super(Profcheckup.class);
    }

    @Override
    protected void initBeanRights() {
        int [] r = new int[5];
        r[COMMAND_READ] = RightPresence(UserRightsSet.READ_PROFCHECKUP.id);
        int cmr = RightPresence(UserRightsSet.WRITE_PROFCHECKUP.id);
        r[COMMAND_CREATE] = cmr;
        r[COMMAND_MODIFY] = cmr;
        r[COMMAND_REMOVE] = cmr;
        r[COMMAND_READ_PROFCHECKUP_ITEM] = RightPresence(UserRightsSet.READ_PROFCHECKUP_ITEM.id);
       
        rights = new BeanRights(r);
    }
   
    /**
     * Обновляет данные сущности.
     * @param details новые детали сущности
     * @throws ClipsServerException
     * @return идентификатор сущности
     */
    @Override
    protected void onUpdate(Profcheckup entity, EntityDetails details,
            AuditDoc auditDoc, List<AuditDoc> auditDocList) throws ClipsServerException{
        // TODO - Можно редактировать! Но надо додумать
//        throw new EDataIntegrity("Прямое редактирование профосмотров запрещено");
        ProfcheckupDetails d = (ProfcheckupDetails) details;
        if (d.dateFrom.after(d.dateTill)){
            throw new EDataIntegrity("Время окончания профосмотра не может быть меньше времени его начала");
        }

        entity.setDatefrom(d.dateFrom);
        entity.setDatetill(d.dateTill);
        entity.setDescription(d.description);
    }

    @Override
    protected void onRemove(Profcheckup entity, List<AuditDoc> audit) throws ClipsServerException {
        //можно удалить, но только когда удалены все итемы
        //вообще говоря человек удаляя профосмотр вряд ли хочет лезть и чистить всё ручками,
        //проблема в том, что услуги уже назначены, и возможно оплачены
        //но! транзакций по ним ещо нет! поэтому ща будем удалять каскадом
        ProfcheckupItemBeanRemote pibr = getBean(ProfcheckupItemBean.class);
//        ProfcheckupItemBeanRemote pibr = getBean(ProfcheckupItemBeanRemote.class, getSessionId());
        List contracts = findEntityList(ProfcheckupItem.class, "profcheckup", entity);
        Iterator i = contracts.iterator();
        while(i.hasNext()) {
            ProfcheckupItem j = (ProfcheckupItem) i.next();
            pibr.initByID(j.getId(), getSessionId());
            pibr.remove();
        }
//        throw new EDataIntegrity("Прямое редактирование профосмотров запрещено");
    }

    /**
     * Возвращает список итемов
     * @return список услуг договора
     */   
    @Override
    public List<ProfcheckupItemDetails> getItems() throws ClipsServerException {
        checkCommandAccessibility(COMMAND_READ_PROFCHECKUP_ITEM);
        Profcheckup entity = getExistentEntity();
       
        List contracts = findEntityList(ProfcheckupItem.class, "profcheckup", entity);
        List<ProfcheckupItemDetails> res = new ArrayList<ProfcheckupItemDetails>();
        Iterator i = contracts.iterator();
        while(i.hasNext()) {
            ProfcheckupItem j = (ProfcheckupItem) i.next();
            res.add(j.getDetails((RightChecker) this));
        }
        return res; 
    }

   
}
TOP

Related Classes of beans.profcheckup.ProfcheckupBean

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.