コード例 #1
0
        public ActionResult Anular(int?id)
        {
            if (id != null)
            {
                int comprobacion = 0;
                //seleccionamos los id del detalle de compra para darle de baja,posteriormente
                var shop = (from detalle in db.detalle_compra
                            where detalle.id_compra == id
                            select new
                {
                    id_detalle = detalle.id_detalle_compra
                }).ToArray();
                detalle_compra   dc = new detalle_compra();
                detalle_producto dp = new detalle_producto();
                int can_dc, can_dp;
                //solo para de baja a la compra pero no sirve de nada  porque por que al final lo elimino
                compra compra = db.compra.Where(x => x.id_compra == id).SingleOrDefault();
                compra.id_estado = 2;//doy de baja la compra
                foreach (var item in shop)
                {
                    dc     = db.detalle_compra.Where(x => x.id_compra == id && x.id_detalle_compra == item.id_detalle).SingleOrDefault();
                    dp     = db.detalle_producto.Where(x => x.id_compra == id && x.id_detalle_compra == item.id_detalle).SingleOrDefault();
                    can_dc = Convert.ToInt32(dc.total_und);
                    can_dp = Convert.ToInt32(dp.stock);
                    if (can_dc == can_dp)
                    {
                        //elimina la compra, pero si no son iguales entonnces quiere decir que ya se ha empezado a utilizar esa compra y no se puede eliminar por que causaria un conflito
                        var prod = new producto();
                        prod       = db.producto.Where(x => x.id_producto == dc.id_producto).SingleOrDefault(); ///seleciono el prod del detalle de compra
                        dp.estado  = false;                                                                     //pongo en falso el estado de detalle de producto
                        dc.estado  = false;                                                                     //pongo en falso el detalle de compra
                        prod.stock = prod.stock - can_dc;                                                       //resto la cantidad que se compro del stock que esta en producto

                        //db.Entry(dp).State = EntityState.Modified;
                        db.detalle_producto.Remove(dp);
                        db.detalle_compra.Remove(dc);
                        db.Entry(prod).State = EntityState.Modified;
                    }
                    else
                    {
                        comprobacion = 1;
                        break;
                    }
                }
                if (comprobacion == 0)
                {
                    db.compra.Remove(compra);
                    db.SaveChanges();
                    //guarda los cambios,,,     sino no guardes nada y manda un mensaje al usuario
                }
                else
                {
                    ViewBag.Error = "No se puedo anular la venta,por que ya se han empezado a vender";//aqui tendria que ir el viewbag para mandar el erro al usuario de que no se pudo anular esa compra
                }
            }
            else
            {
                ViewBag.Error = "No hay compra para anular";
                //no hay compra para eliminar
            }
            return(RedirectToAction("index"));
        }
