/// <summary> /// Inserta la informacion de una factura y su detalle. /// </summary> /// <param name="factura"></param> /// <returns></returns> public bool InsertarFactura(ref Factura factura) { bool retorno = false; using (SqlConnection connection = new SqlConnection(CONNECTIONSTRING)) { connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; try { ManejadorFactura facturadb = new ManejadorFactura(connection, transaction); facturadb.Factura = factura; if (facturadb.Insertar()) { factura.IdFactura = int.Parse(facturadb.Identity.ToString()); foreach (DetalleFactura item in factura.DetalleFactura) { ManejadorTarifaServicio tarifaserviciobd = new ManejadorTarifaServicio(connection, transaction); TarifaServicio tarifaservicio = tarifaserviciobd.SeleccionarTarifa(item.Servicio.IdServicio, factura.Cliente.Estrato.IdEstrato); item.Factura = factura; item.ValorConsumo = item.CantidadConsumo * tarifaservicio.ValorServicio; ManejadorDetalleFactura ManejadorDetalleFactura = new ManejadorDetalleFactura(connection, transaction); ManejadorDetalleFactura.DetalleFactura = item; if (!ManejadorDetalleFactura.Insertar()) { throw new Exception("Error registrando el detalle"); } } transaction.Commit(); retorno = true; } } catch (Exception ex) { transaction.Rollback(); throw ex; } } return(retorno); }
/// <summary> /// Inserta la informacion de un estrato y sus tarifas por servicio /// </summary> /// <param name="estrato"></param> /// <param name="TarifaTv"></param> /// <param name="TarifaTel"></param> /// <param name="TarifaNet"></param> /// <returns></returns> public bool InsertarEstrato(ref Estrato estrato, decimal TarifaTv, decimal TarifaTel, decimal TarifaNet) { bool retorno = false; using (SqlConnection connection = new SqlConnection(CONNECTIONSTRING)) { connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; try { ManejadorEstrato estratodb = new ManejadorEstrato(connection, transaction); estratodb.Estrato = estrato; if (estratodb.Insertar()) { estrato.IdEstrato = byte.Parse(estratodb.Identity.ToString()); List <TarifaServicio> Tarifas = new List <TarifaServicio>(); Tarifas.Add(new TarifaServicio() { Unidad = new UnidadTarifa() { IdUnidad = 1, }, IdServicio = 1, ValorServicio = TarifaTv }); Tarifas.Add(new TarifaServicio() { Unidad = new UnidadTarifa() { IdUnidad = 2 }, IdServicio = 2, ValorServicio = TarifaTel }); Tarifas.Add(new TarifaServicio() { Unidad = new UnidadTarifa() { IdUnidad = 3 }, IdServicio = 3, ValorServicio = TarifaNet }); foreach (TarifaServicio item in Tarifas) { ManejadorTarifaServicio manejador = new ManejadorTarifaServicio(connection, transaction); item.Estrato = estrato; manejador.TarifaServicio = item; manejador.Insertar(); } transaction.Commit(); retorno = true; } } catch (Exception ex) { transaction.Rollback(); throw ex; } } return(retorno); }