Beispiel #1
0
        public void execute(GDS_NuevoMundoPersistencia.classSession session, List <GDS_NuevoMundoPersistencia.robotBoletoPendientePago.robotBoletoPendiente> boletos, string fecha)
        {
            var logger = new GestorLog();

            logger.info(string.Format("Ejecutando ProcesoAvisoNoFacturados [{0}] ", fecha));
            try
            {
                var boletosNoFacturados = boletos.Where(boleto => boleto.ExistePTA && boleto.MarcaFacturado == 0).ToList();
                logger.info(string.Format("Se encontraron {0} boletos No Facturados...", boletosNoFacturados.Count));
                if (boletosNoFacturados.Any())
                {
                    boletosNoFacturados.ForEach(boleto => logger.info(string.Format("[{0} - {1} - {2} - {3}] :: No Facturado ", boleto.Pseudo, boleto.PNR, boleto.NumeroBoleto, boleto.Vendedor.FirmaAgente, boleto.MarcaFacturado)));
                    string asuntoMail       = "Boletos No Facturados [ " + fecha + " ]";
                    var    lstLog           = new List <string>();
                    var    lproceso         = getReferenciaProceso(fecha);
                    var    lPseudosEmisores = boletosNoFacturados.Select(x => x.Pseudo).Distinct().ToList();
                    foreach (var pseudo in lPseudosEmisores)
                    {
                        var boletosPorPseudo = boletosNoFacturados.Where(x => x.Pseudo.Equals(pseudo)).ToList();
                        new classBO().EjecutarProcesoAvisoVoideo(boletosPorPseudo, lproceso, asuntoMail, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.info("Ocurrió un error al ejecutar el ProcesoAvisoNoFacturado ");
                logger.info("Exception: " + ex.ToString());
                throw ex;
            }
        }
Beispiel #2
0
        private void envioSMS(string mensaje, string remitente, string nroCelular)
        {
            try
            {
                var endPointSMS = "http://10.72.102.52/cgi-bin/exec?";
                var builderdURL = new StringBuilder();
                builderdURL.Append(endPointSMS);
                builderdURL.Append("cmd=api_queue_sms").Append("&");
                builderdURL.Append("username=lyric_api").Append("&");
                builderdURL.Append("password=lyric_api").Append("&");
                builderdURL.Append("content=").Append(mensaje).Append(" - ").Append(remitente).Append("&");
                builderdURL.Append("destination=").Append(nroCelular).Append("&");
                builderdURL.Append("api_version=0.08&channel=8");

                var objHttpWebRequest = System.Net.WebRequest.Create(builderdURL.ToString());
                var objProxy          = new WebProxy();
                objProxy.Credentials          = new NetworkCredential("admin", "admin");
                objHttpWebRequest.Method      = "GET";
                objHttpWebRequest.Proxy       = objProxy;
                objHttpWebRequest.Credentials = new NetworkCredential("admin", "admin");
                objHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

                var objHttpWebResponse = objHttpWebRequest.GetResponse();
                var objStreamReader    = new StreamReader(objHttpWebResponse.GetResponseStream());
                objStreamReader.ReadToEnd();
            }
            catch (Exception ex)
            {
                logger.info(string.Format("Ocurrió un error al enviar SMS a {0} | Mensaje: {1} ", nroCelular, mensaje));
                logger.info(string.Format("Exception: {0}", ex.ToString()));
            }
        }
Beispiel #3
0
        /// <summary>
        /// Realiza el Reporte diario de la fecha especificada
        /// </summary>
        /// <returns></returns>
        public List <GDS_NuevoMundoPersistencia.classReporteVentas> obtenerReporteDQB(string pseudosAEvaluar)
        {
            var session          = utilSession.getSession();
            var jsonSerialize    = new System.Web.Script.Serialization.JavaScriptSerializer();
            var GNM_ConsultasPTA = new GNM_ConsultaPTA.gnm();
            var lstReporteVentas = new List <GDS_NuevoMundoPersistencia.classReporteVentas>();

            foreach (string pseudo in pseudosAEvaluar.Split('/'))
            {
                int intContadorIntentos = 1;
                while (intContadorIntentos < 4)
                {
                    try
                    {
                        logger.info("Consultando Reporte del pseudo : " + pseudo);
                        var reporteAuxiliar = jsonSerialize.Deserialize <List <GDS_NuevoMundoPersistencia.classReporteVentas> >(GNM_ConsultasPTA.SWS_DQB(fechaReporte, pseudo, session.Token, session.ConversationID, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD));

                        if (reporteAuxiliar != null)
                        {
                            if (reporteAuxiliar[0].MSGError == null)
                            {
                                logger.info("Se encontraron " + reporteAuxiliar[0].Boletos.Count + " boletos...");
                                lstReporteVentas.AddRange(reporteAuxiliar);
                            }
                            else
                            {
                                logger.info("Se encontró un error en reporte diario " + reporteAuxiliar[0].MSGError);
                            }
                        }
                        else
                        {
                            logger.info("No se encontraron boletos emitidos");
                        }
                        break;
                    }
                    catch (Exception ex)
                    {
                        Thread.Sleep(3000);
                        logger.info("Ocurrió un error al ejecutar el reporte diario, Nro de Intentos : " + intContadorIntentos);
                        logger.info(ex.ToString());
                        intContadorIntentos += 1;
                        new Utilitario().envioSMS("Verificar! Ocurrió un error al realizar el reporte diario del pseudo: " + pseudo, "ROBOT_AVISO_GDS", Configuracion.contactosEnvioSMS);
                    }
                }
            }
            utilSession.closeSession(session);
            return(lstReporteVentas);
        }
Beispiel #4
0
        public void execute(GDS_NuevoMundoPersistencia.classSession session, List <GDS_NuevoMundoPersistencia.robotBoletoPendientePago.robotBoletoPendiente> boletos)
        {
            var logger = new GestorLog();

            logger.info("Ejecutando ProcesoAvisoAnulacion...");
            try
            {
                double MONTO_MAXIMO_DEUDA_PENDIENTE = 20;
                // Crear instancia de service boleto para obtener boletos con deuda pendiente
                var service = new ServiceBoleto(TipoProceso.ANULACION, null);

                // Filtrar boletos con deuda Pendiente
                boletos = service.obtenerBoletosDeudaPendiente(boletos);

                // Si existen boletos con deuda pendiente.
                if (boletos != null && boletos.Any())
                {
                    // Anular solo Si los boletos tienen una deuda pendiente mayor al máximo de deuda indicado por la empresa (en este caso 20.00) o el DK es de prueba
                    var boletosAAnular = boletos.Where(boleto => boleto.TotalPendiente >= MONTO_MAXIMO_DEUDA_PENDIENTE || boleto.IdCliente == Configuracion.dkPrueba).ToList();
                    if (boletosAAnular.Any())
                    {
                        logger.info(string.Format("Se encontraron {0} boletos a Anular...", boletosAAnular.Count));

                        // Grabar log de los boletos que va a anular el robot
                        boletosAAnular.ForEach(obj => logger.info(string.Format("[{0} - {1} - {2} - {3}] :: [ Anulacion ]  TotalPendiente: {5} | DK: {6}", obj.Pseudo, obj.PNR, obj.NumeroBoleto, obj.Vendedor.FirmaAgente, obj.MarcaFacturado, obj.TotalPendiente, obj.Cliente.DK)));
                        var asunto = "Boletos anulados";
                        var lstLog = new List <string> {
                        };

                        // Ejecutar el proceso de anulación
                        new classBO().EjecutarProcesoAvisoVoideo(boletosAAnular, "VOI", asunto, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);

                        // Grabar log de las respuestas de los comandos de sabre.
                        lstLog.ForEach(data => logger.info(data));
                    }
                }
                MailUtils.getInstance().sendMailConfirmacion(TipoProceso.ANULACION);
            }
            catch (Exception e)
            {
                logger.info("Ocurrió un error en el proceso de Anulacion");
                throw e;
            }
        }
Beispiel #5
0
 /// <summary>
 ///     Envía mail de confirmación al terminar un proceso en concreto.
 /// </summary>
 /// <param name="nombreCorreo"></param>
 /// <param name="subject"></param>
 /// <param name="body"></param>
 private void sendMail(string nombreCorreo, string subject, string body)
 {
     try
     {
         var objCorreo = new classCorreo();
         objCorreo.ToCorreo      = Configuracion.correo_EmailRobotAlertas;
         objCorreo.BCCCorreo     = Configuracion.correo_EmailNotificacion;
         objCorreo.NombreCorreo  = string.Format("{0} - {1}", Configuracion.empresa, nombreCorreo);
         objCorreo.SubjectCorreo = string.Format("{0} - {1}", Configuracion.empresa, subject);
         objCorreo.BodyCorreo    = body;
         var pathLog = logger.getRutaArchivoLog();
         objEnviarEmail.SendAttachment(objCorreo, true, "ROBOTANULACIONES", 3, new List <string> {
             pathLog
         });
     }
     catch (Exception e)
     {
         logger.info("Ocurrió un error al enviar mail : " + e.ToString());
     }
 }
Beispiel #6
0
        public void execute(GDS_NuevoMundoPersistencia.classSession session, List <GDS_NuevoMundoPersistencia.robotBoletoPendientePago.robotBoletoPendiente> boletos)
        {
            var          logger = new GestorLog();
            const double MONTO_MAXIMO_DEUDA_PENDIENTE = 20;

            try
            {
                var lstLog = new List <string> {
                };

                // Crea una instancia de serviceBoleto para obtener los boletos con deuda pendiente
                var service = new ServiceBoleto(TipoProceso.AVISO_ANULACION, null);

                // Obtiene los boletos con deuda pendiente
                boletos = service.obtenerBoletosDeudaPendiente(boletos);

                // Si existen boletos con deuda pendiente
                if (boletos != null && boletos.Any())
                {
                    // Envía aviso solo Si los boletos tienen una deuda pendiente mayor al máximo de deuda indicado por la empresa (en este caso 20.00) o el DK es de prueba
                    var boletosAvisoAnulacion = boletos.Where(boleto => boleto.TotalPendiente >= MONTO_MAXIMO_DEUDA_PENDIENTE || boleto.IdCliente == Configuracion.dkPrueba).ToList();
                    if (boletosAvisoAnulacion.Any())
                    {
                        logger.info(string.Format("Se encontraron {0} boletos a enviar Aviso de anulación...", boletosAvisoAnulacion.Count));
                        boletosAvisoAnulacion.ForEach(obj => logger.info(string.Format("[{0} - {1} - {2} - {3}] :: [ Aviso Anulacion ]  TotalPendiente: {5} | DK: {6}", obj.Pseudo, obj.PNR, obj.NumeroBoleto, obj.Vendedor.FirmaAgente, obj.MarcaFacturado, obj.TotalPendiente, obj.Cliente.DK)));

                        // Si es AGCORP envía un asunto distinto, ya que por el momento no se está realizando el proceso de voideo a sus clientes
                        var asuntoMailAviso = "NM".Equals(Configuracion.empresa) ? "Boletos sin pago sera anulado" : "Boletos pendientes de pago ";

                        var valor = Configuracion.Gds == GDS.SABRE ? "AVI" : "AVI_A";

                        // Ejecutar el proceso de envio de correos
                        new classBO().EjecutarProcesoAvisoVoideo(boletosAvisoAnulacion, valor, asuntoMailAviso, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);
                    }

                    if ("NM".Equals(Configuracion.empresa)) // Solo para NM
                    {
                        // Si tienen una deuda pendiente menor que 20 se envía un correo solo avisando que debe cancelar la deuda pero no se anulará el boleto
                        var boletosConPendienteMinimo = boletos.Where(boleto => boleto.TotalPendiente < MONTO_MAXIMO_DEUDA_PENDIENTE).ToList();
                        if (boletosConPendienteMinimo.Any())
                        {
                            logger.info(string.Format("Se encontraron {0} boletos con deudar menor a {1} ...", boletosConPendienteMinimo.Count, MONTO_MAXIMO_DEUDA_PENDIENTE));
                            boletosConPendienteMinimo.ForEach(obj => logger.info(string.Format("[{0} - {1} - {2} - {3}] :: [ Aviso Anulacion - Pendiente menor de {7} ]  TotalPendiente: {5} | DK: {6}", obj.Pseudo, obj.PNR, obj.NumeroBoleto, obj.Vendedor.FirmaAgente, obj.MarcaFacturado, obj.TotalPendiente, obj.Cliente.DK, MONTO_MAXIMO_DEUDA_PENDIENTE)));
                            var asunto = "Boletos pendientes de Pago ";
                            new classBO().EvaluarBoletosXCliente(boletosConPendienteMinimo, "AVIC", asunto, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);
                        }
                    }
                }
                MailUtils.getInstance().sendMailConfirmacion(TipoProceso.AVISO_ANULACION);
            }
            catch (Exception ex)
            {
                logger.info("Ocurrió un error al ejecutar el ProcesoAvisoAnulacion ");
                logger.info("Exception: " + ex.ToString());
                throw ex;
            }
        }
Beispiel #7
0
        public void execute(GDS_NuevoMundoPersistencia.classSession session, List <GDS_NuevoMundoPersistencia.robotBoletoPendientePago.robotBoletoPendiente> boletos, string fecha)
        {
            var logger = new GestorLog();

            logger.info(string.Format("Ejecutando ProcesoAvisoNoEnPTA [{0}] ", fecha));
            try
            {
                var boletosNoFiguranPTA = boletos.Where(obj => !obj.ExistePTA).ToList();
                logger.info(string.Format("Se encontraron {0} boletos No En PTA de ...", boletosNoFiguranPTA.Count));
                if (boletosNoFiguranPTA.Any())
                {
                    var service = new ServiceBoleto(TipoProceso.AVISO_NO_EN_PTA, fecha);
                    boletosNoFiguranPTA = service.filtrarBoletosNoFiguranEnOtroPTA(boletosNoFiguranPTA);
                    logger.info(string.Format("Se encontraron {0} boletos Que No están en Ningún PTA...", boletosNoFiguranPTA.Count));
                    boletosNoFiguranPTA.ForEach(obj => logger.info(string.Format("[{0} - {1} - {2} - {3}] :: No figura en PTA", obj.Pseudo, obj.PNR, obj.NumeroBoleto, obj.Vendedor.FirmaAgente)));
                    string asuntoMail = "Boletos no figuran en PTA - BACKOFFICE ";
                    var    lstLog     = new List <string> {
                    };

                    var lProceso = Configuracion.Gds == GDS.SABRE ? "NBD" : "NBD_A";

                    var pseudosEmitenBoletos = boletosNoFiguranPTA.Select(x => x.Pseudo).Distinct().ToList();
                    foreach (var pseudo in pseudosEmitenBoletos)
                    {
                        var boletosPorPseudo = boletosNoFiguranPTA.Where(x => x.Pseudo.Equals(pseudo)).ToList();
                        new classBO().EjecutarProcesoAvisoVoideo(boletosPorPseudo, lProceso, asuntoMail, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);
                        //new classBO().EjecutarProcesoAvisoVoideo(boletosNoFiguranPTA, "NBD", asuntoMail, ref lstLog, Configuracion.codigoSeguimiento, Configuracion.idGDS, Configuracion.firmaGDS, Configuracion.firmaBD, Configuracion.EsquemaDB.Actual, session);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.info("Ocurrió un error al ejecutar el ProcesoAvisoNoEnPTA ");
                logger.info("Exception: " + ex.ToString());
                throw ex;
            }
        }
Beispiel #8
0
        public Form1()
        {
            try
            {
                InitializeComponent();
                mainProcess = new Main();
                Text        = string.Format(" {0} - {1} - Robot Anulaciones ", Configuracion.Gds, Configuracion.empresa);

                if (Configuracion.IsTest)
                {
                    Text += " - TEST";
                }

                cargarComboProcesos();
            }
            catch (Exception e)
            {
                var msg = string.Format("Ocurrio un error al inicializar el formulario Principal. Desc: {0} ", e.ToString());
                logger.info(msg);
                MessageBox.Show(msg);
            }
            myTimer.Interval = 1000;
            myTimer.Enabled  = true;
        }
Beispiel #9
0
        public void Enviar(string para, string copia, string copiaOculta, string asunto, string contenido, string display)
        {
            try
            {
                using (var lcorreo = new MailMessage())
                {
                    using (var lcliente = new SmtpClient())
                    {
                        var lpara        = string.IsNullOrEmpty(para) ? EmailTo : para;
                        var lcopia       = string.IsNullOrEmpty(copia) ? EmailCC : copia;
                        var lcopiaOculta = string.IsNullOrEmpty(copiaOculta) ? EmailBCC : copiaOculta;
                        var lasunto      = string.IsNullOrEmpty(asunto) ? EmailSubject : asunto;
                        var lcontenido   = string.IsNullOrEmpty(contenido) ? EmailBody : contenido;
                        var ldisplay     = string.IsNullOrEmpty(display) ? EmailDisplay : display;

                        lpara = string.IsNullOrEmpty(lpara) ? Configuracion.correo_EmailPruebas : lpara;

                        if (Configuracion.IsTest)
                        {
                            lpara        = Configuracion.correo_EmailPruebas;
                            lcopia       = string.Empty;
                            lcopiaOculta = string.Empty;
                        }

                        lcliente.Host = servidor;
                        lcorreo.From  = new MailAddress(EmailFrom, ldisplay);

                        lpara.Trim()
                        .Split(';')
                        .ToList()
                        .ForEach(
                            e => lcorreo.To.Add(new MailAddress(e))
                            );

                        if (!string.IsNullOrWhiteSpace(lcopia))
                        {
                            lcopia.Trim()
                            .Split(';')
                            .ToList()
                            .ForEach(
                                e => lcorreo.CC.Add(new MailAddress(e))
                                );
                        }

                        if (!string.IsNullOrWhiteSpace(lcopiaOculta))
                        {
                            lcopiaOculta.Trim()
                            .Split(';')
                            .ToList()
                            .ForEach(
                                e => lcorreo.Bcc.Add(new MailAddress(e))
                                );
                        }

                        if (EmailAttachments != null)
                        {
                            EmailAttachments.ToList().ForEach(at => lcorreo.Attachments.Add(new Attachment(at)));
                        }
                        lcorreo.BodyEncoding = Encoding.UTF8;
                        lcorreo.IsBodyHtml   = true;
                        lcorreo.Subject      = lasunto.Trim();
                        lcorreo.Body         = lcontenido;
                        lcliente.Send(lcorreo);
                    }
                }
            }
            catch (Exception e)
            {
                logger.info(e.ToString());
            }
        }