public bool findPendiente(string cedula)
        {
            Conexion unaCon = new Conexion();

            SqlConnection cn = unaCon.CrearConexion();

            SqlCommand cmd = new SqlCommand(@"SELECT P.*
                 FROM Proyectos P
                 WHERE P.Estado='PENDIENTE' AND P.Cedula=@Cedula;", cn);

            cmd.Parameters.AddWithValue("@Cedula", cedula);
            try
            {
                if (unaCon.AbrirConexion(cn))
                {
                    SqlDataReader dr = cmd.ExecuteReader();

                    while (dr.Read())
                    {
                        return(true);
                    }
                    return(false);
                }
                return(false);
            }

            catch (SqlException ex)
            {
                return(false);
            }
            catch (Exception ex)
            {
                return(false);
            }

            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
예제 #2
0
        public int getTasaByCuota(int cuota)
        {
            Conexion      unaCon = new Conexion();
            SqlConnection cn     = unaCon.CrearConexion();
            int           tasa   = 0;

            try
            {
                if (cuota > 0)
                {
                    tasa = getTasaByCuota(cuota);
                }
                return(tasa);
            }

            catch (Exception ex)
            {
                return(0);
            }
            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
예제 #3
0
        public bool Agregar(int clienteid, string nombre, string apellido, string telefono, string email, string direccion, string cuil, string razonsocial, string tipo)
        {
            bool Agre = false;

            try
            {
                conex.AbrirConexion();
                MySqlCommand Comando = conex.CrearComando();
                Comando.CommandText = "INSERT INTO clientes(clienteid,nombre,apellido,telefono,email,direccion,cuil,razonsocial,tipo) VALUES (DEFAULT,@nombre,@apellido,@telefono,@email,@direccion,@cuil,@razonsocial,@tipo)";
                Comando.Parameters.Add("@nombre", MySqlDbType.VarChar);
                Comando.Parameters["@nombre"].Value = nombre;
                Comando.Parameters.Add("@apellido", MySqlDbType.VarChar);
                Comando.Parameters["@apellido"].Value = apellido;
                Comando.Parameters.Add("@telefono", MySqlDbType.VarChar);
                Comando.Parameters["@telefono"].Value = telefono;
                Comando.Parameters.Add("@email", MySqlDbType.VarChar);
                Comando.Parameters["@email"].Value = email;
                Comando.Parameters.Add("@direccion", MySqlDbType.VarChar);
                Comando.Parameters["@direccion"].Value = direccion;
                Comando.Parameters.Add("@cuil", MySqlDbType.VarChar);
                Comando.Parameters["@cuil"].Value = cuil;
                Comando.Parameters.Add("@razonsocial", MySqlDbType.VarChar);
                Comando.Parameters["@razonsocial"].Value = razonsocial;
                Comando.Parameters.Add("@tipo", MySqlDbType.VarChar);
                Comando.Parameters["@tipo"].Value = tipo;
                Comando.Prepare();
                Comando.ExecuteNonQuery();
                Agre = true;
            }
            catch (Exception Ex)
            {
                throw new Exception(Ex.Message);
            }
            finally { conex.CerrarConexion(); }
            return(Agre);
        }
        public IEnumerable <Proyecto> ProyectosPorUsuario(string cedula)
        {
            Conexion unaCon = new Conexion();

            SqlConnection cn = unaCon.CrearConexion();

            SqlCommand cmd = new SqlCommand(@"SELECT P.Id,P.Cedula,P.Titulo,P.Descripcion,P.Monto,P.Cuotas,
              P.NombreImagen,P.Estado,P.FechaPresentacion,P.Puntaje,P.TasaInteres,P.Tipo,PE.Experiencia,C.CantIntegrantes
                 FROM Proyectos P
                 LEFT JOIN Personales PE ON P.Id = PE.Id 
                 LEFT JOIN Cooperativos C ON P.Id = C.Id
                 WHERE P.Cedula=@cedula;", cn);

            cmd.Parameters.AddWithValue("@cedula", cedula);

            // JOIN LEFT mágico para poder traer la tabla completa

            try
            {
                if (unaCon.AbrirConexion(cn))
                {
                    SqlDataReader   dr             = cmd.ExecuteReader();
                    List <Proyecto> listaProyectos = new List <Proyecto>();
                    while (dr.Read())
                    {
                        RepositorioProyectos repoProyectos = new RepositorioProyectos();
                        if (dr["Tipo"].ToString() == "PERSONAL")
                        {
                            listaProyectos.Add(new Personal
                            {
                                id = (int)dr["Id"],
                                //cedula
                                titulo            = (string)dr["Titulo"],
                                descripcion       = (string)dr["Descripcion"],
                                monto             = (decimal)dr["Monto"],
                                cuotas            = (int)dr["Cuotas"],
                                rutaImagen        = (string)dr["NombreImagen"],
                                estado            = (string)dr["Estado"],
                                fechaPresentacion = (DateTime)dr["FechaPresentacion"],
                                puntaje           = (int)dr["Puntaje"],
                                tasaInteres       = (decimal)dr["TasaInteres"],
                                experiencia       = (string)dr["Experiencia"]
                            });
                        }

                        else if (dr["Tipo"].ToString() == "COOPERATIVO")
                        {
                            listaProyectos.Add(new Cooperativo

                            {
                                id = (int)dr["Id"],
                                //cedula
                                titulo            = (string)dr["Titulo"],
                                descripcion       = (string)dr["Descripcion"],
                                monto             = (decimal)dr["Monto"],
                                cuotas            = (int)dr["Cuotas"],
                                rutaImagen        = (string)dr["NombreImagen"],
                                estado            = (string)dr["Estado"],
                                fechaPresentacion = (DateTime)dr["FechaPresentacion"],
                                puntaje           = (int)dr["Puntaje"],
                                tasaInteres       = (decimal)dr["TasaInteres"],
                                cantIntegrantes   = (int)dr["CantIntegrantes"],
                            });
                        }
                    }
                    return(listaProyectos);
                }
                return(null);
            }
            catch (SqlException ex)
            {
                return(null);
            }
            catch (Exception ex)
            {
                return(null);
            }

            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
        public bool Add(Proyecto unProyecto)
        {
            //Tendría todo el código de ADO.NET para hacer el INSERT  a través de comandos.

            if (unProyecto == null || !unProyecto.Validar())
            {
                return(false);
            }
            Conexion      unaCon = new Conexion();
            SqlConnection cn     = unaCon.CrearConexion();
            SqlCommand    cmd    = new SqlCommand("INSERT INTO Proyectos VALUES (@Cedula,@Titulo,@Descripcion,@Monto,@Cuotas,@NombreImagen,@Estado,@FechaPresentacion,@Puntaje,@TasaInteres,@Tipo);SELECT CAST(SCOPE_IDENTITY() AS INT)", cn);

            cmd.Parameters.Add(new SqlParameter("@Cedula", unProyecto.solicitante.cedula));
            cmd.Parameters.Add(new SqlParameter("@Titulo", unProyecto.titulo));
            cmd.Parameters.Add(new SqlParameter("@Descripcion", unProyecto.descripcion));
            cmd.Parameters.Add(new SqlParameter("@Monto", unProyecto.monto));
            cmd.Parameters.Add(new SqlParameter("@Cuotas", unProyecto.cuotas));
            cmd.Parameters.Add(new SqlParameter("@NombreImagen", unProyecto.rutaImagen));
            cmd.Parameters.Add(new SqlParameter("@Estado", unProyecto.estado));
            cmd.Parameters.Add(new SqlParameter("@fechaPresentacion", unProyecto.fechaPresentacion));
            cmd.Parameters.Add(new SqlParameter("@Puntaje", unProyecto.puntaje));
            cmd.Parameters.Add(new SqlParameter("@TasaInteres", unProyecto.tasaInteres));
            cmd.Parameters.Add(new SqlParameter("@Tipo", unProyecto.GetType().Name.ToUpper()));

            SqlCommand cmd2 = new SqlCommand();

            cmd2.Connection = cn;
            SqlTransaction trn = null;

            try
            {
                if (unaCon.AbrirConexion(cn))
                {
                    //Inicia la transacción
                    trn = cn.BeginTransaction();
                    //Asignarle la transacción a cada uno de los comandos
                    //que querés que sean transaccionales:
                    cmd.Transaction = trn;
                    // cmd.ExecuteNonQuery();
                    int idAsignado = (int)cmd.ExecuteScalar();
                    if (unProyecto is Personal)
                    {
                        Personal per = (Personal)unProyecto;
                        cmd2.CommandText = "INSERT INTO Personales VALUES (@Id,@Experiencia)";
                        cmd2.Parameters.Add(new SqlParameter("@Id", idAsignado));
                        cmd2.Parameters.Add(new SqlParameter("@Experiencia", per.experiencia));
                    }
                    else if (unProyecto is Cooperativo)
                    {
                        Cooperativo coo = (Cooperativo)unProyecto;
                        cmd2.CommandText = "INSERT INTO Cooperativos VALUES (@Id,@cantIntegrantes)";
                        cmd2.Parameters.Add(new SqlParameter("@Id", idAsignado));
                        cmd2.Parameters.Add(new SqlParameter("@cantIntegrantes", coo.cantIntegrantes));
                    }
                    else
                    {
                        return(false);
                    }
                    //Asignarle la transacción al segundo comando
                    cmd2.Transaction = trn;

                    cmd2.ExecuteNonQuery();
                    //Si llegué ácá se pudieron ejecutar todas las operaciones
                    //xq sino hubiera saltado x el catch, así que hacemos el commit:
                    trn.Commit();
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                trn.Rollback();
                return(false);
            }
            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
예제 #6
0
        public IEnumerable <Proyecto> FindAllConFiltro(Proyecto.S_Filtros pFiltros)
        {
            Conexion      conexion  = new Conexion();
            SqlConnection cn        = conexion.CrearConexion();
            string        cmdString = InterpretarFiltros(pFiltros);

            SqlCommand cmd = new SqlCommand(cmdString, cn);

            try
            {
                if (conexion.AbrirConexion(cn))
                {
                    SqlDataReader   dr        = cmd.ExecuteReader();
                    List <Proyecto> proyectos = new List <Proyecto>();
                    while (dr.Read())
                    {
                        Proyecto.E_Etapa etapa;
                        if (dr["Etapa"].ToString() == "A")
                        {
                            etapa = Proyecto.E_Etapa.Aprobado;
                        }
                        else if (dr["Etapa"].ToString() == "R")
                        {
                            etapa = Proyecto.E_Etapa.Rechazado;
                        }
                        else
                        {
                            etapa = Proyecto.E_Etapa.PendienteEvaluacion;
                        }

                        Proyecto.E_Equipo equipo;
                        if (dr["TipoDeEquipo"].ToString() == "I")
                        {
                            equipo = Proyecto.E_Equipo.Individual;
                        }
                        else
                        {
                            equipo = Proyecto.E_Equipo.Cooperativo;
                        }


                        Proyecto p = new Proyecto()
                        {
                            IdProyecto            = (int)dr["IdProyecto"],
                            Etapa                 = etapa,
                            Equipo                = equipo,
                            Titulo                = dr["Titulo"].ToString(),
                            Descripcion           = dr["Descripcion"].ToString(),
                            ImgURL                = dr["ImgURL"].ToString(),
                            CantidadDeIntegrantes = (int)dr["CantidadDeIntegrantes"],
                            ExperienciaIndividual = dr["ExperienciaIndividual"].ToString(),
                            FechaDePresentacion   = (DateTime)dr["FechaDePresentacion"],
                            CISolicitante         = (int)dr["CISolicitante"]
                        };

                        proyectos.Add(p);
                    }
                    return(proyectos);
                }
                return(null);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
            finally

            {
                conexion.CerrarConexion(cn);
            }
        }
예제 #7
0
        public bool Add(Proyecto unP)
        {
            //Tendría todo el código de ADO.NET para hacer el INSERT  a través de comandos.

            if (unP == null || Proyecto.Validar(unP) != "ok")
            {
                return(false);
            }

            Conexion      unaCon = new Conexion();
            SqlConnection cn     = unaCon.CrearConexion();
            SqlCommand    cmd    = new SqlCommand("INSERT INTO Proyecto VALUES (@Titulo, @Descripcion, @Monto, @Cuotas, @Tasa, @Fecha )", cn);

            cmd.Parameters.Add(new SqlParameter("@Titulo", unP.Titulo));
            cmd.Parameters.Add(new SqlParameter("@Descripcion", unP.Descripcion));
            cmd.Parameters.Add(new SqlParameter("@Monto", unP.MontoSolicitado));
            cmd.Parameters.Add(new SqlParameter("@CantidadCuotas", unP.CantidadCuotas));
            cmd.Parameters.Add(new SqlParameter("@Tasa", unP.Tasa));
            cmd.Parameters.Add(new SqlParameter("@Fecha", unP.Fecha));


            SqlCommand cmd2 = new SqlCommand();

            cmd2.Connection = cn;
            SqlTransaction trn = null;

            try
            {
                if (unaCon.AbrirConexion(cn))
                {
                    //Inicia la transacción
                    trn = cn.BeginTransaction();
                    //Asignarle la transacción a cada uno de los comandos
                    //que querés que sean transaccionales:
                    cmd.Transaction = trn;
                    int idAsignado = (int)cmd.ExecuteScalar();
                    if (unP is Personal)
                    {
                        Personal p = (Personal)unP;
                        cmd2.CommandText = "INSERT INTO ProductoImportado VALUES (@Explicacion)";
                        cmd2.Parameters.Add(new SqlParameter("@Explicacion", p.Explicacion));
                    }
                    else if (unP is Cooperativo)
                    {
                        Cooperativo c = (Cooperativo)unP;
                        cmd2.CommandText = "INSERT INTO ProductoNacional VALUES (@Integrantes)";
                        cmd2.Parameters.Add(new SqlParameter("@Integrantes", c.Integrantes));
                    }
                    else
                    {
                        return(false);
                    }
                    cmd2.Transaction = trn;

                    cmd2.ExecuteNonQuery();
                    trn.Commit();
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                trn.Rollback();
                return(false);
            }
            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
예제 #8
0
        public IEnumerable <Usuario> FindAll()
        {
            Conexion      conexion = new Conexion();
            SqlConnection cn       = conexion.CrearConexion();
            SqlCommand    cmd      = new SqlCommand("SELECT * FROM Usuario", cn);

            try
            {
                if (conexion.AbrirConexion(cn))
                {
                    SqlDataReader  dr       = cmd.ExecuteReader();
                    List <Usuario> usuarios = new List <Usuario>();
                    while (dr.Read())
                    {
                        if (dr["Rol"].ToString() == "S")
                        {
                            Solicitante s = new Solicitante()
                            {
                                CI                = (int)dr["CI"],
                                Pass              = dr["Pass"].ToString(),
                                Rol               = Usuario.E_Rol.Solicitante,
                                Nombre            = dr["Nombre"].ToString(),
                                Apellido          = dr["Apellido"].ToString(),
                                FechaDeNacimiento = (DateTime)dr["FechaDeNacimiento"],
                                Celular           = dr["Celular"].ToString(),
                                Email             = dr["Apellido"].ToString(),
                            };
                            usuarios.Add(s);
                        }

                        if (dr["Rol"].ToString() == "A")
                        {
                            Admin a = new Admin()
                            {
                                CI                = (int)dr["CI"],
                                Pass              = dr["Pass"].ToString(),
                                Rol               = Usuario.E_Rol.Admin,
                                Nombre            = dr["Nombre"].ToString(),
                                Apellido          = dr["Apellido"].ToString(),
                                FechaDeNacimiento = (DateTime)dr["FechaDeNacimiento"],
                                Celular           = dr["Celular"].ToString(),
                                Email             = dr["Apellido"].ToString(),
                            };
                            usuarios.Add(a);
                        }
                    }
                    return(usuarios);
                }
                return(null);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
            finally

            {
                conexion.CerrarConexion(cn);
            }
        }
예제 #9
0
        public bool Agregar(Facturacion_Venta Nuevo, string entregado, int idpedido)
        {
            bool Agre     = false;
            bool commited = false;

            try
            {
                conex.AbrirConexion();
                MySqlCommand Comando = conex.CrearComando();
                Transaccion = conex.conexion.BeginTransaction(IsolationLevel.Serializable);
                MySqlCommand SelectComand = conex.CrearComando();
                SelectComand.Connection  = conex.conexion;
                SelectComand.CommandText = "INSERT INTO facturaciones(cod_factura, fecha, importetotal, clienteid, empleadoid, metodopago, pedidoid,tipofactura) VALUES (@cod_factura,@fecha,@importetotal,@clienteid,@empleadoid,@metodopago,@pedidoid,@tipofactura)";
                SelectComand.Parameters.Add("@cod_factura", MySqlDbType.Int32);
                SelectComand.Parameters["@cod_factura"].Value = Nuevo.Cod_factura;
                SelectComand.Parameters.Add("@fecha", MySqlDbType.Date);
                SelectComand.Parameters["@fecha"].Value = Nuevo.Fecha;
                SelectComand.Parameters.Add("@importetotal", MySqlDbType.Double);
                SelectComand.Parameters["@importetotal"].Value = Nuevo.Importetotal;
                SelectComand.Parameters.Add("@clienteid", MySqlDbType.Int32);
                SelectComand.Parameters["@clienteid"].Value = Nuevo.Clienteid;
                SelectComand.Parameters.Add("@empleadoid", MySqlDbType.Int32);
                SelectComand.Parameters["@empleadoid"].Value = Nuevo.Empleadoid;
                SelectComand.Parameters.Add("@pedidoid", MySqlDbType.Int32);
                SelectComand.Parameters["@pedidoid"].Value = Nuevo.Pedidoid;
                SelectComand.Parameters.Add("@metodopago", MySqlDbType.String);
                SelectComand.Parameters["@metodopago"].Value = Nuevo.Metododepago;
                SelectComand.Parameters.Add("@tipofactura", MySqlDbType.VarChar);
                SelectComand.Parameters["@tipofactura"].Value = Nuevo.Tipodefactura;
                SelectComand.Prepare();
                SelectComand.Transaction = Transaccion;
                SelectComand.ExecuteNonQuery();


                Comando.Parameters.Clear();
                Comando.CommandText = "UPDATE pedidos SET entregado=@entregado WHERE pedidoid = @idp";
                Comando.Parameters.Add("@idp", MySqlDbType.Int32);
                Comando.Parameters["@idp"].Value = idpedido;
                Comando.Parameters.Add("@entregado", MySqlDbType.VarChar);
                Comando.Parameters["@entregado"].Value = entregado;
                Comando.Prepare();
                Comando.ExecuteNonQuery();

                Transaccion.Commit();

                commited = true;
                Agre     = true;
            }
            catch (Exception Ex)
            {
                throw new Exception(Ex.Message);
            }
            finally
            {
                if (!commited)
                {
                    if (Transaccion != null)
                    {
                        Transaccion.Rollback();
                    }
                }

                if (conex.conexion.State.Equals(ConnectionState.Open))
                {
                    conex.CerrarConexion();
                }
            }
            return(Agre);
        }
예제 #10
0
        public Usuario FindById(object pId)
        {
            // TODO Encontrar una manera mas segura de castear
            int idComoNumero = (int)pId;

            Conexion      conexion = new Conexion();
            SqlConnection cn       = conexion.CrearConexion();
            SqlCommand    cmd      = new SqlCommand();

            cmd.CommandText = "SELECT * FROM Usuario WHERE Usuario.CI =" + idComoNumero.ToString();
            cmd.Connection  = cn;

            try
            {
                Usuario usuario = null;
                if (conexion.AbrirConexion(cn))
                {
                    // TODO ver de usar CommandBehavior.SingleRow para mejorar performance
                    // https://www.c-sharpcorner.com/blogs/how-to-make-faster-sql-server-search-part-three
                    SqlDataReader dr = cmd.ExecuteReader();

                    while (dr.Read())
                    {
                        if (dr["Rol"].ToString() == "S")
                        {
                            Solicitante s = new Solicitante()
                            {
                                CI                = (int)dr["CI"],
                                Pass              = dr["Pass"].ToString(),
                                Rol               = Usuario.E_Rol.Solicitante,
                                Nombre            = dr["Nombre"].ToString(),
                                Apellido          = dr["Apellido"].ToString(),
                                FechaDeNacimiento = (DateTime)dr["FechaDeNacimiento"],
                                Celular           = dr["Celular"].ToString(),
                                Email             = dr["Apellido"].ToString(),
                            };
                            usuario = s;
                        }

                        if (dr["Rol"].ToString() == "A")
                        {
                            Admin a = new Admin()
                            {
                                CI                = (int)dr["CI"],
                                Pass              = dr["Pass"].ToString(),
                                Rol               = Usuario.E_Rol.Admin,
                                Nombre            = dr["Nombre"].ToString(),
                                Apellido          = dr["Apellido"].ToString(),
                                FechaDeNacimiento = (DateTime)dr["FechaDeNacimiento"],
                                Celular           = dr["Celular"].ToString(),
                                Email             = dr["Apellido"].ToString(),
                            };
                            usuario = a;
                        }
                    }
                }
                return(usuario);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
            finally
            {
                conexion.CerrarConexion(cn);
            }
        }
예제 #11
0
        public bool Agregar(int articuloid, string nombre, string descripcion, string marca, double precioactual, int cantidad, int stockmin)
        {
            bool Agre = false;

            try
            {
                conex.AbrirConexion();
                MySqlCommand Comando = conex.CrearComando();
                Comando.CommandText = "INSERT INTO articulos(articuloid,nombre,descripcion,marca,precioactual,cantidad,stockmin) VALUES (@articuloid,@nombre,@descripcion,@marca,@precioactual,@cantidad,@stockmin)";
                Comando.Parameters.Add("@articuloid", MySqlDbType.Int32);
                Comando.Parameters["@articuloid"].Value = articuloid;
                Comando.Parameters.Add("@nombre", MySqlDbType.VarChar);
                Comando.Parameters["@nombre"].Value = nombre;
                Comando.Parameters.Add("@descripcion", MySqlDbType.VarChar);
                Comando.Parameters["@descripcion"].Value = descripcion;
                Comando.Parameters.Add("@marca", MySqlDbType.VarChar);
                Comando.Parameters["@marca"].Value = marca;
                Comando.Parameters.Add("@precioactual", MySqlDbType.Double);
                Comando.Parameters["@precioactual"].Value = precioactual;
                Comando.Parameters.Add("@cantidad", MySqlDbType.Int32);
                Comando.Parameters["@cantidad"].Value = cantidad;
                Comando.Parameters.Add("@stockmin", MySqlDbType.Int32);
                Comando.Parameters["@stockmin"].Value = stockmin;
                Comando.Prepare();
                Comando.ExecuteNonQuery();
                Agre = true;
            }
            catch (Exception Ex)
            {
                throw new Exception(Ex.Message);
            }
            finally { conex.CerrarConexion(); }
            return(Agre);
        }
예제 #12
0
        public bool Agregar(Pedido Nuevo, List <DetallePedido> NuevoDetalle)
        {
            bool Agre     = false;
            bool commited = false;

            try
            {
                conex.AbrirConexion();
                MySqlCommand Comando = conex.CrearComando();
                Transaccion = conex.conexion.BeginTransaction(IsolationLevel.Serializable);
                MySqlCommand SelectComand = conex.CrearComando();
                SelectComand.Connection  = conex.conexion;
                SelectComand.CommandText = "INSERT INTO pedidos(pedidoid,nropedido,fecha,clienteid) VALUES (DEFAULT,@nropedido,CURRENT_DATE,@clienteid)";
                SelectComand.Parameters.Add("@clienteid", MySqlDbType.Int32);
                SelectComand.Parameters["@clienteid"].Value = Nuevo.Clienteid;
                SelectComand.Parameters.Add("@nropedido", MySqlDbType.Int32);
                SelectComand.Parameters["@nropedido"].Value = Nuevo.Nropedido;
                SelectComand.Prepare();
                SelectComand.Transaction = Transaccion;
                SelectComand.ExecuteNonQuery();

                foreach (DetallePedido Aux in NuevoDetalle)
                {
                    Comando.Parameters.Clear();
                    Comando.CommandText = "INSERT INTO detallepedido(articuloid,pedidoid,cantidad,preciovendido) VALUES (@artid,LAST_INSERT_ID(),@cantidad,@preciovendido)";
                    Comando.Parameters.Add("@artid", MySqlDbType.Int32);
                    Comando.Parameters["@artid"].Value = Aux.Articuloid;
                    Comando.Parameters.Add("@cantidad", MySqlDbType.Int32);
                    Comando.Parameters["@cantidad"].Value = Aux.Cantidad;
                    Comando.Parameters.Add("@preciovendido", MySqlDbType.Double);
                    Comando.Parameters["@preciovendido"].Value = Aux.Preciovendido;
                    Comando.Prepare();
                    Comando.ExecuteNonQuery();
                }
                Transaccion.Commit();

                commited = true;
                Agre     = true;
            }
            catch (Exception Ex)
            {
                throw new Exception(Ex.Message);
            }
            finally
            {
                if (!commited)
                {
                    if (Transaccion != null)
                    {
                        Transaccion.Rollback();
                    }
                }

                if (conex.conexion.State.Equals(ConnectionState.Open))
                {
                    conex.CerrarConexion();
                }
            }
            return(Agre);
        }
예제 #13
0
        public bool Add(Usuario unUsuario)
        {
            //Tendría todo el código de ADO.NET para hacer el INSERT  a través de comandos.

            if (unUsuario == null || !unUsuario.Validar())
            {
                return(false);
            }

            Conexion      unaCon = new Conexion();
            SqlConnection cn     = unaCon.CrearConexion();
            SqlCommand    cmd    = new SqlCommand("INSERT INTO Usuarios VALUES (@Cedula,@Nombre,@Apellido,@FechaNacimento,@Password,@Tipo);", cn);

            cmd.Parameters.Add(new SqlParameter("@Nombre", unUsuario.nombre));
            cmd.Parameters.Add(new SqlParameter("@Apellido", unUsuario.apellido));
            cmd.Parameters.Add(new SqlParameter("@Cedula", unUsuario.cedula));
            cmd.Parameters.Add(new SqlParameter("@FechaNacimento", unUsuario.fechaNacimiento));
            cmd.Parameters.Add(new SqlParameter("@Password", unUsuario.password));
            cmd.Parameters.Add(new SqlParameter("@Tipo", unUsuario.GetType().Name.ToUpper()));
            SqlCommand cmd2 = new SqlCommand();

            cmd2.Connection = cn;
            SqlTransaction trn = null;

            try
            {
                if (unaCon.AbrirConexion(cn))
                {
                    //Inicia la transacción
                    cmd.ExecuteNonQuery();

                    trn = cn.BeginTransaction();


                    //Asignarle la transacción a cada uno de los comandos
                    //que querés que sean transaccionales:
                    cmd.Transaction = trn;

                    //int idAsignado = (int)cmd.ExecuteScalar();
                    if (unUsuario is Admin)
                    {
                    }
                    else if (unUsuario is Solicitante)
                    {
                        Solicitante s = (Solicitante)unUsuario;
                        cmd2.CommandText = "INSERT INTO Solicitantes VALUES (@Email,@Celular,@Cedula)";
                        cmd2.Parameters.Add(new SqlParameter("@Celular", s.celular));
                        cmd2.Parameters.Add(new SqlParameter("@Email", s.email));
                        cmd2.Parameters.Add(new SqlParameter("@Cedula", unUsuario.cedula));
                    }
                    else
                    {
                        return(false);
                    }
                    //Asignarle la transacción al segundo comando
                    cmd2.Transaction = trn;

                    cmd2.ExecuteNonQuery();
                    //Si llegué ácá se pudieron ejecutar todas las operaciones
                    //xq sino hubiera saltado x el catch, así que hacemos el commit:
                    trn.Commit();
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                trn.Rollback();
                return(false);
            }
            finally
            {
                unaCon.CerrarConexion(cn);
            }
        }
예제 #14
0
        public bool Agregar(int proveedorid, string nombrefantasia, string razonsocial, string nombre, string apellido, string telefono, string email, string cuit, string direccion)
        {
            bool Agre = false;

            try
            {
                conex.AbrirConexion();
                MySqlCommand Comando = conex.CrearComando();
                Comando.CommandText = "INSERT INTO proveedores(proveedorid,nombrefantasia,razonsocial,nombre,apellido,telefono,email,cuit,direccion) VALUES (DEFAULT,@nombrefantasia,@razonsocial,@nombre,@apellido,@telefono,@email,@cuit,@direccion)";
                Comando.Parameters.Add("@proveedorid", MySqlDbType.Int32);
                Comando.Parameters["@proveedorid"].Value = proveedorid;
                Comando.Parameters.Add("@nombrefantasia", MySqlDbType.VarChar);
                Comando.Parameters["@nombrefantasia"].Value = nombrefantasia;
                Comando.Parameters.Add("@razonsocial", MySqlDbType.VarChar);
                Comando.Parameters["@razonsocial"].Value = razonsocial;
                Comando.Parameters.Add("@nombre", MySqlDbType.VarChar);
                Comando.Parameters["@nombre"].Value = nombre;
                Comando.Parameters.Add("@apellido", MySqlDbType.VarChar);
                Comando.Parameters["@apellido"].Value = apellido;
                Comando.Parameters.Add("@telefono", MySqlDbType.VarChar);
                Comando.Parameters["@telefono"].Value = telefono;
                Comando.Parameters.Add("@email", MySqlDbType.VarChar);
                Comando.Parameters["@email"].Value = email;
                Comando.Parameters.Add("@cuit", MySqlDbType.VarChar);
                Comando.Parameters["@cuit"].Value = cuit;
                Comando.Parameters.Add("@direccion", MySqlDbType.VarChar);
                Comando.Parameters["@direccion"].Value = direccion;

                Comando.Prepare();
                Comando.ExecuteNonQuery();
                Agre = true;
            }
            catch (Exception Ex)
            {
                throw new Exception(Ex.Message);
            }
            finally { conex.CerrarConexion(); }
            return(Agre);
        }