예제 #1
0
        private bool validarExistencia(ModeloEntidad p_mod_entidad)
        {
            //Revisa que no exista CUIT
            if (!string.IsNullOrEmpty(p_mod_entidad.cuit))
            {
                List <ModeloEntidad> lcl_lst_mod_entidades = ControladorBusqueda.buscar(p_mod_entidad, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.Entidades.Cuit);
                foreach (ModeloEntidad e in lcl_lst_mod_entidades)
                {
                    if (e.codigo != p_mod_entidad.codigo)
                    {
                        errorActual = "El CUIT indicado ya existe";
                        return(false);
                    }
                }
            }
            //Revisa que no exista DNI
            if (p_mod_entidad.GetType() != typeof(ModeloProveedor))
            {
                List <ModeloPersonas> lcl_lst_mod_personas = ControladorBusqueda.buscar(p_mod_entidad as ModeloPersonas, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.Entidades.Personas.Dni);
                foreach (ModeloPersonas p in lcl_lst_mod_personas)
                {
                    if (p.codigo != p_mod_entidad.codigo)
                    {
                        errorActual = "El DNI indicado ya existe";
                        return(false);
                    }
                }
            }
            //Revisa que no exista Razón Social
            if (p_mod_entidad.GetType() == typeof(ModeloProveedor))
            {
                //Se hace una búsqueda con el resultado porque la busqueda por razón social retorna proveedores con razon social parecida, no unicamente igual
                List <ModeloProveedor> lcl_lst_mod_proveedores = ControladorBusqueda.buscar(p_mod_entidad as ModeloProveedor, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.Entidades.Proveedores.RazonSocial);
                foreach (ModeloProveedor p in lcl_lst_mod_proveedores)
                {
                    if (p.razonSocial == (p_mod_entidad as ModeloProveedor).razonSocial && p.codigo != p_mod_entidad.codigo)
                    {
                        errorActual = "La Razón Social indicada ya existe";
                        return(false);
                    }
                }
            }
            //Revisa que no exista Usuario
            if (p_mod_entidad.GetType() == typeof(ModeloUsuario))
            {
                List <ModeloUsuario> lcl_lst_mod_usuarios = ControladorBusqueda.buscar(p_mod_entidad as ModeloUsuario, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.Entidades.Personas.Usuarios.Usuario);
                foreach (ModeloUsuario u in lcl_lst_mod_usuarios)
                {
                    if (u.codigo != p_mod_entidad.codigo)
                    {
                        errorActual = "El usuario indicado ya existe";
                        return(false);
                    }
                }
            }

            return(true);
        }
        /// <summary>
        /// Busca entidades (o alguno de sus derivados) que cumplan con un parámetro de búsqueda.
        /// </summary>
        /// <param name="p_mod_entidad">modelo con variable a buscar inicializada con algún valor</param>
        /// <param name="p_paramentroBusqueda">Constante dentro de LibreriaClasesCompartidas.Constantes.ParametrosBusqueda</param>
        /// <returns>Lista de modeloEntidad (o alguno de sus derivados)</returns>
        public static List <ModeloEntidad> buscar(ModeloEntidad p_mod_entidad, string p_paramentroBusqueda)
        {
            Type T = p_mod_entidad.GetType();
            CatalogoEntidades lcl_catalogo;

            if (T == typeof(ModeloCliente))
            {
                lcl_catalogo = new CatalogoClientes();
            }
            else if (T == typeof(ModeloUsuario))
            {
                lcl_catalogo = new CatalogoUsuarios();
            }
            else if (T == typeof(ModeloContactoProveedor))
            {
                lcl_catalogo = new CatalogoContactoProveedores();
            }
            else if (T == typeof(ModeloProveedor))
            {
                lcl_catalogo = new CatalogoProveedores();
            }
            else if (T == typeof(ModeloPersonas))
            {
                lcl_catalogo = new CatalogoPersonas();
            }
            else
            {
                lcl_catalogo = new CatalogoEntidades();
            }

            return(lcl_catalogo.buscar(p_mod_entidad, p_paramentroBusqueda).ToList());
        }
