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")); }
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); }
//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); } }
public int EditarProducto(producto pd) { return(apr.EditarProducto(pd)); }
//crear los metodos para realizar la funcionalidad public carroitem(producto _producto, int _cantidad) { this._producto = _producto; this._cantidad = _cantidad; }
public int Grabar(producto item) { return(item.GrabarObjetoT(x => x.id)); }
public int insertarProducto(producto pr) { return(apr.insertarProducto(pr)); }
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("")); } }
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); } }
public void guardarProducto(producto producto, String[] idProveedor, String[] idEstante) { repo.guardarProducto(producto, idProveedor, idEstante); }
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 })); } }
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")); }
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"); } } } } } } } }
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); }
public void create(producto producto) { context.producto.Add(producto); context.SaveChanges(); }
//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")); } }; }
public void edit(producto producto) { context.Entry(producto).State = EntityState.Modified; context.SaveChanges(); }
public int Borrar(producto item) { return(item.BorrarObjetoT()); }