コード例 #2
0
        public Boolean ActualizarListaNivelesAutorizacion(List <nivelesAutorizacionOrden> listaniveles)
        {
            Boolean resultado = true;

            Conexion conexion = new Conexion(Empresa);

            conexion.IniciarTransaccion();

            try
            {
                producto  _producto            = new producto(Empresa, Usuario);
                DataTable tablaNivelesActuales = ObtenerListaNivelesAutorizacionSinMAximoNivel(conexion);
                Boolean   verificador          = true;
                foreach (DataRow fila in tablaNivelesActuales.Rows)
                {
                    verificador = true;
                    foreach (nivelesAutorizacionOrden infoNiveles in listaniveles)
                    {
                        if (infoNiveles.ID_FIRMA == Convert.ToDecimal(fila["ID_FIRMA"]))
                        {
                            verificador = false;
                            break;
                        }
                    }

                    if (verificador == true)
                    {
                        if (DesactivarNivelAutorizacion(Convert.ToDecimal(fila["ID_FIRMA"]), conexion) == false)
                        {
                            conexion.DeshacerTransaccion();
                            resultado = false;
                            break;
                        }
                    }
                }

                if (resultado == true)
                {
                    foreach (nivelesAutorizacionOrden infoNivel in listaniveles)
                    {
                        if (infoNivel.ID_FIRMA == 0)
                        {
                            if (AdicionarNivelAutorizacion(infoNivel.ID_ROL, null, infoNivel.TOPE, conexion) <= 0)
                            {
                                conexion.DeshacerTransaccion();
                                resultado = false;
                                break;
                            }
                        }
                    }
                }

                if (resultado == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                MensajeError = ex.Message;
                conexion.DeshacerTransaccion();
                resultado = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return(resultado);
        }
コード例 #3
0
        //categoria cate = new categoria();
        //unidad unid = new unidad();

        public void ListarProductos(DataGridView datos, List <producto> productos)
        {
            //limpiamos la lista de los productos para rellenarlo con los nuevos datos que en la base de datos se alla llenado
            productos.Clear();
            string     consulta = "listar_productos";
            SqlCommand comando  = new SqlCommand(consulta, conexion.ObtenerConexion());

            comando.Connection = conexion.ObtenerConexion();
            comando.ExecuteNonQuery();

            SqlDataAdapter da = new SqlDataAdapter(comando);
            DataTable      dt = new DataTable();

            da.Fill(dt);

            datos.Tag = "producto";


            DataTable data_grid_model = new DataTable();

            data_grid_model.Columns.Add("Codigo").ReadOnly      = true;
            data_grid_model.Columns.Add("Nombre").ReadOnly      = true;
            data_grid_model.Columns.Add("Descripción").ReadOnly = false;
            data_grid_model.Columns.Add("Unidad").ReadOnly      = true;
            data_grid_model.Columns.Add("Categoria").ReadOnly   = true;
            data_grid_model.Columns.Add("Stock").ReadOnly       = true;
            datos.DataSource = data_grid_model;

            foreach (DataRow dr in dt.Rows)
            {
                producto p = new producto();
                p.id_producto = (Int32)dr["id_producto"];
                p.codigo      = (String)dr["codigo"];
                p.nombre      = (String)dr["nombre"];
                p.descripcion = (String)dr["descripcion"];
                try
                {
                    byte[] imageBuffer        = (byte[])dr["imagen"];
                    System.IO.MemoryStream ms = new System.IO.MemoryStream(imageBuffer);
                    p.imagen = Image.FromStream(ms);
                }
                catch (Exception)
                {
                    p.imagen = null;
                }
                p.Cate.id          = (Int32)dr["categoria_id_categoria"];
                p.Cate.nombre      = (String)dr["categoria_nombre"];
                p.Cate.descripcion = (String)dr["categoria_descripcion"];
                p.Unid.id          = (Int32)dr["unidad_id_unidad"];
                p.Unid.nombre      = (String)dr["unidad_nombre"];
                p.Unid.descripcion = (String)dr["unidad_descripcion"];

                productos.Add(p);

                DataRow row = data_grid_model.NewRow();
                row["Codigo"]      = p.codigo;
                row["Nombre"]      = p.nombre;
                row["Descripción"] = p.descripcion;
                row["Unidad"]      = p.Unid.descripcion;
                row["Categoria"]   = p.Cate.descripcion;
                row["Stock"]       = dr["stock"].ToString();
                data_grid_model.Rows.Add(row);
            }
        }
コード例 #4
0
 public int EditarProducto(producto pd)
 {
     return(apr.EditarProducto(pd));
 }
コード例 #5
0
ファイル: carroitem.cs プロジェクト: joslizama/tienda_virtual
        //crear los metodos para realizar la funcionalidad

        public carroitem(producto _producto, int _cantidad)
        {
            this._producto = _producto;
            this._cantidad = _cantidad;
        }
コード例 #6
0
ファイル: ProductoPr.cs プロジェクト: ferbenor/moro
 public int Grabar(producto item)
 {
     return(item.GrabarObjetoT(x => x.id));
 }
コード例 #7
0
 public int insertarProducto(producto pr)
 {
     return(apr.insertarProducto(pr));
 }
コード例 #8
0
        public JsonResult ActualizarPrecios(string precio, string tipoPrecio, int idProducto, string stMoneda)
        {
            try
            {
                usuario oUsuario = (usuario)Session["Usuario"];
                if (oUsuario == null || oUsuario.idTipoUsuario != 2)
                {
                    throw new Exception();
                }
                srvProducto sProducto = new srvProducto();
                producto    oProducto = new producto();
                oProducto = sProducto.ObtenerProducto(idProducto);
                decimal ValorUSD = Convert.ToDecimal(GetValorUsd());

                decimal dPrecio = Convert.ToDecimal(precio);
                decimal dUSD    = dPrecio;
                decimal dARS    = dPrecio;
                switch (stMoneda)
                {
                case "ARS":    //precio viene en ARS - calcular precio USD
                    dUSD = dUSD / ValorUSD;
                    break;

                case "USD":    //precio viene en USD - calcular precio ARS
                    dARS = Math.Round(dARS * ValorUSD);
                    break;

                default:
                    return(Json(""));
                }
                switch (tipoPrecio)
                {
                case "Costo":
                    if (oProducto.precioFijo == true)
                    {
                        oProducto.precioCosto = dARS;
                    }
                    else
                    {
                        oProducto.precioCosto = dUSD;
                    }
                    break;

                case "Gremio":
                    if (oProducto.precioFijo == true)
                    {
                        oProducto.precioGremio = dARS;
                    }
                    else
                    {
                        oProducto.precioGremio = dUSD;
                    }
                    break;

                case "Contado":
                    if (oProducto.precioFijo == true)
                    {
                        oProducto.precioContado = dARS;
                    }
                    else
                    {
                        oProducto.precioContado = dUSD;
                    }
                    break;

                case "Lista":
                    if (oProducto.precioFijo == true)
                    {
                        oProducto.precioLista = dARS;
                    }
                    else
                    {
                        oProducto.precioLista = dUSD;
                    }
                    break;

                default:
                    return(Json(""));
                }
                sProducto.GuardarModificarProducto(oProducto);
                return(Json(dUSD + ";" + dARS));
            }
            catch (Exception)
            {
                return(Json(""));
            }
        }
コード例 #9
0
 public static DataTable obtieneArticuloIndividual(conexion_entidad cn_conexion, producto eProducto)
 {
     try
     {
         return(datos_articulos.obtieneArticuloIndividual(cn_conexion, eProducto));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message, ex.InnerException);
     }
 }
コード例 #10
0
 public void guardarProducto(producto producto, String[] idProveedor, String[] idEstante)
 {
     repo.guardarProducto(producto, idProveedor, idEstante);
 }
コード例 #11
0
        public ActionResult AgregaRecetaDetalle(FormCollection f)
        {
            var d = new detalle_receta();

            foreach (var a in f.AllKeys)
            {
                switch (a) // Selecciono input dependiendo el id
                {
                case "txtReceta":
                    d.recetaId = int.Parse(f[a]);
                    break;

                case "selectProducto":
                    d.productoId = int.Parse(f[a]);
                    break;

                case "selectMedida":
                    d.medidaId = int.Parse(f[a]);
                    break;

                case "txtCantidad":
                    d.cantidad = int.Parse(f[a]);
                    break;
                }
            }
            //Response.Write(d.recetaId);
            //return null;
            try
            {
                int cantidadD = 0;
                // agrego Detalle recetas a la DB
                detalle_receta dr    = new detalle_receta();
                producto       pr    = new producto();
                receta         rt    = new receta();
                var            query = from rtd in db.detalle_receta where rtd.productoId == d.productoId && rtd.recetaId == d.recetaId select rtd.cantidad;
                foreach (int grp in query)
                {
                    cantidadD = grp;
                }
                if (cantidadD != 0)
                {
                    throw new ArgumentException("Producto ya se encuentra registrado");
                }

                rt            = db.receta.Find(d.recetaId);
                pr            = db.producto.Find(d.productoId);
                dr.cantidad   = d.cantidad;
                dr.recetaId   = d.recetaId;
                dr.productoId = d.productoId;
                dr.medidaId   = pr.medidaId;
                dr.estado     = true;
                db.detalle_receta.Add(dr);
                int idReceta = d.recetaId;
                int valor    = Convert.ToInt16(rt.costo_receta) + (Convert.ToInt16(d.cantidad) * ((Convert.ToInt16(pr.precio) / Convert.ToInt16(pr.formato))));
                rt.costo_receta = Convert.ToInt16(valor);
                db.SaveChanges();


                return(RedirectToAction("Index", "DetalleReceta", new { id = d.recetaId }));
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "DetalleReceta", new { id = d.recetaId, editar = 1 }));
            }
        }