예제 #3
0
        public bool eliminar(ModeloEntidad p_mod_entidad)
        {
            Type T = p_mod_entidad.GetType();
            CatalogoEntidades lcl_catalogo;

            if (T == typeof(ModeloCliente))
            {
                lcl_catalogo = new CatalogoClientes();
            }
            else if (T == typeof(ModeloUsuario))
            {
                lcl_catalogo = new CatalogoUsuarios();
            }
            else if (T == typeof(ModeloContactoProveedor))
            {
                lcl_catalogo = new CatalogoContactoProveedores();
            }
            else if (T == typeof(ModeloProveedor))
            {
                lcl_catalogo = new CatalogoProveedores();
            }
            else if (T == typeof(ModeloPersonas))
            {
                lcl_catalogo = new CatalogoPersonas();
            }
            else
            {
                lcl_catalogo = new CatalogoEntidades();
            }
            bool respuesta = false;

            errorActual = "No se ha podido realizar la eliminación.";
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_catalogo.remove(p_mod_entidad);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                switch (ex.Number)
                {
                case 547:
                    if (T == typeof(ModeloCliente))
                    {
                        errorActual = "No es posible eliminar cliente ya que tiene pedidos asociados.";
                    }
                    else if (T == typeof(ModeloContactoProveedor))
                    {
                        errorActual = "No es posible eliminar contacto de proveedor ya que tiene pedidos asociados.";
                    }
                    else if (T == typeof(ModeloProveedor))
                    {
                        errorActual = "No es posible eliminar proveedor ya que tiene artículos asociados.";
                    }
                    else
                    {
                        errorActual = "No es posible realizar la eliminación.";
                    }

                    break;

                default:
                    errorActual = "SQLexception Message: " + ex.Message;
                    break;
                }
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }
예제 #4
0
        public bool modificar(ModeloEntidad p_mod_entidad)
        {
            Type T = p_mod_entidad.GetType();
            CatalogoEntidades lcl_catalogo;

            if (T == typeof(ModeloCliente))
            {
                lcl_catalogo = new CatalogoClientes();
            }
            else if (T == typeof(ModeloUsuario))
            {
                lcl_catalogo = new CatalogoUsuarios();
            }
            else if (T == typeof(ModeloContactoProveedor))
            {
                lcl_catalogo = new CatalogoContactoProveedores();
            }
            else if (T == typeof(ModeloProveedor))
            {
                lcl_catalogo = new CatalogoProveedores();
            }
            else if (T == typeof(ModeloPersonas))
            {
                lcl_catalogo = new CatalogoPersonas();
            }
            else
            {
                lcl_catalogo = new CatalogoEntidades();
            }

            if (!this.validarExistencia(p_mod_entidad))
            {
                return(false);
            }
            bool respuesta = false;

            errorActual = "No se ha podido realizar la modificación.";
            try
            {
                ModeloEntidad lcl_m = lcl_catalogo.getOne(p_mod_entidad.codigo);
                if (lcl_m == null)//en el caso que no exista la entidad que se esta buscando
                {
                    errorActual = "Ha surgido un error inesperado";
                    return(false);
                }
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_catalogo.update(lcl_m, p_mod_entidad);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                errorActual = "SQLexception Message: " + ex.Message;
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }
예제 #5
0
        /// <summary>
        /// Se comunica con la capa de datos para realizar INSERT en la base de datos. Acepta modeloEntidad o cualquiera de sus descendientes.
        /// </summary>
        /// <param name="p_mod_entidad"></param>
        /// <returns>true si se ha insertado, false y excepción si ha habido fallo</returns>
        public bool agregar(ModeloEntidad p_mod_entidad)
        {
            Type T = p_mod_entidad.GetType();
            CatalogoEntidades lcl_catalogo;

            if (T == typeof(ModeloCliente))
            {
                lcl_catalogo = new CatalogoClientes();
            }
            else if (T == typeof(ModeloUsuario))
            {
                lcl_catalogo = new CatalogoUsuarios();
            }
            else if (T == typeof(ModeloContactoProveedor))
            {
                lcl_catalogo = new CatalogoContactoProveedores();
            }
            else if (T == typeof(ModeloProveedor))
            {
                lcl_catalogo = new CatalogoProveedores();
            }
            else if (T == typeof(ModeloPersonas))
            {
                lcl_catalogo = new CatalogoPersonas();
            }
            else
            {
                lcl_catalogo = new CatalogoEntidades();
            }
            if (!this.validarExistencia(p_mod_entidad))
            {
                return(false);
            }
            bool respuesta = false;

            //errorActual = "No se ha podido realizar al operación.";
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_catalogo.add(ref p_mod_entidad);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                errorActual = "SQLexception Message: " + ex.Message;
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }