public ActionResult Login(UsuarioLogin usuario, string ReturnUrl = null)
 {
     if (usuario.Validate())
     {
         //TODO: colocar usuario na sessão
         FormsAuthentication.RedirectFromLoginPage(usuario.Email, true);
     }
     return View(usuario);
 }
        public ActionResult Login(UsuarioLogin model)
        {
            if (ModelState.IsValid)
            {
                Usuario usuario = servicioGeneral.ObtenerUsuarioPorNombre(model.UserName);
                if (usuario != null && model.UserName.Equals(usuario.userLogin) && usuario.password.Equals(servicio.Encrypt(model.Password)))
                {
                    Session["user"] = new UsuarioLogin() { UserName = model.UserName , nombre = usuario.nombre , apellido = usuario.apellido };
                    return RedirectToAction("UserPanel","Account");
                }
            }

            return View();
        }
Exemple #3
0
 private string GerarAuthenticationHeader(UsuarioLogin usuarioLogin)
 {
     return("Basic " + Convert.ToBase64String(
                Encoding.ASCII.GetBytes($"{usuarioLogin.Email}:{usuarioLogin.ApiKey}")));;
 }
 public static void GuardarEnHttpContext(this UsuarioLogin usuario, HttpActionContext actionContext)
 {
     actionContext.Request.Properties.Add(USER_DATA_KEY, usuario);
 }
