public TOTransaction <List <TOEcCotiz> > GetEcCotiz(string ter_coda, string usu_codi, int fec_fini, int fec_fina) { try { if (string.IsNullOrEmpty(emp_codi)) { throw new Exception("Código de empresa no definido en api"); } TOSoSbene beneficiario = new TOSoSbene(); beneficiario = daoBene.GetSoSbene(int.Parse(emp_codi), ter_coda); if (beneficiario == null) { throw new Exception(string.Format("No se encontró beneficiario asociado al usuario {0}", usu_codi)); } List <TOEcCotiz> cotizaciones = new List <TOEcCotiz>(); cotizaciones = daoCotiz.GetSeCcotiz(int.Parse(emp_codi), ter_coda, beneficiario.sbe_cont, fec_fini, fec_fina); if (cotizaciones == null || cotizaciones.Count == 0) { throw new Exception("No se encontraron cotizaciones"); } foreach (TOEcCotiz cotizacion in cotizaciones) { cotizacion.detalle = daoDespa.GetEcDespa(int.Parse(emp_codi), cotizacion.cot_cont); if (cotizacion.detalle != null && cotizacion.detalle.Count > 0) { foreach (TOEcDespa detalle in cotizacion.detalle) { TOAeClase clase = new TOAeClase(); clase = daoClase.GetAeClase(int.Parse(emp_codi), detalle.cla_codi); detalle.clase = clase; var productos = daoPhij.GetEcDphij(int.Parse(emp_codi), cotizacion.cot_cont, detalle.des_cont); detalle.productos = productos; } ; cotizacion.anticipos = daoDetan.GetEcDetan(int.Parse(emp_codi), cotizacion.cot_cont); cotizacion.liquidacion = daoLiq.GetLiqCons(int.Parse(emp_codi), cotizacion.cot_cont); cotizacion.invitados = daoLisev.GetEcLisev(int.Parse(emp_codi), cotizacion.eve_cont); } } ; return(new TOTransaction <List <TOEcCotiz> >() { ObjTransaction = cotizaciones, TxtError = "", Retorno = 0 }); } catch (Exception ex) { return(new TOTransaction <List <TOEcCotiz> >() { ObjTransaction = null, Retorno = 1, TxtError = ex.Message }); } }
public TOTransaction CrearReserva(TOAeReser reserva) { try { /*revisamos si hay plazo disponible para poder generar la reserva con el campo CLA_TICA de la clase*/ TOAeClase clase = daoClase.GetAeClaseByClaCont(reserva.Emp_codi, reserva.Cla_cont); if (clase != null && clase.Cla_Fchr != null && reserva.Res_fini.Date > clase.Cla_Fchr.Value.Date) { throw new Exception("FECHA LÍMITE RESERVA: " + clase.Cla_Fchr.Value.ToString("yyyy-MM-dd")); } var ite_cont = ConfigurationManager.AppSettings["MedioReserva"].ToString(); if (ite_cont != null) { reserva.Ite_cont = int.Parse(ite_cont); } //consultar si el tercero ya tiene reserva a esa misma hora if (reserva.Esp_mdit == "S") { int cantidadReserva = daoAgenda.GetReservaTercero(reserva.Emp_codi, (int)reserva.Ter_codi, reserva.Productos[0].Pro_cont, reserva.Res_fini, reserva.Res_fina); if (cantidadReserva != 0) { throw new Exception("El tercero tiene una reserva activa para esta hora"); } } int CantEspacios = daoAgenda.CantidadHorarios(reserva.Emp_codi, reserva.Cla_cont, reserva.Res_fini.Year, reserva.Res_fini.Month, reserva.Res_fini.Day, (float)reserva.Ter_codi, reserva.Productos[0].Pro_cont, reserva.Esp_mdit, ""); List <TOOcupado> intervalosNoDisponiblesOcupados = daoAgenda.GetOcupadosDipo(reserva.Emp_codi, reserva.Cla_cont, reserva.Res_fini.Year, reserva.Res_fini.Month, reserva.Res_fini.Day, reserva.Esp_mdit, -1, reserva.Productos[0].Pro_cont, "", (float)reserva.Ter_codi); DTOEntities.TSalida salida = boAgenda.ValidarDisponibilidadHorario(reserva.Res_fini, reserva.Res_fina, reserva.Cla_cont, (float)reserva.Ter_codi, reserva.Productos[0].Pro_cont, reserva.Esp_mdit, "", CantEspacios, intervalosNoDisponiblesOcupados); if (salida.retorno == 0) { throw new Exception(salida.Txterror); } if (reserva.Esp_cont == 0) { int esp_cont = 0; if (reserva.Esp_mdit == "S") { //revisamos los espacios que tiene disponible el tercero y verificamos cuales tienen disponibilidad (disponiblilidad de rango) //no incluye las reservas //daoAgenda.GetEspSinReservaTercero(reserva.Emp_codi, reserva.Res_fini.Year, reserva.Res_fini.Month, reserva.Res_fini.Day, reserva.Cla_cont, reserva.Productos[0].Pro_cont, out esp_cont, reserva.Res_fini, reserva.Res_fina, reserva.Esp_mdit, reserva.Ter_codi); //esp_cont = daoAgenda.GetEspSinReservaTercero(reserva.Emp_codi, reserva.Res_fini.Year, reserva.Res_fini.Month, reserva.Res_fini.Day, reserva.Cla_cont, reserva.Productos[0].Pro_cont, reserva.Res_fini, reserva.Res_fina, (int)reserva.Ter_codi); } else { esp_cont = daoAgenda.GetEspSinReserva(reserva.Emp_codi, reserva.Res_fini.Year, reserva.Res_fini.Month, reserva.Res_fini.Day, reserva.Cla_cont, reserva.Productos[0].Pro_cont, reserva.Res_fini, reserva.Res_fina); if (esp_cont == 0) { throw new Exception("Este horario ya no se encuentra disponible"); } } reserva.Esp_cont = esp_cont; } return(comReserva.CrearReserva(reserva)); } catch (Exception ex) { return(new TOTransaction() { InvoiceId = 0, Retorno = 1, TxtError = ex.Message }); } }