Package beans.expenditure

Source Code of beans.expenditure.ExpenditureBean

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

package beans.expenditure;

import framework.beans.SecuredBean;
import framework.beans.security.BeanRights;
import beans.directory.service.entity.Service;
import beans.expenditure.entity.ExpenditureDefault;
import beans.expenditure.entity.ExpenditureDetails;
import beans.directory.expenditure.entity.ExpenditureType;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import javax.ejb.EJBException;
import javax.ejb.Stateful;
import beans.UserRightsSet; import framework.security.RightChecker;

/**
* Бин контролирует дефолтовые расходные материалы
* @security - Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/ExpenditureBean")
public class ExpenditureBean extends SecuredBean implements ExpenditureBeanRemote {

    public static int COMMAND_WRITE_EXPENDITURE = 0;
   /**
     * Возвращает список расходных материалов
     * @return список расходных материалов
     */
    @Override
    public List<ExpenditureDetails> getExpenditureList(int serviceID) throws ClipsServerException {
        Service service = findEntity(Service.class, serviceID);
        Collection<ExpenditureDefault> list = findEntityList(ExpenditureDefault.class, "service", service);
        List<ExpenditureDetails> res = new ArrayList<ExpenditureDetails>();
        Iterator<ExpenditureDefault> i = list.iterator();
        while(i.hasNext()) {
            ExpenditureDefault j = (ExpenditureDefault) i.next();
            res.add(j.getDetails((RightChecker) this));
        }
        return res;        
    }

    @Override
    protected void initBeanRights() {
        int [] r = new int [1];
        r[COMMAND_WRITE_EXPENDITURE] = RightPresence(UserRightsSet.WRITE_EXPENDITURE_DEFAULT.id);
        rights = new BeanRights(r);
    }
   
     /**
     * Добавляет или обновляет расходные материалы. Если details.id = 0 сущность создается,
     * иначе обновляется существующая с заданным идентификатором.
     * @param details данные
     * @return идентификатор сущности
     * @throws EJBException в случае если обновление отвергнуто системой
     *          безопастности либо произошла ошибка     *
     */
    @Override
    public int setExpenditure(ExpenditureDetails details) throws ClipsServerException {
        checkCommandAccessibility(COMMAND_WRITE_EXPENDITURE);
        ExpenditureDefault exp = null;
       
        if(details.id != 0) {
            exp = findEntity(ExpenditureDefault.class, details.id);
            if(details.parentID != exp.getService().getId()) {
                throw new EDataIntegrity("Подмена услуги запрещена");
            }
        } else {
            exp = new ExpenditureDefault();
            exp.setService(findEntity(Service.class, details.parentID));
        }       
       
        exp.setQuantity(details.quantity);
        exp.setType(findEntity(ExpenditureType.class, details.expenTypeID));
       
        return saveEntity(exp);
    }
       
    /**
     * Удаляет расходные материалы.
     * @param id идентификатор
     * @throws EJBException в случае если обновление отвергнуто системой
     *          безопастности либо произошла ошибка     *
     */
    @Override
    public void removeExpenditure(int id) throws ClipsServerException {
        checkCommandAccessibility(COMMAND_WRITE_EXPENDITURE);
        ExpenditureDefault exp = findEntity(ExpenditureDefault.class, id);
        removeEntity(exp);
    }      
}
TOP

Related Classes of beans.expenditure.ExpenditureBean

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.