Package framework.beans.directory.enterprise

Source Code of framework.beans.directory.enterprise.DirectoryEnterpriseBeanAbstract

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

package framework.beans.directory.enterprise;

import framework.beans.directory.DirectoryBean;
import framework.beans.address.entities.Address;
import framework.beans.address.entities.AddressDetails;
import framework.beans.address.entities.AddressObject;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import framework.security.UserRight;
import framework.security.UserRightsSetAbstract;

/**
* @param <DEN>
* @param <DETAILSTYPE>
* @security -Ok.
* @author axe
*/

public abstract class DirectoryEnterpriseBeanAbstract<DEN extends EnterpriseAbstract<DETAILSTYPE>, DETAILSTYPE extends EnterpriseDetailsAbstract> extends DirectoryBean<DEN, DETAILSTYPE>
        implements DirectoryEnterpriseBeanRemoteAbstract<DETAILSTYPE> {
   
    public DirectoryEnterpriseBeanAbstract(Class<DEN> enityClass) {
        super(enityClass, "предприятие");
    }

    @Override
    protected UserRight getRightForCreateDirectoryItem() {
        return UserRightsSetAbstract.CREATE_DIRECTORY_COMMON_ITEM;
    }

    @Override
    protected UserRight getRightForWriteToDirectory() {
        return UserRightsSetAbstract.CREATE_DIRECTORY_COMMON_ITEM;
    }


    @Override
    protected void set(DEN enterprise, DETAILSTYPE details) throws ClipsServerException {
         enterprise.setTitle(details.title);
       
        AddressDetails add = details.address;
        if(add == null || add.objectId == 0) {
            enterprise.setAddress(null);
        }else{
            Address address = enterprise.getAddress();
            if (address == null) {
                address = new Address();
            }
            saveAddress(address, details.address);
            enterprise.setAddress(address);
        }
       
        if(enterprise.getId() > 0) {
            if(details.parentItem > 0) {
                if(enterprise.getDepartament() == null
                    || details.parentItem != enterprise.getDepartament().getId()) {
                    throw new EDataIntegrity("Нельзя изменять структуру дерева предприятий");               
                }
            } else {
                if(enterprise.getDepartament() != null) {               
                    throw new EDataIntegrity("Нельзя изменять структуру дерева предприятий");               
                }
            }
        }
       
        DEN        parent = null;
        if(details.parentItem > 0) {
            parent = findEntity(getEntityClass(), details.parentItem);
        }
        enterprise.setDepartament(parent);

        enterprise.setOkved(details.okved == null ? "" : details.okved);
    }

    @Override
    protected void afterUpdate(DEN entity) throws ClipsServerException {
        EnterpriseAbstract enterprise = (EnterpriseAbstract) entity;
        EnterpriseAbstract parent = enterprise.getDepartament();
        enterprise.setTreePath(((parent != null) ? parent.getTreePath() : "")
             + enterprise.getId()  + ".");
        saveEntity(enterprise);
    }
   
    private void saveAddress(Address address, AddressDetails details) throws ClipsServerException {
        address.setBuilding(details.building);
        address.setFlat(details.flat);
        address.setAddressObject(findEntity(AddressObject.class, details.objectId));
        saveEntity(address);
    }

   
}
TOP

Related Classes of framework.beans.directory.enterprise.DirectoryEnterpriseBeanAbstract

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.