public static Response <List <ItinerarioEntity> > BuscaItinerarios(ItinerarioRequest request) { try { var obtenerBus = new BusEntity(); // Validar 'TodosTurnos' if (request.TodosTurnos) { request.Hora = string.Empty; } // Lista Itinerarios var buscarItinerarios = ItinerarioRepository.BuscarItinerarios(request.CodiOrigen, request.CodiDestino, request.CodiRuta, request.Hora, request.CodiServicio); // Recorre cada registro for (int i = 0; i < buscarItinerarios.Count; i++) { // Seteo 'CodiDestino' y 'Nom_Destino' (Recordar: Antes era traído de la BD) if (request.CodiDestino > 0) { buscarItinerarios[i].CodiDestino = request.CodiDestino; buscarItinerarios[i].NomDestino = request.NomDestino; } else { buscarItinerarios[i].CodiDestino = buscarItinerarios[i].CodiRuta; buscarItinerarios[i].NomDestino = buscarItinerarios[i].NomRuta; } // Calcula 'FechaProgramacion' var doubleDias = double.Parse(buscarItinerarios[i].Dias.ToString()); if (buscarItinerarios[i].Dias > 0) { buscarItinerarios[i].FechaProgramacion = DateTime.Parse(request.FechaViaje).AddDays(-doubleDias).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); } else { buscarItinerarios[i].FechaProgramacion = DateTime.Parse(request.FechaViaje).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); } // Seteo 'FechaViaje' buscarItinerarios[i].FechaViaje = request.FechaViaje; // Verifica cambios 'TurnoViaje' var verificaCambiosTurnoViaje = ItinerarioRepository.VerificaCambiosTurnoViaje(buscarItinerarios[i].NroViaje, buscarItinerarios[i].FechaProgramacion); if (verificaCambiosTurnoViaje.CodiEmpresa > 0) { buscarItinerarios[i].CodiServicio = verificaCambiosTurnoViaje.CodiServicio; buscarItinerarios[i].NomServicio = verificaCambiosTurnoViaje.NomServicio; buscarItinerarios[i].CodiEmpresa = verificaCambiosTurnoViaje.CodiEmpresa; buscarItinerarios[i].RazonSocial = verificaCambiosTurnoViaje.NomEmpresa; buscarItinerarios[i].CodiPuntoVenta = verificaCambiosTurnoViaje.CodiPuntoVenta; buscarItinerarios[i].NomPuntoVenta = verificaCambiosTurnoViaje.NomPuntoVenta; } // Busca 'ProgramacionViaje' var buscarProgramacionViaje = ItinerarioRepository.BuscarProgramacionViaje(buscarItinerarios[i].NroViaje, buscarItinerarios[i].FechaProgramacion); if (buscarProgramacionViaje > 0) { buscarItinerarios[i].CodiProgramacion = buscarProgramacionViaje; // Obtiene 'BusProgramacion' obtenerBus = ItinerarioRepository.ObtenerBusProgramacion(buscarItinerarios[i].CodiProgramacion); buscarItinerarios[i].CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarItinerarios[i].PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarItinerarios[i].CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarItinerarios[i].PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; } else { // Valida 'SoloProgramados': No está en el flujo, se añadió luego. if (request.SoloProgramados) { buscarItinerarios.RemoveAt(i); i--; continue; } // Obtiene 'BusEstandar' obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarItinerarios[i].CodiEmpresa, buscarItinerarios[i].CodiSucursal, buscarItinerarios[i].CodiRuta, buscarItinerarios[i].CodiServicio, buscarItinerarios[i].HoraPartida); if (!string.IsNullOrEmpty(obtenerBus.CodiBus)) { buscarItinerarios[i].CodiBus = obtenerBus.CodiBus; buscarItinerarios[i].PlanoBus = obtenerBus.PlanBus; buscarItinerarios[i].CapacidadBus = obtenerBus.NumePasajeros; buscarItinerarios[i].PlacaBus = obtenerBus.PlacBus; } else { // En caso de no encontrar resultado obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarItinerarios[i].CodiEmpresa, buscarItinerarios[i].CodiSucursal, buscarItinerarios[i].CodiRuta, buscarItinerarios[i].CodiServicio, string.Empty); if (!string.IsNullOrEmpty(obtenerBus.CodiBus)) { buscarItinerarios[i].CodiBus = obtenerBus.CodiBus; buscarItinerarios[i].PlanoBus = obtenerBus.PlanBus; buscarItinerarios[i].CapacidadBus = obtenerBus.NumePasajeros; buscarItinerarios[i].PlacaBus = obtenerBus.PlacBus; } else { // En caso de no encontrar resultado obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarItinerarios[i].CodiEmpresa, buscarItinerarios[i].CodiSucursal, 0, buscarItinerarios[i].CodiServicio, string.Empty); buscarItinerarios[i].CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarItinerarios[i].PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarItinerarios[i].CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarItinerarios[i].PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; } } } // Verifica cambios 'ValidarTurnoAdicional' if (buscarItinerarios[i].StOpcional == "1" && DateTime.Parse(buscarItinerarios[i].FechaProgramacion).Date >= DateTime.Now.Date) { var validarTurnoAdicional = ItinerarioRepository.ValidarTurnoAdicional(buscarItinerarios[i].NroViaje, buscarItinerarios[i].FechaProgramacion); if (validarTurnoAdicional != 1) { buscarItinerarios.RemoveAt(i); i--; continue; } } // Valida 'ProgramacionCerrada' buscarItinerarios[i].ProgramacionCerrada = ItinerarioRepository.ValidarProgramacionCerrada(buscarItinerarios[i].NroViaje, buscarItinerarios[i].FechaProgramacion); // Obtiene 'TotalVentas' if (buscarItinerarios[i].CodiProgramacion > 0) { buscarItinerarios[i].AsientosVendidos = ItinerarioRepository.ObtenerTotalVentas(buscarItinerarios[i].CodiProgramacion, buscarItinerarios[i].NroViaje, buscarItinerarios[i].CodiOrigen, buscarItinerarios[i].CodiDestino); } // Seteo 'Color' buscarItinerarios[i].Color = GetColor(buscarItinerarios[i].ProgramacionCerrada, buscarItinerarios[i].AsientosVendidos, int.Parse(buscarItinerarios[i].CapacidadBus), buscarItinerarios[i].StOpcional); // Seteo 'SecondColor' buscarItinerarios[i].SecondColor = GetSecondColor(buscarItinerarios[i].AsientosVendidos, int.Parse(buscarItinerarios[i].CapacidadBus), buscarItinerarios[i].StOpcional); } return(new Response <List <ItinerarioEntity> >(true, buscarItinerarios, Message.MsgCorrectoBuscaItinerarios, true)); } catch (Exception ex) { Log.Instance(typeof(ItinerarioLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex); return(new Response <List <ItinerarioEntity> >(false, null, Message.MsgExcBuscaItinerarios, false)); } }
public static Response <ItinerarioEntity> MuestraTurno(TurnoRequest request) { try { var obtenerBus = new BusEntity(); // Busca Turno var buscarTurno = TurnoRepository.BuscarTurno(request); // Calcula 'FechaProgramacion' var doubleDias = double.Parse(buscarTurno.Dias.ToString()); if (buscarTurno.Dias > 0) { buscarTurno.FechaProgramacion = DateTime.Parse(request.FechaViaje).AddDays(-doubleDias).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); } else { buscarTurno.FechaProgramacion = DateTime.Parse(request.FechaViaje).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); } // Busca 'ProgramacionViaje' var buscarProgramacionViaje = ItinerarioRepository.BuscarProgramacionViaje(buscarTurno.NroViaje, buscarTurno.FechaProgramacion); if (buscarProgramacionViaje > 0) { buscarTurno.CodiProgramacion = buscarProgramacionViaje; // Obtiene 'BusProgramacion' obtenerBus = ItinerarioRepository.ObtenerBusProgramacion(buscarTurno.CodiProgramacion); buscarTurno.CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarTurno.PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarTurno.CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarTurno.PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; buscarTurno.CodiChofer = string.IsNullOrEmpty(obtenerBus.CodiChofer) ? "00000" : obtenerBus.CodiChofer; buscarTurno.NombreChofer = string.IsNullOrEmpty(obtenerBus.NombreChofer) ? "NINGUNO" : obtenerBus.NombreChofer; buscarTurno.CodiCopiloto = string.IsNullOrEmpty(obtenerBus.CodiCopiloto) ? "00000" : obtenerBus.CodiCopiloto; buscarTurno.NombreCopiloto = string.IsNullOrEmpty(obtenerBus.NombreCopiloto) ? "NINGUNO" : obtenerBus.NombreCopiloto; buscarTurno.Activo = string.IsNullOrEmpty(obtenerBus.Activo) ? string.Empty : obtenerBus.Activo; } else { // Obtiene 'BusEstandar' obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarTurno.CodiEmpresa, buscarTurno.CodiSucursal, buscarTurno.CodiRuta, buscarTurno.CodiServicio, buscarTurno.HoraPartida); if (!string.IsNullOrEmpty(obtenerBus.CodiBus)) { buscarTurno.CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarTurno.PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarTurno.CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarTurno.PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; buscarTurno.CodiChofer = string.IsNullOrEmpty(obtenerBus.CodiChofer) ? "00000" : obtenerBus.CodiChofer; buscarTurno.NombreChofer = string.IsNullOrEmpty(obtenerBus.NombreChofer) ? "NINGUNO" : obtenerBus.NombreChofer; buscarTurno.CodiCopiloto = string.IsNullOrEmpty(obtenerBus.CodiCopiloto) ? "00000" : obtenerBus.CodiCopiloto; buscarTurno.NombreCopiloto = string.IsNullOrEmpty(obtenerBus.NombreCopiloto) ? "NINGUNO" : obtenerBus.NombreCopiloto; } else { // En caso de no encontrar resultado. obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarTurno.CodiEmpresa, buscarTurno.CodiSucursal, buscarTurno.CodiRuta, buscarTurno.CodiServicio, string.Empty); if (!string.IsNullOrEmpty(obtenerBus.CodiBus)) { buscarTurno.CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarTurno.PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarTurno.CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarTurno.PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; buscarTurno.CodiChofer = string.IsNullOrEmpty(obtenerBus.CodiChofer) ? "00000" : obtenerBus.CodiChofer; buscarTurno.NombreChofer = string.IsNullOrEmpty(obtenerBus.NombreChofer) ? "NINGUNO" : obtenerBus.NombreChofer; buscarTurno.CodiCopiloto = string.IsNullOrEmpty(obtenerBus.CodiCopiloto) ? "00000" : obtenerBus.CodiCopiloto; buscarTurno.NombreCopiloto = string.IsNullOrEmpty(obtenerBus.NombreCopiloto) ? "NINGUNO" : obtenerBus.NombreCopiloto; } else { // En caso de no encontrar resultado obtenerBus = ItinerarioRepository.ObtenerBusEstandar(buscarTurno.CodiEmpresa, buscarTurno.CodiSucursal, 0, buscarTurno.CodiServicio, string.Empty); buscarTurno.CodiBus = string.IsNullOrEmpty(obtenerBus.CodiBus) ? "0000" : obtenerBus.CodiBus; buscarTurno.PlanoBus = string.IsNullOrEmpty(obtenerBus.PlanBus) ? "000" : obtenerBus.PlanBus; buscarTurno.CapacidadBus = string.IsNullOrEmpty(obtenerBus.NumePasajeros) ? "0" : obtenerBus.NumePasajeros; buscarTurno.PlacaBus = string.IsNullOrEmpty(obtenerBus.PlacBus) ? "00-0000" : obtenerBus.PlacBus; buscarTurno.CodiChofer = string.IsNullOrEmpty(obtenerBus.CodiChofer) ? "00000" : obtenerBus.CodiChofer; buscarTurno.NombreChofer = string.IsNullOrEmpty(obtenerBus.NombreChofer) ? "NINGUNO" : obtenerBus.NombreChofer; buscarTurno.CodiCopiloto = string.IsNullOrEmpty(obtenerBus.CodiCopiloto) ? "00000" : obtenerBus.CodiCopiloto; buscarTurno.NombreCopiloto = string.IsNullOrEmpty(obtenerBus.NombreCopiloto) ? "NINGUNO" : obtenerBus.NombreCopiloto; } } } // Verifica cambios 'ValidarTurnoAdicional' if (buscarTurno.StOpcional == "1" && DateTime.Parse(buscarTurno.FechaProgramacion).Date >= DateTime.Now.Date) { var validarTurnoAdicional = ItinerarioRepository.ValidarTurnoAdicional(buscarTurno.NroViaje, buscarTurno.FechaProgramacion); if (validarTurnoAdicional != 1) { return(new Response <ItinerarioEntity>(false, buscarTurno, Message.MsgErrorValidarTurnoAdicional, true)); } } // Valida 'ProgramacionCerrada' buscarTurno.ProgramacionCerrada = ItinerarioRepository.ValidarProgramacionCerrada(buscarTurno.NroViaje, buscarTurno.FechaProgramacion); if (buscarTurno.ProgramacionCerrada != "0") { var auxMsgErrorValidarProgramacionCerrada = string.Empty; switch (buscarTurno.ProgramacionCerrada) { case "1": auxMsgErrorValidarProgramacionCerrada = Message.MsgErrorValidarProgramacionCerrada_1; break; case "2": auxMsgErrorValidarProgramacionCerrada = Message.MsgErrorValidarProgramacionCerrada_2; break; } ; return(new Response <ItinerarioEntity>(false, buscarTurno, auxMsgErrorValidarProgramacionCerrada, true)); } // Obtiene 'TotalVentas' if (buscarTurno.CodiProgramacion > 0) { buscarTurno.AsientosVendidos = ItinerarioRepository.ObtenerTotalVentas(buscarTurno.CodiProgramacion, buscarTurno.NroViaje, buscarTurno.CodiOrigen, buscarTurno.CodiDestino); } // Seteo 'Color' buscarTurno.Color = ItinerarioLogic.GetColor(buscarTurno.ProgramacionCerrada, buscarTurno.AsientosVendidos, int.Parse(buscarTurno.CapacidadBus), buscarTurno.StOpcional); // Seteo 'SecondColor' buscarTurno.SecondColor = ItinerarioLogic.GetSecondColor(buscarTurno.AsientosVendidos, int.Parse(buscarTurno.CapacidadBus), buscarTurno.StOpcional); // Consulta 'ManifiestoProgramacion' var consultaManifiestoProgramacion = ConsultaManifiestoProgramacion(buscarTurno.CodiProgramacion, request.CodiOrigen.ToString()); if (consultaManifiestoProgramacion.Estado) { buscarTurno.X_Estado = consultaManifiestoProgramacion.Valor; } else { buscarTurno.X_Estado = string.Empty; } // Lista 'PuntosEmbarque' var listarPuntosEmbarque = TurnoRepository.ListarPuntosEmbarque(buscarTurno.CodiOrigen, buscarTurno.CodiDestino, buscarTurno.CodiServicio, buscarTurno.CodiEmpresa, buscarTurno.CodiPuntoVenta, buscarTurno.HoraPartida); if (listarPuntosEmbarque.Count == 0) { var objPuntoEntity = new PuntoEntity { CodiPuntoVenta = buscarTurno.CodiOrigen, Lugar = buscarTurno.NomOrigen, Hora = buscarTurno.HoraPartida }; listarPuntosEmbarque.Add(objPuntoEntity); } buscarTurno.ListaEmbarques = listarPuntosEmbarque; // Lista 'PuntosArribo' buscarTurno.ListaArribos = TurnoRepository.ListarPuntosArribo(buscarTurno.CodiOrigen, buscarTurno.CodiDestino, buscarTurno.CodiServicio, buscarTurno.CodiEmpresa, buscarTurno.CodiPuntoVenta, buscarTurno.HoraPartida); // Lista 'DestinosRuta' buscarTurno.ListaDestinosRuta = TurnoRepository.ListaDestinosRuta(buscarTurno.NroViaje, buscarTurno.CodiSucursal); // Lista 'ResumenProgramacion' buscarTurno.ListaResumenProgramacion = TurnoRepository.ListaResumenProgramacion(buscarTurno.CodiProgramacion, request.CodiSucursalUsuario); // 'ResumenProgramacion' Capacidad del Bus buscarTurno.ListaResumenProgramacion.CAP = buscarTurno.CapacidadBus; // 'ResumenProgramacion' Libres buscarTurno.ListaResumenProgramacion.LBR = Convert.ToString(Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.CAP) - (Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.VTT) + Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.PAS) + Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.RET) + Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.RVA))); // 'ResumenProgramacion' Total buscarTurno.ListaResumenProgramacion.TOT = Convert.ToString(Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.CAP) - Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.LBR) - Convert.ToDecimal(buscarTurno.ListaResumenProgramacion.RVA)); // Elimina 'Reservas' por escala if (buscarTurno.CodiProgramacion > 0) { var auxHora = string.Empty; var objPuntoEmbarque = buscarTurno.ListaEmbarques.Find(x => x.CodiPuntoVenta == request.CodiPvUsuario); if (objPuntoEmbarque != null) { auxHora = objPuntoEmbarque.Hora; } else { auxHora = buscarTurno.HoraPartida; } TurnoRepository.EliminarReservas02(buscarTurno.CodiOrigen.ToString(), buscarTurno.CodiProgramacion, auxHora, buscarTurno.FechaViaje); TurnoRepository.EliminarReservas01(buscarTurno.CodiProgramacion, auxHora); } // Consulta 'BloqueoAsientoCantidad_Max' var consultaBloqueoAsientoCantidad_Max = TurnoRepository.ConsultaBloqueoAsientoCantidad_Max(request.CodiEmpresa); if (consultaBloqueoAsientoCantidad_Max == 0) { buscarTurno.CantidadMaxBloqAsi = DefaultCantMaxBloqAsi; } else { buscarTurno.CantidadMaxBloqAsi = consultaBloqueoAsientoCantidad_Max; } // Consulta tabla 'AsientosBloqueados' var consultarTablaAsientosBloqueados = BloqueoAsientoRepository.ConsultarTablaAsientosBloqueados(buscarTurno.CodiEmpresa, buscarTurno.CodiSucursal, buscarTurno.CodiRuta, buscarTurno.CodiServicio, buscarTurno.HoraPartida); buscarTurno.TablaBloqueoAsientos = new TablaBloqueoAsientosEntity() { AsientosOcupados = string.Empty, AsientosLiberados = string.Empty }; // Consulta tabla 'BloqueoAsientos' if (!string.IsNullOrEmpty(consultarTablaAsientosBloqueados.Asientos)) { var auxCodiProgramacion = buscarTurno.CodiProgramacion > 0 ? buscarTurno.CodiProgramacion : buscarTurno.NroViaje; var auxTipo = buscarTurno.CodiProgramacion > 0 ? "P" : "V"; var consultarTablaBloqueoAsientos = BloqueoAsientoRepository.ConsultarTablaBloqueoAsientos(auxCodiProgramacion, auxTipo, buscarTurno.FechaProgramacion); if (consultarTablaBloqueoAsientos == null) { if (buscarTurno.CodiProgramacion <= 0) { // Inserta tabla 'BloqueoAsientos' var requestTBA = new TablaBloqueoAsientosRequest() { CodiProgramacion = auxCodiProgramacion, CodiOrigen = request.CodiOrigen, CodiDestino = request.CodiDestino, AsientosOcupados = consultarTablaAsientosBloqueados.Asientos, AsientosLiberados = string.Empty, Tipo = auxTipo, Fecha = buscarTurno.FechaProgramacion }; BloqueoAsientoRepository.InsertarTablaBloqueoAsientos(requestTBA); } else { // Volvemos a consultar tabla 'BloqueoAsientos' consultarTablaBloqueoAsientos = BloqueoAsientoRepository.ConsultarTablaBloqueoAsientos(buscarTurno.NroViaje, "V", buscarTurno.FechaProgramacion); if (consultarTablaBloqueoAsientos == null) { // Inserta tabla 'BloqueoAsientos' var requestTBA = new TablaBloqueoAsientosRequest() { CodiProgramacion = auxCodiProgramacion, CodiOrigen = request.CodiOrigen, CodiDestino = request.CodiDestino, AsientosOcupados = consultarTablaAsientosBloqueados.Asientos, AsientosLiberados = string.Empty, Tipo = auxTipo, Fecha = buscarTurno.FechaProgramacion }; BloqueoAsientoRepository.InsertarTablaBloqueoAsientos(requestTBA); } else { // Actualiza tabla 'BloqueoAsientos' BloqueoAsientoRepository.ActualizarTablaBloqueoAsientos(buscarTurno.CodiProgramacion.ToString(), buscarTurno.NroViaje.ToString(), buscarTurno.FechaProgramacion); } } // Como fue 'null', vuelve a consultar tabla 'BloqueoAsientos' consultarTablaBloqueoAsientos = BloqueoAsientoRepository.ConsultarTablaBloqueoAsientos(auxCodiProgramacion, auxTipo, buscarTurno.FechaProgramacion); } // Seteo 'buscarTurno.TablaAsientosBloqueados' buscarTurno.TablaBloqueoAsientos.AsientosOcupados = consultarTablaBloqueoAsientos.AsientosOcupados; buscarTurno.TablaBloqueoAsientos.AsientosLiberados = consultarTablaBloqueoAsientos.AsientosLiberados; buscarTurno.TablaBloqueoAsientos.CodiOrigen = consultarTablaBloqueoAsientos.CodiOrigen; buscarTurno.TablaBloqueoAsientos.CodiDestino = consultarTablaBloqueoAsientos.CodiDestino; } // Actualiza 'TbViajeProgramacionCantidad' if (buscarTurno.CodiProgramacion > 0) { TurnoRepository.ActualizarTbViajeProgramacionCantidad(buscarTurno.CodiProgramacion); } // Lista 'PlanoBus' PlanoRequest requestPlano = new PlanoRequest { PlanoBus = buscarTurno.PlanoBus, CodiProgramacion = buscarTurno.CodiProgramacion, CodiOrigen = buscarTurno.CodiOrigen, CodiDestino = buscarTurno.CodiDestino, CodiBus = buscarTurno.CodiBus, HoraViaje = request.HoraViaje, FechaViaje = request.FechaViaje, CodiServicio = buscarTurno.CodiServicio, CodiEmpresa = buscarTurno.CodiEmpresa, FechaProgramacion = buscarTurno.FechaProgramacion, NroViaje = buscarTurno.NroViaje, CodiSucursal = buscarTurno.CodiSucursal, CodiRuta = buscarTurno.CodiRuta }; var resMuestraPlano = PlanoLogic.MuestraPlano(requestPlano); if (resMuestraPlano.Estado) { if (resMuestraPlano.EsCorrecto) { buscarTurno.ListaPlanoBus = resMuestraPlano.Valor; } else { return(new Response <ItinerarioEntity>(false, buscarTurno, resMuestraPlano.Mensaje, true)); } } else { return(new Response <ItinerarioEntity>(false, buscarTurno, resMuestraPlano.Mensaje, false)); } // Seteo de 'Cantidad' por 'DestinosRuta' foreach (var destinoRuta in buscarTurno.ListaDestinosRuta) { destinoRuta.Cantidad = resMuestraPlano.Valor.Count(x => x.CodiDestino == destinoRuta.CodiSucursal && x.CodiOrigen == request.CodiSucursalUsuario && (x.FlagVenta != "X" && x.FlagVenta != "R" && x.FlagVenta != "O")); } return(new Response <ItinerarioEntity>(true, buscarTurno, Message.MsgCorrectoMuestraTurno, true)); } catch (Exception ex) { Log.Instance(typeof(TurnoLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex); return(new Response <ItinerarioEntity>(false, null, Message.MsgExcMuestraTurno, false)); } }