protected void BAgregar_Click(object sender, EventArgs e) { DataTable esSocio; int codigo_socio; DateTime fecha; int costo = 0; try { codigo_socio = Convert.ToInt32(TBCliente.Text); } catch (Exception) { codigo_socio = -1; } fecha = DateTime.Now; if (codigo_socio != -1) { Utilerías.Objetos.Cliente nCliente = new Utilerías.Objetos.Cliente(); nCliente.NumeroSocio = codigo_socio; esSocio = insConsultasBLL.ConsultarSocio(nCliente); if (esSocio.Rows.Count != 0) { costo = calcCosto("socio"); } } else { costo = calcCosto("particular"); } TBCosto.Text = costo.ToString(); Venta nVenta = new Venta(); nVenta.Cliente = codigo_socio; nVenta.Fecha = fecha; nVenta.Costo = costo; try { insRegistroBLL.RegistrarVenta(nVenta, pelisVendidas); } catch (Exception ex) { div.InnerHtml = "<script > alert(' " + ex.Message + "');</script > "; return; } div.InnerHtml = "<script > alert('Se registro la venta de forma exitosa');</script > "; for (int i = 0; i < pelisVendidas.Rows.Count; i++) pelisVendidas.Rows.RemoveAt(i); }
/// <summary> /// Método definido para registrar los datos de los ventas /// </summary> /// <param name="DatosV"></param> /// <param name="PelisVendidas"></param> public void RegistrarVentas(Venta DatosV, DataTable PelisVendidas) { Database db = DatabaseFactory.CreateDatabase("Desarrollo"); string sqlCommand = "dbo.[insertar_ventas]"; DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand); if (PelisVendidas.Rows.Count == 0) { throw new Exception("No existen películas seleccionadas"); } using (DbConnection conn = db.CreateConnection()) // conexion para la transaccion { conn.Open(); //abrimos la conexion DbTransaction tranRegistro = conn.BeginTransaction(); //iniciamos la transaccion try { db.AddInParameter(dbCommand, "@INTcliente", DbType.Int32, Utilerías.Utilerías.ObtenerValor(DatosV.Cliente)); db.AddInParameter(dbCommand, "@DTfecha", DbType.DateTime, Utilerías.Utilerías.ObtenerValor(DatosV.Fecha)); db.AddInParameter(dbCommand, "@INTcosto", DbType.Int32, Utilerías.Utilerías.ObtenerValor(DatosV.Costo)); db.AddOutParameter(dbCommand, "@nStatus", DbType.Int16, 2); db.AddOutParameter(dbCommand, "@strMessage", DbType.String, 250); db.AddOutParameter(dbCommand, "@INTid_venta", DbType.Int32, 4); db.ExecuteNonQuery(dbCommand, tranRegistro); if (int.Parse(db.GetParameterValue(dbCommand, "@nStatus").ToString()) > 0) throw new Exception(db.GetParameterValue(dbCommand, "@strMessage").ToString()); // Se registra la informacion del auto, un vez ingresados los datos personales int idVenta = int.Parse(db.GetParameterValue(dbCommand, "@INTid_venta").ToString()); for (int i = 0; i < PelisVendidas.Rows.Count; i++) { VentaPelícula DatosVP = new VentaPelícula(); DatosVP.Venta = idVenta; DatosVP.Película = Convert.ToInt32(PelisVendidas.Rows[i]["idPelículas"].ToString()); RegistrarVentasPelículas(DatosVP, tranRegistro, db); } tranRegistro.Commit(); } catch (Exception ex) { tranRegistro.Rollback(); throw new Exception(ex.Message); } finally { conn.Close(); // cerrar la conexion } } }
/// <summary> /// Método para registrar las ventas y las películas que se asignan a esta. /// </summary> /// <param name="DatosV"></param> /// <param name="pelisVendidas"></param> public void RegistrarVenta(Venta DatosV, DataTable pelisVendidas) { try { this.Registro.RegistrarVentas(DatosV, pelisVendidas); } catch (Exception ex) { throw new Exception(ex.Message); } }