Пример #1
0
        public BaseResponse <PersonaNatutalRequest> getDatosBasicosCurrentUser(int clienteId)
        {
            BaseResponse <PersonaNatutalRequest> result = new BaseResponse <PersonaNatutalRequest>();

            result.data = new PersonaNatutalRequest();
            try
            {
                using (MesaDineroContext context = new MesaDineroContext())
                {
                    Tb_MD_Clientes cliente = null;
                    cliente = context.Tb_MD_Clientes.FirstOrDefault(x => x.iIdCliente == clienteId);
                    if (cliente == null)
                    {
                        throw new Exception("El usuario no esta asociado a ningun cliente");
                    }

                    if (!cliente.codigoModificacionDatos.HasValue)
                    {
                        Tb_MD_Per_Natural persona = null;
                        persona = context.Tb_MD_Per_Natural.FirstOrDefault(x => x.vNumDocumento.Equals(cliente.vNroDocumento));

                        if (persona != null)
                        {
                            #region Datos Verificados
                            result.data.nroDocumento  = persona.vNumDocumento;
                            result.data.tipoDocumento = persona.vTipoDocumento;
                            result.data.nombres       = persona.vNombre;
                            result.data.apePaterno    = persona.vApellido;
                            result.data.apeMaterno    = persona.vApellidoMat;

                            if (persona.vFechaNacimiento.HasValue)
                            {
                                result.data.fnDia  = persona.vFechaNacimiento.Value.Day;
                                result.data.fnMes  = persona.vFechaNacimiento.Value.Month;
                                result.data.fnAnio = persona.vFechaNacimiento.Value.Year;
                            }

                            result.data.email      = persona.vMailContacto;
                            result.data.preCelular = persona.vPreCelular;
                            result.data.celular    = persona.vTelefonoMovil;

                            result.data.pais         = persona.vIdPaisOrigen;
                            result.data.departamento = persona.iCodDepartamento ?? 0;
                            result.data.provincia    = persona.iCodProvincia ?? 0;
                            result.data.distrito     = persona.iCodDistrito ?? 0;

                            result.data.direccion         = persona.vDireccion;
                            result.data.origenFondos      = persona.iOrigenFondos ?? 0;
                            result.data.sictuacionLaboral = !string.IsNullOrEmpty(persona.vFlgSituacionLaboral) ? persona.vFlgSituacionLaboral : "I";
                            result.data.expuesto          = !string.IsNullOrEmpty(persona.vFlgExpuestoPoliticamente) ? persona.vFlgExpuestoPoliticamente : "N";

                            if (persona.vFlgExpuestoPoliticamente == "S")
                            {
                                Tb_MD_Expuesto_Politicamente expuesto = null;
                                expuesto = context.Tb_MD_Expuesto_Politicamente.FirstOrDefault(x => x.vNumDocumento.Equals(persona.vNumDocumento) && x.dFechaFinActividad == null);

                                if (expuesto != null)
                                {
                                    result.data.entidadNombreExpuesto = expuesto.vNombreEntidad;
                                    result.data.cargoExpuesto         = expuesto.vCargo;
                                }
                            }
                            #endregion
                        }
                        else
                        {
                            result.data = null;
                        }
                    }
                    else
                    {
                        Tb_MD_Pre_Per_Natural persona = null;
                        persona = context.Tb_MD_Pre_Per_Natural.FirstOrDefault(x => x.Id_Pre_Cliente == cliente.codigoModificacionDatos);

                        if (persona != null)
                        {
                            result.data.nroDocumento  = persona.vNumDocumento;
                            result.data.tipoDocumento = persona.vTipoDocumento;
                            result.data.nombres       = persona.vNombre;
                            result.data.apePaterno    = persona.vApellido;
                            result.data.apeMaterno    = persona.vApellidoMat;

                            if (persona.vFechaNacimiento.HasValue)
                            {
                                result.data.fnDia  = persona.vFechaNacimiento.Value.Day;
                                result.data.fnMes  = persona.vFechaNacimiento.Value.Month;
                                result.data.fnAnio = persona.vFechaNacimiento.Value.Year;
                            }

                            result.data.email      = persona.vMailContacto;
                            result.data.preCelular = persona.vPreCelular;
                            result.data.celular    = persona.vTelefonoMovil;

                            result.data.pais         = persona.vIdPaisOrigen;
                            result.data.departamento = persona.iCodDepartamento ?? 0;
                            result.data.provincia    = persona.iCodProvincia ?? 0;
                            result.data.distrito     = persona.iCodDistrito ?? 0;

                            result.data.direccion         = persona.vDireccion;
                            result.data.origenFondos      = persona.iOrigenFondos ?? 0;
                            result.data.sictuacionLaboral = !string.IsNullOrEmpty(persona.vFlgSituacionLaboral) ? persona.vFlgSituacionLaboral : "I";
                            result.data.expuesto          = !string.IsNullOrEmpty(persona.vFlgExpuestoPoliticamente) ? persona.vFlgExpuestoPoliticamente : "N";
                        }
                        else
                        {
                            result.data = null;
                        }
                    }
                }

                result.success = true;
            }
            catch (Exception ex)
            {
                result.success = false;
                // result.ex = ex;
                result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
            }

            return(result);
        }
