Exemplo n.º 1
0
        public static void MatchPlano(PlanoEntity entidad, PlanoEntity item, PlanoRequest request)
        {
            entidad.NumeAsiento     = item.NumeAsiento;
            entidad.Nacionalidad    = item.Nacionalidad;
            entidad.PrecioVenta     = item.PrecioVenta;
            entidad.RecogeEn        = item.RecogeEn;
            entidad.FlagVenta       = item.FlagVenta;
            entidad.Sigla           = item.Sigla;
            entidad.Boleto          = item.Boleto;
            entidad.TipoBoleto      = item.TipoBoleto;
            entidad.CodiOrigen      = item.CodiOrigen;
            entidad.OrdenOrigen     = item.OrdenOrigen;
            entidad.CodiDestino     = item.CodiDestino;
            entidad.NomOrigen       = item.NomOrigen;
            entidad.NomDestino      = item.NomDestino;
            entidad.CodiPuntoVenta  = item.CodiPuntoVenta;
            entidad.NomPuntoVenta   = item.NomPuntoVenta;
            entidad.CodiUsuario     = item.CodiUsuario;
            entidad.NomUsuario      = item.NomUsuario;
            entidad.RucContacto     = item.RucContacto;
            entidad.NumeSolicitud   = item.NumeSolicitud;
            entidad.HoraVenta       = item.HoraVenta;
            entidad.EmbarqueCod     = item.EmbarqueCod;
            entidad.EmbarqueDir     = item.EmbarqueDir;
            entidad.EmbarqueHora    = item.EmbarqueHora;
            entidad.ImpManifiesto   = item.ImpManifiesto;
            entidad.CodiSucursal    = item.CodiSucursal;
            entidad.TipoDocumento   = item.TipoDocumento;
            entidad.NumeroDocumento = item.NumeroDocumento;
            entidad.Nombres         = item.SplitNombres[0];
            entidad.ApellidoPaterno = item.SplitNombres[1];
            entidad.ApellidoMaterno = item.SplitNombres[2];
            entidad.Sexo            = item.Sexo;
            entidad.TipoPago        = item.TipoPago;
            entidad.Edad            = item.Edad;
            entidad.Telefono        = item.Telefono;
            entidad.ValeRemoto      = item.ValeRemoto;
            entidad.CodiEsca        = item.CodiEsca;
            entidad.CodiEmpresa     = item.CodiEmpresa;

            // Busca 'Pasajero'
            if (!string.IsNullOrEmpty(entidad.TipoDocumento) && !string.IsNullOrEmpty(entidad.NumeroDocumento))
            {
                var buscaPasajero = ClientePasajeRepository.BuscaPasajero(VentaLogic.TipoDocumentoHomologado(entidad.TipoDocumento).ToString(), entidad.NumeroDocumento);
                entidad.FechaNacimiento = buscaPasajero.FechaNacimiento;
                entidad.Especial        = buscaPasajero.Especial;

                entidad.Correo = buscaPasajero.Correo;

                if (entidad.Edad == 0 && string.IsNullOrEmpty(entidad.Telefono))
                {
                    entidad.Edad     = buscaPasajero.Edad;     // La tabla 'Tb_Boleto_Ruta' no contiene 'Edad'
                    entidad.Telefono = buscaPasajero.Telefono; // La tabla 'Tb_Boleto_Ruta' no contiene 'Telefono'
                }
            }

            switch (entidad.FlagVenta)
            {
            case "X":     // Asiento bloqueado
            case "AB":    // Asiento bloqueado por módulo
                entidad.IdVenta    = string.Empty;
                entidad.Color      = string.Empty;
                entidad.FechaVenta = string.Empty;
                entidad.FechaViaje = string.Empty;
                break;

            default:
            {
                entidad.IdVenta    = item.IdVenta;
                entidad.Color      = item.Color;
                entidad.FechaVenta = item.FechaVenta;
                entidad.FechaViaje = item.FechaViaje;

                switch (entidad.FlagVenta)
                {
                case "VI":             // Venta intermedia
                    entidad.FechaVenta = "07/07/1777";
                    entidad.FechaViaje = string.Empty;
                    break;

                case "7":             // Pase de cortesía
                    entidad.Sigla = "PS";
                    entidad.Color = ColorVentaPaseCortesia;
                    break;

                case "1":             // Crédito
                    entidad.Sigla = "VC";
                    break;

                case "R":             // Reserva
                    entidad.Color = ColorVentaReserva;
                    break;
                }
                ;
            };
                break;
            }

            // Busca 'Empresa'
            if (!string.IsNullOrEmpty(entidad.RucContacto))
            {
                var buscarEmpresa = ClientePasajeRepository.BuscarEmpresa(entidad.RucContacto);
                entidad.RazonSocial = buscarEmpresa.RazonSocial;
                entidad.Direccion   = buscarEmpresa.Direccion;
            }
            else
            {
                entidad.RazonSocial = string.Empty;
                entidad.Direccion   = string.Empty;
            }

            // Busca 'Acompaniante'
            if (!string.IsNullOrEmpty(entidad.IdVenta))
            {
                entidad.ObjAcompaniante = PlanoRepository.BuscaAcompaniante(entidad.IdVenta);
            }

            // Consulta 'Reintegro'
            if (!string.IsNullOrEmpty(entidad.CodiEsca))
            {
                var consultaVentaReintegro = VentaRepository.ConsultaVentaReintegro(entidad.CodiEsca.Substring(1, 3), entidad.CodiEsca.Substring(5), entidad.CodiEmpresa.ToString(), entidad.CodiEsca.Substring(0, 1));
                entidad.ClavUsuarioReintegro = consultaVentaReintegro.CodiUsuario;
                entidad.SucVentaReintegro    = consultaVentaReintegro.SucVenta;
                entidad.PrecVentaReintegro   = consultaVentaReintegro.PrecioVenta;
                entidad.Nombres         = consultaVentaReintegro.SplitNombre[0];
                entidad.ApellidoPaterno = consultaVentaReintegro.SplitNombre[1];
                entidad.ApellidoMaterno = consultaVentaReintegro.SplitNombre[2];
                entidad.TipoDocumento   = consultaVentaReintegro.TipoDocumento;
                entidad.NumeroDocumento = consultaVentaReintegro.Dni;
                entidad.Edad            = consultaVentaReintegro.Edad;
                entidad.RucContacto     = consultaVentaReintegro.RucCliente;
                entidad.Telefono        = consultaVentaReintegro.Telefono;

                // Busca 'Pasajero'
                if (!string.IsNullOrEmpty(entidad.TipoDocumento) && !string.IsNullOrEmpty(entidad.NumeroDocumento))
                {
                    var buscaPasajero = ClientePasajeRepository.BuscaPasajero(VentaLogic.TipoDocumentoHomologado(entidad.TipoDocumento).ToString(), entidad.NumeroDocumento);
                    entidad.FechaNacimiento = buscaPasajero.FechaNacimiento;
                }

                // Busca 'Empresa'
                if (!string.IsNullOrEmpty(entidad.RucContacto))
                {
                    var buscarEmpresa = ClientePasajeRepository.BuscarEmpresa(entidad.RucContacto);
                    entidad.RazonSocial = buscarEmpresa.RazonSocial;
                    entidad.Direccion   = buscarEmpresa.Direccion;
                }
                else
                {
                    entidad.RazonSocial = string.Empty;
                    entidad.Direccion   = string.Empty;
                }
            }

            // Consulta 'FechaHoraReservacion'
            if (entidad.FlagVenta == "R")
            {
                var consultarFechaHoraReservacion = VentaRepository.ConsultarFechaHoraReservacion(int.Parse(entidad.IdVenta));
                entidad.FechaReservacion = consultarFechaHoraReservacion.FechaReservacion;
                entidad.HoraReservacion  = consultarFechaHoraReservacion.HoraReservacion;
            }

            // Seteo 'Info'
            entidad.Info = entidad.CodiUsuario + " " + entidad.NomUsuario + " - " + entidad.NomPuntoVenta + " - ";
            switch (entidad.FlagVenta)
            {
            case "7":
                entidad.Info += "(PS)" + " - ";
                break;

            case "1":
                entidad.Info += "(VC)" + " - ";
                break;
            }
            entidad.Info += entidad.NomOrigen + " - " + entidad.NomDestino;

            // Seteo 'Observacion'
            if (entidad.FlagVenta == "I")
            {
                var consultaUsrValeR = VentaRepository.ConsultaUsrValeR(int.Parse(entidad.IdVenta));

                entidad.Observacion = "USR VALE: " + consultaUsrValeR;
            }
            entidad.Observacion += entidad.CodiEsca;
        }