/// <summary> /// Obtiene uan lista de linea de venta de una venta. /// Si no encuentra nada devuelve exceocion propia /// </summary> /// <param name="idVenta"></param> /// <param name="idArt"></param> /// <returns></returns> private List <VentaLinea> buscarListLineaVenta(int idVenta) { DataTable dt = selectLineasVentas(idVenta); if (dt == null || dt.Rows.Count == 0) { throw new ExcepcionPropia("No se han encontrado lineas de venta"); } List <VentaLinea> listLv = new List <VentaLinea>(); ControladorArticulos c_articulos = new ControladorArticulos(conn); foreach (DataRow row in dt.Rows) { VentaLinea lv = new VentaLinea(); lv.Articulo = c_articulos.BuscarArticulo(Convert.ToInt32(row["idarticulo"])); lv.Cantidad = Convert.ToInt32(row["cantidad"]); lv.FechaBaja = row["fecha_baja"] as DateTime?; lv.IdusuarioBaja = row["idusuario_baja"] as int?; lv.Idventa = Convert.ToInt32(row["idventa"]); lv.PrecioUnitario = Convert.ToDecimal(row["precio_unitario"]); if (row["idnota_credito"] != DBNull.Value) { lv.NotaCredito = BuscarNotaCredito(Convert.ToInt32(row["idnota_credito"])); } listLv.Add(lv); } return(listLv); }
/// <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); } }
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); } }
private void insertVentaLinea(VentaLinea lv) { string sql = @"INSERT INTO venta_detalle ( idventa, idarticulo, precio_unitario, cantidad ) VALUES ( :idventa, :idarticulo, :precio_unitario, :cantidad )"; conn.Execute(sql, lv.Idventa, lv.Idarticulo, lv.PrecioUnitario, lv.Cantidad); }
protected void btnAgregar_Click(object sender, EventArgs e) { try { if (ventaActual.ListLineaVenta != null && ventaActual.ListLineaVenta.Exists(l => l.Articulo.Idarticulo == articuloActual.Idarticulo)) { throw new ExcepcionPropia("El articulo articuloActualya existe en la venta"); } VentaLinea lv = new VentaLinea(); lv.Articulo = articuloActual; lv.Cantidad = Convert.ToInt32(txtCantidadModal.Text); lv.PrecioUnitario = articuloActual.Precio; if (ventaActual.ListLineaVenta == null) { ventaActual.ListLineaVenta = new List <VentaLinea>(); } ventaActual.ListLineaVenta.Add(lv); txtTotal.Text = ventaActual.ListLineaVenta.Sum(l => l.PrecioUnitario * l.Cantidad).ToString("0.00"); dgvArticulos.DataSource = ventaActual.ListLineaVenta; dgvArticulos.DataBind(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(@"<script type='text/javascript'>"); sb.Append("$('#articuloModal').modal('hide');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AddShowModalScript", sb.ToString(), false); } catch (ExcepcionPropia mye) { PanelError.Visible = true; lblError.Text = mye.Message; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(@"<script type='text/javascript'>"); sb.Append("$('#articuloModal').modal('hide');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AddShowModalScript", sb.ToString(), false); } }