gt:             throw new ZMessManager().new FindingException(
context: package com.moneyprivate.control;
  
  import java.util.ArrayList;
  import java.util.Date;
  import java.util.List;
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.context.annotation.Scope;
  import org.springframework.stereotype.Service;
  import org.springframework.transaction.annotation.Propagation;
  import org.springframework.transaction.annotation.Transactional;
  
  import com.dataaccess.dao.ITa1020TipoCuentaDAO;
  import com.exceptions.ZMessManager;
  import com.moneyprivate.Ta0010Usuario;
  import com.moneyprivate.Ta0050Opciones;
  import com.moneyprivate.Ta1020TipoCuenta;
  import com.moneyprivate.dto.Ta1020TipoCuentaDTO;
  import com.utilities.Utilities;
  
  
  /**
  * @author Zathura Code Generator http://code.google.com/p/zathura/
  *
  */
  @Scope("singleton")
  @Service("Ta1020TipoCuentaLogic")
  public class Ta1020TipoCuentaLogic implements ITa1020TipoCuentaLogic {
      /**
       * DAO injected by Spring that manages Ta1020TipoCuenta entities
       *
       */
      @Autowired
      private ITa1020TipoCuentaDAO ta1020TipoCuentaDAO;
  
      /**
      * Logic injected by Spring that manages Ta0050Opciones entities
      *
      */
      @Autowired
      ITa0050OpcionesLogic logicTa0050Opciones1;
  
      /**
      * Logic injected by Spring that manages Ta0050Opciones entities
      *
      */
      @Autowired
      ITa0050OpcionesLogic logicTa0050Opciones2;
  
      @Autowired
      ISeguridadLogic iSeguridadLogic;
      
      @Transactional(readOnly = true)
      public List<Ta1020TipoCuenta> getTa1020TipoCuenta()
          throws Exception {
          List<Ta1020TipoCuenta> list = new ArrayList<Ta1020TipoCuenta>();
  
          try {
              list = ta1020TipoCuentaDAO.findAll();
          } catch (Exception e) {
              throw new ZMessManager().new GettingException(ZMessManager.ALL +
                  "Ta1020TipoCuenta");
          } finally {
          }
  
          return list;
      }
  
      @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
      public void saveTa1020TipoCuenta(Ta1020TipoCuenta entity)
          throws Exception {
          try {
              if (entity == null) {
                  throw new ZMessManager().new NullEntityExcepcion(
                      "Ta1020TipoCuenta");
              }
              
              if(entity.getTa0010Usuario() == null){
              	throw new ZMessManager().new ForeignException("usuario");
              }
  
              if (entity.getTa0050OpcionesByF1020IndTipoNaturaleza() == null) {
                  throw new ZMessManager().new ForeignException("Tipo naturaleza");
              }
  
              if ((entity.getF1020Descripcion() != null) && (Utilities.checkWordAndCheckWithlength(entity.getF1020Descripcion(), 200) == false)) {
                  throw new ZMessManager().new NotValidFormatException("Descripcion");
              }
  
              if (entity.getF1020Id() == null) {
                  throw new ZMessManager().new EmptyFieldException("Id");
              }
  
              if ((entity.getF1020Id() != null) &&
                      (Utilities.checkWordAndCheckWithlength(
                          entity.getF1020Id(), 4) == false)) {
                  throw new ZMessManager().new NotValidFormatException("Id");
              }
  
              if (entity.getTa0050OpcionesByF1020IndTipoNaturaleza().getTa1020TipoCuentasForF1020IndTipoNaturaleza() == null) {
                  throw new ZMessManager().new EmptyFieldException("Tipo naturaleza");
              }
  
              ta1020TipoCuentaDAO.save(entity);
          } catch (Exception e) {
              throw e;
          } finally {
          }
      }
  
      @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
      public void deleteTa1020TipoCuenta(Ta1020TipoCuenta entity)
          throws Exception {
          if (entity == null) {
              throw new ZMessManager().new NullEntityExcepcion("Ta1020TipoCuenta");
          }
  
          if (entity.getF1020Rowid() == null) {
              throw new ZMessManager().new EmptyFieldException("f1020Rowid");
          }
  
          try {
              ta1020TipoCuentaDAO.delete(entity);
          } catch (Exception e) {
              throw e;
          } finally {
          }
      }
  
      @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
      public void updateTa1020TipoCuenta(Ta1020TipoCuenta entity)
          throws Exception {
          try {
              if (entity == null) {
                  throw new ZMessManager().new NullEntityExcepcion(
                      "Ta1020TipoCuenta");
              }
  
              if(entity.getTa0010Usuario() == null){
              	throw new ZMessManager().new ForeignException("usuario");
              }
              
              if (entity.getTa0050OpcionesByF1020IndTipoNaturaleza() == null) {
                  throw new ZMessManager().new ForeignException("Tipo naturaleza");
              }
              
              if (entity.getTa0050OpcionesByF1020IndTipoNaturaleza().getTa1020TipoCuentasForF1020IndTipoNaturaleza() == null) {
                  throw new ZMessManager().new EmptyFieldException("Tipo naturaleza");
              }
  
              if ((entity.getF1020Descripcion() != null) &&
                      (Utilities.checkWordAndCheckWithlength(
                          entity.getF1020Descripcion(), 200) == false)) {
                  throw new ZMessManager().new NotValidFormatException(
                      "Descripcion");
              }
  
              if (entity.getF1020Id() == null) {
                  throw new ZMessManager().new EmptyFieldException("Id");
              }
  
              if ((entity.getF1020Id() != null) &&
                      (Utilities.checkWordAndCheckWithlength(
                          entity.getF1020Id(), 4) == false)) {
                  throw new ZMessManager().new NotValidFormatException("Id");
              }
  
              if (entity.getF1020Rowid() == null) {
                  throw new ZMessManager().new EmptyFieldException("f1020Rowid");
              }
  
              ta1020TipoCuentaDAO.update(entity);
          } catch (Exception e) {
              throw e;
          } finally {
          }
      }
  
      @Transactional(readOnly = true)
      public List<Ta1020TipoCuentaDTO> getDataTa1020TipoCuenta()
          throws Exception {
          try {
          	
              List<Ta1020TipoCuentaDTO> ta1020TipoCuentaDTO = new ArrayList<Ta1020TipoCuentaDTO>();
              
          	//consulta los tipos de cuentas del usuario.
          	Ta0010Usuario ta0010Usuario = iSeguridadLogic.getUsuarioLogin();
          	List<Ta1020TipoCuenta> ta1020TipoCuenta = new ArrayList<Ta1020TipoCuenta>();
          	
          	if (ta0010Usuario != null && ta0010Usuario.getF0010Rowid() != null){
          		Object[] variables = {"ta0010Usuario.f0010Rowid", false, ta0010Usuario.getF0010Rowid(),"=" };
              	ta1020TipoCuenta = findByCriteria(variables, null, null);
          	}
  
              for (Ta1020TipoCuenta ta1020TipoCuentaTmp : ta1020TipoCuenta) {
                  Ta1020TipoCuentaDTO ta1020TipoCuentaDTO2 = new Ta1020TipoCuentaDTO();
  
                  ta1020TipoCuentaDTO2.setF1020Rowid(ta1020TipoCuentaTmp.getF1020Rowid());
                  ta1020TipoCuentaDTO2.setF1020Descripcion((ta1020TipoCuentaTmp.getF1020Descripcion() != null) ? ta1020TipoCuentaTmp.getF1020Descripcion() : null);
                  ta1020TipoCuentaDTO2.setF1020Id((ta1020TipoCuentaTmp.getF1020Id() != null) ? ta1020TipoCuentaTmp.getF1020Id() : null);
                  ta1020TipoCuentaDTO2.setF1020IndTipoNaturaleza((ta1020TipoCuentaTmp.getTa0050OpcionesByF1020IndTipoNaturaleza().getF0050Rowid() != null) ? ta1020TipoCuentaTmp.getTa0050OpcionesByF1020IndTipoNaturaleza().getF0050Rowid() : null);
                  ta1020TipoCuentaDTO2.setF1020IndEstado((ta1020TipoCuentaTmp.getTa0050OpcionesByF1020IndEstado().getF0050Rowid() != null) ? ta1020TipoCuentaTmp.getTa0050OpcionesByF1020IndEstado().getF0050Rowid() : null);
                  ta1020TipoCuentaDTO2.setF1020RowidUsuario((ta1020TipoCuentaTmp.getTa0010Usuario().getF0010Rowid() != null ) ? ta1020TipoCuentaTmp.getTa0010Usuario().getF0010Rowid() : null); 
  
                  ta1020TipoCuentaDTO.add(ta1020TipoCuentaDTO2);
              }
  
              return ta1020TipoCuentaDTO;
          } catch (Exception e) {
              throw e;
          }
      }
  
      @Transactional(readOnly = true)
      public Ta1020TipoCuenta getTa1020TipoCuenta(Integer f1020Rowid)
          throws Exception {
          Ta1020TipoCuenta entity = null;
  
          try {
              entity = ta1020TipoCuentaDAO.findById(f1020Rowid);
          } catch (Exception e) {
              throw new ZMessManager().new FindingException("Ta1020TipoCuenta");
          } finally {
          }
  
          return entity;
      }
  
      @Transactional(readOnly = true)
      public List<Ta1020TipoCuenta> findPageTa1020TipoCuenta(
          String sortColumnName, boolean sortAscending, int startRow,
          int maxResults) throws Exception {
          List<Ta1020TipoCuenta> entity = null;
  
          try {
              entity = ta1020TipoCuentaDAO.findPage(sortColumnName,
                      sortAscending, startRow, maxResults);
          } catch (Exception e) {
  