private void rbMesAtual_CheckedChanged(object sender, EventArgs e) { dtpDataPesquisa1.Enabled = false; dtpDataPesquisa2.Enabled = false; btCarregarPesquisa.Enabled = false; label14.Enabled = true; label16.Enabled = true; label18.Enabled = true; label9.Enabled = true; lbHorasTrabalhadas.Enabled = true; lbTotalCredito.Enabled = true; lbTotalDebito.Enabled = true; lbSaldoMesAtual.Enabled = true; dataGridView1.Enabled = false; LeituraArquivo(); dataGridView1.Enabled = true; ConfiguraDataGrid(); CalculaSaldoAtual(); CalculaTempo(); lbSaldoMesAtual.Text = lbSaldoAtual.Text; lbSaldoMesAtual.ForeColor = (Metodos.PintaLabel(saldo)); }
private void btCarregarPesquisa_Click(object sender, EventArgs e) { label14.Enabled = true; label16.Enabled = true; label18.Enabled = true; label9.Enabled = true; lbHorasTrabalhadas.Enabled = true; lbTotalCredito.Enabled = true; lbTotalDebito.Enabled = true; lbSaldoMesAtual.Enabled = true; dataGridView1.Enabled = false; btCarregarPesquisa.Enabled = false; btCarregarPesquisa.Text = "Processando..."; LeituraArquivo(); dataGridView1.Enabled = true; btCarregarPesquisa.Text = "Carregar Pesquisa"; btCarregarPesquisa.Enabled = true; ConfiguraDataGrid(); CalculaTempo(); //Calcula tempo exclusivo do periodo escolhido da pesquisa saldo = totalcredito - totaldebito; lbSaldoMesAtual.Text = (24 * saldo.Days + saldo.Hours) + ":" + Math.Abs(saldo.Minutes).ToString("00"); lbSaldoMesAtual.ForeColor = (Metodos.PintaLabel(saldo)); }
public void CalculaSaldoAtual() { /*Caso o primeiro dia do arquivo texto não estiver dentro do mês atual * A lista chegará aqui sem conter nenhum elemento, então será necessário * Pegar uma referencia de saldo atual que será da última linha do arquivo*/ if (Lista.Count == 0 && TrocaDeDados.saldoatual == null) { int n = 8; string ultimalinha = File.ReadLines("bancos.txt").Last(); while (n > 0) { ultimalinha = ultimalinha.Substring(ultimalinha.IndexOf('|') + 1); n--; } TrocaDeDados.saldoatual = ultimalinha.Substring(0, ultimalinha.IndexOf('|')); } int hora = Convert.ToInt16(TrocaDeDados.saldoatual.Substring(0, TrocaDeDados.saldoatual.IndexOf(':'))); int minuto = Convert.ToInt16(TrocaDeDados.saldoatual.Substring(TrocaDeDados.saldoatual.IndexOf(':') + 1)); if (hora < 0 || TrocaDeDados.saldoatual.Substring(0, 2) == "-0")//Quando a hora for negativa 0 o "-" aparece automaticamente 1... { minuto = minuto * -1; } saldo = new TimeSpan(hora, minuto, 0); if (TrocaDeDados.saldoatual.Substring(0, 2) == "-0") { //Quando a hora for '00:MM' por não enxergar que a hora é < 0 // É nessário fazer esse if para colocar como negativo lbSaldoAtual.Text = "-" + (24 * saldo.Days + saldo.Hours) + ":" + Math.Abs(saldo.Minutes).ToString("00"); } else { lbSaldoAtual.Text = (24 * saldo.Days + saldo.Hours) + ":" + Math.Abs(saldo.Minutes).ToString("00"); } lbSaldoAtual.ForeColor = (Metodos.PintaLabel(saldo)); }
private void button1_Click(object sender, EventArgs e) { if (!ArquivoTextoVazio()) { int n = 8; string ultimalinha = File.ReadLines("bancos.txt").Last(); while (n > 0) { ultimalinha = ultimalinha.Substring(ultimalinha.IndexOf('|') + 1); n--; } TrocaDeDados.saldoatual = ultimalinha.Substring(0, ultimalinha.IndexOf('|')); int hora = Convert.ToInt16(TrocaDeDados.saldoatual.Substring(0, TrocaDeDados.saldoatual.IndexOf(':'))); int minuto = Convert.ToInt16(TrocaDeDados.saldoatual.Substring(TrocaDeDados.saldoatual.IndexOf(':') + 1)); // if (hora < 0) if (saldo.Minutes < 0)//----> Alterado em 02/04/2018 para tentar resolver o problema da conta com minutos negativos { minuto = minuto * -1; } saldo = new TimeSpan(hora, minuto, 0); lbSaldoMesAtual.Text = (24 * saldo.Days + saldo.Hours) + ":" + Math.Abs(saldo.Minutes).ToString("00"); lbSaldoMesAtual.ForeColor = (Metodos.PintaLabel(saldo)); } try { if (Convert.ToDateTime(dtpDataCadastro.Text).Date >= DateTime.Now.Date) { MessageBox.Show("Não foi possível cadastrar os dados." + Environment.NewLine + "Escolha uma data finalizada.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string diasemana; TimeSpan almoco; TimeSpan total; TimeSpan credito; TimeSpan debito; //TimeSpan debitonegativo; //transforma o valor do debito para negativo necessário para fazer a conta do saldo TimeSpan tempo; //Tempo como referencia Entrada e Saida TimeSpan entrada = TimeSpan.Parse(txtEntrada.Text); TimeSpan saida = TimeSpan.Parse(txtSaida.Text); #region MÉTODO SALVA DADOS NO ARQUIVO TXT void SalvaDados() { File.AppendAllText("bancos.txt", dtpDataCadastro.Text + "|" + diasemana + "|" + TempoParaString(entrada) + "|" + TempoParaString(almoco) + "|" + TempoParaString(saida) + "|" + TempoParaString(total) + "|" + TempoParaString(credito) + "|" + TempoParaString(debito) + "|" + TempoParaString(ProximoSaldo(saldo, debito, credito)) + "|" + TrocaDeDados.saldoanterior + Environment.NewLine); } #endregion if (cbAlmoco.Checked) { almoco = new TimeSpan(1, 0, 0); } else { almoco = new TimeSpan(0, 0, 0); } total = AnalisaTotal(AnalisaEntrada(entrada), AnalisaSaida(saida), almoco); tempo = new TimeSpan(8, 0, 0); //Tempo como referencia de entrada diasemana = ConverteDiaSemana((int)DateTime.Parse(dtpDataCadastro.Text).DayOfWeek); #region AQUI DEFINE OS VALORES DO DEBITO E DO CREDITO if (diasemana == "Sabado" || diasemana == "Domingo") { debito = new TimeSpan(0, 0, 0); credito = AnalisaSaida(saida) - AnalisaEntrada(entrada); if (cbAlmoco.Checked) { credito = credito - almoco; } } else { if (entrada.TotalMinutes != 0 && saida.TotalMinutes != 0) { if ((tempo - AnalisaEntrada(entrada)).TotalHours < 0) { credito = new TimeSpan(0, 0, 0); debito = AnalisaEntrada(entrada) - tempo;//inverte valor para ficar negativo } else { credito = tempo - AnalisaEntrada(entrada); debito = new TimeSpan(0, 0, 0); } tempo = new TimeSpan(17, 30, 0);//Tempo como referencia de entrada if ((tempo - AnalisaSaida(saida)).TotalHours < 0) { credito = credito + (AnalisaSaida(saida) - tempo);//inverte valor para ficar negativo } else { debito = debito + (tempo - AnalisaSaida(saida)); } } else { debito = new TimeSpan(8, 30, 0); credito = new TimeSpan(0, 0, 0); } } #endregion #region AQUI TROCA O SALDO ANTERIOR DO MÊS ANTERIOR PARA O MÊS ATUAL int numerolinhas = File.ReadAllLines("bancos.txt").Length; //Verifica se o dia é 16 if (Convert.ToDateTime(dtpDataCadastro.Text).Day == 16 && numerolinhas > 1) { TrocaDeDados.saldoanterior = TrocaDeDados.saldoatual; } else//Se não... { if ((Convert.ToDateTime(dtpDataCadastro.Text).Day == 17 && numerolinhas > 1)) //Verifica se é dia 17 { //Se for dia 17 verifica se o dia 16 já está cadastrado if (!VerificaDia(Convert.ToDateTime(dtpDataCadastro.Text).AddDays(-1))) { TrocaDeDados.saldoanterior = TrocaDeDados.saldoatual; } /*else//Caso negativo o saldoanterior será o mesmo do saldo anterior do mês atual * TrocaDeDados.saldoanterior = TrocaDeDados.horasbancomes;*/ } else//Se não for dia 17... { if ((Convert.ToDateTime(dtpDataCadastro.Text).Day == 18 && numerolinhas > 1)) {//Verifica se é dia 18 if (!VerificaDia(Convert.ToDateTime(dtpDataCadastro.Text).AddDays(-2))) {//Se for dia 18 e dia 16 não tiver cadastrado, verifica se o dia 17 já tinha sido cadastrado; if (!VerificaDia(Convert.ToDateTime(dtpDataCadastro.Text).AddDays(-1))) { //Caso negativo realiza mudança TrocaDeDados.saldoanterior = TrocaDeDados.saldoatual; } /* else// Caso negativo o saldoanterior será o mesmo do saldo anterior do mês atual * TrocaDeDados.saldoanterior = TrocaDeDados.horasbancomes;*/ } /*else// Caso negativo o saldoanterior será o mesmo do saldo anterior do mês atual * TrocaDeDados.saldoanterior = TrocaDeDados.horasbancomes;*/ } /*else// Caso negativo o saldoanterior será o mesmo do saldo anterior do mês atual * TrocaDeDados.saldoanterior = TrocaDeDados.horasbancomes;*/ } } #endregion if (File.Exists("bancos.txt") && !cbVerificaDados.Checked) { SalvaDados(); } else if (File.Exists("bancos.txt") && cbVerificaDados.Checked) { string msg = "Confirma os dados: " + Environment.NewLine + dtpDataCadastro.Text + " - Entrada: " + TempoParaString(entrada) + " e Saida: " + TempoParaString(saida) + " ?"; if (MessageBox.Show(msg, "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (Lista.Count != 0 && Convert.ToDateTime(dtpDataCadastro.Text) == Lista[Lista.Count - 1].Data) { msg = "O último registro salvo já contém essa data. Deseja salvar mesmo assim?"; if (MessageBox.Show(msg, "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } SalvaDados(); } else { return; } } } catch { MessageBox.Show("Verifique se o formato da hora está correto.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }