/// <summary> /// Actualizar una cuenta. /// </summary> private async void ActualizarTapped(Object sender, System.EventArgs e) { try { CuentaManager cuentaManager = new CuentaManager(); Cuenta cuentaActualizada = new Cuenta(); #region Cargar datos fijos string moneda = string.Empty; switch (Pkr_Moneda.SelectedItem.ToString()) { case "Colones": moneda = "COL"; break; case "Dolares": moneda = "DOL"; break; default: moneda = "EUR"; break; } #endregion //Cuenta que almacena los cambios nuevos. Cuenta cuentaNueva = new Cuenta() { CUE_CODIGO = Convert.ToInt32(Txt_Codigo.Text), USU_CODIGO = App.usuarioActual.USU_CODIGO, CUE_DESCRIPCION = Txt_Descripcion.Text, CUE_MONEDA = moneda, CUE_SALDO = Convert.ToDecimal(Txt_Saldo.Text), CUE_ESTADO = Pkr_Estado.SelectedItem.ToString().Substring(0, 1) }; //Datos de la cuenta vieja. string cuentaAnterior = string.Format("Cuenta Anterior:\nDescripcion: {0}\nMoneda: {1}\nSaldo: {2}\nEstado: {3}", this.cuentaVieja.CUE_DESCRIPCION, this.cuentaVieja.CUE_MONEDA, this.cuentaVieja.CUE_SALDO, this.cuentaVieja.CUE_ESTADO); //Datos actualizados. string cuentaActual = string.Format("Cuenta Actualizada:\nDescripcion: {0}\nMoneda: {1}\nSaldo: {2}\nEstado: {3}", cuentaNueva.CUE_DESCRIPCION, cuentaNueva.CUE_MONEDA, cuentaNueva.CUE_SALDO, cuentaNueva.CUE_ESTADO); //Validar la respuesta del usuario. bool resultado = await DisplayAlert("Verifique los datos", cuentaAnterior + "\n" + cuentaActual + "\n¿Desea Continuar?", "Aceptar", "Cancelar"); if (resultado) { await DisplayAlert("Mensaje", "Cuenta actualizada correctamente", "Aceptar"); cuentaActualizada = await cuentaManager.ActualizarCuenta(cuentaNueva); Application.Current.MainPage = new MainPage(); } else /* No hacer codigo aqui. */ } { }
private async void Btn_Pagar_Clicked(object sender, EventArgs e) { try { int indexCuenta = Pkr_Cuentas.SelectedIndex; int indexServicio = Pkr_Servicios.SelectedIndex; bool BCuenta = true; bool BServicio = true; if (indexCuenta == -1) { BCuenta = false; await DisplayAlert("Alerta", "Debes seleccionar una cuenta.", "OK"); } if (indexServicio == -1) { BServicio = false; await DisplayAlert("Alerta", "Debes seleccionar un servicio.", "OK"); } if (BCuenta && BServicio) { if (!VerificaCampo(Txt_Monto.Text)) { decimal monto = Convert.ToDecimal(Txt_Monto.Text); decimal montoFinal = cuentasList[indexCuenta].CUE_SALDO - monto; if (monto > 0) { if (montoFinal >= 0) { Pago pago = new Pago() { PAG_CODIGO = 1, CUE_CODIGO = cuentasList[indexCuenta].CUE_CODIGO, SER_CODIGO = serviciosList[indexServicio].SER_CODIGO, PAG_MONEDA = cuentasList[indexCuenta].CUE_MONEDA, PAG_MONTO = monto, PAG_FECHA = DateTime.Now }; string signo = cuentasList[indexCuenta].CUE_MONEDA.Trim().Equals("DOL") ? "$" : cuentasList[indexCuenta].CUE_MONEDA.Trim().Equals("COL") ? "₡" : "€"; string msj = string.Format("Comprobación:\nServicio: {0}\nCuenta: {1}\nMonto: {2}{3:N2}\nSaldo despues del pago: {2}{4:N2}", serviciosList[indexServicio].SER_DESCRIPCION, pago.CUE_CODIGO, signo, pago.PAG_MONTO, montoFinal); bool respuesta = await DisplayAlert("Comprobación:", msj, "OK", "Cancelar"); if (respuesta) { Cuenta cuenta = cuentasList[indexCuenta]; cuenta.CUE_SALDO -= monto; await cuentaManager.ActualizarCuenta(cuenta); await pagoManager.AgregarPago(pago); await DisplayAlert("Pago", "Pago completado.", "OK"); Limpiar(); } } else { await DisplayAlert("Error", "Dinero insuficiente.\n", "OK"); } } else { await DisplayAlert("Alerta", "Debes indicar un monto valido.", "OK"); } } else { await DisplayAlert("Alerta", "Debes indicar el monto a pagar.", "OK"); } } } catch (Exception) { await DisplayAlert("Error", "Error al crear pago.", "OK"); } }
private async void CrearTranferencia(object sender, EventArgs e) { try { #region Validaciones int indexOrigen = Pkr_CuentaOrigen.SelectedIndex; int indexDestino = Pkr_CuentaDestino.SelectedIndex; int indexEstado = Pkr_Estado.SelectedIndex; string Desc = Txt_Descripcion.Text; string Monto = Txt_Saldo.Text; bool BCuentaOrigen = true; bool BCuentaDestino = true; bool BDesc = true; bool BMonto = true; bool BEstado = true; if (indexOrigen == -1) { BCuentaOrigen = false; await DisplayAlert("Alerta", "Debes seleccionar una cuenta de origen.", "OK"); } if (indexDestino == -1) { BCuentaDestino = false; await DisplayAlert("Alerta", "Debes seleccionar una cuenta de destino.", "OK"); } if (indexEstado == -1) { BCuentaDestino = false; await DisplayAlert("Alerta", "Debes seleccionar un estado.", "OK"); } if (!VerificaCampo(Desc)) { BDesc = false; await DisplayAlert("Alerta", "Ingrese una descripcion.", "OK"); } if (!VerificaCampo(Monto)) { BMonto = false; await DisplayAlert("Alerta", "Introduc seleccionar un Monto.", "OK"); } #endregion if (BMonto && BDesc && BCuentaDestino && BCuentaOrigen && BEstado) { if (indexDestino != indexOrigen) { int imonto = int.Parse(Monto); if (imonto > 0) { if (cuentaList[indexOrigen].CUE_SALDO > imonto) { if (cuentaList[indexOrigen].CUE_MONEDA.Equals(cuentaList[indexDestino].CUE_MONEDA)) { Cuenta cuentaOrigen = new Cuenta() { CUE_CODIGO = cuentaList[indexOrigen].CUE_CODIGO, CUE_SALDO = cuentaList[indexOrigen].CUE_SALDO - imonto, CUE_DESCRIPCION = cuentaList[indexOrigen].CUE_DESCRIPCION, CUE_ESTADO = cuentaList[indexOrigen].CUE_ESTADO, USU_CODIGO = cuentaList[indexOrigen].USU_CODIGO, CUE_MONEDA = cuentaList[indexOrigen].CUE_MONEDA }; Cuenta cuentaDestino = new Cuenta() { CUE_CODIGO = cuentaList[indexDestino].CUE_CODIGO, CUE_SALDO = cuentaList[indexDestino].CUE_SALDO + imonto, CUE_DESCRIPCION = cuentaList[indexDestino].CUE_DESCRIPCION, CUE_ESTADO = cuentaList[indexDestino].CUE_ESTADO, USU_CODIGO = cuentaList[indexDestino].USU_CODIGO, CUE_MONEDA = cuentaList[indexDestino].CUE_MONEDA }; Transferencia transferencia = new Transferencia() { TRA_CUENTA_DESTINO = cuentaList[indexDestino].CUE_CODIGO, TRA_CUENTA_ORIGEN = cuentaList[indexOrigen].CUE_CODIGO, TRA_FECHA = DateTime.Now, TRA_ESTADO = Pkr_Estado.SelectedItem.ToString().Substring(0, 1), TRA_CODIGO = 1, TRA_DESCRIPCION = Txt_Descripcion.Text, TRA_MONTO = imonto }; //Validar la creacion de la transferencia. bool respuesta = await DisplayAlert("Agregar transferencia", "", "Agregar", "Cancelar"); if (respuesta) { //Agregar la cuenta. transferencia = await transferenciaManager.AgregarTransferencia(transferencia); cuentaOrigen = await cuentaManager.ActualizarCuenta(cuentaOrigen); cuentaDestino = await cuentaManager.ActualizarCuenta(cuentaDestino); //Mensaje de exito. await DisplayAlert("Mensaje", "Transferencia agregada correctamente", "Aceptar"); } else /* No hacer codigo aqui. */ } { } else { await DisplayAlert("Alerta", "Cambio entre monedas, no disponible.", "OK"); } } else { await DisplayAlert("Alerta", "La cuenta de origen, no tiene los suficientes fondos.", "OK"); } } else { await DisplayAlert("Alerta", "Debes trasferir un monto valido.", "OK"); } } else { await DisplayAlert("Alerta", "Has seleccionado la misma cuenta.", "OK"); } } else { await DisplayAlert("Alerta", "Verifique los datos.", "OK"); } }