Пример #2
0
        public BaseResponse <string> updateDatosBasicosCurrentUser(PersonaNatutalRequest model, int clienteId)
        {
            BaseResponse <string> result = new BaseResponse <string>();

            using (MesaDineroContext context = new MesaDineroContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        DateTime ahora = DateTime.Now;

                        Tb_MD_Clientes cliente = null;
                        cliente = context.Tb_MD_Clientes.FirstOrDefault(x => x.iIdCliente == clienteId);

                        Tb_MD_Pre_Clientes preCliente = null;

                        if (cliente.codigoModificacionDatos == null)
                        {
                            preCliente = new Tb_MD_Pre_Clientes();
                        }
                        else
                        {
                            preCliente = context.Tb_MD_Pre_Clientes.FirstOrDefault(x => x.idPreCliente == cliente.codigoModificacionDatos);
                        }

                        preCliente.vNombre                      = cliente.vNombre;
                        preCliente.vApellido                    = cliente.vApellido;
                        preCliente.iCodDepartamento             = model.departamento;
                        preCliente.iCodDistrito                 = model.distrito;
                        preCliente.NombreCliente                = cliente.NombreCliente;
                        preCliente.vTipoCliente                 = (int)cliente.vTipoCliente;
                        preCliente.vTipoDocumento               = cliente.vTipoDocumento;
                        preCliente.iEstadoNavegacion            = -1;
                        preCliente.envioValidacion              = true;
                        preCliente.EstadoValidacion             = "P";
                        preCliente.EstadoValidacion_Fideicomiso = "P";
                        preCliente.Seguimiento                  = SeguimientoRegistro.RegistroProcesoValidacion;

                        preCliente.dFechaEnvioValidacion = ahora;

                        if (cliente.codigoModificacionDatos == null)
                        {
                            preCliente.vNroDocumento   = cliente.vNroDocumento;
                            preCliente.SecretId        = Guid.NewGuid();
                            preCliente.vEstadoRegistro = -1;
                            preCliente.envioMSM        = true;
                            preCliente.dFechaCreacion  = ahora;
                            preCliente.vTipoRegistro   = TipoRegistroPreCliente.ModificacionDatosBasicos;

                            context.Tb_MD_Pre_Clientes.Add(preCliente);
                            context.SaveChanges();
                        }

                        Tb_MD_Per_Natural persona = null;
                        persona = context.Tb_MD_Per_Natural.FirstOrDefault(x => x.vNumDocumento.Equals(cliente.vNroDocumento));

                        Tb_MD_Pre_Per_Natural prePersona = null;
                        prePersona = context.Tb_MD_Pre_Per_Natural.FirstOrDefault(x => x.Id_Pre_Cliente == preCliente.idPreCliente);

                        bool nuevaPrePersona = false;

                        if (prePersona == null)
                        {
                            prePersona                 = new Tb_MD_Pre_Per_Natural();
                            nuevaPrePersona            = true;
                            prePersona.dFechaCreacion  = ahora;
                            prePersona.Id_Pre_Cliente  = preCliente.idPreCliente;
                            prePersona.vEstadoRegistro = EstadoRegistroTabla.Activo;
                        }

                        prePersona.vNumDocumento  = persona.vNumDocumento;
                        prePersona.vTipoDocumento = persona.vTipoDocumento;
                        prePersona.vNombre        = persona.vNombre;
                        prePersona.vApellido      = persona.vApellido;
                        prePersona.vApellidoMat   = persona.vApellidoMat;
                        prePersona.vMailContacto  = persona.vMailContacto;
                        prePersona.vPreCelular    = persona.vPreCelular;
                        prePersona.vTelefonoMovil = persona.vTelefonoMovil;

                        prePersona.vFechaNacimiento = new DateTime(model.fnAnio, model.fnMes, model.fnDia);

                        #region Direccion
                        prePersona.vIdPaisOrigen    = model.pais;
                        prePersona.iCodDepartamento = model.departamento;
                        prePersona.iCodProvincia    = model.provincia;
                        prePersona.iCodDistrito     = model.distrito;
                        prePersona.vDireccion       = model.direccion;
                        #endregion

                        prePersona.iOrigenFondos             = model.origenFondos;
                        prePersona.vFlgSituacionLaboral      = model.sictuacionLaboral;
                        prePersona.vFlgExpuestoPoliticamente = model.expuesto;
                        if (model.expuesto == "N")
                        {
                            prePersona.CargoExpuesto         = "";
                            prePersona.NombreEntidadExpuesto = "";
                        }
                        else
                        {
                            prePersona.CargoExpuesto         = model.cargoExpuesto;
                            prePersona.NombreEntidadExpuesto = model.entidadNombreExpuesto;
                        }


                        if (nuevaPrePersona)
                        {
                            context.Tb_MD_Pre_Per_Natural.Add(prePersona);
                        }

                        cliente.codigoModificacionDatos = preCliente.idPreCliente;

                        context.SaveChanges();
                        transaction.Commit();

                        result.success = true;
                    }
                    catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                    {
                        #region Error EntityFramework
                        var errorMessages = ex.EntityValidationErrors
                                            .SelectMany(x => x.ValidationErrors)
                                            .Select(x => x.ErrorMessage);

                        var fullErrorMessage = string.Join("; ", errorMessages);

                        result.success = false;
                        result.error   = fullErrorMessage;
                        transaction.Rollback();
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        result.success = false;
                        //result.ex = ex;
                        transaction.Rollback();
                        result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                    }
                }
            }



            return(result);
        }
