Пример #1
0
        public static void Actualizar(MovimientoDet objEntidad)
        {
            using (SqlConnection con = GetConnection.UNITE())
            {
                bool openConn = (con.State == ConnectionState.Open);
                if (!openConn)
                {
                    con.Open();
                }

                using (SqlCommand cmd = new SqlCommand("usp_MovimientoDet_Update", con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@pIdMovimientoDet", SqlDbType.Int).Value    = objEntidad.IdMovimientoDet;
                    cmd.Parameters.Add("@pIdProducto", SqlDbType.Int).Value         = objEntidad.IdProducto;
                    cmd.Parameters.Add("@pCantidad", SqlDbType.Int).Value           = objEntidad.Cantidad;
                    cmd.Parameters.Add("@pPrecioUnit", SqlDbType.Decimal).Value     = objEntidad.PrecioUnit;
                    cmd.Parameters.Add("@pPrecioConDscto", SqlDbType.Decimal).Value = objEntidad.PrecioConDscto;
                    cmd.Parameters.Add("@pImporte", SqlDbType.Decimal).Value        = objEntidad.Importe;
                    cmd.ExecuteNonQuery();
                }

                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
        }
        public async Task <IActionResult> Create(int id, [Bind("IdMovimiento,IdArticulo,IdAlmacen,Cantidad,Precio")] MovimientoDet movimientoDet)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    movimientoDet.IdMovimiento = id;

                    var movimiento = await _context.Movimiento
                                     .AsNoTracking()
                                     .FirstOrDefaultAsync(m => m.IdMovimiento == id);

                    if (movimiento == null)
                    {
                        return(NotFound());
                    }


                    if (movimiento.Tipo == TipoMovimiento.S)
                    {
                        var inventario = _context.Inventario
                                         .Where(m => m.IdArticulo == movimientoDet.IdArticulo && m.IdAlmacen == movimientoDet.IdAlmacen)
                                         .SumAsync(a => a.Cantidad);
                        if (inventario.Result < movimientoDet.Cantidad)
                        {
                            ModelState.AddModelError("", "La Existencia es menor a la cantidad.");
                            return(View(movimientoDet));
                        }
                    }
                    _context.Add(movimientoDet);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Edit), "Movimiento", new { id = movimientoDet.IdMovimiento }));
                }
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.
                ModelState.AddModelError("", "No se pueden guardar los cambios. " +
                                         "Inténtalo de nuevo y si el problema persiste" +
                                         "consulte al administrador de su sistema.");
            }
            PopulateArticulosDropDownList(movimientoDet.IdArticulo);
            PopulateAlmacenDropDownList(movimientoDet.IdAlmacen);
            return(View(movimientoDet));
        }
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            try
            {
                var movimiento = await _context.MovimientoDet
                                 .AsNoTracking()
                                 .FirstOrDefaultAsync(m => m.IdMovimientoDet == id);

                var           IdMovimiento  = movimiento.IdMovimiento;
                MovimientoDet movimientoDet = new MovimientoDet()
                {
                    IdMovimientoDet = id
                };
                _context.Entry(movimientoDet).State = EntityState.Deleted;
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Edit), "Movimiento", new { id = IdMovimiento }));
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.)
                return(RedirectToAction(nameof(Delete), new { id = id, saveChangesError = true }));
            }
        }