Ejemplo n.º 1
0
        public BaseResponse <string> updateCuentasBancarias(List <CuentaBancariaClienteResponse> model, int clienteId)
        {
            BaseResponse <string> result = new BaseResponse <string>();

            using (MesaDineroContext context = new MesaDineroContext())
            {
                using (var transaccion = context.Database.BeginTransaction())
                {
                    try
                    {
                        Tb_MD_Pre_Clientes cliente = null;
                        cliente = context.Tb_MD_Pre_Clientes.FirstOrDefault(x => x.idPreCliente == clienteId);
                        if (cliente == null)
                        {
                            throw new Exception(ErroresValidacion.ClienteNoExiste);
                        }

                        List <CuentaBancariaClienteResponse> inserts = new List <CuentaBancariaClienteResponse>();
                        inserts = model.Where(x => x.codigo == 0 && x.estado == 1).ToList();

                        foreach (var i in inserts)
                        {
                            Tb_MD_ClientesDatosBancos cuenta = new Tb_MD_ClientesDatosBancos();
                            cuenta.vBanco          = i.banco;
                            cuenta.vMoneda         = i.moneda;
                            cuenta.vNroCuenta      = i.nroCuenta;
                            cuenta.vCCI            = i.nroCCI;
                            cuenta.iTipoCuenta     = i.tipoCuenta;
                            cuenta.vEstadoRegistro = EstadoRegistroTabla.Activo;
                            cuenta.dFechaCreacion  = DateTime.Now;
                            cuenta.vSecredId       = Guid.NewGuid();
                            cuenta.iIdCliente      = clienteId;
                            cuenta.vTipoPersona    = cliente.vTipoCliente;
                            cuenta.vNroDocumento   = cliente.vNroDocumento;

                            context.Tb_MD_ClientesDatosBancos.Add(cuenta);
                        }

                        List <Tb_MD_ClientesDatosBancos> cuentas = new List <Tb_MD_ClientesDatosBancos>();
                        cuentas = context.Tb_MD_ClientesDatosBancos.Where(x => x.iIdCliente == clienteId && x.vEstadoRegistro == EstadoRegistroTabla.Activo).ToList();

                        foreach (var c in cuentas)
                        {
                            CuentaBancariaClienteResponse u = null; u = model.Where(x => x.codigo == c.iIdDatosBank).FirstOrDefault();
                            if (u != null)
                            {
                                c.vEstadoRegistro = u.estado;
                            }
                        }

                        context.SaveChanges();
                        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.ex = ex;
                        transaccion.Rollback();
                        result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 2
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);
        }