public bool Agregar(Cotizacion cotizacion) { try { daCotizacion = new daCotizacion(); daCotizacion.IniciarTransaccion(); if (string.IsNullOrEmpty(cotizacion.numero)) { cotizacion.numero = generarNumeracion(daCotizacion, cotizacion.numeracion.idNumeracion); } cotizacion.fechaCreacion = DateTime.Now; daCotizacion.Agregar(cotizacion); daCotizacionGrupo = new daCotizacionGrupo(); daCotizacionGrupo.AsignarSesion(daCotizacion); daCotizacionItem = new daCotizacionItem(); daCotizacionItem.AsignarSesion(daCotizacion); daCotizacionServicio = new daCotizacionServicio(); daCotizacionServicio.AsignarSesion(daCotizacion); foreach (CotizacionGrupo grupo in cotizacion.grupos) { grupo.idCotizacion = cotizacion.idCotizacion; daCotizacionGrupo.Agregar(grupo); foreach (CotizacionItem item in grupo.items) { item.idCotizacionGrupo = grupo.idCotizacionGrupo; daCotizacionItem.Agregar(item); foreach (CotizacionServicio servicio in item.servicios) { servicio.idCotizacionItem = item.idCotizacionItem; daCotizacionServicio.Agregar(servicio); } } } daCotizacion.ConfirmarTransaccion(); } catch (Exception) { daCotizacion.AbortarTransaccion(); throw; } finally { daCotizacion.CerrarSesion(); } return true; }