Пример #3
0
        public BaseResponse <string> actualizarEstadoVerificado(List <SubastaRequest> model, string nombreusuario)
        {
            BaseResponse <string> result = new BaseResponse <string>();

            using (MesaDineroContext context = new MesaDineroContext())
            {
                using (var transaccion = context.Database.BeginTransaction())
                {
                    try
                    {
                        if (model.Count == 0)
                        {
                            throw new Exception("Seleccione una Transaccion");
                        }

                        //string [] codigoTransaccion=model.idTransaccion.Split(',');

                        for (int i = 0; i < model.Count; i++)
                        {
                            Tb_MD_Subasta             entidad     = context.Tb_MD_Subasta.Find(Convert.ToInt16(model[i].idTransaccion));
                            Tb_MD_ClientesDatosBancos banco       = context.Tb_MD_ClientesDatosBancos.Find(entidad.cuentaBancoDestino);
                            Tb_MD_ClientesDatosBancos bancoOrigen = context.Tb_MD_ClientesDatosBancos.Find(entidad.cuentaBancoOrigen);
                            //Tb_MD_Pre_Clientes cliente = context.Tb_MD_Pre_Clientes.Find(entidad.IdCliente);
                            if (entidad == null)
                            {
                                throw new Exception("Codigo no exite");
                            }
                            entidad.vNumInsPago    = model[i].idPago;
                            entidad.vEstadoSubasta = model[i].estado;
                            context.SaveChanges();


                            /*Insertar a la tabla pagos*/
                            if (model[i].tipoValidacion != null && model[i].tipoValidacion != "")
                            {
                                int      idSubasta        = entidad.nNumeroSubasta;
                                DateTime fechaInformePago = DateTime.Now;

                                if (model[i].tipoValidacion.Trim() == "VO")
                                {
                                    /*ACTUALIZAR AHORA*/
                                    Tb_MD_Notificacion limpNot   = new Tb_MD_Notificacion();
                                    string             nrsubasta = entidad.nNumeroSubasta.ToString();
                                    limpNot = context.Tb_MD_Notificacion.Where(x => x.vNumeroSubasta == nrsubasta && x.vEstadoSubasta == EstadoSubasta.PagadaXCliente).FirstOrDefault();


                                    string estadoOperador = "";
                                    if (model[i].estado.Trim() == "G")
                                    {
                                        estadoOperador = "A";
                                        if (limpNot != null)
                                        {
                                            limpNot.Titulo = "Operación Verificada";
                                        }
                                    }
                                    else
                                    {
                                        estadoOperador = "O";
                                        if (limpNot != null)
                                        {
                                            limpNot.Titulo = "Operación Observada";
                                        }
                                    }
                                    /*ACTUALIZAR AHORA*/

                                    Tb_MD_Subasta_Pago subasta_pago_val = context.Tb_MD_Subasta_Pago.Find(idSubasta);

                                    if (subasta_pago_val == null)
                                    {
                                        Tb_MD_Subasta_Pago subasta_pago = new Tb_MD_Subasta_Pago();
                                        subasta_pago.nNumeroSubasta         = idSubasta;
                                        subasta_pago.vCodBancoCliente       = bancoOrigen.vBanco;
                                        subasta_pago.vNumeroCuenta          = bancoOrigen.vNroCuenta;
                                        subasta_pago.dFechaInformePago      = DateTime.Now;
                                        subasta_pago.vNumOperacionPago      = entidad.NroOperacionPago;
                                        subasta_pago.vTipoMonedaTransferida = entidad.vMonedaEnviaCliente;
                                        subasta_pago.nMontoTransferido      = entidad.nMontoEnviaCliente;
                                        //subasta_pago.vTipoPersona = cliente.vTipoCliente.ToString();
                                        //subasta_pago.vCodBancoFideicomiso = "";
                                        //subasta_pago.vNumeroCuentaFideicomiso = "";
                                        //subasta_pago.vNroDocumento = cliente.vNroDocumento;
                                        subasta_pago.iEstadoRegistro = EstadoRegistroTabla.Activo;
                                        context.Tb_MD_Subasta_Pago.Add(subasta_pago);
                                    }
                                    Tb_MD_Subasta_Pago subasta_pago_find = context.Tb_MD_Subasta_Pago.Find(idSubasta);

                                    if (subasta_pago_find != null)
                                    {
                                        subasta_pago_find.dFechaValidacionOperaciones      = fechaInformePago;
                                        subasta_pago_find.vNumDocValidaDepositoOperaciones = nombreusuario;
                                        subasta_pago_find.vEstadoValOperador = estadoOperador;
                                        context.SaveChanges();
                                    }
                                }

                                //if (model[i].tipoValidacion.Trim() == "VF")
                                //{
                                //    string estadoOperador = "";
                                //    if (model[i].estado.Trim() == "G")
                                //    {
                                //        estadoOperador = "A";
                                //    }
                                //    else
                                //    {
                                //        estadoOperador = "O";
                                //    }
                                //    Tb_MD_Subasta_Pago subasta_pago_find = context.Tb_MD_Subasta_Pago.Find(idSubasta);

                                //    if (subasta_pago_find != null)
                                //    {
                                //        subasta_pago_find.dFechaValidacionFideicomiso = fechaInformePago;
                                //        subasta_pago_find.vNumDocValidaDepositoFideicomiso = nombreusuario;
                                //        subasta_pago_find.vEstadoValFideicomiso = estadoOperador;
                                //        context.SaveChanges();
                                //    }

                                //}

                                if (model[i].tipoValidacion.Trim() == "EC")
                                {
                                    Tb_MD_Subasta_Pago subasta_pago_find = context.Tb_MD_Subasta_Pago.Find(idSubasta);

                                    if (subasta_pago_find != null)
                                    {
                                        subasta_pago_find.dFechaEnvioCorfid = DateTime.Now;
                                        context.SaveChanges();
                                    }
                                }

                                if (model[i].tipoValidacion.Trim() == "AP")
                                {
                                    Tb_MD_Subasta_Pago subasta_pago_find = context.Tb_MD_Subasta_Pago.Find(idSubasta);

                                    if (subasta_pago_find != null)
                                    {
                                        subasta_pago_find.dFechaInformeContravalor    = DateTime.Now;
                                        subasta_pago_find.vNumOpeBancoACliente        = model[i].idPago;
                                        subasta_pago_find.vObservacion                = model[i].observacion;
                                        subasta_pago_find.vCodBancoDestinoCliente     = banco.vBanco;
                                        subasta_pago_find.nMontoTransferidoACliente   = entidad.nMontiRecibeCliente;
                                        subasta_pago_find.vTipoMonedaDestinoCliente   = entidad.vMonedaRecibeCliente;
                                        subasta_pago_find.vNumeroCuentaDestinoCliente = banco.vNroCuenta;

                                        context.SaveChanges();

                                        /*Enviar Correo*/
                                        Tb_MD_Clientes cliente = context.Tb_MD_Clientes.Where(x => x.iIdCliente == entidad.IdCliente).FirstOrDefault();

                                        if (cliente != null)
                                        {
                                            string nombre = cliente.vNombre + " " + cliente.vApellido;
                                            string correo = cliente.vEmail;
                                            string monto  = String.Format("{0:###,###,###,##0.00##}", entidad.nMontiRecibeCliente);
                                            string moneda = entidad.vMonedaRecibeCliente.ToString().ToUpper();
                                            CorreoHelper.SendCorreoPagoCliente(correo, nombre, monto, moneda, entidad.SecredId.ToString());
                                            //if (respuesta == true) {

                                            //}

                                            Tb_MD_Notificacion limpNot   = new Tb_MD_Notificacion();
                                            string             nrsubasta = entidad.nNumeroSubasta.ToString();
                                            limpNot = context.Tb_MD_Notificacion.Where(x => x.vNumeroSubasta == nrsubasta && x.vEstadoSubasta == EstadoSubasta.PagadaXCliente).FirstOrDefault();
                                            if (limpNot != null)
                                            {
                                                limpNot.iEstadoRegistro = EstadoRegistroTabla.NoActivo;
                                            }

                                            Tb_MD_Notificacion notificacion = new Tb_MD_Notificacion();
                                            notificacion.IdUsuario       = "";
                                            notificacion.IdCliente       = cliente.iIdCliente;
                                            notificacion.Titulo          = "Envio de Pago";
                                            notificacion.Mensaje         = "Tu número de transaccion es: " + String.Format("{0:000000000}", entidad.nNumeroSubasta) + ". Se le deposito el tipo de cambio solicitado.";
                                            notificacion.Tipo            = 0;
                                            notificacion.vNumeroSubasta  = entidad.nNumeroSubasta.ToString();
                                            notificacion.vEstadoSubasta  = EstadoSubasta.PagadaALCliente;
                                            notificacion.Url             = "/Subasta/recibes/" + entidad.SecredId;
                                            notificacion.Fecha           = DateTime.Now.AddDays(1);
                                            notificacion.iEstadoRegistro = EstadoRegistroTabla.Activo;
                                            context.Tb_MD_Notificacion.Add(notificacion);
                                            context.SaveChanges();
                                        }
                                        else
                                        {
                                            throw new Exception("No se encontro Datos del Cliente");
                                        }
                                    }
                                }
                            }
                        }

                        //Tb_MD_Subasta_Pago



                        transaccion.Commit();
                        result.success = true;
                    }
                    catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                    {
                        #region Error EntityFramework
                        var errorMessages = ex.EntityValidationErrors
                                            .SelectMany(x => x.ValidationErrors)
                                            .Select(x => x.ErrorMessage);

                        var fullErrorMessage = string.Join("; ", errorMessages);

                        result.success = false;
                        result.error   = fullErrorMessage;
                        transaccion.Rollback();
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        result.success = false;

                        result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                    }
                }
            }

            return(result);
        }