public ActionResult AddCarga(Carga model)
        {
            if (model.TipoString == "Encomiendas")
            {
                model.Tipo = false;
            }
            else
            {
                model.Tipo = true;
            }

            model.Precio = Decimal.Parse(decimalAstring(model.PrecioText));

            cargaService.GuardarCarga(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Carga",
                Cambio = "Nueva Carga",
                IdModulo = model.PesoMostrar,
                Fecha = DateTime.Today
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect("ListCargas");
        }
        public ActionResult Agregar(Cliente model)
        {
            var x = clienteService.GuardarCliente(model);

            if (x.Any())
            {
                foreach (var item in x)
                {
                    ViewBag.RucDni = item.Value;
                }

                return View();
            }
            else
            {
                ViewBag.RucDni = "";
            }

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Cliente",
                Cambio = "Nuevo Cliente",
                IdModulo = model.DniRuc,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect("Listar");
        }
 public string GuardarMovimiento(RegUsuarios movimiento)
 {
     try
     {
         Context.RegUsuarios.Add(movimiento);
         Context.SaveChanges();
         return "Movimiento Guardado";
     }
     catch (Exception e)
     {
         return "Error: "+e.Message;
     }
 }
        public ActionResult AgregarEmpleado(Empleado model)
        {
            empleadoService.GuardarEmpleado(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Empleado",
                Cambio = "Nuevo Empleado",
                IdModulo = model.Nombre + " " + model.Apellidos,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect("ListarEmpleado");
        }
        public ActionResult AddHorario(Horario model)
        {
            model.Costo = Decimal.Parse(decimalAstring(model.CostoText));

            horarioService.GuardarHorario(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Horario",
                Cambio = "Nuevo Horario",
                IdModulo = model.HoraText,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect("ListHorarios");
        }
        public ActionResult CambiarContrasenia(String oldpass, String newpass)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var u = Membership.GetUser(User.Identity.Name);
                    var a = WebSecurity.ChangePassword(User.Identity.Name, oldpass, newpass);
                    if (a)
                    {
                        var res = "Contraseña cambiada correctamente";

                        RegUsuarios movimiento = new RegUsuarios
                        {
                            Usuario = User.Identity.Name,
                            Modulo = "Usuario",
                            Cambio = "CambioContraseña",
                            IdModulo = User.Identity.Name,
                            Fecha = DateTime.Now
                        };

                        movCuentaService.GuardarMovimiento(movimiento);

                        return RedirectToAction("Index", "Home", new { error = res });
                    }
                    else
                    {
                        var res = "Contraseña erronea";
                        return RedirectToAction("Index", "Home", new { error = res });
                        //return PartialView();
                    }
                }
                catch (Exception e)
                {
                    var res = "Error: " + e.Message +"";
                    return RedirectToAction("Index", "Home", new { error = res });
                }
            }
            return RedirectToAction("Index", "Home");
        }
        public ActionResult AgregarVehiculo(Vehiculo model)
        {
            model.Ancho = Decimal.Parse(decimalAstring(model.AnchoText));
            model.Largo = Decimal.Parse(decimalAstring(model.LargoText));

            model.CargaActual = 0;

            vehiculoService.GuardarVehiculo(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Vehículo",
                Cambio = "Nuevo Vehículo",
                IdModulo = model.NroPlaca,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect("ListarVehiculo");
        }
        public ActionResult Modificar(Cliente model)
        {
            clienteService.ModificarCliente(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Cliente",
                Cambio = "Modifiar Cliente",
                IdModulo = model.DniRuc,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect(Url.Action("Listar"));
        }
        public ActionResult Eliminar(Int32 idve)
        {
            try
            {
                var ve = vehiculoService.ObtenerVehiculoPorId(idve);
                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Vehículo",
                    Cambio = "Eliminar Vehículo",
                    IdModulo = ve.NroPlaca,
                    Fecha = DateTime.Now
                };

                vehiculoService.EliminarVehiculo(idve);

                movCuentaService.GuardarMovimiento(movimiento);
                ViewBag.Mensaje = "Eliminado Correctamente";
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puede eliminar";
            }

            return PartialView("Eliminar");
        }
        public ActionResult ModificarEncomienda(Venta model)
        {
            var ventborrar = ventaService.ObtenerVentaPorId(model.Id);

            foreach (var item in ventborrar.VentaPasajes)
            {
                var hor = horarioService.ObtenerClientePorId(item.IdHorario);

                hor.CargaMax = hor.CargaMax - item.CargaPasaje;

                horarioService.ModificarHorario(hor);

            }//Eliminar Carga

            foreach (var item in model.VentaPasajes)
            {
                var hor = horarioService.ObtenerClientePorId(item.IdHorario);

                hor.CargaMax = hor.CargaMax + item.CargaPasaje;

                horarioService.ModificarHorario(hor);
            }//Nueva Carga

            var clien = clienteService.ObtenerClientePorRucDni(model.RucDniCliente);
            model.IdCliente = clien.Id;
            model.Fecha = DateTime.Now;
            model.Tipo = 5;
            model.Estado = 5;
            ventaService.ModificarVenta(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Venta",
                Cambio = "Modificar Encomienda",
                IdModulo = model.NroVenta + "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect(@Url.Action("ListarVentas", "Venta"));
        }
        public ActionResult GenerarHorarios()
        {
            ViewBag.Mensaje = horarioService.GenerarHorarios();

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Horario",
                Cambio = "Generar Horarios",
                IdModulo = "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return PartialView("Eliminar");
        }
        public ActionResult Report(string id, Int32? idventa)
        {
            LocalReport lr = new LocalReport();

            Int32 idVenta;
            string path = Path.Combine(Server.MapPath("~/Reportes"), "ComprobantePago.rdlc");
            if (System.IO.File.Exists(path))
            {
                if (idventa != null)
                {
                    idVenta = Int32.Parse(idventa.ToString());
                }
                else
                {
                    return View("ListarReservas");
                }

                lr.ReportPath = path;
            }
            else
            {
                return View("ListarReservas");
            }

            string reportType = id;
            string mimeType;
            string encoding;
            string fileNameExtension;

            string deviceInfo =

            "<DeviceInfo>" +
            "  <OutputFormat>" + id + "</OutputFormat>" +
            "  <PageWidth>16cm</PageWidth>" +
            "  <PageHeight>12cm</PageHeight>" +
            "  <MarginTop>0.5cm</MarginTop>" +
            "  <MarginLeft>0.5cm</MarginLeft>" +
            "  <MarginRight>0.5cm</MarginRight>" +
            "  <MarginBottom>0.5cm</MarginBottom>" +
            "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            List<DatosReportVentaComprobante> cm = new List<DatosReportVentaComprobante>();
            Venta pru = ventaService.ObtenerVentaPorId(idVenta);

            foreach (var item in pru.Reseras)
            {
                var datos = new DatosReportVentaComprobante
                {
                    DniRuc = item.Cliente.DniRuc,
                    Apellidos = item.Cliente.Nombre + " " + item.Cliente.Apellidos,
                    OrigenId = item.Horario.EstacionOrigen.Provincia,
                    DestinoId = item.Horario.EstacionDestino.Provincia,
                    Hora = item.Horario.HoraText,
                    Asiento = item.Asiento.ToString(),
                    Pago = item.Pago
                };

                cm.Add(datos);
            }

            ReportDataSource rd = new ReportDataSource("ComprobantePago", cm);
            lr.DataSources.Add(rd);

            ReportParameter[] parametros = new ReportParameter[7];

            parametros[0] = new ReportParameter("NroVenta", pru.NroVenta + "");
            parametros[1] = new ReportParameter("Nombre", pru.Cliente.Nombre + " " + pru.Cliente.Apellidos);
            parametros[2] = new ReportParameter("Fecha", pru.Fecha + "");
            parametros[3] = new ReportParameter("DniRuc", pru.Cliente.DniRuc + "");
            parametros[4] = new ReportParameter("Direccion", pru.Cliente.Direccion + "");
            parametros[5] = new ReportParameter("Telefono", pru.Cliente.Telefono + "");
            parametros[6] = new ReportParameter("Tipo", "Reserva");

            lr.SetParameters(parametros);

            renderedBytes = lr.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);

            switch (id)
            {
                case "PDF":
                    return File(renderedBytes, mimeType);
                case "Excel":
                    return File(renderedBytes, mimeType, pru.NroVenta + ".xls");
                case "Word":
                    return File(renderedBytes, mimeType, pru.NroVenta + ".doc");
                case "Image":
                    return File(renderedBytes, mimeType, pru.NroVenta + ".png");
                default:
                    break;
            }

            var ven = ventaService.ObtenerVentaPorId(idVenta);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Reserva",
                Cambio = "Reporte Reserva",
                IdModulo = ven.NroVenta + "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return File(renderedBytes, mimeType);
        }
        public ActionResult EliminarVenta(Int32 idve)
        {
            try
            {
                var ventborrar = ventaService.ObtenerVentaPorId(idve);
                foreach (var item in ventborrar.VentaPasajes)
                {
                    var hor = horarioService.ObtenerClientePorId(item.IdHorario);

                    hor.CargaMax = hor.CargaMax - item.CargaPasaje;

                    horarioService.ModificarHorario(hor);

                }//Eliminar Carga

                var ven = ventaService.ObtenerVentaPorId(idve);

                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Reserva",
                    Cambio = "Eliminar Reserva",
                    IdModulo = ven.NroVenta + "",
                    Fecha = DateTime.Now
                };

                ventaService.EliminarVenta(idve);

                movCuentaService.GuardarMovimiento(movimiento);
                ViewBag.Mensaje = "Eliminado Correctamente";
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puede eliminar";
            }

            return PartialView("Eliminar");
        }
        public ActionResult Eliminar(Int32 idve)
        {
            try
            {
                clienteService.EliminarCliente(idve);
                ViewBag.Mensaje = "Eliminado Correctamente";
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puede eliminar";
            }

            var client = clienteService.ObtenerClientePorId(idve);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Cliente",
                Cambio = "Eliminar Cliente",
                IdModulo = client.DniRuc,
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return PartialView("Eliminar");
        }
        public ActionResult ReportEmpleados(string id, Int32 idempleado, DateTime fechaIni, DateTime fechaFin)
        {
            LocalReport lr = new LocalReport();

            var pru = empleadoService.ObtenerEmpleadoPorCriterios(idempleado, fechaIni, fechaFin);

            string path = Path.Combine(Server.MapPath("~/Reportes"), "ReporteEmpleados.rdlc");
            if (System.IO.File.Exists(path))
            {
                lr.ReportPath = path;
            }
            else
            {
                return View("ReporteEmpleado");
            }

            string reportType = id;
            string mimeType;
            string encoding;
            string fileNameExtension;

            string deviceInfo =

            "<DeviceInfo>" +
            "  <OutputFormat>" + id + "</OutputFormat>" +
            "  <PageWidth>21cm</PageWidth>" +
            "  <PageHeight>29.7cm</PageHeight>" +
            "  <MarginTop>1.54cm</MarginTop>" +
            "  <MarginLeft>1.54cm</MarginLeft>" +
            "  <MarginRight>1.54cm</MarginRight>" +
            "  <MarginBottom>1.54cm</MarginBottom>" +
            "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            ReportDataSource rd = new ReportDataSource("VistaEmpleados", pru);
            lr.DataSources.Add(rd);

            var empleado = empleadoService.ObtenerEmpleadoPorId(idempleado);

            ReportParameter[] parametros = new ReportParameter[6];

            parametros[0] = new ReportParameter("Nombre", empleado.Nombre);
            parametros[1] = new ReportParameter("Apellidos", empleado.Apellidos);
            parametros[2] = new ReportParameter("Telefono", empleado.Telefono);
            parametros[3] = new ReportParameter("FechaIni", fechaIni.Date.Day + "/" + fechaIni.Date.Month + "/" + fechaIni.Date.Year + "");
            parametros[4] = new ReportParameter("FechaFin", fechaFin.Date.Day + "/" + fechaFin.Date.Month + "/" + fechaFin.Date.Year + "");
            parametros[5] = new ReportParameter("TotalHoras", pru.Count() + "");

            lr.SetParameters(parametros);

            renderedBytes = lr.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);

            switch (id)
            {
                case "PDF":
                    return File(renderedBytes, mimeType);
                case "Excel":
                    return File(renderedBytes, mimeType, "Empleado " + empleado.Nombre + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".xls");
                case "Word":
                    return File(renderedBytes, mimeType, "Empleado " + empleado.Nombre + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".doc");
                case "Image":
                    return File(renderedBytes, mimeType, "Empleado " + empleado.Nombre + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".png");
                default:
                    break;
            }

            var emp = empleadoService.ObtenerEmpleadoPorId(idempleado);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Empleado",
                Cambio = "Reporte",
                IdModulo = emp.NombreMostrar,
                Fecha = DateTime.Today
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return File(renderedBytes, mimeType);
        }
        public ActionResult Eliminar(Int32 idve)
        {
            try
            {
                var car = cargaService.ObtenerCargaPorId(idve);

                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Carga",
                    Cambio = "Eliminar Carga",
                    IdModulo = car.PesoMostrar,
                    Fecha = DateTime.Today
                };

                cargaService.EliminarCarga(idve);

                movCuentaService.GuardarMovimiento(movimiento);

                ViewBag.Mensaje = "Eliminado Correctamente";
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puedo eliminar la carga realizada";
            }

            return PartialView("Eliminar");
        }
 public string GuardarMovimiento(RegUsuarios movimiento)
 {
     return movCuentaRepository.GuardarMovimiento(movimiento);
 }
        public ActionResult Register(RegistroUsuarios registrardata, string role)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    WebSecurity.CreateUserAndAccount(registrardata.Usuario, registrardata.Contrasenia);
                    Roles.AddUserToRole(registrardata.Usuario, role);

                    RegUsuarios movimiento = new RegUsuarios
                    {
                        Usuario = User.Identity.Name,
                        Modulo = "Usuario",
                        Cambio = "Nuevo Usuario",
                        IdModulo = registrardata.Usuario,
                        Fecha = DateTime.Now
                    };

                    movCuentaService.GuardarMovimiento(movimiento);

                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", "Error Usuario Registrado");
                    return View(registrardata);
                }
            }
            ModelState.AddModelError("", "No se puede registrar el usuario");
            return View(registrardata);
        }
        public ActionResult AgregarReserva(Venta model)
        {
            var clien = clienteService.ObtenerClientePorRucDni(model.RucDniCliente);
            model.IdCliente = clien.Id;
            model.Fecha = DateTime.Now;
            model.Tipo = 3;
            model.TotalCarga = 0;
            if (model.TotalVenta > 0)
            {
                model.Estado = 2;
            }
            else
            {
                model.Estado = 3;
            }
            try
            {
                foreach (var item in model.Reseras)
                {
                    model.TotalCarga = model.TotalCarga + item.CargaReserva;

                    var hor = horarioService.ObtenerClientePorId(item.IdHorario);

                    hor.CargaMax = hor.CargaMax + item.CargaReserva;

                    horarioService.ModificarHorario(hor);

                    var clienbor = clienteService.ObtenerClientePorRucDni(item.DniRucClienteTemp);

                    if (clienbor == null)
                    {
                        Cliente cliente = new Cliente
                        {
                            DniRuc = item.DniRucClienteTemp,
                            Nombre = item.NombreClienteTemp,
                            Apellidos = item.ApellidosClienteTemp,
                            Telefono = item.TelefonoClienteTemp,
                            Direccion = item.DireccionClienteTemp
                        };

                        clienteService.GuardarCliente(cliente);

                        clienbor = clienteService.ObtenerClientePorRucDni(item.DniRucClienteTemp);

                        item.IdCliente = clienbor.Id;
                    }
                    else
                    {
                        item.IdCliente = item.IdClienteTemp;
                    }
                }
            }
            catch (Exception)
            {
                return Redirect(@Url.Action("ListarReservas", "Reserva"));
            }

            ventaService.GuardarVenta(model);

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Reserva",
                Cambio = "Nueva Reserva",
                IdModulo = model.NroVenta + "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect(@Url.Action("FinalReserva", "Reserva") + "/" + model.Id);
        }
        public ActionResult Eliminar(Int32 idve)
        {
            try
            {
                var emp = empleadoService.ObtenerEmpleadoPorId(idve);

                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Empleado",
                    Cambio = "Eliminar Empleado",
                    IdModulo = emp.Nombre + " " + emp.Apellidos,
                    Fecha = DateTime.Now
                };

                empleadoService.EliminarEmpleado(idve);

                movCuentaService.GuardarMovimiento(movimiento);
                ViewBag.Mensaje = "Eliminado Correctamente";
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puede eliminar";
            }

            return PartialView("Eliminar");
        }
        public ActionResult ModificarReserva(Venta model)
        {
            ViewBag.Fecha = MostrarFecha();

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Reserva",
                Cambio = "Modificar Reserva",
                IdModulo = model.NroVenta + "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return Redirect(@Url.Action("ListarReservas", "Reserva"));
        }
        public ActionResult AgregarEncomienda(Venta model)
        {
            try
            {
                var clien = clienteService.ObtenerClientePorRucDni(model.RucDniCliente);
                model.IdCliente = clien.Id;
                model.Fecha = DateTime.Now;
                model.Tipo = 5;
                model.TotalCarga = 0;
                model.Estado = 5;

                foreach (var item in model.VentaEncomiendas)
                {
                    if (String.IsNullOrEmpty(item.Descripcion))
                    {
                        item.Descripcion = "";
                    }

                    model.TotalCarga = model.TotalCarga + item.CargaEncomienda;

                    var hor = horarioService.ObtenerClientePorId(item.IdHorario);

                    hor.CargaMax = hor.CargaMax + item.CargaEncomienda;

                    horarioService.ModificarHorario(hor);

                    item.Estado = 1;

                    item.FechaRecepcion = DateTime.Parse((hor.Hora.Hour + 5) + ":" + hor.Hora.Minute);

                    var clienbor = clienteService.ObtenerClientePorRucDni(item.DniRucClienteTemp);

                    if (clienbor == null)
                    {
                        Cliente cliente = new Cliente
                        {
                            DniRuc = item.DniRucClienteTemp,
                            Nombre = item.NombreClienteTemp,
                            Apellidos = item.ApellidosClienteTemp,
                            Telefono = item.TelefonoClienteTemp,
                            Direccion = item.DireccionClienteTemp
                        };

                        clienteService.GuardarCliente(cliente);

                        clienbor = clienteService.ObtenerClientePorRucDni(item.DniRucClienteTemp);

                        item.IdCliente = clienbor.Id;
                    }
                    else
                    {
                        item.IdCliente = item.IdClienteTemp;
                    }
                }

                ventaService.GuardarVenta(model);

                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Venta",
                    Cambio = "Nueva Encomienda",
                    IdModulo = model.NroVenta + "",
                    Fecha = DateTime.Now
                };

                movCuentaService.GuardarMovimiento(movimiento);

                return Redirect(@Url.Action("FinalVenta", "Encomienta") + "/" + model.Id);
            }
            catch (Exception e)
            {
                return Redirect(@Url.Action("ListarEncomiendas", "Encomienta") + "/" + model.Id);
            }
        }
        public ActionResult ReportReportesReserva(string id, string criterio, DateTime fechaini, DateTime fechafin, int EstacionOringen = 0)
        {
            LocalReport lr = new LocalReport();

            var estmos = "";
            var pru = ventaService.ObtenerReservas(criterio, fechaini, fechafin, EstacionOringen);

            if (String.IsNullOrEmpty(criterio))
            {
                criterio = "";
            }

            if (EstacionOringen == 0)
            {
                estmos = "";
            }
            else
            {
                var est = estacionService.ObtenerEstacionPorId(EstacionOringen);
                estmos = est.EstacionesT;
            }

            string path = Path.Combine(Server.MapPath("~/Reportes"), "ReporteVentaPasajes.rdlc");
            if (System.IO.File.Exists(path))
            {
                lr.ReportPath = path;
            }
            else
            {
                return View("ListarVentas");
            }

            string reportType = id;
            string mimeType;
            string encoding;
            string fileNameExtension;

            string deviceInfo =

            "<DeviceInfo>" +
            "  <OutputFormat>" + id + "</OutputFormat>" +
            "  <PageWidth>21cm</PageWidth>" +
            "  <PageHeight>29.7cm</PageHeight>" +
            "  <MarginTop>1.54cm</MarginTop>" +
            "  <MarginLeft>1.54cm</MarginLeft>" +
            "  <MarginRight>1.54cm</MarginRight>" +
            "  <MarginBottom>1.54cm</MarginBottom>" +
            "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            List<DatosReportVentaPasaje> cm = new List<DatosReportVentaPasaje>();

            foreach (var item in pru)
            {
                foreach (var item2 in item.Reseras)
                {
                    var datos = new DatosReportVentaPasaje
                    {
                        NroVenta = item.NroVenta + "",
                        Fecha = item.Fecha.Day + "/" + item.Fecha.Month + "/" + item.Fecha.Year,
                        Id = item.TotalVenta + "",
                        TotalVenta = item.EstadoMostrar,

                        DniRuc = item2.Cliente.DniRuc,
                        Nombre = item2.Cliente.Nombre,
                        OrigenId = item2.Horario.EstacionOrigen.Provincia,
                        DestinoId = item2.Horario.EstacionDestino.Provincia,
                        Hora = item2.Horario.HoraText,
                        Pago = item2.Pago
                    };
                    cm.Add(datos);
                }

            }

            ReportDataSource rd = new ReportDataSource("DataSet1", cm);
            lr.DataSources.Add(rd);

            ReportParameter[] parametros = new ReportParameter[5];

            parametros[0] = new ReportParameter("Cliente", criterio);
            parametros[1] = new ReportParameter("EstOrigen", estmos);
            parametros[2] = new ReportParameter("FechaInicio", fechaini.Date.Day + "/" + fechaini.Date.Month + "/" + fechaini.Date.Year + "");
            parametros[3] = new ReportParameter("FechaFin", fechafin.Date.Day + "/" + fechafin.Date.Month + "/" + fechafin.Date.Year + "");
            parametros[4] = new ReportParameter("Tipo", "Reserva - Pasajes");

            lr.SetParameters(parametros);

            renderedBytes = lr.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);

            switch (id)
            {
                case "PDF":
                    return File(renderedBytes, mimeType);
                case "Excel":
                    return File(renderedBytes, mimeType, "Reserva " + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".xls");
                case "Word":
                    return File(renderedBytes, mimeType, "Reserva " + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".doc");
                case "Image":
                    return File(renderedBytes, mimeType, "Reserva " + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + ".png");
                default:
                    break;
            }

            RegUsuarios movimiento = new RegUsuarios
            {
                Usuario = User.Identity.Name,
                Modulo = "Reserva",
                Cambio = "Reportes Reserva",
                IdModulo = "",
                Fecha = DateTime.Now
            };

            movCuentaService.GuardarMovimiento(movimiento);

            return File(renderedBytes, mimeType);
        }
        public ActionResult Eliminar(Int32 idve)
        {
            try
            {
                var hor = horarioService.ObtenerClientePorId(idve);

                RegUsuarios movimiento = new RegUsuarios
                {
                    Usuario = User.Identity.Name,
                    Modulo = "Horario",
                    Cambio = "Eliminar Horario",
                    IdModulo = hor.HoraText,
                    Fecha = DateTime.Now
                };

                horarioService.EliminarHorario(idve);
                ViewBag.Mensaje = "Eliminado Correctamente";

                movCuentaService.GuardarMovimiento(movimiento);
            }
            catch (Exception)
            {
                ViewBag.Mensaje = "No se puedo eliminar la venta realizada";
            }

            return PartialView("Eliminar");
        }