Exemple #5
0
        private UsuarioLogin FillDatosUsuarioPersonal(DataTable dt = null)
        {
            try
            {
                UsuarioLogin DatosUsuario = null;
                if (dt != null)
                {
                    DatosUsuario = new UsuarioLogin();
                    foreach (DataRow row in dt.Rows)
                    {
                        #region Loading
                        if (row["USUWEB_ID"] != null)
                        {
                            DatosUsuario.IdUsuario = Convert.ToInt32(row["USUWEB_ID"]);
                        }
                        if (row["PER_NOM"] != null)
                        {
                            DatosUsuario.NomUsuario = row["PER_NOM"].ToString();
                        }
                        if (row["PER_APEPAT"] != null)
                        {
                            DatosUsuario.ApePatUsuario = row["PER_APEPAT"].ToString();
                        }
                        if (row["PER_APEMAT"] != null)
                        {
                            DatosUsuario.ApeMatUsuario = row["PER_APEMAT"].ToString();
                        }
                        if (row["USUWEB_LOGIN"] != null)
                        {
                            DatosUsuario.LoginUsuario = row["USUWEB_LOGIN"].ToString();
                        }
                        if (row["PER_EMAIL"] != null)
                        {
                            DatosUsuario.EmailUsuario = row["PER_EMAIL"].ToString();
                        }
                        if (row["PER_ESTADO"] != null)
                        {
                            DatosUsuario.EstadoUsuario = row["PER_ESTADO"].ToString();
                        }
                        if (row["DEP_ID"] != null)
                        {
                            DatosUsuario.IdDep = Convert.ToInt32(row["DEP_ID"]);
                        }
                        if (row["OFI_ID"] != null)
                        {
                            DatosUsuario.IdOfi = Convert.ToInt32(row["OFI_ID"]);
                        }
                        if (row["EMP_ID"] != null)
                        {
                        }
                        DatosUsuario.IdEmp = Convert.ToInt32(row["EMP_ID"]);
                        if (row["ES_COUNTER_ADMIN"] != null && string.IsNullOrEmpty(row["ES_COUNTER_ADMIN"].ToString()) == false)
                        {
                            DatosUsuario.EsCounterAdminSRV = (row["ES_COUNTER_ADMIN"].ToString() == "1" ? true : false);
                        }
                        if (row["PER_ES_SUPERVISOR"] != null && string.IsNullOrEmpty(row["PER_ES_SUPERVISOR"].ToString()) == false)
                        {
                            DatosUsuario.EsSupervisorSRV = (row["PER_ES_SUPERVISOR"].ToString() == "1" ? true : false);
                        }

                        DatosUsuario.TipoUsuario        = TIPO_USUARIO.PERSONAL;
                        DatosUsuario.NomCompletoUsuario = (DatosUsuario.NomUsuario != null ? DatosUsuario.NomUsuario : "") + (DatosUsuario.ApePatUsuario != null ? DatosUsuario.ApePatUsuario : "") + (DatosUsuario.ApeMatUsuario != null ? DatosUsuario.ApeMatUsuario : "");
                        #endregion
                        break;
                    }
                }
                return(DatosUsuario);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <IActionResult> Edit(Usuario usuario)
        {
            var i = (ClaimsIdentity)User.Identity;
            List <SelectListItem> Perfil   = new SelectList(_context.Perfil.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList();
            List <SelectListItem> Personal = new SelectList(_context.Personal.OrderBy(f => f.NombreCompleto), "Codigo", "NombreCompleto").ToList();

            if (i.IsAuthenticated)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        try
                        {
                            usuario.Codigo = Encriptacion.Decrypt(usuario.Codigo);

                            usuario.SecurityStamp = Guid.NewGuid().ToString();
                            var us = new UsuarioLogin {
                                UserName = usuario.CorreoElectronico
                            };
                            usuario.PasswordHash = _userManager.PasswordHasher.HashPassword(us, usuario.Contrasenia);


                            if (usuario.CodigoPersonal == "0")
                            {
                                usuario.CodigoPersonal = null;
                            }

                            _context.Update(usuario);
                            await _context.SaveChangesAsync();

                            await _auditoria.GuardarLogAuditoria(Funciones.ObtenerFechaActual("SA Pacific Standard Time"), i.Name, "Usuario", usuario.Codigo, "U");

                            ViewBag.Message = "Save";

                            Perfil.Insert(0, vacio);
                            ViewData["CodigoPerfil"] = Perfil;

                            Personal.Insert(0, vacio);
                            ViewData["CodigoPersonal"] = Personal;

                            return(View(usuario));
                        }
                        catch (DbUpdateConcurrencyException)
                        {
                            throw;
                        }
                    }

                    Perfil.Insert(0, vacio);
                    ViewData["CodigoPerfil"] = Perfil;

                    Personal.Insert(0, vacio);
                    ViewData["CodigoPersonal"] = Personal;

                    return(View(usuario));
                }
                catch (Exception e)
                {
                    string mensaje = e.Message;
                    if (e.InnerException != null)
                    {
                        mensaje = MensajesError.UniqueKey(e.InnerException.Message);
                    }

                    Perfil.Insert(0, vacio);
                    ViewData["CodigoPerfil"] = Perfil;

                    Personal.Insert(0, vacio);
                    ViewData["CodigoPersonal"] = Personal;

                    ViewBag.Message = mensaje;

                    return(View(usuario));
                }
            }
            else
            {
                return(Redirect("../Identity/Account/Login"));
            }
        }
        public IHttpActionResult Create(Pedido pedido)
        {
            Models.PedidoRS _resultpedido   = new Models.PedidoRS();
            UsuarioLogin    DtsUsuarioLogin = null;
            var             errorPedido     = string.Empty;
            bool            _return         = false;

            try
            {
                /*Validaciones*/
                validacionPedido(ref pedido, ref _resultpedido, ref _return, ref DtsUsuarioLogin);
                if (_return == true)
                {
                    return(Ok(_resultpedido));
                }

                RepositoryByBusiness(pedido.UnidadNegocio.ID);

                /*Generamos el Pedido*/
                var operation = _pedidoRepository.Create(pedido);
                if (operation[Operation.Result].ToString() == ResultType.Success.ToString() && Convert.ToInt32(operation[OutParameter.IdPedido].ToString()) > 0)
                {
                    _resultpedido.IdPedido = Convert.ToInt32(operation[OutParameter.IdPedido].ToString());
                    //Actualizamos el campo solicitado por CRM SalesForce asociado al numero de pedido
                    _pedidoRepository.Update_Pedido_SolicitudPago_SF(_resultpedido.IdPedido, pedido.IdCotVta, pedido.IdOportunidad_SF, pedido.IdSolicitudpago_SF);
                }
                else
                {
                    //_resultpedido.CodigoError = "GP"; _resultpedido.MensajeError = "Error al intentar generar el pedido";
                    _resultpedido.CodigoError = "ER"; _resultpedido.MensajeError = "GP - Error al intentar generar el pedido";
                    return(Ok(_resultpedido));
                }

                /*Generamos el codigo en SafetyPay*/
                ws_compra.ws_compra            Ws_Compra     = new ws_compra.ws_compra();
                CustomOnlinePaymentRequestType request       = new CustomOnlinePaymentRequestType();
                ws_compra.AmountType           objAmountType = new ws_compra.AmountType();

                objAmountType.CurrencyID = "150"; /*Valor del dolar para SafetyPay*/
                objAmountType.Value      = Convert.ToDecimal(pedido.Monto);

                request.BankID = String.Empty;
                request.TransactionIdentifier   = String.Empty;
                request.MerchantAccount         = String.Empty;
                request.MerchantSalesID         = _resultpedido.IdPedido.ToString();
                request.TrackingCode            = "0";
                request.ExpirationTime          = (Convert.ToInt16(pedido.TiempoExpiracionCIP) * 60);
                request.ExpirationTimeSpecified = true;
                request.Language            = (pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "PE" : "ES");
                request.CountryID           = "PER";
                request.Amount              = objAmountType;
                request.TransactionOkURL    = (pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "http://www.destinosmundialesperu.com/" : "http://www.nmviajes.com/");
                request.TransactionErrorURL = (pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "http://www.destinosmundialesperu.com/" : "http://www.nmviajes.com/seguros#");

                request.SendEmailToShopper = true;
                if (request.SendEmailToShopper)
                {
                    request.CustomerInformation_Value = DtsUsuarioLogin.EmailUsuario;
                }

                request.IdDepartamento = DtsUsuarioLogin.IdDep;
                request.IdOficina      = DtsUsuarioLogin.IdOfi;

                request.ApplicationID = Convert.ToInt16(pedido.IdWeb);

                ws_compra.RptaPagoSafetyPay response = new ws_compra.RptaPagoSafetyPay();
                if (pedido.IdWeb == Webs_Cid.DM_WEB_ID || (pedido.IdCanalVta != null && pedido.IdCanalVta == Constantes_Pedido.ID_CANAL_VENTA_CONTACT_CENTER))
                {
                    request.WebId = Convert.ToInt32(pedido.IdWeb);
                    response      = Ws_Compra.GenerarPago_SafetyPay_OnlineDM(request);
                }
                else
                {
                    response = Ws_Compra.GenerarPago_SafetyPay_Online(request);
                }

                if (response.OperationId != null && response.TransaccionIdentifier != null)
                {
                    _resultpedido.CodigoOperacion   = response.OperationId;
                    _resultpedido.CodigoTransaction = response.TransaccionIdentifier;

                    _resultpedido.CodigoError  = "OK";
                    _resultpedido.MensajeError = "Se generó el código de pedido.";
                }
                else
                {
                    //_resultpedido.CodigoError = "GP"; _resultpedido.MensajeError = "Error al intentar generar el CIP";
                    _resultpedido.CodigoError = "ER"; _resultpedido.MensajeError = "GP - Error al intentar generar el CIP";
                    return(Ok(_resultpedido));
                }

                Models.RptaPagoSafetyPay RptaPagoSafetyPayBD = _pedidoRepository.Get_Rpta_SagetyPay(_resultpedido.IdPedido);

                List <Models.PaymentLocationType> lstPaymentType = new List <Models.PaymentLocationType>();

                if (response.lst_PaymentLocationType != null)
                {
                    List <Models.PaymentStepType>        lstPaymentStep         = new List <Models.PaymentStepType>();
                    List <Models.PaymentInstructionType> lstPaymentInstructions = new List <Models.PaymentInstructionType>();
                    foreach (ws_compra.PaymentLocationType objPaymentLocationTypeRSTmp in response.lst_PaymentLocationType)
                    {
                        Models.PaymentLocationType objPaymentLocationTypeRS = new Models.PaymentLocationType();
                        objPaymentLocationTypeRS.Id = objPaymentLocationTypeRSTmp.ID;

                        foreach (ws_compra.PaymentStepType objPaymentStepRSTmp in objPaymentLocationTypeRSTmp.lst_PaymentStepType)
                        {
                            Models.PaymentStepType objPaymentStepRS = new Models.PaymentStepType();
                            objPaymentStepRS.Step          = objPaymentStepRSTmp.Step;
                            objPaymentStepRS.StepSpecified = objPaymentStepRSTmp.StepSpecified;
                            objPaymentStepRS.Value         = objPaymentStepRSTmp.Value;
                            lstPaymentStep.Add(objPaymentStepRS);
                        }

                        if (objPaymentLocationTypeRSTmp.PaymentInstructions != null)
                        {
                            foreach (ws_compra.PaymentInstructionType objPaymentInstructionTypeRSTmp in objPaymentLocationTypeRSTmp.PaymentInstructions)
                            {
                                Models.PaymentInstructionType objPaymentInstructionsRS = new Models.PaymentInstructionType();
                                objPaymentInstructionsRS.Name  = objPaymentInstructionTypeRSTmp.Name;
                                objPaymentInstructionsRS.Value = objPaymentInstructionTypeRSTmp.Value;
                                lstPaymentInstructions.Add(objPaymentInstructionsRS);
                            }
                        }

                        objPaymentLocationTypeRS.lstPaymentStepType = lstPaymentStep;
                        objPaymentLocationTypeRS.Name = objPaymentLocationTypeRSTmp.Name;
                        objPaymentLocationTypeRS.PaymentInstructions = lstPaymentInstructions.ToArray();
                        objPaymentLocationTypeRS.PaymentSteps        = lstPaymentStep.ToArray();
                        lstPaymentType.Add(objPaymentLocationTypeRS);
                    }
                }

                /*Realizamos el envio del correo*/
                try
                {
                    IEnviarCorreo objEnviarCorreo = new EnviarCorreo(pedido.UnidadNegocio.ID);
                    DateTime      datFechaActual  = DateTime.Now;
                    DateTime      datFechaExpiraPago;
                    string        strExpirationDateTime = response.ExpirationDateTime;
                    string[]      arrExp = strExpirationDateTime.Split('(');
                    datFechaExpiraPago = datFechaActual.AddHours(Convert.ToInt16(pedido.TiempoExpiracionCIP));

                    _resultpedido.CorreoEnviado = objEnviarCorreo.Enviar_SolicitudPagoServicioSafetyPay(pedido.IdUsuario.ToString(), Convert.ToInt32(pedido.IdWeb), Convert.ToInt32(pedido.IdLang), pedido.IdCotVta, pedido.Email, null, pedido.NombreClienteCot, pedido.ApellidoClienteCot, null, DtsUsuarioLogin.NomCompletoUsuario, DtsUsuarioLogin.EmailUsuario, (pedido.CodePasarelaPago == Constantes_SafetyPay.CodeSafetyPayOnline ? Constantes_Pedido.ID_FORMA_PAGO_SAFETYPAY_ONLINE : Convert.ToInt16(0)), RptaPagoSafetyPayBD.TransaccionIdentifier, _resultpedido.IdPedido, Convert.ToDouble(pedido.Monto), RptaPagoSafetyPayBD.ExpirationDateTime, RptaPagoSafetyPayBD.lstAmountType, lstPaymentType);
                    objEnviarCorreo             = null;
                }
                catch (Exception ex)
                {
                    errorPedido = "Error al enviar el correo |" + ex.Message;
                    /*return InternalServerError(ex);*/
                }

                /*Inserta Forma de Pedido*/
                _pedidoRepository.InsertFormaPagoPedido(pedido, _resultpedido);
                _pedidoRepository.Update_FechaExpira_Pedido(pedido, _resultpedido);

                /*Insertamos el POST en el SRV*/
                string strTextoPost = "<span class='texto_cambio_estado'>Cambio de estado a <strong>Pendiente de Pago</strong></span><br><br>" + "La pasarela de pago ha actualizado el estado de su cotización.";
                ICotizacionSRV_Repository _CotizacionSRV = new CotizacionSRV_AW_Repository(pedido.UnidadNegocio.ID);
                Post_SRV _PostSRV_RQ = new Post_SRV()
                {
                    IdCot               = pedido.IdCotVta,
                    TipoPost            = Convert.ToInt16(Constantes_SRV.ID_TIPO_POST_SRV_USUARIO),
                    TextoPost           = strTextoPost,
                    IPUsuCrea           = (string.IsNullOrEmpty(pedido.IPUsuario) ? "127.0.0.0" : pedido.IPUsuario),
                    LoginUsuCrea        = DtsUsuarioLogin.LoginUsuario,
                    IdUsuWeb            = DtsUsuarioLogin.IdUsuario,
                    IdDep               = DtsUsuarioLogin.IdDep,
                    IdOfi               = DtsUsuarioLogin.IdOfi,
                    Archivos            = null,
                    LstFilesPTA         = null,
                    IdEstado            = Constantes_SRV.ID_ESTADO_COT_PENDIENTE_PAGO,
                    CambioEstado        = true,
                    LstFechasCotVta     = null,
                    EsAutomatico        = true,
                    ArchivoMail         = null,
                    EsCounterAdmin      = false,
                    IdUsuWebCounterCrea = null,
                    IdOfiCounterCrea    = null,
                    IdDepCounterCrea    = null,
                    EsUrgenteEmision    = null,
                    FecPlazoEmision     = null,
                    IdMotivoNoCompro    = null,
                    OtroMotivoNoCompro  = null,
                    MontoEstimadoFile   = null
                };
                _CotizacionSRV.ProcesosPostCotizacion(_PostSRV_RQ);

                return(Ok(_resultpedido));
            }
            catch (Exception ex)
            {
                errorPedido = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Request = pedido,
                    Response = _resultpedido,
                    Exception = errorPedido
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
        public async Task <ActionResult> Login(UsuarioLogin model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (HttpClient httpClient = new HttpClient())
            {
                HttpContent content = new FormUrlEncodedContent(new[] {
                    new KeyValuePair <string, string>("grant_type", "password"),
                    new KeyValuePair <string, string>("UserName", model.UserName),
                    new KeyValuePair <string, string>("Password", model.Password)
                });

                //HttpResponseMessage result = httpClient.PostAsync("http://192.168.43.112:5656/token", content).Result;
                //HttpResponseMessage result = httpClient.PostAsync("http://localhost:5757/token", content).Result;
                HttpResponseMessage result = httpClient.PostAsync("http://localhost:5757/token", content).Result;
                string resultContent       = result.Content.ReadAsStringAsync().Result;

                switch (result.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    var token = JsonConvert.DeserializeObject <AuthorizationToken>(resultContent);

                    //AuthenticationProperties options = new AuthenticationProperties();

                    //options.AllowRefresh = true;
                    //options.IsPersistent = true;
                    //options.ExpiresUtc = DateTime.UtcNow.AddSeconds(int.Parse(token.expires_in));

                    var claims = new[] {
                        new Claim(ClaimTypes.Name, model.UserName),
                        new Claim("AccessToken", string.Format("Bearer {0}", token.access_token))
                    };
                    var identity = new ClaimsIdentity(claims, "ApplicationCookie");
                    Request.GetOwinContext().Authentication.SignIn(identity);
                    //Request.GetOwinContext().Authentication.SignIn(options, identity);


                    //informacion de perfil de usuario para sesion
                    var profileData = new UserProfileSessionData
                    {
                        FullName = model.UserName,
                        Token    = token.access_token
                    };
                    ConnectionHelper.httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token.access_token);
                    this.Session["UserInfo"] = profileData;
                    return(RedirectToAction("Index", "Home"));

                    break;

                case System.Net.HttpStatusCode.BadRequest:
                    return(RedirectToAction("Login", "Home"));

                default:
                    return(RedirectToAction("Login", "Home"));
                }
            }
            return(RedirectToAction("Login", "Home"));
            //return View();



            //var response = await client.SendAsync(request);
            //response.EnsureSuccessStatusCode();

            //var payload = JObject.Parse(await response.Content.ReadAsStringAsync());
            //var token = payload.Value<string>("access_token");



            //HttpResponseMessage response = ConnectionHelper.AuthorizeClient.PostAsJsonAsync("token", model).Result;
            //AuthorizationToken tokenItem = response.Content.ReadAsAsync<AuthorizationToken>().Result;



            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            //var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        return RedirectToLocal(returnUrl);
            //    case SignInStatus.LockedOut:
            //        return View("Lockout");
            //    case SignInStatus.RequiresVerification:
            //        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            //    case SignInStatus.Failure:
            //    default:
            //        ModelState.AddModelError("", "Invalid login attempt.");
            //        return View(model);
            //}
        }
Exemple #9
0
 public bool Cadastra(UsuarioLogin login)
 {
     _contexto.Add(login);
     return(_contexto.SaveChanges() > 0);
 }
Exemple #10
0
        // Método de Pago: PE
        private void GenerarPedido_Pago_Efectivo(DatosPedido pedido,
                                                 Models.PedidoRS resultPedido,
                                                 UsuarioLogin DtsUsuarioLogin)
        {
            DateTime datFechaActual     = DateTime.Now;
            var      ddlHoraExpiraCIP   = pedido.TiempoExpiracionCIP ?? 0;
            var      datFechaExpiraPago = datFechaActual.AddHours(ddlHoraExpiraCIP);

            resultPedido.FechaExpiracion = datFechaExpiraPago;

            var intIdFormaPago = Constantes_FileRetail.INT_ID_FORMA_PAGO_PAGOEFECTIVO_EC;

            try
            {
                var strEmailsCliPE = pedido.Email;
                var dblMontoPagar  = pedido.MontoPagar;
                var intIdPedido    = resultPedido.IdPedido;

                var intIdWeb    = pedido.IdWeb;
                var intIdLang   = pedido.IdLang;
                var intIdCotVta = pedido.IdCotVta;

                // Dim paymentRequest As New BEGenRequest
                var paymentRequest = new ws_pagoefectivo.BEGenRequest();

                paymentRequest.IdMoneda       = ConfigAccess.GetValueInAppSettings("PE_MONEDA");
                paymentRequest.Total          = dblMontoPagar.ToString("0.00");
                paymentRequest.MetodosPago    = ConfigAccess.GetValueInAppSettings("PE_MEDIO_PAGO");
                paymentRequest.Codtransaccion = intIdPedido.ToString("");
                paymentRequest.ConceptoPago   = string.Format("{0}: Orden {1}",
                                                              ConfigAccess.GetValueInAppSettings("PE_COMERCIO_CONCEPTO_PAGO"),
                                                              paymentRequest.Codtransaccion);
                paymentRequest.EmailComercio    = strEmailsCliPE;
                paymentRequest.FechaAExpirar    = datFechaExpiraPago.ToString("yyyy-MM-dd");
                paymentRequest.UsuarioNombre    = DtsUsuarioLogin.LoginUsuario;
                paymentRequest.UsuarioApellidos = DtsUsuarioLogin.ApePatUsuario;
                paymentRequest.UsuarioEmail     = DtsUsuarioLogin.EmailUsuario;
                paymentRequest.IdDepartamento   = DtsUsuarioLogin.IdDep;
                paymentRequest.IdOficina        = DtsUsuarioLogin.IdOfi;

                var paymentResponse = (new ws_pagoefectivo.ws_PagoEfectivo()).GenerarCIP(paymentRequest);

                // Reintento de GENERACIÓN DE CIP
                if (paymentResponse == null || paymentResponse.Estado != "1" || paymentResponse.Token == null)
                {
                    paymentResponse = (new ws_pagoefectivo.ws_PagoEfectivo()).GenerarCIP(paymentRequest);
                }

                var strCIP = resultPedido.CodigoCIP = paymentResponse.NumeroCip;

                //  Enviar correo
                var objEnviarCorreo = new EnviarCorreo();
                var strEmailsCli    = pedido.Email;

                if (Enviar_SolicitudPagoServicioPagoEfectivo(
                        intIdWeb ?? 0,
                        intIdLang ?? 0,
                        intIdCotVta,
                        strEmailsCli,
                        null,
                        pedido.NombreClienteCot,
                        pedido.ApellidoClienteCot,
                        null,
                        DtsUsuarioLogin.NomCompletoUsuario,
                        DtsUsuarioLogin.EmailUsuario,
                        short.Parse(pedido.FormaPago),
                        strCIP,
                        string.Empty,
                        intIdPedido,
                        dblMontoPagar,
                        datFechaExpiraPago))
                {
                    resultPedido.CorreoEnviado = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #11
0
        private void validacionPedido(ref DatosPedido _pedido, ref Models.PedidoRS _resultPedido, ref bool _return, ref UsuarioLogin UserLogin)
        {
            _return = false;
            string mensajeError = string.Empty;

            _pedido.IdLang = 1; _pedido.IdWeb = 0;
            string metodoDePago = string.Empty;

            if (_pedido.IdCotVta <= 0)
            {
                mensajeError += "Envie el codigo de SRV|";
            }
            if (string.IsNullOrEmpty(_pedido.NombreClienteCot) || string.IsNullOrEmpty(_pedido.ApellidoClienteCot))
            {
                mensajeError += "Envie los datos del SRV|";
            }
            if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_PAGOEFECTIVO)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_CASH)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_INTERN)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_ONLINE)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_AMERICANEX)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_DINERS)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_MASTERCARD)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_MASTERCARD_CA)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }
            else if (_pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_VISA)
            {
                metodoDePago = _pedido.CodePasarelaPago;
            }

            if (string.IsNullOrEmpty(_pedido.CodePasarelaPago))
            {
                mensajeError += "Envie el tipo de pasarela|";
            }
            else if (!_pedido.CodePasarelaPago.Trim().Contains(metodoDePago))
            {
                mensajeError += "No se tiene registrado esta pasarela de pago|";
            }
            if (string.IsNullOrEmpty(_pedido.DetalleServicio))
            {
                mensajeError += "Envie el detalle del servicio|";
            }
            if (string.IsNullOrEmpty(_pedido.Email))
            {
                mensajeError += "Envie su Email|";
            }
            if (string.IsNullOrEmpty(_pedido.Monto))
            {
                mensajeError += "Envie el monto|";
            }
            if (!string.IsNullOrEmpty(_pedido.Monto) && _pedido.Monto.Contains(","))
            {
                mensajeError += "El uso de la coma (,) no es válido como separador decimal.";
            }
            if (_pedido.TiempoExpiracionCIP == null || _pedido.TiempoExpiracionCIP <= 0)
            {
                mensajeError += "Envie el tiempo de expiracion del CIP|";
            }
            if (_pedido.UnidadNegocio == null || string.IsNullOrEmpty(_pedido.UnidadNegocio.Descripcion)) /*Duda*/
            {
                mensajeError += "Envie los datos de su unidad de negocio|";
            }
            if (string.IsNullOrEmpty(_pedido.IdUsuario) == false && ValidateProcess.isInt32(_pedido.IdUsuario) == true)
            {
                /*Cargamos Datos del Usuario*/
                _datosUsuario = new DatosUsuario(_pedido.UnidadNegocio.ID);
                UserLogin     = _datosUsuario.Get_Dts_Usuario_Personal_NM(Convert.ToInt32(_pedido.IdUsuario));
                if (UserLogin == null)
                {
                    mensajeError += "ID del Usuario no registrado|";
                }
                else if (UserLogin.IdUsuario != Convert.ToInt32(_pedido.IdUsuario))
                {
                    _pedido.IdUsuario = UserLogin.IdUsuario.ToString();
                }
            }
            else
            {
                mensajeError += "Envie el ID del Usuario correctamente|";
            }
            if (string.IsNullOrEmpty(_pedido.IdOportunidad_SF))
            {
                mensajeError += "Envie el IdOportunidad_SF|";
            }
            if (string.IsNullOrEmpty(_pedido.IdSolicitudpago_SF))
            {
                mensajeError += "Envie el IdSolicitudpago_SF";
            }

            if (string.IsNullOrEmpty(mensajeError) == false)
            {
                _return = true;
                _resultPedido.CodigoError  = "ER";
                _resultPedido.MensajeError = "VP - " + mensajeError;
            }
            else
            {
                if (_pedido.IdCanalVta != null && _pedido.IdCanalVta == Constantes_Pedido.ID_CANAL_VENTA_CONTACT_CENTER)
                {
                    _pedido.IdWeb = Webs_Cid.ID_WEB_IA;
                }

                if (_pedido.IdWeb == 0)
                {
                    if ((UserLogin.IdOfi == Oficina.ID_OFI_NMV & UserLogin.IdDep == Departamento.ID_DEP_INTERNO) | (UserLogin.IdOfi == Oficina.ID_OFI_NMV & UserLogin.IdDep == Departamento.ID_DEP_RECEPTIVO) | (UserLogin.IdOfi == Oficina.ID_OFI_NMV & UserLogin.IdDep == Departamento.ID_DEP_OPERACIONES))
                    {
                        _pedido.IdWeb = Webs_Cid.ID_WEB_NMV_RECEPTIVO;
                    }
                    else if ((UserLogin.IdOfi == Oficina.ID_OFI_NMVCOM & UserLogin.IdDep == Departamento.ID_DEP_COUNTER) | (UserLogin.IdOfi == Oficina.ID_OFI_NMV & UserLogin.IdDep == Departamento.ID_DEP_SISTEMAS))
                    {
                        _pedido.IdWeb = Webs_Cid.NM_WEB_ID;
                    }
                    else
                    {
                        _pedido.IdWeb = Webs_Cid.ID_WEB_WEBFAREFINDER;
                    }
                }
            }
        }
