/// <summary> /// Função executada sempre que o botão de Criação/Edição de Despesa é clicado. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButtonCriarEditar_OnClick(object sender, RoutedEventArgs e) { bool statusCreateEdit = false; if (TextBoxNome.Text == "" || TextBoxDescricao.Text == "" || DatePickerData.Text == "" || TextBoxValorEur.Text == "" && TextBoxValorUsd.Text == "") { MessageBox.Show( "Por favor preencha todos os campos. No caso do Valor da Despesa, preencha apenas um campo.", "Alerta"); } else if (TextBoxId.Text == "") { // Se for para criar uma Despesa decimal valEur, valUsd; if (TextBoxValorEur.Text == "") { // Se o campo do Valor em € não estiver preenchido valUsd = decimal.Parse(TextBoxValorUsd.Text); valEur = valUsd * DolarEEuro; } else if (TextBoxValorUsd.Text == "") { // Se o campo do Valor em $ não estiver preenchido valEur = decimal.Parse(TextBoxValorEur.Text); valUsd = valEur * EuroEDolar; } else { // Se os dois campos forem preenchidos valEur = decimal.Parse(TextBoxValorEur.Text); valUsd = decimal.Parse(TextBoxValorUsd.Text); } statusCreateEdit = SoapClient.AddExpense(TextBoxNome.Text, TextBoxDescricao.Text, DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha); if (statusCreateEdit) { Despesas.Add(new Expense(Api.GetLastIdFromTable("despesas").ToString(), TextBoxNome.Text, TextBoxDescricao.Text, DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha)); TotalEur += valEur; TotalUsd += valUsd; if (UtilizadorLigado.MoedaPadrao == "EUR") { LabelTotal.Content = TotalEur + "€"; } else { LabelTotal.Content = TotalUsd + "$"; } } } else { // Se for para atualizar uma Despesa decimal valEur, valUsd; if (TextBoxValorEur.Text == "") { // Se o campo do Valor em € não estiver preenchido valUsd = decimal.Parse(TextBoxValorUsd.Text); valEur = valUsd * DolarEEuro; } else if (TextBoxValorUsd.Text == "") { // Se o campo do Valor em $ não estiver preenchido valEur = decimal.Parse(TextBoxValorEur.Text); valUsd = valEur * EuroEDolar; } else { // Se os dois campos forem preenchidos valEur = decimal.Parse(TextBoxValorEur.Text); valUsd = decimal.Parse(TextBoxValorUsd.Text); } statusCreateEdit = SoapClient.UpdateExpense(TextBoxId.Text, TextBoxNome.Text, TextBoxDescricao.Text, DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha); Expense despesaEditar = Despesas.FirstOrDefault(d => d.Id == TextBoxId.Text); if (despesaEditar != null && statusCreateEdit) { Despesas.Remove(despesaEditar); TotalEur -= despesaEditar.ValEur; TotalUsd -= despesaEditar.ValUsd; Despesas.Add(new Expense(TextBoxId.Text, TextBoxNome.Text, TextBoxDescricao.Text, DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha)); TotalEur += valEur; TotalUsd += valUsd; if (UtilizadorLigado.MoedaPadrao == "EUR") { LabelTotal.Content = TotalEur + "€"; } else { LabelTotal.Content = TotalUsd + "$"; } } } // Se não criou/editou com sucesso sai if (!statusCreateEdit) { return; } TextBoxId.Text = ""; TextBoxNome.Text = ""; TextBoxDescricao.Text = ""; DatePickerData.Text = ""; TextBoxValorEur.Text = ""; TextBoxValorUsd.Text = ""; }