Esempio n. 1
0
 /// <summary>
 /// Devuelve una lista de cambios si no encuentra nada devuielve excepcion propia
 /// </summary>
 /// <param name="idVenta"></param>
 /// <returns></returns>
 public List <VentaLineaCambio> BuscarListCambios(int idVenta)
 {
     try
     {
         string    sql = "SELECT * FROM venta_detalle_cambio vdc WHERE vdc.idventa=:p1";
         DataTable dt  = conn.GetDT(sql, idVenta);
         if (dt == null || dt.Rows.Count == 0)
         {
             throw new ExcepcionPropia("No se han encontrado Cambios");
         }
         else
         {
             ControladorArticulos    c_art   = new ControladorArticulos(conn);
             List <VentaLineaCambio> listVlc = new List <VentaLineaCambio>();
             foreach (DataRow row in dt.Rows)
             {
                 VentaLineaCambio vlc = new VentaLineaCambio();
                 vlc.Articulo         = c_art.BuscarArticulo(Convert.ToInt32(row["idarticulo"]));
                 vlc.ArticuloAnterior = c_art.BuscarArticulo(Convert.ToInt32(row["idarticulo_anterior"]));
                 vlc.Cantidad         = Convert.ToInt32(row["cantidad"]);
                 vlc.FechaCambio      = Convert.ToDateTime(row["fecha_cambio"]);
                 vlc.IdVenta          = Convert.ToInt32(row["idventa"]);
                 vlc.IdUsuario        = Convert.ToInt32(row["idusuario"]);
                 listVlc.Add(vlc);
             }
             return(listVlc);
         }
     }
     catch (Npgsql.NpgsqlException ex)
     {
         ControladorExcepcion.tiraExcepcion(ex);
         return(null);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Realiza el cambio.
        ///
        /// </summary>
        /// <param name="lvNueva"></param>
        /// <param name="lvCambiada"></param>
        public void RealizarCambio(VentaLinea lvNueva, VentaLineaCambio lvCambiada)
        {
            BeginTransaction();
            try
            {
                string sql = "DELETE FROM venta_detalle WHERE idventa=:p1 AND idarticulo=:p2";
                conn.Execute(sql, lvCambiada.IdVenta, lvCambiada.IdArticuloAnterior);

                string sql1 = @"INSERT INTO venta_detalle_cambio
                                (
	                                idventa,
	                                idarticulo,
	                                cantidad,
	                                idusuario,
	                                fecha_cambio,
	                                idarticulo_anterior
                                )
                                VALUES
                                (
	                                :idventa,
	                                :idarticulo,
	                                :cantidad,
	                                :idusuario,
	                                :fecha_cambio,
	                                :idarticulo_anterior
                                )";
                conn.Execute(sql1, lvCambiada.IdVenta, lvCambiada.IdArticulo, lvCambiada.Cantidad, lvCambiada.IdUsuario, lvCambiada.FechaCambio, lvCambiada.IdArticuloAnterior);

                insertVentaLinea(lvNueva);

                ///Actualizo strock articulos
                Venta v = buscarVenta(lvCambiada.IdVenta);
                ControladorArticulos c_art = new ControladorArticulos(conn);
                c_art.ActualizarStockArticulo(lvNueva.Idarticulo, -lvNueva.Cantidad, v.IdSucursal);
                c_art.ActualizarStockArticulo(lvCambiada.ArticuloAnterior.Idarticulo, lvCambiada.Cantidad, v.IdSucursal);

                CommitTransaction();
            }
            catch (Npgsql.NpgsqlException ex)
            {
                RollbackTransaction();
                ControladorExcepcion.tiraExcepcion(ex);
            }
        }
Esempio n. 3
0
    protected void btnAceptarModalCambio_Click(object sender, EventArgs e)
    {
        try
        {
            Articulo artAModificar = new Articulo();
            artAModificar.Idarticulo = Convert.ToInt32(hfIdArticuloACambiar.Value);

            Articulo artNuevo = new Articulo();
            artNuevo.Idarticulo = Convert.ToInt32(cbxArticulosModal.SelectedValue);

            VentaLineaCambio vdc = new VentaLineaCambio();
            vdc.IdVenta          = ventaActual.Idventa;
            vdc.Articulo         = artNuevo;
            vdc.ArticuloAnterior = artAModificar;
            vdc.Cantidad         = Convert.ToInt32(txtCantidad.Text);
            vdc.FechaCambio      = DateTime.Today;
            vdc.IdUsuario        = ApplicationSesion.ActiveUser.Idusuario;


            VentaLinea vl = new VentaLinea();
            vl.Articulo       = artNuevo;
            vl.Cantidad       = Convert.ToInt32(txtCantidad.Text);
            vl.Idventa        = ventaActual.Idventa;
            vl.PrecioUnitario = ventaActual.ListLineaVenta.FirstOrDefault(lv => lv.Idarticulo == artAModificar.Idarticulo).PrecioUnitario;

            using (ControladorVentas c_vemtas = new ControladorVentas())
            {
                c_vemtas.RealizarCambio(vl, vdc);
            }
            Response.Redirect(ResolveUrl("~/Venta/Ventas.aspx?m='Cambio Realizado Correctamete'"));
        }
        catch (ExcepcionPropia ex)
        {
            cerrarModal(modalArticulo);
            mostrarExcepcion(ex.Message);
        }
        catch (FormatException ex)
        {
            cerrarModal(modalArticulo);
            mostrarExcepcion(ex.Message);
        }
    }