コード例 #12
0
        public ActionResult Save(inventario inventario, TipoMovimiento tipoMovimiento, String[] proveedor, String[] estante, String[] tienda)
        {
            bool esSalida = false;

            if (tipoMovimiento.tipoEntrada == null)
            {
                tipoMovimiento.tipoEntrada = "No aplica";
                esSalida = true;
            }
            else
            {
                tipoMovimiento.tipoSalida = "No aplica";
            }
            if (inventario == null || tipoMovimiento.tipoEntrada == null || tipoMovimiento.tipoSalida == null)
            {
                ViewBag.idTienda                = listaTiendas();
                ViewBag.DetalleCarrito          = Carrito.Instancia.Items;
                ViewBag.idProveedores           = listaproveedor();
                ViewBag.idEstante               = listaEstante();
                TempData["NotificationMessage"] = Web.Util.SweetAlertHelper.Mensaje("Inventario", "Hay campos que estan vacios", SweetAlertMessageType.error);
                return(View("AgregarInventario", inventario));
            }


            List <producto> carritoProducto = new List <producto>();

            foreach (var item in Carrito.Instancia.Items)
            {
                producto pro = new producto();
                pro.id            = item.Producto.id;
                pro.nombre        = item.Producto.nombre;
                pro.costoUnitario = item.Producto.costoUnitario;
                pro.idCategoria   = item.Producto.idCategoria;
                pro.totalStock    = item.totalStock;
                pro.descripcion   = item.Producto.descripcion;
                pro.imagen        = item.Producto.imagen;

                carritoProducto.Add(pro);

                serviseProdu.actualizarExistDB(item.id, item.totalStock, esSalida);

                bool rest = serviseProdu.actualizarExistDB(item.id, item.totalStock, esSalida);

                if (!rest)
                {
                    ViewBag.DetalleCarrito          = Carrito.Instancia.Items;
                    ViewBag.idProveedores           = listaproveedor();
                    ViewBag.idTienda                = listaTiendas();
                    ViewBag.idEstante               = listaEstante();
                    TempData["NotificationMessage"] = Web.Util.SweetAlertHelper.Mensaje("Inventario", "La cantidad ingresada excede el limite máximo", SweetAlertMessageType.warning);
                    return(View("AgregarInventario", inventario));
                }
            }

            int tipoMoviID = serviseMovi.agregarTipoMovimiento(tipoMovimiento);

            usuario user = (usuario)Session["Usuario"];

            inventario.idUsuario        = user.id;
            inventario.fecha            = DateTime.Now.ToString("dd/MM/yyyy");
            inventario.idTienda         = int.Parse(tienda[0]);
            inventario.idTipoMovimiento = tipoMoviID;
            inventario.TipoMovimiento   = tipoMovimiento;
            inventario.totalPagado      = Carrito.Instancia.GetTotal();
            inventario.iva = iva;


            serviseInventa.crearInventario(carritoProducto, inventario, estante, proveedor);


            Carrito.Instancia.eliminarCarrito();
            ViewBag.DetalleCarrito = Carrito.Instancia.Items;
            ViewBag.idProveedores  = listaproveedor();
            ViewBag.idTienda       = listaTiendas();
            ViewBag.idEstante      = listaEstante();

            //muestra las notificaciones
            TempData["NotificationMessage"] = Web.Util.SweetAlertHelper.Mensaje("Inventario", "Productos agregado al inventario", SweetAlertMessageType.success);
            return(RedirectToAction("AgregarInventario"));
        }
