private void verificarRetiro() { string cedula = textCedulaRetiro.Text; long cantidad = (long)Convert.ToUInt64(textCantidadRetiro.Text); //si el integrador no encuentra la cuenta, devuelve un objeto nulo cuenta = Request.getCuenta(Convert.ToInt32(textCuentaRetiro.Text)); cliente = Request.getCliente(cedula); if (cuenta == null) { setLabelVisibility(labelCuentaErroneaRetiro, true); setPicVisibility(loadingPic, false); } else if (cliente == null) { setLabelVisibility(labelCedulaErroneaRetiro, true); setPicVisibility(loadingPic, false); } else { //Las condiciones de estos ifs se deben remplazar por los codigos de error que devolvera el backend //si la cedula ingresada no es igual a la de la cuenta recibida if (cuenta.CedulaCliente != cedula) { setLabelVisibility(personaNoAutorizadaLabel, true); setPicVisibility(loadingPic, false); } //si la cuenta no tiene balance disponible else if (cuenta.Balance < cantidad) { setLabelVisibility(balanceNoSuficienteLabel, true); setPicVisibility(loadingPic, false); } //si todo esta bien, se confirma el retiro else { setPicVisibility(loadingPic, false); setBtnVisibility(terminarRetirobtn, true); SetText(cliente.Nombre + " " + cliente.Apellido, nombreclienteLabel); SetText(Convert.ToString(cliente.FechaNacimiento.Date.ToString("d")), fechaNacimientoLabel); SetText(cliente.Nacionalidad, nacionalidadLabel); setLabelVisibility(fechaNacimientoFijaLabel, true); setLabelVisibility(nombreClienteFijoLabel, true); setLabelVisibility(nacionalidadFijaLabel, true); setLabelVisibility(infoClienteHeadingLabel, true); setImage(pictureBoxFotoCliente, cliente.FotoPerfil); setPicVisibility(pictureBoxFotoCliente, true); //Cantidad de billetes disponibles papeletasDisponibles = Query.getCash(); //Cantidad que la cajera debe devolver de cada uno, en base papeletasDevolver = Helpers.ReturnMoney(Convert.ToInt64(textCantidadRetiro.Text), papeletasDisponibles); //Muestra la distribucion de efectivo mostrarPapeletas(papeletasDevolver); setPicVisibility(pictureBox1, true); setPicVisibility(pictureBox2000, true); setLabelVisibility(devueltaHeadingLabel, true); } } }
//Cuando el boton de verificar deposito es clikeado private async void btnDeposito_Click(object sender, EventArgs e) { //at the beginning, nothing is missing bool missing = false; //Makes sure all warning labels are not visible labelCantidadErronea.Visible = false; labelAcumuladoErroneo.Visible = false; labelDatosFaltantes.Visible = false; labelDepositoExitoso.Visible = false; labelDepositoProblema.Visible = false; labelCedulaErronea.Visible = false; long tempParse; //if nothing has been written if (textCedula.Text.Equals("") || textCantidad.Text.Equals("") || textCuenta.Text.Equals("")) { labelDatosFaltantes.Visible = true; missing = true; } //verifica que campos sean numericos if (!missing) { missing = false; if (!Int64.TryParse(textCuenta.Text, out tempParse)) { labelCuentaErronea.Visible = true; missing = true; } if (!Int64.TryParse(textCedula.Text, out tempParse)) { labelCedulaErronea.Visible = true; missing = true; } if ((!Int64.TryParse(textCantidad.Text, out tempParse))) { labelCantidadErronea.Visible = true; missing = true; } } //diccionario para colocar la cantidad de papeletas de cada tipo papeletas = new Dictionary <int, int>(); //si no falta nada if (!missing) { missing = false; papeletas.Add(1, Convert.ToInt16(papeletasTabla.Rows[0].Cells[0].Value)); papeletas.Add(5, Convert.ToInt16(papeletasTabla.Rows[0].Cells[1].Value)); papeletas.Add(10, Convert.ToInt16(papeletasTabla.Rows[0].Cells[2].Value)); papeletas.Add(20, Convert.ToInt16(papeletasTabla.Rows[0].Cells[3].Value)); papeletas.Add(25, Convert.ToInt16(papeletasTabla.Rows[0].Cells[4].Value)); papeletas.Add(50, Convert.ToInt16(papeletasTabla.Rows[0].Cells[5].Value)); papeletas.Add(100, Convert.ToInt16(papeletasTabla.Rows[0].Cells[6].Value)); papeletas.Add(200, Convert.ToInt16(papeletasTabla.Rows[0].Cells[7].Value)); papeletas.Add(500, Convert.ToInt16(papeletasTabla.Rows[0].Cells[8].Value)); papeletas.Add(1000, Convert.ToInt16(papeletasTabla.Rows[0].Cells[9].Value)); papeletas.Add(2000, Convert.ToInt16(papeletasTabla.Rows[0].Cells[10].Value)); //total de papeletas, acumulador int acumuladoPapeleta = 0; foreach (KeyValuePair <int, int> i in papeletas) { acumuladoPapeleta += i.Value * (i.Key); } //si la cantidad de papeletas no coincide con cantidad introducida if (acumuladoPapeleta != Convert.ToInt16(textCantidad.Text)) { labelAcumuladoErroneo.Visible = true; missing = true; } } //si llego a este punto y no hay nada faltante y todo concuerda, se procede a hacer el deposito if (!missing) { //Starts loading loadingPic.Visible = true; //Atributos del objeto long monto = Convert.ToInt64(textCantidad.Text); int cuentaId = Convert.ToInt16(textCuenta.Text); string cedula = textCedula.Text; string concepto = textConcepto.Text; //Primero objeto cuenta, hace llamada asincrona cuenta = await getCuentaAsync(cuentaId); //si la cuenta no existe if (cuenta == null) { labelCuentaErronea.Visible = true; } else { //Shows info about the account //Sets heading visible labelInfoCuentaHeading.Visible = true; labelBalanceFija.Visible = true; labelMonedaFija.Visible = true; labelTipoCuentaFijo.Visible = true; labelCedulaPropietarioFijo.Visible = true; labelMoneda.Text = cuenta.Moneda; labelMoneda.Visible = true; labelBalance.Text = "RD$" + Convert.ToString(cuenta.Balance); labelBalance.Visible = true; labelCedulaPropietario.Text = cuenta.CedulaCliente; labelCedulaPropietario.Visible = true; labelTipoCuenta.Text = Convert.ToString(cuenta.Tipo); labelTipoCuenta.Visible = true; //Boton para terminar el deposito, ya que se verifico que todo esta correcto btnTerminarDeposito.Visible = true; } //Se termina el loading loadingPic.Visible = false; } }