public static Response <RucEntity> BuscaEmpresa(string RucContacto)
        {
            try
            {
                var buscaEmpresa = ClientePasajeRepository.BuscarEmpresa(RucContacto);

                // Consulta 'SUNAT'
                if (string.IsNullOrEmpty(buscaEmpresa.RucCliente))
                {
                    var resConsultaSUNAT = ConsultaSUNAT(RucContacto);
                    if (resConsultaSUNAT.EsCorrecto)
                    {
                        buscaEmpresa.RazonSocial = resConsultaSUNAT.Valor.RazonSocial;
                        buscaEmpresa.Direccion   = resConsultaSUNAT.Valor.Direccion;
                    }
                    else
                    {
                        return(new Response <RucEntity>(false, buscaEmpresa, resConsultaSUNAT.Mensaje, true));
                    }
                }

                return(new Response <RucEntity>(true, buscaEmpresa, Message.MsgCorrectoBuscaEmpresa, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(ClientePasajeLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <RucEntity>(false, null, Message.MsgExcBuscaEmpresa, false));
            }
        }
        public static Response <bool> GrabarPasajero(List <ClientePasajeEntity> lista)
        {
            try
            {
                foreach (var entidad in lista)
                {
                    // Seteo el 'TipoDocumentoHomologado'
                    entidad.TipoDoc = VentaLogic.TipoDocumentoHomologado(entidad.TipoDoc).ToString();

                    if (entidad.IdCliente > 0)
                    {
                        // Modifica 'Pasajero'
                        ClientePasajeRepository.ModificarPasajero(entidad);
                    }
                    else
                    {
                        // Graba 'Pasajero'
                        ClientePasajeRepository.GrabarPasajero(entidad);
                    }

                    // Valida 'RucContacto'
                    if (string.IsNullOrEmpty(entidad.RucContacto))
                    {
                        continue;
                    }

                    // Busca 'Empresa'
                    var buscarEmpresa = ClientePasajeRepository.BuscarEmpresa(entidad.RucContacto);

                    var objEmpresa = new RucEntity
                    {
                        RucCliente  = entidad.RucContacto ?? string.Empty,
                        RazonSocial = entidad.RazonSocial ?? string.Empty,
                        Direccion   = entidad.Direccion ?? string.Empty,
                        Telefono    = string.Empty
                    };

                    if (!string.IsNullOrEmpty(buscarEmpresa.RucCliente))
                    {
                        // Modifica 'Empresa'
                        ClientePasajeRepository.ModificarEmpresa(objEmpresa);
                    }
                    else
                    {
                        // Graba 'Empresa'
                        ClientePasajeRepository.GrabarEmpresa(objEmpresa);
                    }
                }

                return(new Response <bool>(true, true, Message.MsgCorrectoGrabarClientePasaje, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(ClientePasajeLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <bool>(false, false, Message.MsgExcGrabarClientePasaje, false));
            }
        }
        public static Response <List <ClientePasajeEntity> > BuscarClientesPasaje(string campo, string nombres, string paterno, string materno, string TipoDocId)
        {
            try
            {
                var BuscarClientesPasaje = ClientePasajeRepository.BuscarClientesPasaje(campo, nombres, paterno, materno, VentaLogic.TipoDocumentoHomologado(TipoDocId).ToString());

                return(new Response <List <ClientePasajeEntity> >(true, BuscarClientesPasaje, Message.MsgCorrectoBuscarClientesPasaje, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(VentaLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <List <ClientePasajeEntity> >(false, null, Message.MsgExcBuscarClientesPasaje, false));
            }
        }
Beispiel #4
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;
        }
        public static Response <ClientePasajeEntity> BuscaPasajero(string TipoDoc, string NumeroDoc)
        {
            try
            {
                var buscaPasajero = ClientePasajeRepository.BuscaPasajero(VentaLogic.TipoDocumentoHomologado(TipoDoc).ToString(), NumeroDoc);

                // Valida 'FechaNacimiento'
                if (buscaPasajero.FechaNacimiento == "01/01/1900")
                {
                    buscaPasajero.FechaNacimiento = string.Empty;
                    buscaPasajero.Edad            = 0;
                }

                var buscaEmpresa = new RucEntity();

                if (!string.IsNullOrEmpty(buscaPasajero.RucContacto))
                {
                    buscaEmpresa = ClientePasajeRepository.BuscarEmpresa(buscaPasajero.RucContacto);
                    buscaPasajero.RazonSocial = buscaEmpresa.RazonSocial;
                    buscaPasajero.Direccion   = buscaEmpresa.Direccion;
                }
                // Con esto nos aseguramos que estamos tomando solo la 'Direccion' de la empresa
                else
                {
                    buscaPasajero.Direccion = string.Empty;
                }

                // Consulta 'RENIEC'
                if (TipoDoc == "01" && string.IsNullOrEmpty(buscaPasajero.NumeroDoc))
                {
                    var resConsultaRENIEC = ConsultaRENIEC(NumeroDoc);
                    if (resConsultaRENIEC.EsCorrecto)
                    {
                        buscaPasajero.ApellidoPaterno = resConsultaRENIEC.Valor.ApellidoPaterno;
                        buscaPasajero.ApellidoMaterno = resConsultaRENIEC.Valor.ApellidoMaterno;
                        buscaPasajero.NombreCliente   = resConsultaRENIEC.Valor.Nombres;
                    }
                    else
                    {
                        return(new Response <ClientePasajeEntity>(false, buscaPasajero, resConsultaRENIEC.Mensaje, true));
                    }
                }

                // Consulta 'SUNAT'
                if (!string.IsNullOrEmpty(buscaPasajero.RucContacto) && buscaPasajero.RucContacto.Length == 11)
                {
                    if (string.IsNullOrEmpty(buscaEmpresa.RucCliente))
                    {
                        var resConsultaSUNAT = ConsultaSUNAT(buscaPasajero.RucContacto);
                        if (resConsultaSUNAT.EsCorrecto)
                        {
                            buscaPasajero.RazonSocial = resConsultaSUNAT.Valor.RazonSocial;
                            buscaPasajero.Direccion   = resConsultaSUNAT.Valor.Direccion;
                        }
                        else
                        {
                            return(new Response <ClientePasajeEntity>(false, buscaPasajero, resConsultaSUNAT.Mensaje, true));
                        }
                    }
                }

                return(new Response <ClientePasajeEntity>(true, buscaPasajero, Message.MsgCorrectoBuscaPasajero, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(ClientePasajeLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <ClientePasajeEntity>(false, null, Message.MsgExcBuscaPasajero, false));
            }
        }
Beispiel #6
0
        public static Response <ReintegroEntity> VentaConsultaF12(ReintegroRequest request)
        {
            try
            {
                var valor = ReintegroRepository.VentaConsultaF12(request);
                //Datos adicionales: 'FechaNacimiento'
                var clientePasaje = ClientePasajeRepository.BuscaPasajero(VentaLogic.TipoDocumentoHomologado(valor.TipoDocumento).ToString(), valor.Dni);
                valor.FechaNac = clientePasaje.FechaNacimiento;

                if (valor.IdVenta == 0)
                {
                    return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12NoExiste, true));
                }
                //Setea Razón Social y Dirección con el RUC
                if (!string.IsNullOrEmpty(valor.RucCliente))
                {
                    var buscarEmpresa = ClientePasajeRepository.BuscarEmpresa(valor.RucCliente);
                    valor.RazonSocial = buscarEmpresa.RazonSocial;
                    valor.Direccion   = buscarEmpresa.Direccion;
                }
                else
                {
                    valor.RazonSocial = string.Empty;
                    valor.Direccion   = string.Empty;
                }

                // Busca 'AgenciaEmpresa' (E -> GenerarAdicionales, M -> También se va a necesitar.)
                var buscarAgenciaEmpresa = new AgenciaEntity();
                buscarAgenciaEmpresa = VentaRepository.BuscarAgenciaEmpresa(valor.CodiEmpresa, valor.CodiPuntoVenta);
                valor.DirEmbarque    = buscarAgenciaEmpresa.Direccion;

                //Verifica si el boleto está en Fecha Abierta
                if (valor.CodiProgramacion != 0)
                {
                    var programacion = ReintegroRepository.DatosProgramacion(valor.CodiProgramacion);
                    //Verifica si no tiene Programación, caso contrario setea Ruta y Servicio
                    if (programacion.CodiRuta != 0 && programacion.CodiServicio != 00)
                    {
                        valor.CodiRuta     = programacion.CodiRuta;
                        valor.CodiServicio = programacion.CodiServicio;
                        valor.CodiBus      = programacion.CodiBus;
                    }
                    else
                    {
                        valor.CodiError = 2;
                        return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12SinProgramacion, true));
                    }
                    //Verfica si tiene Nota de Crédito
                    var notaCredito = VentaRepository.VerificaNC(valor.IdVenta);
                    if (Convert.ToInt32(notaCredito.id) > 0)
                    {
                        valor.CodiError = 3;
                        return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12NotaCredito + " " + notaCredito.label, true));
                    }
                    //Verfica si esta como Reintegro
                    if (valor.FlagVenta == "O")
                    {
                        valor.CodiError = 4;
                        return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12EsReintegro, true));
                    }
                    //Verfica si ya tiene adjunto un Reintegro
                    if (valor.CodiEsca != "")
                    {
                        valor.CodiError = 5;
                        return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12TieneReintegro, true));
                    }
                }
                else
                {
                    valor.CodiError = 1;
                    return(new Response <ReintegroEntity>(false, valor, Message.MsgExcF12EsFechaAbierta, true));
                }
                return(new Response <ReintegroEntity>(true, valor, Message.MsgCorrectoVentaConsultaF12, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(FechaAbiertaLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <ReintegroEntity>(false, null, Message.MsgExcVentaConsultaF12, false));
            }
        }