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); }
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); }