コード例 #13
0
 void Guardar()
 {
     if (txtProducto.Text == "")
     {
         MessageBox.Show("Ingresa el nombre del producto");
     }
     else
     {
         if (txtDescripcion.Text == "")
         {
             MessageBox.Show("Ingresa la descripcion");
         }
         else
         {
             if (txtMarca.Text == "")
             {
                 MessageBox.Show("Ingresa la marca");
             }
             else
             {
                 if (txtpreciocompra.Text == "")
                 {
                     MessageBox.Show("Ingressa el precio de compra");
                 }
                 else
                 {
                     if (txtprecioprofesor.Text == "")
                     {
                         MessageBox.Show("Ingresa el precio para profesores");
                     }
                     else
                     {
                         if (txtpreciopublico.Text == "")
                         {
                             MessageBox.Show("Ingresa el precio para el publico en general");
                         }
                         else
                         {
                             if (cbbAlmacen.Text == "")
                             {
                                 MessageBox.Show("Selecciona el almacen");
                             }
                             else
                             {
                                 producto pr = new producto
                                 {
                                     nombre         = txtProducto.Text,
                                     descripcion    = txtDescripcion.Text,
                                     marca          = txtMarca.Text,
                                     almacen        = cbbAlmacen.Text,
                                     usuario_id     = idus,
                                     estatus        = "Activo",
                                     preciocompra   = Convert.ToDecimal(txtpreciocompra.Text),
                                     precioprofesor = Convert.ToDecimal(txtprecioprofesor.Text),
                                     preciopublico  = Convert.ToDecimal(txtpreciopublico.Text),
                                     existencias    = 0,
                                 };
                                 BaseDatos.GetBaseDatos().productoes.Add(pr);
                                 BaseDatos.GetBaseDatos().SaveChanges();
                                 Limpiar();
                                 MessageBox.Show("Registro exitoso");
                             }
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #14
0
        public Boolean AdicionarAlmRegProductosProveedor(Decimal ID_PROVEEDOR,
                                                         List <producto> listaProductos)
        {
            Boolean resultado = true;

            Conexion conexion = new Conexion(Empresa);

            conexion.IniciarTransaccion();

            try
            {
                producto  _producto = new producto(Empresa, Usuario);
                DataTable tablaProductosProveedor = ObtenerAlmRegProductosProveedorPorIdProveedor(ID_PROVEEDOR, conexion);
                Boolean   verificador             = true;
                foreach (DataRow fila in tablaProductosProveedor.Rows)
                {
                    verificador = true;
                    foreach (producto infoProdProv in listaProductos)
                    {
                        if (infoProdProv.REGISTRO_P_P == Convert.ToDecimal(fila["REGISTRO_P_P"]))
                        {
                            verificador = false;
                            break;
                        }
                    }

                    if (verificador == true)
                    {
                        if (EliminarRegistroAlmRegProductoProveedor(Convert.ToDecimal(fila["REGISTRO_P_P"]), conexion) == false)
                        {
                            conexion.DeshacerTransaccion();
                            resultado = false;
                            break;
                        }
                    }
                }

                if (resultado == true)
                {
                    foreach (producto infoProdProv in listaProductos)
                    {
                        if (infoProdProv.REGISTRO_P_P == 0)
                        {
                            if (AdicionarAlmRegProdProv(infoProdProv.ID_PRODUCTO, ID_PROVEEDOR, conexion) <= 0)
                            {
                                conexion.DeshacerTransaccion();
                                resultado = false;
                                break;
                            }
                        }
                    }
                }

                if (resultado == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                MensajeError = ex.Message;
                conexion.DeshacerTransaccion();
                resultado = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return(resultado);
        }
コード例 #15
0
 public void create(producto producto)
 {
     context.producto.Add(producto);
     context.SaveChanges();
 }
コード例 #16
0
//realizar la venta del producto
        public ActionResult Terminar_Compra(producto producto)
        {
            using (ejemplodatacontext dbc = new ejemplodatacontext())
            {
                //llamar a la lista
                List <carroitem> compras = (List <carroitem>)Session["carro"];
                //verirficar si el listado tiene datos

                if (compras.Count > 0 && compras != null)
                {
                    //recorrer el carro de compras


                    for (int k = 0; k < compras.Count; k++)
                    {
                        // verificar si la cantidad es mayor al stock de producto
                        if (compras[k].Cantidad > compras[k].Producto.stock)
                        {
                            return(RedirectToAction("Error_usuario", "usuario"));
                        }
                        else
                        {
                            var mod = dbc.producto.SingleOrDefault(w => w.id == producto.id);

                            producto.stock = producto.stock - compras[k].Cantidad;
                            dbc.SaveChanges();
                            if (producto.stock <= 0)
                            {
                                return(RedirectToAction("Error_usuario", "usuario"));
                            }
                        }
                    } // --> end for

                    //funciona pero no elimina el stock de producto



                    //realizar la venta y registrar en la bases de datos
                    var rut = Session["r"].ToString();

                    venta v = new venta();

                    v.dia_venta  = DateTime.Today;
                    v.sub_total  = compras.Sum(x => x.Cantidad * x.Producto.precio);
                    v.iva        = 0.19;
                    v.total      = v.sub_total * v.iva + v.sub_total;
                    v.usuario_id = rut;



                    //realizar la lista de la venta(boleta)

                    v.lista_venta = (from item in compras
                                     select new lista_venta
                    {
                        venta_id = v.id,
                        producto_id = item.Producto.id,
                        cantidad = item.Cantidad,
                        total = item.Cantidad * item.Producto.precio,
                    }).ToList();


                    dbc.venta.Add(v);
                    dbc.SaveChanges();

                    return(RedirectToAction("comprarealizada", "usuario"));
                }
                else
                {
                    return(RedirectToAction("ntienedatos", "usuario"));
                }
            };
        }
コード例 #17
0
 public void edit(producto producto)
 {
     context.Entry(producto).State = EntityState.Modified;
     context.SaveChanges();
 }
コード例 #18
0
ファイル: ProductoPr.cs プロジェクト: ferbenor/moro
 public int Borrar(producto item)
 {
     return(item.BorrarObjetoT());
 }