예제 #1
0
 private void grvPrincipal_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (tipo == "Administrador")
     {
         if (e.ColumnIndex == 5)
         {
             int idprod = int.Parse("" + grvPrincipal.Rows[e.RowIndex].Cells[0].Value);
             new Editar(idprod).Show();
             this.Hide();
         }
         if (e.ColumnIndex == 6)
         {
             new DAOProducto().delete((int)grvPrincipal.Rows[e.RowIndex].Cells[0].Value);
             actualizarTabla();
         }
     }
     else if (tipo == "Cliente")
     {
         if (e.ColumnIndex == 5)
         {
             int             idpro  = int.Parse("" + grvPrincipal.Rows[e.RowIndex].Cells[0].Value);
             String          nom    = "" + grvPrincipal.Rows[e.RowIndex].Cells[1].Value;
             Decimal         precio = Decimal.Parse("" + grvPrincipal.Rows[e.RowIndex].Cells[2].Value);
             Carritos        car    = new Carritos(idusuario, idusuario, nom);
             DetalleProducto det    = new DetalleProducto(idpro, precio, 1);
             new DAOCarrito().agregar(car);
             new DaoDetalleProducto().agregar(det, nom, idusuario);
         }
     }
 }
예제 #2
0
        private void coloresComboBox_SelectionChangeCommitted(object sender, EventArgs e)
        {
            DetalleProducto detalleSeleccionado = coloresComboBox.SelectedItem as DetalleProducto;

            existenciasTextBox.Text       = detalleSeleccionado.Existencias.ToString();
            cantidadNumericUpDown.Maximum = detalleSeleccionado.Existencias;
        }
        public static void Insert(DetalleProducto det, SqlConnection cn, SqlTransaction tran)
        {
            Acceso ac = new Acceso();


            //SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("Insert into DetalleProducto (idProducto, idProductoDetalle, cantidad) VALUES (@idprodpadre,@idprod,@cantida)", cn);

            cmd.Parameters.AddWithValue("@idprodpadre", det.idProductoPadre);
            cmd.Parameters.AddWithValue("@idprod", det.idProducto);
            cmd.Parameters.AddWithValue("@cantida", det.cantidad);

            try
            {
                cmd.Connection  = cn;
                cmd.Transaction = tran;
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
            }
            catch (ArgumentException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
        }
예제 #4
0
        public int InsertarDetalleProducto(DetalleProducto detalleProducto)
        {
            SqlCommand cmd = new SqlCommand("_spInsertarDetalleProducto");

            try
            {
                cmd = _gestorDaoSql.ObtenerComandoSp(cmd);
                cmd.Parameters.AddWithValue("@prmdcmpreciocosto", detalleProducto.PrecioCosto);
                cmd.Parameters.AddWithValue("@prmdcmprecioventa", detalleProducto.PrecioVenta);
                cmd.Parameters.AddWithValue("@prmintstock", detalleProducto.Stock);

                cmd.Parameters.Add(new SqlParameter("@iddetalleproducto", DbType.Int32)
                {
                    Direction = ParameterDirection.ReturnValue
                });
                cmd.ExecuteNonQuery();

                int idDetalleProducto = Convert.ToInt32(cmd.Parameters["@iddetalleproducto"].Value);
                return(idDetalleProducto);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        public async Task <IActionResult> Edit(int id, [Bind("DetalleProductoID,Descripcion,Talla,Color,PesoKg,Marca,Modelo,productoID")] DetalleProducto detalleProducto)
        {
            if (id != detalleProducto.productoID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(detalleProducto);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DetalleProductoExists(detalleProducto.DetalleProductoID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("IndexVendedor", "Productos"));
            }

            return(View(detalleProducto));
        }
예제 #6
0
        public Responce updateProduct(String database, DetalleProducto producto)
        {
            Responce respuesta = new Responce();

            using (IDbConnection db = new SqlConnection(ConfigurationManager.AppSettings[database].ToString()))
            {
                DynamicParameters parameter = new DynamicParameters();

                parameter.Add("@idProductoEcommerce", producto.idProductoEcommerce);
                parameter.Add("@producto", producto.producto);
                parameter.Add("@descripcion", producto.descripcion);
                parameter.Add("@unidadVenta", producto.unidadVenta);
                parameter.Add("@precioVenta", producto.precioVenta);
                parameter.Add("@idCategoriaEcommerce", producto.idCategoriaEcommerce);
                parameter.Add("@idMarcaEcommerce", producto.idMarcaEcommerce);
                parameter.Add("@identificador", producto.identificador);



                try
                {
                    respuesta = db.QuerySingle <Responce>("BC_SP_CREA_EDITAR_PRODUCTO_ECOMMERCE_ADMIN", parameter, commandType: CommandType.StoredProcedure);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            return(respuesta);
        }
예제 #7
0
        private List <DetalleProducto> detalleProductos(int idproducto)
        {
            List <DetalleProducto> detalles = new List <DetalleProducto>();

            using (SqlConnection conexion = new SqlConnection(Properties.Settings.Default.cadenaConexion))
            {
                string     cadena_sql = "sp_detalleproductos";
                SqlCommand comando    = new SqlCommand(cadena_sql, conexion)
                {
                    CommandType = CommandType.StoredProcedure
                };
                conexion.Open();
                comando.Parameters.AddWithValue("@id", idproducto);

                SqlDataReader lector = comando.ExecuteReader();

                if (lector.HasRows)
                {
                    while (lector.Read())
                    {
                        DetalleProducto dp = new DetalleProducto(
                            (int)lector["idProductoDetalle"],
                            (string)lector["color"],
                            (double)lector["talla"],
                            (int)lector["existencia"]
                            );
                        detalles.Add(dp);
                    }
                }
            }
            return(detalles);
        }
예제 #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            DetalleProducto detalleProducto = db.DetalleProducto.Find(id);

            db.DetalleProducto.Remove(detalleProducto);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #9
0
 public ActionResult EditarProducto(DetalleProducto d)
 {
     try
     {
         return(Json("todo bien", JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #10
0
#pragma warning disable CS0246 // El nombre del tipo o del espacio de nombres 'DetalleProducto' no se encontró (¿falta una directiva using o una referencia de ensamblado?)
        public ActionResult Edit([Bind(Include = "idDetalleProducto,Talla,CantidadStock,Producto_idProducto")] DetalleProducto detalleProducto)
#pragma warning restore CS0246 // El nombre del tipo o del espacio de nombres 'DetalleProducto' no se encontró (¿falta una directiva using o una referencia de ensamblado?)
        {
            if (ModelState.IsValid)
            {
                db.Entry(detalleProducto).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.Producto_idProducto = new SelectList(db.Producto, "idProducto", "Foto", detalleProducto.Producto_idProducto);
            return(View(detalleProducto));
        }
예제 #11
0
 public ActionResult EditarProducto(DetalleProducto detalleProducto)
 {
     try
     {
         productDAO = new ProductDAO();
         string selectedDB = "sucursal" + Session["defaultDB"];
         return(Json(productDAO.updateProduct(selectedDB, detalleProducto), JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #12
0
        // GET: DetalleProductoes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DetalleProducto detalleProducto = db.DetalleProducto.Find(id);

            if (detalleProducto == null)
            {
                return(HttpNotFound());
            }
            return(View(detalleProducto));
        }
예제 #13
0
        public Producto BuscarProductoID(int id)
        {
            SqlCommand      cmd             = new SqlCommand("_spBuscarProductoID");
            Producto        producto        = null;
            Categoria       categoria       = null;
            DetalleProducto detalleProducto = null;

            List <SqlParameter> parameters = new List <SqlParameter>()
            {
                new SqlParameter("@prmintIdProducto", id)
            };

            try
            {
                var data = _gestorDaoSql.EjecutarComandoSp(cmd, parameters);
                if (data.Read())
                {
                    producto = new Producto
                    {
                        IdProducto  = Convert.ToInt32(data["IdProducto"]),
                        Nombre      = data["Nombre"].ToString(),
                        Descripcion = data["Descripcion"].ToString()
                    };

                    categoria = new Categoria
                    {
                        IdCategoria = Convert.ToInt32(data["Idcategoria"]),
                        Nombre      = data["Nombre"].ToString()
                    };

                    detalleProducto = new DetalleProducto
                    {
                        IdDetalleProducto = Convert.ToInt32(data["IdDetalleProducto"]),
                        PrecioCosto       = Convert.ToDecimal(data["PrecioCosto"]),
                        PrecioVenta       = Convert.ToDecimal(data["PrecioVenta"]),
                        Stock             = Convert.ToInt32(data["Stock"])
                    };

                    producto.Categoria       = categoria;
                    producto.DetalleProducto = detalleProducto;
                }
                data.Close();
                return(producto);
            }
            catch (Exception x)
            {
                throw x;
            }
        }
예제 #14
0
        // GET: DetalleProductoes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DetalleProducto detalleProducto = db.DetalleProducto.Find(id);

            if (detalleProducto == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Producto_idProducto = new SelectList(db.Producto, "idProducto", "nombreProducto", detalleProducto.Producto_idProducto);
            return(View(detalleProducto));
        }
예제 #15
0
        public async Task <IActionResult> Create([Bind("DetalleProductoID,Descripcion,Talla,Color,PesoKg,Marca,Modelo,productoID")] DetalleProducto detalleProducto)
        {
            if (ModelState.IsValid)
            {
                //detalleProducto.productoID = _context.Producto.Last().ProductoID;
                var user = await _userManager.GetUserAsync(User);

                var vendedor = _context.DetalleVendedor.Single(d => d.tiendaOnlineUser == user);
                detalleProducto.producto = _context.Producto.Last(p => p.detalleVendedorID == vendedor.DetalleVendedorID);
                _context.Add(detalleProducto);
                await _context.SaveChangesAsync();

                return(RedirectToAction("IndexVendedor", "Productos"));
            }

            return(View(detalleProducto));
        }
예제 #16
0
        public static bool SubirImagen(DetalleProducto detalleproducto)
        {
            if (detalleproducto.ImagenFile != null)
            {
                var folder    = "~/Content/ImagenesProductos";
                var file      = string.Format("{0}_{1}.jpg", detalleproducto.Id, detalleproducto.ProductoId);
                var respuesta = UploadPhoto(detalleproducto.ImagenFile, folder, file);

                if (respuesta)
                {
                    var pic = string.Format("{0}/{1}", folder, file);
                    detalleproducto.ImagenUrl = pic;
                    return(true);
                }
            }
            return(false);
        }
예제 #17
0
        public List <Producto> ListarProductos()
        {
            var             consulta        = "_spListarProductos";
            Producto        producto        = null;
            DetalleProducto detalleProducto = null;
            Categoria       categoria       = null;
            List <Producto> listaProductos  = new List <Producto>();

            try
            {
                var data = _gestorDaoSql.EjecutarConsulta(consulta);
                while (data.Read())
                {
                    producto = new Producto()
                    {
                        IdProducto  = Convert.ToInt32(data["Idproducto"]),
                        Nombre      = data["Nombre"].ToString(),
                        Descripcion = data["Descripcion"].ToString(),
                    };

                    detalleProducto = new DetalleProducto()
                    {
                        PrecioCosto = Convert.ToDecimal(data["PrecioCosto"]),
                        PrecioVenta = Convert.ToDecimal(data["PrecioVenta"]),
                        Stock       = Convert.ToInt32(data["Stock"]),
                    };

                    categoria = new Categoria()
                    {
                        Nombre = data["Nombre"].ToString()
                    };

                    producto.DetalleProducto = detalleProducto;
                    producto.Categoria       = categoria;

                    listaProductos.Add(producto);
                }
                data.Close();
                return(listaProductos);
            }
            catch (Exception x)
            {
                throw x;
            }
        }
예제 #18
0
 public int InsertarDetalleProducto(DetalleProducto detalleProducto)
 {
     try
     {
         //_gestorDaoSql.IniciarTransaccion();//segunda llamada_ aqui ya abrio linea 30
         int inserto = _detalleProductoDao.InsertarDetalleProducto(detalleProducto);
         if (inserto > 0)
         {
             _gestorDaoSql.TerminarTransaccion();
         }
         else
         {
             _gestorDaoSql.CancelarTransaccion();
         }
         return(inserto);
     }
     catch (Exception x)
     {
         throw x;
     }
 }
        private void btn_Actualizar_OTPadre_Click(object sender, EventArgs e)
        {
            try
            {
                if (txt_cantidad_real.Text == "")
                {
                    MessageBox.Show("Complete el campo\"Cantidad real producida\" antes de confirmar", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txt_cantidad_real.Focus();
                    return;
                }

                List <DetalleProducto> productos = new List <DetalleProducto>();
                for (int i = 0; i < DGV_detalle_Productos.RowCount; i++)
                {
                    DetalleProducto p = new DetalleProducto();
                    p.idProducto        = int.Parse(DGV_detalle_Productos.Rows[i].Cells["nroProducto"].Value.ToString());
                    p.cantidad          = double.Parse(DGV_detalle_Productos.Rows[i].Cells["cantidadReal"].Value.ToString());
                    p.cantidadProductos = double.Parse(DGV_detalle_Productos.Rows[i].Cells["cantidadPlanificada"].Value.ToString());
                    productos.Add(p);
                }
                orden.cantidadReal  = double.Parse(txt_cantidad_real.Text);
                orden.observaciones = txt_observaciones.Text;
                cantidadPlan        = orden.cantidadReal - cantidadPedido;
                OrdenDeTrabajoDAO.finalizarOTPadre(orden, cantidadPedido, cantidadPlan, productos);
                Estado est = new Estado();
                est.Nombre   = "LISTO";
                orden.estado = est;
                Close();
            }
            catch (ApplicationException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
            catch (FormatException ex)
            {
                MessageBox.Show("Ingrese solo números", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
            }
        }
예제 #20
0
        /// <summary>
        /// Utilizaremos el metodo agregar para cada vez que el usuario agregue un producto al carrito desde la
        /// pagina principal
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        public int agregar(DetalleProducto m, String nom, int idusu)
        {
            MySqlConnection conexion  = null;
            int             afectados = 0;

            try
            {
                conexion = new MySqlConnection(new ConexionMySQL().GetConnectionString());
                conexion.Open();
                String consulta = "INSERT INTO detalleproducto "
                                  + "VALUES ((select c.idcarrito from carrito c" +
                                  " where NombreProd='" + nom + "' and idUsuario='" + idusu + "' group by idUsuario)," +
                                  "@idProducto,@Precio,@Cantidad)";
                MySqlCommand comando = new MySqlCommand();
                comando.Connection  = conexion;
                comando.CommandText = consulta;
                comando.CommandType = System.Data.CommandType.Text;
                comando.Parameters.AddWithValue("@IdCarrio", m.Precio);
                comando.Parameters.AddWithValue("@idProducto", m.idProducto);
                comando.Parameters.AddWithValue("@Precio", m.Precio);
                comando.Parameters.AddWithValue("@Cantidad", m.cantidad);
                afectados = comando.ExecuteNonQuery();

                return(afectados);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudieron registrar los detalles del producto");
            }
            finally
            {
                if (afectados != 0)
                {
                    conexion.Close();
                }
            }
        }
예제 #21
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            List <DetalleProducto> lista = new List <DetalleProducto>();

            //if (eliminarEstructura == false)
            //{
            if (lblDetalle.Text == "")
            {
                MessageBox.Show(this, "Falta seleccionar Producto", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information);

                return;
            }
            if (DGVEstructuraProductos.RowCount == 0)
            {
                MessageBox.Show(this, "Falta asignarle al menos un producto al detalle", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtCantidad.Focus();
                return;
            }

            for (int i = 0; i < DGVEstructuraProductos.RowCount; i++)
            {
                DetalleProducto detalleProducto = new DetalleProducto();
                detalleProducto.idProductoPadre = int.Parse(DGVEstructuraProductos.Rows[i].Cells["idProductoPadre"].Value.ToString());
                detalleProducto.idProducto      = int.Parse(DGVEstructuraProductos.Rows[i].Cells["idProducto"].Value.ToString());
                detalleProducto.cantidad        = double.Parse(DGVEstructuraProductos.Rows[i].Cells["cantidad"].Value.ToString());
                lista.Add(detalleProducto);
            }
            //}
            if (lblAccion.Text == "NUEVA ESTRUCTURA")
            {
                try
                {
                    if (MessageBox.Show(this, "¿Desea confirmar nueva estructura?", "Confirmar Nueva Estructura", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        gestor.tomarDetalleProductos(lista);
                        gestor.nuevaEstructura();
                        MessageBox.Show("Nueva Estructura Registrada con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        DGVEstructuraProductos.Enabled = false;
                    }
                    else
                    {
                        return;
                    }
                }
                catch (ApplicationException ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
            }
            if (lblAccion.Text == "MODIFICAR ESTRUCTURA")
            {
                gestor.tomarDetalleProductos(lista);
                gestor.tomarIdProductoPadre(int.Parse(DGVEstructuraProductos.Rows[0].Cells["idProductoPadre"].Value.ToString()));
                try
                {
                    gestor.modificacionConfirmada();
                    MessageBox.Show("Modificacion de Estructura Registrada con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    DGVEstructuraProductos.Enabled = false;
                }
                catch (ApplicationException ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
            }

            //if (lblAccion.Text == "ELIMINAR ESTRUCTURA")
            //{

            //    gestor.tomarIdProductoPadre(int.Parse(DGVProductos.SelectedRows[0].Cells[7].Value.ToString()));
            //    try
            //    {
            //        gestor.eliminacionConfirmada();
            //        MessageBox.Show("Eliminada Estructura con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
            //    }
            //    catch (ApplicationException ex)
            //    {
            //        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            //    }


            //}

            cargarGrillaProductos("todo");

            txtCantidad.Text     = "";
            btnNuevo.Enabled     = true;
            btnModificar.Enabled = true;
            btn_eliminar.Enabled = true;
            btnGuardar.Enabled   = false;
            btnCancelar.Enabled  = false;
            btnAgregar.Enabled   = false;
            btnSacar.Enabled     = false;

            lblAccion.Text       = "SELECCIONE OPCION";
            lblProductos.Text    = "TODOS LOS PRODUCTOS";
            lblDetalle.Text      = "";
            lblUnidad.Text       = "";
            lblSeleccionado.Text = "";

            DGVProductosAAgregar.Enabled = false;
            DGVProductos.Enabled         = true;
            DGVEstructuraProductos.Rows.Clear();
        }
        public static List <DetalleProducto> GetAll(int id)
        {
            Acceso ac = new Acceso();

            List <DetalleProducto> productos = new List <DetalleProducto>();

            string        sql      = "SELECT idProducto, idProductoDetalle, ProductoDetalle, cantidad, Producto, idCategoria, categoria, descCategoria, idUnidad, unidad, descUnidad, codProducto, idUnidadTiempo, UnidadTiempo, descUnidadTiempo, cantidadProductos, tiempoProduccion, tipoMaquinaria, idTipoMaquinaria  from CONSULTA_ESTRUCTURA_PRODUCTOS where idProducto =" + id;
            SqlCommand    cmd      = new SqlCommand();
            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            try
            {
                conexion.Open();

                cmd.Connection  = conexion;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;

                SqlDataReader dr = cmd.ExecuteReader();

                DetalleProducto p;
                Categoria       c;
                UnidadMedida    u;
                UnidadMedida    uT;
                TipoMaquinaria  TM;

                while (dr.Read())
                {
                    u = new UnidadMedida();

                    u.IDUnidad    = Convert.ToInt32(dr["idUnidad"]);
                    u.Nombre      = dr["unidad"].ToString();
                    u.Descripcion = dr["descUnidad"].ToString();


                    c             = new Categoria();
                    c.IDCategoria = Convert.ToInt32(dr["idCategoria"]);
                    c.Nombre      = dr["categoria"].ToString();
                    c.Descripcion = dr["descCategoria"].ToString();

                    uT             = new UnidadMedida();
                    uT.IDUnidad    = Convert.ToInt32(dr["idUnidadTiempo"]);
                    uT.Nombre      = dr["unidadTiempo"].ToString();
                    uT.Descripcion = dr["descUnidadTiempo"].ToString();

                    TM = new TipoMaquinaria();

                    TM.idTipoMaquinaria = Convert.ToInt32(dr["idTipoMaquinaria"].ToString());
                    TM.Nombre           = dr["tipoMaquinaria"].ToString();

                    p = new DetalleProducto();

                    p.CODProducto       = Convert.ToInt32(dr["codProducto"]);
                    p.Nombre            = dr["ProductoDetalle"].ToString();
                    p.Categoria         = c;
                    p.Unidad            = u;
                    p.cantidad          = double.Parse(dr["cantidad"].ToString());
                    p.idProducto        = Convert.ToInt32(dr["idProductoDetalle"]);
                    p.idProductoPadre   = Convert.ToInt32(dr["idProducto"]);
                    p.tiempoProduccion  = double.Parse(dr["tiempoProduccion"].ToString());
                    p.cantidadProductos = double.Parse(dr["cantidadProductos"].ToString());
                    p.UnidadTiempo      = uT;
                    p.TipoMaquinaria    = TM;



                    //p.foto = (Image)(dr["foto"]);

                    productos.Add(p);
                }
            }

            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }


            return(productos);
        }
예제 #23
0
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            if (txtCantidad.Text == "")
            {
                MessageBox.Show("Falta cantidad", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                return;
            }

            DetalleProducto det;
            Categoria       cat;
            UnidadMedida    u;
            UnidadMedida    uT;


            if (DGVEstructuraProductos.Rows.Count == 0)
            {
                det = new DetalleProducto();
                cat = new Categoria();
                u   = new UnidadMedida();
                uT  = new UnidadMedida();
                det.idProductoPadre = int.Parse(DGVProductos.SelectedRows[0].Cells["idProduct"].Value.ToString());
                det.idProducto      = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idProd"].Value.ToString());
                det.Nombre          = DGVProductosAAgregar.SelectedRows[0].Cells["nombreProductoAAgregar"].Value.ToString();

                cat.IDCategoria = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idCategoriaAAgregar"].Value.ToString());
                cat.Nombre      = DGVProductosAAgregar.SelectedRows[0].Cells["categoriaAAgregar"].Value.ToString();

                det.cantidad = double.Parse(txtCantidad.Text);

                u.IDUnidad = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idUnidadAAgregar"].Value.ToString());
                u.Nombre   = DGVProductosAAgregar.SelectedRows[0].Cells["unidadMedidaAAgregar"].Value.ToString();

                det.cantidadProductos = double.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["cantidadDeProductos1"].Value.ToString());
                det.tiempoProduccion  = double.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["tiempoProduccion1"].Value.ToString());
                uT.Nombre             = DGVProductosAAgregar.SelectedRows[0].Cells["unidadTiempo1"].Value.ToString();

                DGVEstructuraProductos.Rows.Add(det.idProductoPadre, det.idProducto, det.Nombre, det.cantidad, cat.Nombre, det.cantidadProductos, u.Nombre, det.tiempoProduccion, uT.Nombre);
            }
            else
            {
                int band = 0;
                if (estructuraProductoSeleccionado == false)
                {
                    for (int i = 0; i < DGVEstructuraProductos.Rows.Count; i++)
                    {
                        if (int.Parse(DGVEstructuraProductos.Rows[i].Cells["idProducto"].Value.ToString()) == int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idProd"].Value.ToString()))
                        {
                            band = 1;
                            DGVEstructuraProductos.Rows[i].Cells["cantidad"].Value = txtCantidad.Text;
                            break;
                        }
                    }

                    if (band == 0)
                    {
                        det = new DetalleProducto();
                        cat = new Categoria();
                        u   = new UnidadMedida();
                        uT  = new UnidadMedida();
                        det.idProductoPadre = int.Parse(DGVProductos.SelectedRows[0].Cells["idProduct"].Value.ToString());
                        det.idProducto      = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idProd"].Value.ToString());
                        det.Nombre          = DGVProductosAAgregar.SelectedRows[0].Cells["nombreProductoAAgregar"].Value.ToString();

                        cat.IDCategoria = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idCategoriaAAgregar"].Value.ToString());
                        cat.Nombre      = DGVProductosAAgregar.SelectedRows[0].Cells["categoriaAAgregar"].Value.ToString();

                        det.cantidad = double.Parse(txtCantidad.Text);

                        u.IDUnidad = int.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["idUnidadAAgregar"].Value.ToString());
                        u.Nombre   = DGVProductosAAgregar.SelectedRows[0].Cells["unidadMedidaAAgregar"].Value.ToString();

                        det.cantidadProductos = double.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["cantidadDeProductos1"].Value.ToString());
                        det.tiempoProduccion  = double.Parse(DGVProductosAAgregar.SelectedRows[0].Cells["tiempoProduccion1"].Value.ToString());
                        uT.Nombre             = DGVProductosAAgregar.SelectedRows[0].Cells["unidadTiempo1"].Value.ToString();

                        DGVEstructuraProductos.Rows.Add(det.idProductoPadre, det.idProducto, det.Nombre, det.cantidad, cat.Nombre, det.cantidadProductos, u.Nombre, det.tiempoProduccion, uT.Nombre);
                    }
                }
                else
                {
                    DGVEstructuraProductos.SelectedRows[0].Cells["cantidad"].Value = txtCantidad.Text;
                }
            }
            btnAgregar.Enabled             = false;
            DGVEstructuraProductos.Enabled = true;
            DGVProductosAAgregar.Enabled   = true;
        }
예제 #24
0
        public string Modificar(ProductoJoinProductoConDetallesJoinDetalleProductoViewModel productoConNuevosValores)
        {
            string res = "false";

            using (var ctx = new palominoEntities())
            {
                using (var dbContextTransaction = ctx.Database.BeginTransaction(IsolationLevel.Serializable))
                {
                    try
                    {   //Verifico que el Producto este activo
                        var listaIdsYEstado = (from s in ctx.Producto
                                               select new { s.Id, s.Activo }).ToList();

                        var listaIdsActivos = (from item in listaIdsYEstado
                                               where item.Activo == true
                                               select item.Id).ToList();

                        int idBuscado = listaIdsActivos.Find(id => id == productoConNuevosValores.Producto_Id);

                        //Verifico que el DetalleProducto este activo
                        var listaIdsDetalleProducto = (from x in ctx.DetalleProducto
                                                       select new { x.Id, x.Activo }).ToList();

                        var listaIdsDetalleProductoActivos = (from x in listaIdsDetalleProducto
                                                              where x.Activo == true
                                                              select x.Id).ToList();

                        var otroIdBuscado = listaIdsDetalleProductoActivos.Find(item => item == productoConNuevosValores.DetalleProducto_Id);

                        //Busco el Id de usuario que necesitare, y ver que este activo
                        var resumenUsuarios = (from x in ctx.Usuario
                                               select new { x.Id, x.Usuario1, x.Activo }).ToList();
                        var usuarioActivoBuscado = resumenUsuarios.SingleOrDefault(item => (item.Id == productoConNuevosValores.DetalleProducto_IdUsuarioAlta) &&
                                                                                   (item.Activo == true));

                        if ((idBuscado > 0) && (otroIdBuscado > 0) && (usuarioActivoBuscado != null))       // Aqui se comprueba lo anterior
                        {
                            var resumenProductoConDetalles = (from s in ctx.ProductoConDetalles
                                                              where s.IdProducto == productoConNuevosValores.Producto_Id
                                                              select new { s.IdDetalleProducto }).ToList();

                            var resumenDetalleProducto = (from c in ctx.DetalleProducto
                                                          select new { c.Id, c.Activo }).ToList();

                            var fila = (from a in resumenProductoConDetalles
                                        join b in resumenDetalleProducto
                                        on a.IdDetalleProducto equals b.Id
                                        where b.Activo == true
                                        select b.Id).ToList();

                            var elementoUnico = fila.Single();

                            DetalleProducto detalleProducto = ctx.DetalleProducto.Find(elementoUnico);
                            detalleProducto.Activo            = false;
                            detalleProducto.IdUsuarioModifico = productoConNuevosValores.DetalleProducto_IdUsuarioModifico;
                            detalleProducto.FechaModificacion = productoConNuevosValores.DetalleProducto_FechaModificacion;

                            //crear nuevo
                            var resumenIdsEnDetalleProducto = (from s in resumenDetalleProducto
                                                               select s.Id).ToList();

                            int             idNuevoParaDetalleProducto = resumenIdsEnDetalleProducto.Max() + 1;
                            DetalleProducto nuevoDetalleProducto       = new DetalleProducto();
                            nuevoDetalleProducto.Id                = idNuevoParaDetalleProducto;
                            nuevoDetalleProducto.Nombre            = productoConNuevosValores.DetalleProducto_Nombre;
                            nuevoDetalleProducto.Activo            = true;
                            nuevoDetalleProducto.IdUsuarioAlta     = productoConNuevosValores.DetalleProducto_IdUsuarioAlta;
                            nuevoDetalleProducto.IdUsuarioModifico = productoConNuevosValores.DetalleProducto_IdUsuarioModifico;
                            nuevoDetalleProducto.FechaAlta         = productoConNuevosValores.DetalleProducto_FechaAlta;
                            nuevoDetalleProducto.FechaModificacion = productoConNuevosValores.DetalleProducto_FechaModificacion;
                            ctx.DetalleProducto.Add(nuevoDetalleProducto);

                            ProductoConDetalles productoConDetalles = new ProductoConDetalles();
                            productoConDetalles.IdProducto        = productoConNuevosValores.Producto_Id;
                            productoConDetalles.IdDetalleProducto = idNuevoParaDetalleProducto;
                            productoConDetalles.Activo            = true;
                            productoConDetalles.IdUsuarioAlta     = productoConNuevosValores.DetalleProducto_IdUsuarioAlta;
                            productoConDetalles.IdUsuarioModifico = productoConNuevosValores.DetalleProducto_IdUsuarioModifico;
                            productoConDetalles.FechaAlta         = productoConNuevosValores.DetalleProducto_FechaAlta;
                            productoConDetalles.FechaModificacion = productoConNuevosValores.DetalleProducto_FechaModificacion;
                            ctx.ProductoConDetalles.Add(productoConDetalles);

                            ctx.SaveChanges();
                            res = "ok";
                        }
                        else
                        {
                            res = "No esta disponible el producto a modificar";
                        }
                        dbContextTransaction.Commit();
                    }

                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        throw new Exception("Excepcion cachada y lanzada en ProductoLN.Modificar", ex);
                    }
                }
            }

            return(res);
        }
예제 #25
0
        //---------------------------Methods
        public string Crear(ProductoViewModel productoViewModel)
        {
            string mensaje = "";

            using (var ctx = new palominoEntities())
            {
                using (var dbContextTransaction = ctx.Database.BeginTransaction(IsolationLevel.Serializable))
                {
                    try
                    {   //Buscar los codigosBarras del usuario operador
                        var codigosBarrasExisten = (from s in ctx.Producto
                                                    where s.IdUsuarioAlta == productoViewModel.IdUsuarioAlta
                                                    select s.CodigoBarras
                                                    ).ToList();
                        bool existeProductoEnActivosOInactivos = productoViewModel.ExisteEn(codigosBarrasExisten);

                        //Busco el Id de usuario que necesitare, y ver que este activo
                        var resumenUsuarios = (from x in ctx.Usuario
                                               select new { x.Id, x.Usuario1, x.Activo }).ToList();

                        var usuarioActivoBuscado = resumenUsuarios.SingleOrDefault(item => (item.Id == productoViewModel.IdUsuarioAlta) &&
                                                                                   (item.Activo == true));

                        if (!existeProductoEnActivosOInactivos && (usuarioActivoBuscado != null))
                        {
                            var listaIdsProducto = (from s in ctx.Producto
                                                    select s.Id).ToList();
                            int      idUltimoEnProducto = listaIdsProducto.Count() == 0 ? 0 : listaIdsProducto.Max();
                            Producto p = new Producto();   //Producto es una clase del edmx
                            p.Id                = idUltimoEnProducto + 1;
                            p.CodigoBarras      = productoViewModel.CodigoBarras;
                            p.IdUsuarioAlta     = productoViewModel.IdUsuarioAlta;
                            p.FechaAlta         = productoViewModel.FechaAlta;
                            p.IdUsuarioModifico = productoViewModel.IdUsuarioModifico;
                            p.FechaModificacion = productoViewModel.FechaModificacion;
                            p.Activo            = true;
                            ctx.Producto.Add(p);


                            var idsDetalleProducto = (from s in ctx.DetalleProducto
                                                      select s.Id).ToList();
                            int             idUltimoEnDetalleProduto = idsDetalleProducto.Count() == 0 ? 0 : idsDetalleProducto.Max();
                            DetalleProducto detalleProducto          = new DetalleProducto();
                            detalleProducto.Id                = idUltimoEnDetalleProduto + 1;
                            detalleProducto.Nombre            = productoViewModel.Nombre;
                            detalleProducto.IdUsuarioAlta     = productoViewModel.IdUsuarioAlta;
                            detalleProducto.IdUsuarioModifico = productoViewModel.IdUsuarioModifico;
                            detalleProducto.FechaAlta         = productoViewModel.FechaAlta;
                            detalleProducto.FechaModificacion = productoViewModel.FechaModificacion;
                            detalleProducto.Activo            = true;
                            ctx.DetalleProducto.Add(detalleProducto);

                            ProductoConDetalles productoConDetalles = new ProductoConDetalles();
                            productoConDetalles.IdProducto        = p.Id;
                            productoConDetalles.IdDetalleProducto = detalleProducto.Id;
                            productoConDetalles.IdUsuarioAlta     = productoViewModel.IdUsuarioAlta;
                            productoConDetalles.FechaAlta         = productoViewModel.FechaAlta;
                            productoConDetalles.IdUsuarioModifico = productoViewModel.IdUsuarioModifico;
                            productoConDetalles.FechaModificacion = productoViewModel.FechaModificacion;
                            productoConDetalles.Activo            = true;
                            ctx.ProductoConDetalles.Add(productoConDetalles);

                            ctx.SaveChanges();
                            mensaje = "ok";
                        }

                        else
                        {
                            mensaje = existeProductoEnActivosOInactivos == true ? "Ya existe este código de barras en la BD" : "El usuario esta inactivo";
                        }
                        dbContextTransaction.Commit();
                    }

                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        throw new Exception("Excepcion cachada y lanzada en ProductoLN.Crear", ex);
                    }
                }
            }
            return(mensaje);
        }