Exemple #12
0
 // Método de Pago: SI
 private void GenerarPedido_Safetypay_Internacional(DatosPedido pedido,
                                                    Models.PedidoRS resultPedido,
                                                    UsuarioLogin DtsUsuarioLogin)
 {
 }
Exemple #13
0
 // Método de Pago: IN { Descartado en el proyecto }
 private void GenerarPedido_Independencia(DatosPedido pedido,
                                          Models.PedidoRS resultPedido,
                                          UsuarioLogin DtsUsuarioLogin)
 {
 }
Exemple #14
0
        // Método de Pago: SO
        private void GenerarPedido_Safetypay_Online(DatosPedido pedido,
                                                    Models.PedidoRS resultPedido,
                                                    UsuarioLogin DtsUsuarioLogin)
        {
            var strEmailsCli  = pedido.Email;
            var ws_SafetyPay  = new ws_compra.ws_compra();
            var request       = new CustomOnlinePaymentRequestType();
            var objAmountType = new ws_compra.AmountType();

            objAmountType.CurrencyID        = CurrencyEnumType.USD.ToString();
            objAmountType.Value             = decimal.TryParse(pedido.MontoPagar.ToString(), out decimal dblMontoPagar) ? dblMontoPagar : 0;
            request.BankID                  = string.Empty;
            request.TransactionIdentifier   = string.Empty;
            request.MerchantAccount         = string.Empty;
            request.MerchantSalesID         = resultPedido.IdPedido.ToString();
            request.TrackingCode            = "0";
            request.ExpirationTime          = pedido.TiempoExpiracionCIP ?? 0 * 60;
            request.ExpirationTimeSpecified = true;

            request.Language         = pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "PE": "ES";
            request.CountryID        = "PER";
            request.Amount           = objAmountType;
            request.TransactionOkURL = pedido.IdWeb == Webs_Cid.DM_WEB_ID ?
                                       "http://www.destinosmundialesperu.com/" :
                                       "http://www.nmviajes.com/";
            request.TransactionErrorURL = pedido.IdWeb == Webs_Cid.DM_WEB_ID ?
                                          "http://www.destinosmundialesperu.com/" :
                                          "http://www.nmviajes.com/seguros#";

            request.SendEmailToShopper = true;
            if (request.SendEmailToShopper)
            {
                request.CustomerInformation_Value = DtsUsuarioLogin.EmailUsuario;
            }
            request.IdDepartamento = DtsUsuarioLogin.IdDep;
            request.IdOficina      = DtsUsuarioLogin.IdOfi;
            request.ApplicationID  = (short)(pedido.IdWeb ?? 0);


            //var respond As ws_srv_gnm.ws_compra.RptaPagoSafetyPay
            ws_compra.RptaPagoSafetyPay respond;
            if (pedido.IdWeb == Webs_Cid.DM_WEB_ID)
            {
                request.WebId = pedido.IdWeb ?? 0;
                respond       = ws_SafetyPay.GenerarPago_SafetyPay_OnlineDM(request);
            }
            else
            {
                request.IdDepartamento = DtsUsuarioLogin.IdDep;
                request.IdOficina      = DtsUsuarioLogin.IdOfi;
                respond = ws_SafetyPay.GenerarPago_SafetyPay_Online(request);
            }


            var objRptaPagoSafetyPay = (new Pedido_AW_Repository()).Get_Rpta_SagetyPay(resultPedido.IdPedido);

            var lstPaymentType = new List <Models.PaymentLocationType>();

            if (respond.lst_PaymentLocationType != null)
            {
                var lstPaymentStep         = new List <Models.PaymentStepType>();
                var lstPaymentInstructions = new List <Models.PaymentInstructionType>();

                foreach (var objPaymentLocationTypeRSTmp in respond.lst_PaymentLocationType)
                {
                    var objPaymentLocationTypeRS = new Models.PaymentLocationType();
                    objPaymentLocationTypeRS.Id = objPaymentLocationTypeRSTmp.ID;

                    foreach (var objPaymentStepRSTmp in objPaymentLocationTypeRSTmp.lst_PaymentStepType)
                    {
                        var objPaymentStepRS = new Models.PaymentStepType();
                        objPaymentStepRS.Step          = objPaymentStepRSTmp.Step;
                        objPaymentStepRS.StepSpecified = objPaymentStepRSTmp.StepSpecified;
                        objPaymentStepRS.Value         = objPaymentStepRSTmp.Value;
                        lstPaymentStep.Add(objPaymentStepRS);
                    }

                    if (objPaymentLocationTypeRSTmp.PaymentInstructions != null)
                    {
                        foreach (var objPaymentInstructionTypeRSTmp in objPaymentLocationTypeRSTmp.PaymentInstructions)
                        {
                            var objPaymentInstructionsRS = new Models.PaymentInstructionType();
                            objPaymentInstructionsRS.Name  = objPaymentInstructionTypeRSTmp.Name;
                            objPaymentInstructionsRS.Value = objPaymentInstructionTypeRSTmp.Value;
                            lstPaymentInstructions.Add(objPaymentInstructionsRS);
                        }
                    }

                    objPaymentLocationTypeRS.lstPaymentStepType = lstPaymentStep;
                    objPaymentLocationTypeRS.Name = objPaymentLocationTypeRSTmp.Name;
                    objPaymentLocationTypeRS.PaymentInstructions = lstPaymentInstructions.ToArray();
                    objPaymentLocationTypeRS.PaymentSteps        = lstPaymentStep.ToArray();
                    lstPaymentType.Add(objPaymentLocationTypeRS);
                }
            }
            var intIdFormaPago = Constantes_Pedido.ID_FORMA_PAGO_SAFETYPAY_ONLINE;

            try
            {
                var objEnviarCorreo = new EnviarCorreo();
                var datFechaActual  = DateTime.Now;
                //var datFechaExpiraPago As Date
                var strExpirationDateTime = respond.ExpirationDateTime;
                var arrExp             = strExpirationDateTime.Split('(');
                var datFechaExpiraPago = resultPedido.FechaExpiracion = datFechaActual.AddHours(pedido.TiempoExpiracionCIP ?? 0);

                resultPedido.CorreoEnviado = objEnviarCorreo.Enviar_SolicitudPagoServicioSafetyPay(
                    pedido.IdUsuario.ToString(),
                    Convert.ToInt32(pedido.IdWeb),
                    Convert.ToInt32(pedido.IdLang),
                    pedido.IdCotVta,
                    pedido.Email,
                    null,
                    pedido.NombreClienteCot,
                    pedido.ApellidoClienteCot,
                    null,
                    DtsUsuarioLogin.NomCompletoUsuario,
                    DtsUsuarioLogin.EmailUsuario,
                    (pedido.CodePasarelaPago == Constantes_SafetyPay.CodeSafetyPayOnline ? Constantes_Pedido.ID_FORMA_PAGO_SAFETYPAY_ONLINE : Convert.ToInt16(0)),
                    objRptaPagoSafetyPay.TransaccionIdentifier,
                    resultPedido.IdPedido,
                    Convert.ToDouble(pedido.Monto),
                    objRptaPagoSafetyPay.ExpirationDateTime,
                    objRptaPagoSafetyPay.lstAmountType,
                    lstPaymentType);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #15
0
        public IHttpActionResult Create(DatosPedido_NM pedido_NM)
        {
            Pedido_AW_Repository _pedidoRepository = new Pedido_AW_Repository();

            Models.PedidoRS _resultpedido   = new Models.PedidoRS();
            UsuarioLogin    DtsUsuarioLogin = null;
            var             errorPedido     = string.Empty;
            int             intIdFormaPago  = 0;
            bool            _return         = false;

            try
            {
                var pedido = pedido_NM.ToRetail(); // Conversión a Retail
                /*Validaciones*/
                validacionPedido(ref pedido, ref _resultpedido, ref _return, ref DtsUsuarioLogin);
                if (_return == true)
                {
                    return(Ok(_resultpedido));
                }

                RepositoryByBusiness(pedido.UnidadNegocio.ID);

                /*Generamos el Pedido*/
                var operation = _pedidoRepository.CreateNM(pedido);
                if (operation[Operation.Result].ToString() == ResultType.Success.ToString() && Convert.ToInt32(operation[OutParameter.IdPedido].ToString()) > 0)
                {
                    _resultpedido.IdPedido = Convert.ToInt32(operation[OutParameter.IdPedido].ToString());

                    /*Solo debe quedar la validacion del pedido(Modificar al agregar un par de validaciones en el lugar correcto)*/
                    if (_resultpedido.IdPedido > 0 && string.IsNullOrEmpty(pedido_NM.IdOportunidad_SF) == false && string.IsNullOrEmpty(pedido_NM.IdSolicitudpago_SF) == false && string.IsNullOrEmpty(pedido_NM.Accion_SF) == false && pedido_NM.Accion_SF.ToUpper().Trim() == "INSERT")
                    {
                        _genCodigoPagoNMRepository.RegistraSolicitudPagoSF(pedido_NM.IdSolicitudpago_SF, pedido_NM.IdOportunidad_SF, _resultpedido.IdPedido);
                    }
                    else if (_resultpedido.IdPedido > 0 && string.IsNullOrEmpty(pedido_NM.IdOportunidad_SF) == false && string.IsNullOrEmpty(pedido_NM.IdSolicitudpago_SF) == false && string.IsNullOrEmpty(pedido_NM.Accion_SF) == false && pedido_NM.Accion_SF.ToUpper().Trim() == "UPDATE")
                    {
                        _genCodigoPagoNMRepository.UpdateSolicitudPagoSF(pedido_NM.IdSolicitudpago_SF, pedido_NM.IdOportunidad_SF, _resultpedido.IdPedido, Estados_Oportunidad.ID_ST_REGI_NO_ENVIO);
                    }

                    ///Actualizamos el campo solicitado por CRM SalesForce asociado al numero de pedido
                    _pedidoRepository.Update_Pedido_SolicitudPago_SF(_resultpedido.IdPedido, pedido.IdCotVta, pedido.IdOportunidad_SF, pedido.IdSolicitudpago_SF);
                }
                else
                {
                    _resultpedido.CodigoError = "ER"; _resultpedido.MensajeError = "GP - Error al intentar generar el pedido";
                    return(Ok(_resultpedido));
                }

                /// SEGUN SEA EL METODO DE PAGO REALIZA DIFERENTE PROCESO
                if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_VISA)
                {
                    intIdFormaPago          = Constantes_FileRetail.INT_ID_FORMA_PAGO_SOLO_TARJETA;
                    pedido.CodePasarelaPago = Constantes_MetodoDePago.CODE_FPAGO_TARJETA_VISA;
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_MASTERCARD)
                {
                    intIdFormaPago          = Constantes_FileRetail.INT_ID_FORMA_PAGO_SOLO_TARJETA;
                    pedido.CodePasarelaPago = Constantes_MetodoDePago.CODE_FPAGO_TARJETA_MASTERCARD_CA;
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_DINERS)
                {
                    intIdFormaPago          = Constantes_FileRetail.INT_ID_FORMA_PAGO_SOLO_TARJETA;
                    pedido.CodePasarelaPago = Constantes_MetodoDePago.CODE_FPAGO_TARJETA_DINERS;
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_AMERICANEX)
                {
                    intIdFormaPago          = Constantes_FileRetail.INT_ID_FORMA_PAGO_SOLO_TARJETA;
                    pedido.CodePasarelaPago = Constantes_MetodoDePago.CODE_FPAGO_TARJETA_AMERICANEX;
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_PAGOEFECTIVO)
                {
                    GenerarPedido_Pago_Efectivo(pedido, _resultpedido, DtsUsuarioLogin);
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_ONLINE)
                {
                    GenerarPedido_Safetypay_Online(pedido, _resultpedido, DtsUsuarioLogin);
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_CASH)
                {
                    intIdFormaPago = Constantes_Pedido.ID_FORMA_PAGO_SAFETYPAY_CASH;
                    GenerarPedido_Safetypay_Cash(pedido, _resultpedido, DtsUsuarioLogin);
                    pedido.CodePasarelaPago = "";// Para este caso se setea a vacio ya que el procedimiento siguiente solo acepta valores de tarjetas VI, MC, DN, AX
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_SAFETYPAY_INTERN)
                {
                    GenerarPedido_Safetypay_Internacional(pedido, _resultpedido, DtsUsuarioLogin);
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_TARJETA_UATP)
                {
                }
                else if (pedido.CodePasarelaPago == Constantes_MetodoDePago.CODE_FPAGO_INDEPENDENCIA)
                {
                    GenerarPedido_Independencia(pedido, _resultpedido, DtsUsuarioLogin);
                }

                #region LinkPago
                if ((new List <string>()
                {
                    Constantes_MetodoDePago.CODE_FPAGO_TARJETA_VISA,
                    Constantes_MetodoDePago.CODE_FPAGO_TARJETA_MASTERCARD,
                    Constantes_MetodoDePago.CODE_FPAGO_TARJETA_AMERICANEX,
                    Constantes_MetodoDePago.CODE_FPAGO_TARJETA_DINERS
                }).Contains(pedido.CodePasarelaPago))
                {
                    _resultpedido.LinkPago = ObtieneLinkPago(pedido.IdWeb ?? 0, _resultpedido.IdPedido, pedido.IdCotVta);
                }
                else
                {
                    _resultpedido.LinkPago = string.Empty;
                }
                #endregion

                /*Inserta Forma de Pedido  General para todos las metodos de pago*/
                _pedidoRepository.InsertFormaPagoPedidoNM(pedido, _resultpedido, intIdFormaPago);

                if (pedido.TiempoExpiracionCIP != null || pedido.TiempoExpiracionCIP > 0)
                {
                    _pedidoRepository.Update_FechaExpira_PedidoNM(pedido, _resultpedido);
                }


                ///Aca deberia estar una validacion de Fee implementar si es el caso

                /*Insertamos el POST en el SRV*/
                string strTextoPost = "<span class='texto_cambio_estado'>Cambio de estado a <strong>Pendiente de Pago</strong></span><br><br>" + "La pasarela de pago ha actualizado el estado de su cotización.";
                ICotizacionSRV_Repository _CotizacionSRV = new CotizacionSRV_AW_Repository(pedido.UnidadNegocio.ID);
                Post_SRV _PostSRV_RQ = new Post_SRV()
                {
                    IdCot               = pedido.IdCotVta,
                    TipoPost            = Convert.ToInt16(Constantes_SRV.ID_TIPO_POST_SRV_USUARIO),
                    TextoPost           = strTextoPost,
                    IPUsuCrea           = (string.IsNullOrEmpty(pedido.IPUsuario) ? "127.0.0.0" : pedido.IPUsuario),
                    LoginUsuCrea        = DtsUsuarioLogin.LoginUsuario,
                    IdUsuWeb            = DtsUsuarioLogin.IdUsuario,
                    IdDep               = DtsUsuarioLogin.IdDep,
                    IdOfi               = DtsUsuarioLogin.IdOfi,
                    Archivos            = null,
                    LstFilesPTA         = null,
                    IdEstado            = Constantes_SRV.ID_ESTADO_COT_PENDIENTE_PAGO,
                    CambioEstado        = true,
                    LstFechasCotVta     = null,
                    EsAutomatico        = true,
                    ArchivoMail         = null,
                    EsCounterAdmin      = false,
                    IdUsuWebCounterCrea = null,
                    IdOfiCounterCrea    = null,
                    IdDepCounterCrea    = null,
                    EsUrgenteEmision    = null,
                    FecPlazoEmision     = null,
                    IdMotivoNoCompro    = null,
                    OtroMotivoNoCompro  = null,
                    MontoEstimadoFile   = null
                };
                _CotizacionSRV.ProcesosPostCotizacion(_PostSRV_RQ);

                _resultpedido.CodigoError  = "OK";
                _resultpedido.MensajeError = "El proceso se realizó exitosamente";

                return(Ok(_resultpedido));
            }
            catch (Exception ex)
            {
                errorPedido = ex.Message;
                _resultpedido.CodigoError  = "ER";
                _resultpedido.MensajeError = ex.Message;
                return(Ok(_resultpedido));
            }
            finally
            {
                (new
                {
                    Request = pedido_NM,
                    Response = _resultpedido,
                    Exception = errorPedido
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
Exemple #16
0
        // Método de Pago: SC
        private void GenerarPedido_Safetypay_Cash(DatosPedido pedido,
                                                  Models.PedidoRS resultPedido,
                                                  UsuarioLogin DtsUsuarioLogin)
        {
            Pedido_AW_Repository _pedidoRepository = new Pedido_AW_Repository();
            var errorPedido = string.Empty;

            /*Generamos el codigo en SafetyPay*/
            ws_compra.ws_compra          Ws_Compra   = new ws_compra.ws_compra();
            CustomCashPaymentRequestType requestCash = new CustomCashPaymentRequestType();

            ws_compra.AmountType objAmountType = new ws_compra.AmountType();

            objAmountType.CurrencyID = "150"; /*Valor del dolar para SafetyPay*/
            objAmountType.Value      = Convert.ToDecimal(pedido.Monto);

            requestCash.BankID                  = String.Empty;
            requestCash.IncludeAllBanks         = true;
            requestCash.TransactionIdentifier   = String.Empty;
            requestCash.MerchantAccount         = String.Empty;
            requestCash.MerchantSalesID         = resultPedido.IdPedido.ToString();
            requestCash.TrackingCode            = "";
            requestCash.ExpirationTime          = (Convert.ToInt16(pedido.TiempoExpiracionCIP) * 60);
            requestCash.ExpirationTimeSpecified = true;
            requestCash.Language                = (pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "PE" : "ES");
            requestCash.CountryID               = "PER";
            requestCash.Amount                  = objAmountType;

            requestCash.SendEmailToShopper = true;
            if (requestCash.SendEmailToShopper)
            {
                requestCash.CustomerInformation_Value = DtsUsuarioLogin.EmailUsuario;
            }

            requestCash.CustomMerchantName = (pedido.IdWeb == Webs_Cid.DM_WEB_ID ? "Destinos Mundiales Perú" : "NMVIAJES");
            requestCash.ApplicationID      = Convert.ToInt16(pedido.IdWeb);

            ws_compra.RptaPagoSafetyPay response = new ws_compra.RptaPagoSafetyPay();
            if (pedido.IdWeb == Webs_Cid.DM_WEB_ID)
            {
                requestCash.WebId = Convert.ToString(pedido.IdWeb);
                response          = Ws_Compra.GenerarPago_SafetyPay_Cash_DM(requestCash);
            }
            else
            {
                requestCash.IdDepartamento = DtsUsuarioLogin.IdDep;
                requestCash.IdOficina      = DtsUsuarioLogin.IdOfi;
                response = Ws_Compra.GenerarPago_SafetyPay_Cash(requestCash);
            }

            if (response.OperationId != null && response.TransaccionIdentifier != null)
            {
                resultPedido.CodigoOperacion   = response.OperationId;
                resultPedido.CodigoTransaction = response.TransaccionIdentifier;

                resultPedido.CodigoError  = "OK";
                resultPedido.MensajeError = "Se generó el código de pedido.";
            }
            else
            {
                resultPedido.CodigoError = "ER"; resultPedido.MensajeError = "GP - Error al intentar generar el CIP";
                //return Ok(resultPedido);
            }

            Models.RptaPagoSafetyPay RptaPagoSafetyPayBD = _pedidoRepository.Get_Rpta_SagetyPay(resultPedido.IdPedido);

            List <Models.PaymentLocationType> lstPaymentType = new List <Models.PaymentLocationType>();

            if (response.lst_PaymentLocationType != null)
            {
                List <Models.PaymentStepType>        lstPaymentStep         = new List <Models.PaymentStepType>();
                List <Models.PaymentInstructionType> lstPaymentInstructions = new List <Models.PaymentInstructionType>();
                foreach (ws_compra.PaymentLocationType objPaymentLocationTypeRSTmp in response.lst_PaymentLocationType)
                {
                    Models.PaymentLocationType objPaymentLocationTypeRS = new Models.PaymentLocationType();
                    objPaymentLocationTypeRS.Id = objPaymentLocationTypeRSTmp.ID;

                    foreach (ws_compra.PaymentStepType objPaymentStepRSTmp in objPaymentLocationTypeRSTmp.lst_PaymentStepType)
                    {
                        Models.PaymentStepType objPaymentStepRS = new Models.PaymentStepType();
                        objPaymentStepRS.Step          = objPaymentStepRSTmp.Step;
                        objPaymentStepRS.StepSpecified = objPaymentStepRSTmp.StepSpecified;
                        objPaymentStepRS.Value         = objPaymentStepRSTmp.Value;
                        lstPaymentStep.Add(objPaymentStepRS);
                    }

                    if (objPaymentLocationTypeRSTmp.PaymentInstructions != null)
                    {
                        foreach (ws_compra.PaymentInstructionType objPaymentInstructionTypeRSTmp in objPaymentLocationTypeRSTmp.PaymentInstructions)
                        {
                            Models.PaymentInstructionType objPaymentInstructionsRS = new Models.PaymentInstructionType();
                            objPaymentInstructionsRS.Name  = objPaymentInstructionTypeRSTmp.Name;
                            objPaymentInstructionsRS.Value = objPaymentInstructionTypeRSTmp.Value;
                            lstPaymentInstructions.Add(objPaymentInstructionsRS);
                        }
                    }

                    objPaymentLocationTypeRS.lstPaymentStepType = lstPaymentStep;
                    objPaymentLocationTypeRS.Name = objPaymentLocationTypeRSTmp.Name;
                    objPaymentLocationTypeRS.PaymentInstructions = lstPaymentInstructions.ToArray();
                    objPaymentLocationTypeRS.PaymentSteps        = lstPaymentStep.ToArray();
                    lstPaymentType.Add(objPaymentLocationTypeRS);
                }
            }

            /*Realizamos el envio del correo*/
            try
            {
                IEnviarCorreo objEnviarCorreo = new EnviarCorreo(pedido.UnidadNegocio.ID);
                DateTime      datFechaActual  = DateTime.Now;
                DateTime      datFechaExpiraPago;
                string        strExpirationDateTime = response.ExpirationDateTime;
                string[]      arrExp = strExpirationDateTime.Split('(');
                datFechaExpiraPago = datFechaActual.AddHours(Convert.ToInt16(pedido.TiempoExpiracionCIP));

                resultPedido.CorreoEnviado = objEnviarCorreo.Enviar_SolicitudPagoServicioSafetyPay(
                    pedido.IdUsuario.ToString(), Convert.ToInt32(pedido.IdWeb), Convert.ToInt32(pedido.IdLang),
                    pedido.IdCotVta, pedido.Email, null, pedido.NombreClienteCot, pedido.ApellidoClienteCot, null,
                    DtsUsuarioLogin.NomCompletoUsuario, DtsUsuarioLogin.EmailUsuario,
                    (pedido.CodePasarelaPago == Constantes_SafetyPay.CodeSafetyPayCash ? Constantes_Pedido.ID_FORMA_PAGO_SAFETYPAY_CASH : Convert.ToInt16(0)),
                    RptaPagoSafetyPayBD.TransaccionIdentifier, resultPedido.IdPedido, Convert.ToDouble(pedido.Monto),
                    RptaPagoSafetyPayBD.ExpirationDateTime, RptaPagoSafetyPayBD.lstAmountType, lstPaymentType);
                objEnviarCorreo = null;
            }
            catch (Exception ex)
            {
                errorPedido = "Error al enviar el correo |" + ex.Message;
                /*return InternalServerError(ex);*/
            }
        }
Exemple #17
0
        private void valCreateOportunidadNM(ref OportunidadVentaNM _oportunidadVentaNM, ref RptaOportunidadVentaNM _rptaOportunidadVentaNM, ref UsuarioLogin UserLogin, ref CotizacionVta CotizacionVta)
        {
            string mensajeError = string.Empty;
            Dictionary <string, string> TipoDocumentos = new Dictionary <string, string>()
            {
                { "DNI", "DNI" },
                { "CEX", "CARNÉ DE EXTRANJERÍA" },
                { "PSP", "PASAPORTE" }
            };

            if (_oportunidadVentaNM == null)
            {
                cargarError(ref _rptaOportunidadVentaNM, "Envie correctamente los parametros de entrada - RQ Nulo|");
                return;
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.Accion_SF))
            {
                mensajeError += "La accion es un campo obligatorio|";
            }
            else if (_oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "UPDATE" && _oportunidadVentaNM.IdCotSRV == null)
            {
                mensajeError += "El Id de Cotizacion es obligatorio al actualizar|";
            }
            else if (_oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "INSERT" && _oportunidadVentaNM.IdCotSRV != null)
            {
                mensajeError += "Al insertar el Id de Cotizacion debe ser nulo|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.idCuenta_SF))
            {
                mensajeError += "La cuenta SF es un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.IdOportunidad_SF))
            {
                mensajeError += "La oportunidad SF es un campo obligatorio|";
            }
            if (_oportunidadVentaNM.IdCanalVenta <= 0)
            {
                mensajeError += "Envie un canal de venta correcto|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.NombreCli))
            {
                mensajeError += "El nombre del cliente es un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.ApePatCli))
            {
                mensajeError += "El apellido paterno del cliente es un campo obligatorio|";
            }
            if (!(string.IsNullOrEmpty(_oportunidadVentaNM.IdTipoDoc) == false && string.IsNullOrEmpty(_oportunidadVentaNM.NumDoc) == false && TipoDocumentos.Values.Contains(_oportunidadVentaNM.IdTipoDoc.Trim().ToUpper())))
            {
                if (string.IsNullOrEmpty(_oportunidadVentaNM.EmailCli))
                {
                    mensajeError += "El correo del cliente es un campo obligatorio|";
                }
            }
            else if (string.IsNullOrEmpty(_oportunidadVentaNM.EmailCli))
            {
                if (!(string.IsNullOrEmpty(_oportunidadVentaNM.IdTipoDoc) == false && string.IsNullOrEmpty(_oportunidadVentaNM.NumDoc) == false && TipoDocumentos.Values.Contains(_oportunidadVentaNM.IdTipoDoc.Trim().ToUpper())))
                {
                    mensajeError += "El tipo y número de documento del cliente es un campo obligatorio|";
                }
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.IdTipoDoc) == false)
            {
                if (TipoDocumentos.Values.Contains(_oportunidadVentaNM.IdTipoDoc.Trim().ToUpper()))
                {
                    string NameTipoDoc = _oportunidadVentaNM.IdTipoDoc.Trim().ToUpper();
                    _oportunidadVentaNM.IdTipoDoc = TipoDocumentos.Where(p => p.Value == NameTipoDoc).FirstOrDefault().Key;
                }
                else
                {
                    mensajeError += "El tipo de documento no es un valor soportado|";
                }
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.CiudadIata))
            {
                mensajeError += "La Ciudad Iata es un campo obligatorio|";
            }
            //if (string.IsNullOrEmpty(_oportunidadVentaNM.IdDestino))
            //{
            //    mensajeError += "Los destinos principales es un campo obligatorio|";
            //}
            if (string.IsNullOrEmpty(_oportunidadVentaNM.EnviarPromociones))
            {
                mensajeError += "La opcion de envio de promociones es un campo obligatorio 0 - 1|";
            }
            if (_oportunidadVentaNM.IdUsuarioSrv_SF <= 0)
            {
                mensajeError += "Envie un ID de usuario SRV valido|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.Comentario))
            {
                mensajeError += "El comentario es un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.Estado))
            {
                mensajeError += "El estado es un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.ServiciosAdicionales))
            {
                mensajeError += "Los Servicios Adicionales son un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_oportunidadVentaNM.tipoCotizacion))
            {
                mensajeError += "El tipo de cotizacion es un campo obligatorio|";
            }
            if (_oportunidadVentaNM.ModoIngreso <= 0)
            {
                mensajeError += "Envie un Modo de Ingreso valido|";
            }
            if (_oportunidadVentaNM.CantidadAdultos <= 0)
            {
                mensajeError += "La cantidad de adultos es un campo obligatorio|";
            }
            if (_oportunidadVentaNM.CantidadNinos == null)
            {
                _oportunidadVentaNM.CantidadNinos = 0;
            }

            /*Validacion en caso envien informacion*/
            if (_oportunidadVentaNM.FechaIngreso != null && _oportunidadVentaNM.FechaIngreso < DateTime.Now)
            {
                mensajeError += "La fecha de salida debe ser mayor a la fecha actual|";
            }
            else if (_oportunidadVentaNM.FechaIngreso != null & _oportunidadVentaNM.Fecharegreso != null)
            {
                if (_oportunidadVentaNM.FechaIngreso > _oportunidadVentaNM.Fecharegreso)
                {
                    mensajeError += "La fecha de regreso debe ser mayor a la fecha de salida|";
                }
            }


            if (string.IsNullOrEmpty(mensajeError))
            {
                /*Cargamos Datos del Usuario*/
                RepositoryByBusiness(null);
                UserLogin = _datosUsuario.Get_Dts_Usuario_Personal_NM(_oportunidadVentaNM.IdUsuarioSrv_SF);
                if (UserLogin == null)
                {
                    mensajeError += "ID del Usuario no registrado|";
                }
                else if (UserLogin.IdUsuario != _oportunidadVentaNM.IdUsuarioSrv_SF)
                {
                    _oportunidadVentaNM.IdUsuarioSrv_SF = UserLogin.IdUsuario;
                }

                _oportunidadVentaNM.idEstado = (short)_oportunidadVentaNMRepository._Select_EstadoIdXName(_oportunidadVentaNM.Estado);
                if (_oportunidadVentaNM.idEstado <= 0)
                {
                    mensajeError += "Envie un estado valido|";
                }

                /*Validacion Oportunidad*/
                int intCotizacion_SF = _oportunidadVentaNMRepository._Select_CotId_X_OportunidadSF(_oportunidadVentaNM.IdOportunidad_SF);
                if (intCotizacion_SF <= 0 && _oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "UPDATE")
                {
                    mensajeError += "No es posible actualizar si la oportunidad no esta registrada|";
                }
                else if (intCotizacion_SF > 0 && _oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "INSERT")
                {
                    mensajeError += "No es posible insertar si la oportunidad ya esta registrada|";
                }
                else if (intCotizacion_SF > 0 && _oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "UPDATE" && intCotizacion_SF != _oportunidadVentaNM.IdCotSRV)
                {
                    mensajeError += "La cotizacion enviada es diferente a la registrada|";
                }
                else
                {
                    /*Adicionalmente si envian el id de un counter administrativo y este no existe modificar por el counter por defecto*/
                    if (_oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "UPDATE" && _oportunidadVentaNM.counterAsignado != null && _oportunidadVentaNM.counterAsignado > 0)
                    {
                        UsuarioLogin UserLoginCA = _datosUsuario.Get_Dts_Usuario_Personal_NM((Int32)_oportunidadVentaNM.counterAsignado);
                        if (UserLoginCA != null && UserLoginCA.IdUsuario != _oportunidadVentaNM.counterAsignado)
                        {
                            _oportunidadVentaNM.counterAsignado = UserLoginCA.IdUsuario;
                        }
                    }
                }

                if (_oportunidadVentaNM.IdCotSRV != null && string.IsNullOrEmpty(mensajeError))
                {
                    CotizacionVta = _cotizacionSRV_Repository.Get_Datos_CotizacionVta((int)_oportunidadVentaNM.IdCotSRV);

                    if (CotizacionVta == null || CotizacionVta.IdCot == 0)
                    {
                        cargarError(ref _rptaOportunidadVentaNM, "No existe informacion de la cotizacion enviada|");
                        return;
                    }

                    /*Validaciones Valores Opcionales*/
                    if (_oportunidadVentaNM.idEstado != CotizacionVta.IdEstado)
                    {
                        if (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA || _oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.Facturado)
                        {
                            if (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.Facturado)
                            {
                                if (UserLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM | UserLogin.IdDep == Constantes_SRV.INT_ID_DEP_SISTEMAS)
                                {
                                    if (!(_oportunidadVentaNM.ModalidadCompra != null && (_oportunidadVentaNM.ModalidadCompra == 0 || _oportunidadVentaNM.ModalidadCompra == 1)))
                                    {
                                        cargarError(ref _rptaOportunidadVentaNM, "Debe enviar la modalidad de compra|");
                                        return;
                                    }
                                }
                            }

                            if (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA &&
                                (UserLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM | UserLogin.IdOfi == Constantes_SRV.INT_ID_OFI_TRAVEL_STORE |
                                 UserLogin.IdDep == Constantes_SRV.INT_ID_DEP_SISTEMAS))
                            {
                                if (_oportunidadVentaNM.fechaPlazoEmision == null)
                                {
                                    cargarError(ref _rptaOportunidadVentaNM, "Debe enviar la fecha y hora de emisión|");
                                    return;
                                }
                            }

                            List <int> lstPedidosSinBanco = _oportunidadVentaNMRepository._Select_Pedidos_SinBancoBy_IdCot((int)_oportunidadVentaNM.IdCotSRV);
                            if (lstPedidosSinBanco.Count > 0)
                            {
                                if (lstPedidosSinBanco.Count == 1)
                                {
                                    cargarError(ref _rptaOportunidadVentaNM, ("Para cambiar a este estado debe registrar la entidad bancaria en el pedido nro. " + lstPedidosSinBanco[0]));
                                    return;
                                }
                                else
                                {
                                    string strNrosPedido = "";
                                    foreach (int intIdPedido in lstPedidosSinBanco)
                                    {
                                        strNrosPedido += intIdPedido + ", ";
                                    }
                                    strNrosPedido += ".";
                                    strNrosPedido  = strNrosPedido.Replace(", .", ".");
                                    cargarError(ref _rptaOportunidadVentaNM, ("Para cambiar a este estado debe registrar la entidad bancaria en los sgtes. pedidos: " + strNrosPedido));
                                    return;
                                }
                            }

                            if (CotizacionVta.IdReservaVuelos == null && (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA || _oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA_Paq))
                            {
                                if (string.IsNullOrEmpty(_oportunidadVentaNM.CodReserva))
                                {
                                    cargarError(ref _rptaOportunidadVentaNM, "Debe ingresar el código de reserva de vuelo.");
                                    return;
                                }
                                else if (_oportunidadVentaNM.MontoCompra == null)
                                {
                                    cargarError(ref _rptaOportunidadVentaNM, "Debe ingresar el monto de la venta.");
                                    return;
                                }
                            }
                        }

                        if (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.NoCompro)
                        {
                            if (string.IsNullOrEmpty(_oportunidadVentaNM.IdMotivoNoCompro))
                            {
                                cargarError(ref _rptaOportunidadVentaNM, "Debe ingresar el motivo del cierre perdido.");
                                return;
                            }
                            else if (ValidateProcess.isInt32(_oportunidadVentaNM.IdMotivoNoCompro) == false)
                            {
                                cargarError(ref _rptaOportunidadVentaNM, "Envie un motivo correcto de cierre perdido.");
                                return;
                            }
                        }
                    }

                    if (_oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.Cotizado)
                    {
                        if (_oportunidadVentaNMRepository._EsCounterAdministratiivo(UserLogin.IdOfi))
                        {
                            if (_oportunidadVentaNM.MontoEstimado == null)
                            {
                                cargarError(ref _rptaOportunidadVentaNM, "Debe ingresar el monto estimado del file.");
                                return;
                            }
                        }
                    }

                    /*Validacion : Asignarse - Emitido*/
                    bool Asignar = false, Emitir = false;;
                    _oportunidadVentaNM.Asignarse = ((_oportunidadVentaNM.counterAsignado != null && _oportunidadVentaNM.counterAsignado > 0) ? true : false);

                    /*El codigo si permite la reasignacion pero el store procedure no.*/
                    if (_oportunidadVentaNM.Asignarse == true || _oportunidadVentaNM.Emitido == true)
                    {
                        if (UserLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM || (UserLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMV && UserLogin.IdDep == Constantes_SRV.INT_ID_DEP_EMERGENCIAS) || UserLogin.EsSupervisorSRV)
                        {
                            if (_oportunidadVentaNM.Asignarse == true)
                            {
                                if (CotizacionVta.IdUsuWebCA.HasValue)
                                {
                                    if (_oportunidadVentaNM.counterAsignado == CotizacionVta.IdUsuWebCA.Value)
                                    {
                                        Asignar = false;
                                    }
                                    else
                                    {
                                        Asignar = true;
                                    }
                                }
                                else
                                {
                                    Asignar = true;
                                }
                            }

                            if (_oportunidadVentaNM.Emitido == true && (!CotizacionVta.EsEmitido))
                            {
                                Emitir = true;
                            }
                        }
                        else if (UserLogin.EsCounterAdminSRV)
                        {
                            if (_oportunidadVentaNMRepository._EsCounterAdministratiivo(CotizacionVta.IdOfi) && _oportunidadVentaNMRepository._EsCounterAdministratiivo(UserLogin.IdOfi))
                            {
                                if (_oportunidadVentaNM.Asignarse == true)
                                {
                                    if (CotizacionVta.IdUsuWebCA.HasValue)
                                    {
                                        if (_oportunidadVentaNM.counterAsignado == CotizacionVta.IdUsuWebCA.Value)
                                        {
                                            Asignar = false;
                                        }
                                        else
                                        {
                                            Asignar = true;
                                        }
                                    }
                                    else
                                    {
                                        Asignar = true;
                                    }
                                }
                            }
                        }

                        /*Validacion Asignarse (Actualizamos la Asignacion)*/
                        _oportunidadVentaNM.Asignarse = Asignar;

                        /*Validacion Emitido (Actualizamos el p_Emitido)*/
                        _oportunidadVentaNM.Emitido = Emitir;
                    }
                }
            }

            if (string.IsNullOrEmpty(mensajeError) == false)
            {
                _rptaOportunidadVentaNM.codigo  = "ER";
                _rptaOportunidadVentaNM.mensaje = "VA: " + mensajeError;
            }
        }
        public async Task Invoke(HttpContext context)
        {
            try
            {
                var apiKey        = ((FrameRequestHeaders)context.Request.Headers).HeaderAuthorization;
                var apiHttpClient = new ApiHttpClient(apiKey, "http://localhost:61000/", _httpClient);


                var    userIsAuthenticated = context.User.Identity.IsAuthenticated;
                var    req = context.Request;
                string bodyContent;
                var    queryString = req.QueryString.ToString();

                // Allows using several time the stream in ASP.Net Core
                req.EnableRewind();

                using (StreamReader reader
                           = new StreamReader(req.Body, Encoding.UTF8, true, 1024, true))
                {
                    bodyContent = reader.ReadToEnd();
                }

                // Rewind, so the core is not lost when it looks the body for the request
                req.Body.Position = 0;

                UsuarioLogin usuarioLogin = null;

                if (userIsAuthenticated)
                {
                    usuarioLogin = new UsuarioLogin
                    {
                        Nome     = context.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value,
                        Email    = context.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value,
                        AuthTime = Convert.ToDateTime(context.User.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.AuthTime)?.Value, CultureInfo.InvariantCulture)
                    };
                }

                var caminhoRequest = context.Request.Path;


                var registroAuditoria = new RegistroAuditoria
                {
                    IsAuthenticated = userIsAuthenticated,
                    Usuario         = usuarioLogin,
                    BodyContent     = bodyContent,
                    CaminhoRequest  = caminhoRequest,
                    QueryString     = queryString
                };

                var resposta = await apiHttpClient.HttpClient.PostAsync("v1/private/auditoria", JsonConvert.SerializeObject(registroAuditoria));

                await _next.Invoke(context);
            }
            catch (Exception)
            {
                await _next.Invoke(context);
            }


            // Clean up.
        }
Exemple #19
0
        public IHttpActionResult Create(OportunidadVentaNM oportunidadVentaNM)
        {
            string exMessage    = string.Empty;
            object objRespuesta = null;
            int?   idCotizacion = 0;

            RptaOportunidadVentaNM rptaOportunidadVentaNM = new RptaOportunidadVentaNM();

            _repository = new OportunidadRetailRepository();

            try
            {
                int?intIdCliCot = null;
                List <ClienteCot> ListClientes               = null;
                ClienteCot        Cliente_Cot                = null;
                CotizacionVta     DtsCotizacionVta           = null;
                UsuarioLogin      usuarioLogin               = null;
                DateTime          _fechaIgnoredTriggerCuenta = Convert.ToDateTime(ConfigurationManager.AppSettings["DATO_IGNORED_TRIGGER_CUENTA"]);

                valCreateOportunidadNM(ref oportunidadVentaNM, ref rptaOportunidadVentaNM, ref usuarioLogin, ref DtsCotizacionVta);
                if (string.IsNullOrEmpty(rptaOportunidadVentaNM.codigo) == false)
                {
                    return(Ok(new { respuesta = rptaOportunidadVentaNM }));
                }

                //int intIdUsuWeb = oportunidadVentaNM.UsuarioCrea;
                int      intIdDep = usuarioLogin.IdDep;
                int      intIdOfi = usuarioLogin.IdOfi;
                string   strIPUsuario = "127.0.0.0";
                string   strTextoPost = string.Empty;
                bool     bolCambioEstado = false, bolEsUrgenteEmision = false;
                DateTime?datFechaPlazoEmision = null;

                #region ProcesoClientes
                Cliente_Cot = (ClienteCot)_oportunidadVentaNMRepository.SelectByCodeSF(oportunidadVentaNM.idCuenta_SF)["pCurResult_out"];

                if (!(Cliente_Cot != null))
                {
                    if (string.IsNullOrEmpty(oportunidadVentaNM.IdTipoDoc) == false && string.IsNullOrEmpty(oportunidadVentaNM.NumDoc) == false)
                    {
                        ListClientes = (List <ClienteCot>)_repository.SelectByDocumento(oportunidadVentaNM.IdTipoDoc, oportunidadVentaNM.NumDoc)["pCurResult_out"];
                    }
                    else
                    {
                        ListClientes = (List <ClienteCot>)_repository.SelectByEmail(oportunidadVentaNM.EmailCli)["pCurResult_out"];
                    }

                    if (ListClientes != null && ListClientes.Count > 0)
                    {
                        Cliente_Cot = ListClientes[0];
                    }
                }

                if (Cliente_Cot != null)
                {
                    intIdCliCot = Cliente_Cot.IdCliCot;
                    /*Update*/
                    _oportunidadVentaNMRepository._Update((int)intIdCliCot, oportunidadVentaNM.NombreCli, oportunidadVentaNM.ApePatCli,
                                                          oportunidadVentaNM.ApeMatCli, oportunidadVentaNM.EmailCli, Cliente_Cot.EmailAlterCliCot, null,
                                                          oportunidadVentaNM.EnviarPromociones.Equals("1"), Cliente_Cot.Direccion,
                                                          oportunidadVentaNM.NumDoc, oportunidadVentaNM.IdTipoDoc, oportunidadVentaNM.IdUsuarioSrv_SF,
                                                          Webs_Cid.ID_WEB_WEBFAREFINDER, null, _fechaIgnoredTriggerCuenta);

                    bool valor = _oportunidadVentaNMRepository._Update_Estado_Promociones((int)intIdCliCot, oportunidadVentaNM.EnviarPromociones);

                    if (Cliente_Cot.RecibePromo == false & oportunidadVentaNM.EnviarPromociones.Equals("1"))
                    {
                        // Antes no estaba suscrito
                        NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_NMV, true);

                        if ((intIdOfi == Constantes_SRV.INT_ID_OFI_CORPORATIVO_VACACIONAL & intIdDep == Constantes_SRV.INT_ID_DEP_COUNTER) | (intIdOfi == Constantes_SRV.INT_ID_OFI_NMV & intIdDep == Constantes_SRV.INT_ID_DEP_COUNTER))
                        {
                            NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_CORPORATIVO_VACACIONAL, true);
                        }
                        else if (intIdOfi == Constantes_SRV.INT_ID_OFI_CALL_CENTER)
                        {
                            NMMail.Mail_AgregaEmailListaBoletinNMV(163, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_RIPLEY, true);
                        }
                    }
                    else if (Cliente_Cot.RecibePromo == true & !oportunidadVentaNM.EnviarPromociones.Equals("1"))
                    {
                        // Estaba suscrito y ahora ya no lo va a estar
                        NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_NMV, false);

                        if (intIdOfi == Constantes_SRV.INT_ID_OFI_CORPORATIVO_VACACIONAL & intIdDep == Constantes_SRV.INT_ID_DEP_COUNTER)
                        {
                            NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_CORPORATIVO_VACACIONAL, false);
                        }
                        else if (intIdOfi == Constantes_SRV.INT_ID_OFI_CALL_CENTER)
                        {
                            NMMail.Mail_AgregaEmailListaBoletinNMV(163, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_RIPLEY, false);
                        }
                    }
                }
                else
                {
                    /*Insert*/
                    intIdCliCot = (int)_repository.InsertaClienteCotizacion(oportunidadVentaNM.NombreCli, oportunidadVentaNM.ApePatCli,
                                                                            oportunidadVentaNM.ApeMatCli, oportunidadVentaNM.EmailCli, null, null, oportunidadVentaNM.EnviarPromociones.Equals("1"),
                                                                            null, oportunidadVentaNM.NumDoc, oportunidadVentaNM.IdTipoDoc, oportunidadVentaNM.IdUsuarioSrv_SF,
                                                                            Webs_Cid.ID_WEB_WEBFAREFINDER, null, false, null, _fechaIgnoredTriggerCuenta)["pNumIdNewCliCot_out"];

                    if (intIdCliCot != null && intIdCliCot > 0)
                    {
                        _oportunidadVentaNMRepository.RegistraCuenta(oportunidadVentaNM.idCuenta_SF, (int)intIdCliCot);
                    }


                    /*START INSERT PAX PTA (Consultar si lo sacamos)*/
                    //try
                    //{
                    //    string PrimerNombre = string.Empty;
                    //    string SegundoNombre = string.Empty;

                    //    if (oportunidadVentaNM.NombreCli.Split(' ').Length > 0)
                    //        PrimerNombre = oportunidadVentaNM.NombreCli.Split(' ')[0];
                    //    if (oportunidadVentaNM.NombreCli.Split(' ').Length > 1)
                    //    {
                    //        SegundoNombre = oportunidadVentaNM.NombreCli.Split(' ')[1];
                    //        if (oportunidadVentaNM.NombreCli.Split(' ').Length > 2)
                    //            SegundoNombre += " " + oportunidadVentaNM.NombreCli.Split(' ')[2];
                    //    }
                    //    ws_pax_paxdoc InsertClienteNM = new ws_pax_paxdoc();
                    //    ws_pax_aux.ws_pax_paxdoc.r_message[] respond = InsertClienteNM.prc_web_insert_pax(oportunidadVentaNM.IdTipoDoc, oportunidadVentaNM.NumDoc,
                    //        oportunidadVentaNM.ApePatCli, oportunidadVentaNM.ApeMatCli, PrimerNombre, SegundoNombre, string.Empty, oportunidadVentaNM.EmailCli, string.Empty, string.Empty, string.Empty, string.Empty, usuarioLogin.LoginUsuario);
                    //}
                    //catch (Exception ex)
                    //{
                    //    NMailAlerta oNMailAlerta = new NMailAlerta();
                    //    oNMailAlerta.EnvioCorreoRegistrarError("Error de " + Constantes_SRV.APP_NAME, this, ex, strIPUsuario + "|btnGrabarCli_ServerClick");
                    //    oNMailAlerta = null;
                    //}
                    /*END INSERT PAX PTA*/

                    if (oportunidadVentaNM.EnviarPromociones.Equals("1"))
                    {
                        if ((intIdOfi == Constantes_SRV.INT_ID_OFI_CORPORATIVO_VACACIONAL & intIdDep == Constantes_SRV.INT_ID_DEP_COUNTER))
                        {
                            NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_CORPORATIVO_VACACIONAL, true);
                        }

                        NMMail.Mail_AgregaEmailListaBoletinNMV(7, 1, (oportunidadVentaNM.NombreCli + " " + oportunidadVentaNM.ApePatCli).ReplaceSpecialChars(), oportunidadVentaNM.EmailCli, Constantes_Mail.EMAIL_BOLETIN_NMV, true);
                    }
                }
                #endregion


                #region ProcesoCotizacion
                if (oportunidadVentaNM.IdCotSRV == null)
                {
                    /*Creamos la Cotizacion*/
                    if (usuarioLogin.IdUsuario == 1813)
                    {
                        intIdDep = 30;
                        intIdOfi = 23;
                    }

                    idCotizacion = _oportunidadVentaNMRepository.Inserta_Cot_Vta(oportunidadVentaNM.ModoIngreso, oportunidadVentaNM.Comentario,
                                                                                 usuarioLogin.NomCompletoUsuario, usuarioLogin.LoginUsuario, strIPUsuario, (int)intIdCliCot,
                                                                                 usuarioLogin.IdUsuario, intIdDep, intIdOfi, Webs_Cid.ID_WEB_WEBFAREFINDER, Lang_Cid.IdLangSpa,
                                                                                 oportunidadVentaNM.IdCanalVenta, oportunidadVentaNM.ServiciosAdicionales.Split(';'),
                                                                                 oportunidadVentaNM.CiudadIata, null, 0, oportunidadVentaNM.IdDestino, oportunidadVentaNM.FechaIngreso,
                                                                                 oportunidadVentaNM.Fecharegreso, oportunidadVentaNM.CantidadAdultos, oportunidadVentaNM.CantidadNinos,
                                                                                 string.Empty, null, null, null, null, null, null, null, null, string.Empty, null);

                    if (idCotizacion != null && idCotizacion > 0)
                    {
                        /*_repository.RegistraOportunidad(oportunidadVentaNM.IdOportunidad_SF, (int)idCotizacion);*/
                        _oportunidadVentaNMRepository.RegistraOportunidad(oportunidadVentaNM.IdOportunidad_SF, (int)idCotizacion);
                    }

                    /*DtsCotizacionVta = _cotizacionSRV_Repository.Get_Datos_CotizacionVta((int)idCotizacion);*/
                }
                else
                {
                    idCotizacion = oportunidadVentaNM.IdCotSRV;
                    short?IdMotivoCierrePerdido = null;

                    /**Cambios de Estado**/
                    if (oportunidadVentaNM.idEstado != DtsCotizacionVta.IdEstado)
                    {
                        bolCambioEstado = true;
                        if (oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.NoCompro)
                        {
                            IdMotivoCierrePerdido = Convert.ToInt16(oportunidadVentaNM.IdMotivoNoCompro);
                            //strTextoPost = "<span class='texto_cambio_estado'>Cambio de estado a <strong>No Compro</strong></span>";
                        }
                    }

                    if (oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA || oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA_Paq)
                    {
                        bolEsUrgenteEmision  = true;
                        datFechaPlazoEmision = oportunidadVentaNM.fechaPlazoEmision; //Convert.ToDateTime(DateTime.Now.ToShortDateString() + " " + oportunidadVentaNM.HoraEmision + ":00");
                        //strTextoPost = "<span class='texto_cambio_estado'>EMISIÓN ANTES DE: " + string.Format("dd/MM/yyyy HH:mm", datFechaPlazoEmision) + "</span><br>";
                    }

                    /*Es Emitido*/
                    if (oportunidadVentaNM.Emitido == true)
                    {
                        _cotizacionSRV_Repository._Update_EsEmitido((int)oportunidadVentaNM.IdCotSRV, true);
                    }

                    /*Validar las validaciones a considerar*/

                    /*if (usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM || (usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMV && usuarioLogin.IdDep == Constantes_SRV.INT_ID_DEP_EMERGENCIAS) || usuarioLogin.EsSupervisorSRV)
                     * {
                     *  if ((!DtsCotizacionVta.EsEmitido) && oportunidadVentaNM.Emitido != null && oportunidadVentaNM.Emitido == true)
                     *  {
                     *      _cotizacionSRV_Repository._Update_EsEmitido((int)oportunidadVentaNM.IdCotSRV, true);
                     *  }
                     * }*/

                    /*Asignarse*/
                    if (oportunidadVentaNM.Asignarse == true)
                    {
                        bool bolAsignado = _cotizacionSRV_Repository._Update_CounterAdministrativo((int)oportunidadVentaNM.IdCotSRV, oportunidadVentaNM.counterAsignado);
                        //messageOK = (bolAsignado == false ? "La cotización ya ha sido asignado a un counter administrativo." : messageOK);
                    }

                    /*Requiere Firma Cliente (Consultar validacion de Pedidos - Del lado de SF?)*/
                    if (oportunidadVentaNM.RequiereFirmaCliente != null)
                    {
                        _cotizacionSRV_Repository._Update_Requiere_FirmaCliente_Cot((int)oportunidadVentaNM.IdCotSRV, (bool)oportunidadVentaNM.RequiereFirmaCliente);
                    }

                    /*Insertamos el Post*/
                    _cotizacionSRV_Repository.Inserta_Post_Cot(DtsCotizacionVta.IdCot, Constantes_SRV.ID_TIPO_POST_SRV_USUARIO, strTextoPost,
                                                               strIPUsuario, usuarioLogin.LoginUsuario, usuarioLogin.IdUsuario, usuarioLogin.IdDep, usuarioLogin.IdOfi, null, null,
                                                               oportunidadVentaNM.idEstado, bolCambioEstado, null, false, null, usuarioLogin.EsCounterAdminSRV,
                                                               (usuarioLogin.EsCounterAdminSRV == true ? DtsCotizacionVta.IdUsuWeb : usuarioLogin.IdUsuario),
                                                               (usuarioLogin.EsCounterAdminSRV == true ? DtsCotizacionVta.IdOfi : usuarioLogin.IdOfi),
                                                               (usuarioLogin.EsCounterAdminSRV == true ? DtsCotizacionVta.IdDep : usuarioLogin.IdDep), bolEsUrgenteEmision,
                                                               datFechaPlazoEmision, IdMotivoCierrePerdido, null, oportunidadVentaNM.MontoEstimado, 0);
                    /*Notas: En caso soliciten habilitar el Post, para el valor Emitido la estructura del Post es diferente, habria que hacer unas condicionales adicionales*/
                    /*Notas: En caso soliciten habilitar el Post, para la AutoAsignacion la estructura del Post es diferente, habria que hacer unas condicionales adicionales*/

                    /*Actualizamos el estado de la oportunidad*/
                    _oportunidadVentaNMRepository.UpdateOportunidad(oportunidadVentaNM.IdOportunidad_SF, (int)idCotizacion, Estados_Oportunidad.ID_ST_REGI_NO_ENVIO);

                    /*Modalidad de Compra*/
                    if (oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.Facturado && (usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM || usuarioLogin.IdDep == Constantes_SRV.INT_ID_DEP_SISTEMAS || _oportunidadVentaNMRepository._EsCounterAdministratiivo(usuarioLogin.IdOfi))) //, usuarioLogin.IdDep, false))
                    {
                        _cotizacionSRV_Repository._Update_ModalidadCompra(DtsCotizacionVta.IdCot, (short)oportunidadVentaNM.ModalidadCompra);
                    }

                    if (usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMVCOM | usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_TRAVEL_STORE | usuarioLogin.IdDep == Constantes_SRV.INT_ID_DEP_SISTEMAS | usuarioLogin.IdOfi == Constantes_SRV.INT_ID_OFI_NMV | usuarioLogin.IdOfi == 116)
                    {
                        if (oportunidadVentaNM.MontoCompra != null && oportunidadVentaNM.idEstado == (short)ENUM_ESTADOS_COT_VTA.DerivadoCA && DtsCotizacionVta.IdReservaVuelos == null)
                        {
                            _oportunidadVentaNMRepository._Update_DatosReservaVuelo_Manual_Cot(DtsCotizacionVta.IdCot, oportunidadVentaNM.CodReserva, Constantes_SRV.INT_ID_MONEDA_USD, System.Convert.ToDouble(oportunidadVentaNM.MontoCompra));
                        }
                    }
                }
                #endregion

                rptaOportunidadVentaNM.codigo   = "OK";
                rptaOportunidadVentaNM.mensaje  = (oportunidadVentaNM.Accion_SF.ToUpper().Trim() == "UPDATE" ? "Se actualizo correctamente" : "Se agregó correctamente");
                rptaOportunidadVentaNM.IdCotSrv = idCotizacion;

                objRespuesta = new { respuesta = rptaOportunidadVentaNM };
                return(Ok(objRespuesta));
            }
            catch (Exception ex)
            {
                exMessage = ex.Message;
                //rptaOportunidadVentaNM.codigo = "ER";
                //rptaOportunidadVentaNM.mensaje = ex.Message;
                //rptaOportunidadVentaNM.IdCotSrv = null;

                //objRespuesta = new { respuesta = rptaOportunidadVentaNM };
                //return Ok(objRespuesta);
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Body = oportunidadVentaNM,
                    Response = rptaOportunidadVentaNM,
                    Exception = exMessage
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
Exemple #20
0
        public async Task <HttpResponseMessage> Login(UsuarioLogin usuarioLogin)
        {
            var result = _httpClient.PostAsync($"/api/identidade/Login", ObterConteudo(usuarioLogin)).Result;

            return(await Task.FromResult(result));
        }
Exemple #21
0
        public IActionResult Verify(UsuarioLogin usuarioLogin)
        {
            var passwordr = BCrypt.Net.BCrypt.Verify("juan123456", usuarioLogin.Password);

            return(Ok(passwordr));
        }
Exemple #22
0
        private void tlstrpActionMenuBtnConfirm_Click(object sender, EventArgs e)
        {
            DataSet             _dsLogin                = null;
            UsuarioLogin        _UsuarioLogin           = null;
            List <EmpresaLogin> _EmpresaLoginCollection = new List <EmpresaLogin>();

            AppStateSecurity.Senha = txtPassword.Text;

            _dsLogin = AccessTask.CreateInstance.GetLoginTask(txtUser.Text, txtPassword.Text);

            if ((_dsLogin.Tables[0].Rows.Count > 0) && (_dsLogin.Tables[1].Rows.Count > 0))
            {
                if (_dsLogin.Tables[0].Rows.Count.Equals(1))
                {
                    _UsuarioLogin = new UsuarioLogin(_dsLogin.Tables[0].Rows[0]);

                    AppStateSecurity.Usuario = _UsuarioLogin.Usuario;
                    AppStateSecurity.Nome    = _UsuarioLogin.Nome;

                    Usuario = AppStateSecurity.Usuario;
                    Nome    = AppStateSecurity.Nome;
                }

                if (_dsLogin.Tables[1].Rows.Count > 0)
                {
                    foreach (DataRow _Row in _dsLogin.Tables[1].Rows)
                    {
                        _EmpresaLoginCollection.Add(new EmpresaLogin(_Row));
                    }

                    AppStateSecurity.EmpresaLoginCollection = _EmpresaLoginCollection;

                    EmpresaLoginCollection = AppStateSecurity.EmpresaLoginCollection;
                }

                this.Close();
            }
            else
            {
                AppStateSession.LogonNumber++;

                switch (AppStateSession.LogonNumber)
                {
                case 1:
                    MessageBox.Show(string.Format(FormsMessages.NroTentativasLogin, AppStateSession.LogonNumber),
                                    FormsMessages.LoginDoSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;

                case 2:
                    MessageBox.Show(string.Format(FormsMessages.NroTentativasLogin, AppStateSession.LogonNumber),
                                    FormsMessages.LoginDoSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;

                case 3:
                    MessageBox.Show(string.Format(FormsMessages.NroTentativasLogoff, AppStateSession.LogonNumber),
                                    FormsMessages.LoginDoSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                    Application.Exit();
                    break;

                default:
                    break;
                }
            }
        }
Exemple #23
0
 public bool AlteraSenhaDo(UsuarioLogin login)
 {
     _contexto.Update(login);
     return(_contexto.SaveChanges() > 0);
 }
Exemple #24
0
        private bool IsValido(UsuarioLogin login)
        {
            var validacao = new ValidaUsuarioLogin(_globalizacao);

            return(validacao.Validate(login).IsValid);
        }
        private void ValidateNM(DocumentosEmisionNM _docsEmisionNM, ref DocEmisionRS _docEmisionRS, ref UsuarioLogin UserLogin, ref CotizacionVta CotizacionVta)
        {
            string mensajeError = string.Empty;

            if (_docsEmisionNM == null)
            {
                cargarError(ref _docEmisionRS, "Envie correctamente los parametros de entrada - RQ Nulo|");
                return;
            }
            if (string.IsNullOrEmpty(_docsEmisionNM.idOportunidad_SF))
            {
                mensajeError += "La oportunidad SF es un campo obligatorio|";
            }
            if (_docsEmisionNM.IdUsuarioSrv_SF <= 0)
            {
                mensajeError += "El IdUsuarioSrv_SF es un campo obligatorio|";
            }
            if (_docsEmisionNM.idCotizacionSRV <= 0)
            {
                mensajeError += "El idCotizacionSRV es un campo obligatorio|";
            }
            if (string.IsNullOrEmpty(_docsEmisionNM.correo))
            {
                mensajeError += "El correo es un campo obligatorio|";
            }
            else if (ValidateProcess.validarEmail(_docsEmisionNM.correo) == false)
            {
                mensajeError += "El formato del correo es incorrecto|";
            }

            if (string.IsNullOrEmpty(mensajeError))
            {
                /*Cargamos Datos del Usuario*/
                RepositoryByBusiness(null);
                UserLogin = _datosUsuario.Get_Dts_Usuario_Personal_NM(_docsEmisionNM.IdUsuarioSrv_SF);
                if (UserLogin == null)
                {
                    mensajeError += "ID del Usuario no registrado|";
                }

                /*Validacion Oportunidad*/
                int intCotizacion_SF = _oportunidadVentaNMRepository._Select_CotId_X_OportunidadSF(_docsEmisionNM.idOportunidad_SF);
                if (intCotizacion_SF <= 0)
                {
                    mensajeError += "No existe la oportunidad en el ambiente de Expertia|";
                }
                else if (intCotizacion_SF > 0 && intCotizacion_SF != _docsEmisionNM.idCotizacionSRV)
                {
                    mensajeError += "La cotizacion enviada es diferente a la registrada|";
                }

                if (string.IsNullOrEmpty(mensajeError))
                {
                    CotizacionVta = _cotizacionSRV_Repository.Get_Datos_CotizacionVta((int)_docsEmisionNM.idCotizacionSRV);

                    if (CotizacionVta == null || CotizacionVta.IdCot == 0)
                    {
                        mensajeError = "No existe informacion de la cotizacion enviada";
                    }
                    else if (CotizacionVta.IdEstado != (short)ENUM_ESTADOS_COT_VTA.Facturado)
                    {
                        mensajeError = "La cotizacion no se encuentra facturado, no es posible enviar documentos";
                    }
                    else if (!(CotizacionVta.IdReservaVuelos != null && CotizacionVta.IdReservaVuelos > 0))
                    {
                        mensajeError = "No se puede enviar ningún documento porque no está asociada a una reserva automática.";
                    }
                }
            }

            if (string.IsNullOrEmpty(mensajeError) == false)
            {
                _docEmisionRS.codigo  = "ER";
                _docEmisionRS.mensaje = "VA: " + mensajeError;
            }
        }
Exemple #26
0
        public IHttpActionResult Create(FactFileRetailReq models)
        {
            _factFileRepository = new FactFileRetailRepository();
            _CotizacionSRV      = new CotizacionSRV_AW_Repository();
            _datosUsuario       = new DatosUsuario();
            _datosOficina       = new DatosOficina();
            string _result      = "";
            string exceptionMsg = string.Empty;
            object response     = null;

            try
            {
                UsuarioLogin      objUsuarioLogin = _datosUsuario.Get_Dts_Usuario_Personal(models.IdUsuarioSrv_SF);
                int               IdUsuario       = objUsuarioLogin.IdUsuario;
                int               IdOfi           = objUsuarioLogin.IdOfi;
                int               IdDep           = objUsuarioLogin.IdDep;
                List <FileRetail> lstArchivos     = new List <FileRetail>();
                ///Guardar Datos de Facturacion
                models.IdUsuario = IdUsuario;

                _result = Guardar_DesgloseCA(models);

                ///Subir Archivos
                //var objArchivos = new List<FileRetail>; //(List<FileRetail>)System.Web.HttpContext.Current.SetSessionStateBehavior(Constantes_SRV.SES_LISTA_ARCHIVOS_DESGLOSE_CA);
                //lstArchivos = objArchivos;

                ///Insertar APPWEBS.WFF_POST_COT_VTA
                string pStrTextoPost = TemplateHtml(models, lstArchivos);
                string strIPUsuCrea  = "::1";

                ///ENviar CA TRUE
                Models.Retail.Oficina objOficina = new Models.Retail.Oficina();
                objOficina = _datosOficina.ObtieneOficinaXId(IdOfi);

                Boolean bolValor = EsAreaCounterPresencial(IdOfi, IdDep, objOficina.bolEsRipley);

                if (bolValor)
                {
                    bolValor = _CotizacionSRV._Liberar_UsuWeb_CA(models.Cot_Id);
                }

                _CotizacionSRV.Inserta_Post_Cot(models.Cot_Id, "1", pStrTextoPost,
                                                strIPUsuCrea, objUsuarioLogin.LoginUsuario, IdUsuario,
                                                IdDep, IdOfi, null, null, Constantes_SRV.INT_ID_ESTADO_COT_DERIVADO_A_CA, true, null,
                                                false, null, false, IdUsuario, IdOfi,
                                                IdDep, null, null, null, "", null);

                response = new
                {
                    CodigoError  = "OK",
                    MensajeError = "",
                    idFactura    = _result
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                exceptionMsg = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Request = models,
                    Response = response,
                    Exception = exceptionMsg
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
Exemple #27
0
 public bool AlteraSenhaDo(UsuarioLogin login)
 {
     return(_repositorio.AlteraSenhaDo(login));
 }
        public IHttpActionResult Send(DocumentosEmisionNM DocumentosEmision)
        {
            DocEmisionRS _DocEmisionRS = new DocEmisionRS();
            string       exceptionMsg  = string.Empty;

            try
            {
                UsuarioLogin  usuarioLogin     = null;
                CotizacionVta DtsCotizacionVta = null;

                ValidateNM(DocumentosEmision, ref _DocEmisionRS, ref usuarioLogin, ref DtsCotizacionVta);
                if (string.IsNullOrEmpty(_DocEmisionRS.codigo) == false)
                {
                    return(Ok(new { respuesta = _DocEmisionRS }));
                }
                if (usuarioLogin.IdUsuario != DocumentosEmision.IdUsuarioSrv_SF)
                {
                    DocumentosEmision.IdUsuarioSrv_SF = usuarioLogin.IdUsuario;
                }

                /**Llamamos al servicio del SRV**/
                ws_crm.ws_crm crmServiceSRV = new ws_crm.ws_crm();

                EnvioDocsRQ ServSRV_RQ = new EnvioDocsRQ()
                {
                    IdCotizacion    = DocumentosEmision.idCotizacionSRV,
                    IdReserva       = (int)DtsCotizacionVta.IdReservaVuelos,
                    Formato         = "F",
                    IPUsuario       = "127.0.0.0",
                    Email           = DocumentosEmision.correo,
                    Token           = ConfigurationManager.AppSettings["TOKEN_SERVICIO_SRV_CRM"],
                    Usuario_Session = new UsuarioSession()
                    {
                        IdUsuario    = usuarioLogin.IdUsuario,
                        EmailUsuario = usuarioLogin.EmailUsuario,
                        LoginUsuario = usuarioLogin.LoginUsuario,
                        IdDep        = usuarioLogin.IdDep,
                        IdOfi        = usuarioLogin.IdOfi
                    }
                };

                EnvioDocsRS ServSRV_RS = crmServiceSRV.EnvioDocumentos(ServSRV_RQ);
                if (ServSRV_RS == null)
                {
                    _DocEmisionRS.codigo  = "ER";
                    _DocEmisionRS.mensaje = "Sucedió un error inesperado (comunique a Sistemas).";
                }
                else if (ServSRV_RS.Codigo == "OK")
                {
                    _DocEmisionRS.codigo  = "OK";
                    _DocEmisionRS.mensaje = (string.IsNullOrEmpty(ServSRV_RS.Mensaje) ? "Se envio el correo satisfactoriamente" : ServSRV_RS.Mensaje);
                }
                else
                {
                    _DocEmisionRS.codigo  = "ER";
                    _DocEmisionRS.mensaje = (string.IsNullOrEmpty(ServSRV_RS.Mensaje) ? "Sucedió un error inesperado (comunique a Sistemas)." : ServSRV_RS.Mensaje);
                }

                return(Ok(new { respuesta = _DocEmisionRS }));;
            }
            catch (Exception ex)
            {
                exceptionMsg = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Response = _DocEmisionRS,
                    Exception = exceptionMsg,
                    LegacySystems = DocumentosEmision
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
Exemple #29
0
        //////////////////////////////////////
        // ACCIONES/OPERACIONES DEL WEB-API //
        //////////////////////////////////////

        /////////////////
        // ACCIÓN POST //
        /////////////////
        public async Task <object> LoginAsync(UsuarioLogin usuarioLogin)
        {
            // CONSTRUIMOS LA URL DE LA ACCIÓN
            var urlBuilder_ = new StringBuilder();

            urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "")
            .Append("/api/login/authenticate");
            var url_ = urlBuilder_.ToString();

            // RECUPERAMOS EL HttpClient
            var client_ = _httpClient;

            try
            {
                using (var request_ = new HttpRequestMessage())
                {
                    ///////////////////////////////////////
                    // CONSTRUIMOS LA PETICIÓN (REQUEST) //
                    ///////////////////////////////////////
                    // DEFINIMOS EL Content CON EL OBJETO A ENVIAR SERIALIZADO.
                    request_.Content = new StringContent(JsonConvert.SerializeObject(usuarioLogin));

                    // DEFINIMOS EL ContentType, EN ESTE CASO ES "application/json"
                    request_.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

                    // DEFINIMOS EL MÉTODO HTTP
                    request_.Method = new HttpMethod("POST");

                    // DEFINIMOS LA URI
                    request_.RequestUri = new Uri(url_, System.UriKind.RelativeOrAbsolute);

                    // DEFINIMOS EL Accept, EN ESTE CASO ES "application/json"
                    request_.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json"));

                    /////////////////////////////////////////
                    // CONSTRUIMOS LA RESPUESTA (RESPONSE) //
                    /////////////////////////////////////////
                    // Utilizamos ConfigureAwait(false) para evitar el DeadLock.
                    var response_ = await client_.SendAsync(request_, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);

                    // OBTENEMOS EL Content DEL RESPONSE como un String
                    // Utilizamos ConfigureAwait(false) para evitar el DeadLock.
                    var responseText_ = await response_.Content.ReadAsStringAsync().ConfigureAwait(false);

                    // SI ES LA RESPUESTA ESPERADA !! ...
                    if (response_.StatusCode == System.Net.HttpStatusCode.OK) // 200
                    {
                        // DESERIALIZAMOS Content DEL RESPONSE
                        var responseBody_ = JsonConvert.DeserializeObject <object>(responseText_);
                        return(responseBody_);
                    }
                    else
                    // SI NO SE ESTÁ AUTORIZADO ...
                    if (response_.StatusCode == System.Net.HttpStatusCode.Unauthorized) // 401
                    {
                        throw new Exception("401 Unauthorized. Las credenciales de acceso del usuario son incorrectas. " +
                                            responseText_);
                    }
                    else
                    // CUALQUIER OTRA RESPUESTA ...
                    if (response_.StatusCode != System.Net.HttpStatusCode.OK &&      // 200
                        response_.StatusCode != System.Net.HttpStatusCode.NoContent) // 204
                    {
                        throw new Exception((int)response_.StatusCode + ". No se esperaba el código de estado HTTP de la respuesta. " +
                                            responseText_);
                    }

                    // RETORNAMOS EL OBJETO POR DEFECTO ESPERADO
                    return(default(object));
                }
            }
            finally
            {
                // NO UTILIZAMOS CATCH,
                // PASAMOS LA EXCEPCIÓN A LA APP.
            }
        }
        public IActionResult Login([FromBody] LoginViewModel modelo)
        {
            using (var db = new smafacpyaContext())
            {
                db.Database.BeginTransaction();
                try
                {
                    var contraseñaHelper = new Contraseña();

                    if (string.IsNullOrWhiteSpace(modelo.Correo))
                    {
                        return(BadRequest(constantes.seguridad.mensajes.correoVacio));
                    }

                    var usuarios = db.Usuario.AsNoTracking().Include(x => x.UsuarioRol).Where(x => x.Correo.Trim().Equals(modelo.Correo.Trim()) && x.Activo);

                    if (usuarios == null)
                    {
                        return(BadRequest(constantes.seguridad.mensajes.usuarioNoEncontrado));
                    }
                    if (usuarios.Count() == 0)
                    {
                        return(BadRequest(constantes.seguridad.mensajes.usuarioNoEncontrado));
                    }

                    var usuario    = usuarios.FirstOrDefault();
                    var contraseña = contraseñaHelper.Encriptar(modelo.Contraseña);

                    if (!contraseñaHelper.CompararContraseña(contraseña, usuario.Contraseña))
                    {
                        return(BadRequest(constantes.seguridad.mensajes.usuarioContrasenaIncorrecto));
                    }

                    var logins   = db.UsuarioLogin.Where(x => x.Activo && x.IdUsuario == usuario.Id);
                    var hoy      = DateTime.Now;
                    var vigencia = DateTime.Now.AddMonths(1);
                    var idLogin  = Guid.NewGuid();
                    var roles    = new List <Rol>();
                    var menu     = ObtenerMenuPorUsuario(usuario.Id);

                    foreach (var login in logins)
                    {
                        login.Activo = false;
                    }

                    var loginNuevo = new UsuarioLogin
                    {
                        Id            = idLogin,
                        IdUsuario     = usuario.Id,
                        FechaCreacion = hoy,
                        FechaVigencia = vigencia,
                        Activo        = true
                    };

                    if (usuario.UsuarioRol != null)
                    {
                        foreach (var ur in usuario.UsuarioRol)
                        {
                            roles.Add(db.Rol.FirstOrDefault(x => x.Id == ur.IdRol));
                        }
                    }

                    db.UsuarioLogin.Add(loginNuevo);
                    var token = GenerarToken(usuario, idLogin, roles, vigencia);
                    db.SaveChanges();
                    db.Database.CommitTransaction();

                    var usuarioViewModel = new UsuarioViewModel
                    {
                        Correo = usuario.Correo
                    };
                    var rolViewModel = roles.Select(x => new RolViewModel
                    {
                        Id          = x.Id,
                        Nombre      = x.Nombre,
                        Descripcion = x.Descripcion,
                        Activo      = x.Activo.HasValue ? (bool)x.Activo : false
                    });
                    return(Ok(new
                    {
                        Usuario = usuarioViewModel,
                        Token = token,
                        Roles = rolViewModel,
                        Menu = menu
                    }));
                }
                catch (Exception ex)
                {
                    db.Database.RollbackTransaction();
                    return(BadRequest(ex.InnerException == null ? ex.Message : ex.InnerException.Message));
                }
            }
        }
 public string GenerarToken(UsuarioLogin usuarioGeneral)
 {
     return(encoder.Encode(usuarioGeneral, SECRET_KEY));
 }
Exemple #32
0
 public void Cadastra(UsuarioLogin login)
 {
     LoginExistePara(login.Usuario);
     _usuarioRepositorio.Cadastra(login);
 }