private void ConstruirPainelComCotação() { try { if (painelFlutuante == null) ConstruirPainel(); if (moeda != null) { últimaCotação = Entidades.Financeiro.Cotação.ObterCotaçãoVigente(moeda); if (iniciarValorAtual && !ValorDefinido) AtribuirCotação(últimaCotação); } else últimaCotação = null; } catch (Entidades.Financeiro.Cotação.CotaçãoInexistente) { txt.Text = ""; MessageBox.Show( ParentForm, "Não existe nenhuma cotação cadastrada para a moeda " + moeda.Nome + ".", "Cotação - " + moeda.Nome, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (Exception e) { try { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); } catch { } MessageBox.Show("Não foi possível carregar as cotações. O seguinte erro ocorreu:\n\n" + e.ToString(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Dispara a nova cotação escolhida só não já tiver sido disparada. /// </summary> private void DispararEscolheuCotação() { Entidades.Financeiro.Cotação escolha = Cotação; if (escolha != null) txt.Double = escolha.Valor; if ((escolha != últimaEscolha) && (EscolheuCotação != null)) EscolheuCotação(escolha); últimaEscolha = escolha; IndicarCotação(); }
/// <summary> /// Mostra a cotação vigente. /// </summary> private void ExibirCotaçãoVigente() { try { double variação; cotação = Entidades.Financeiro.Cotação.ObterCotaçãoVigente(moeda); if (cotação.Data.HasValue) lblAtualização.Text = string.Format( "Atualizado por {0} em {1:dd/MM/yy} às {1:HH:mm}.", cotação.Funcionário.PrimeiroNome, cotação.Data.Value); else lblAtualização.Text = ""; txtCotação.Visible = false; txtCotação.Double = cotação.Valor; txtCotação.BackColor = BackColor; lblValor.Text = cotação.ValorFormatado; lblValor.Visible = true; try { variação = cotação.CalcularVariaçãoPercentual(); if (!double.IsInfinity(variação)) { lblVariação.Text = string.Format("{0}{1:##0.00}%", variação >= 0 ? "+" : "", variação * 100); if (variação >= 0) { picVariação.Image = Resource.VariaçãoPositiva; lblVariação.ForeColor = Color.Green; } else { picVariação.Image = Resource.VariaçãoNegativa; lblVariação.ForeColor = Color.Red; } } else { lblVariação.Text = ""; picVariação.Image = null; } } catch { lblVariação.Text = ""; picVariação.Image = null; } } catch (Entidades.Financeiro.Cotação.CotaçãoInexistente) { lblAtualização.Text = "Cotação nunca registrada."; txtCotação.Text = ""; lblValor.Text = "N/D"; lblVariação.Text = ""; picVariação.Image = null; } finally { //txtCotação.ReadOnly = true; lnkAtualizar.Text = "Editar"; lnkAtualizar.Enabled = PermissãoFuncionário.ValidarPermissão(Permissão.EditarCotação); lnkCancelar.Visible = false; } }
/// <summary> /// Atualiza exibição de preço. /// </summary> private void AtualizarPreço() { if (mercadoria != null) { // Atacado mercadoria.TabelaPreço = Tabela.ObterTabela(3); cotação = Entidades.Financeiro.Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(MoedaSistema.Ouro)); lblPreçoÁVistaAtacado.Text = CalcularPreço(dias[0]); lblPreço30Atacado.Text = CalcularPreço(dias[1]); lblPreço30x60Atacado.Text = CalcularPreço(dias[2]); lblPreço30x60x90Atacado.Text = CalcularPreço(dias[3]); // Decora as porcentagens double taxa30Dias = CalcularPreço(dias[1]) / CalcularPreço(dias[0]); double taxa30x60Dias = CalcularPreço(dias[2]) / CalcularPreço(dias[0]); double taxa30x60x90Dias = CalcularPreço(dias[3]) / CalcularPreço(dias[0]); // Consignado mercadoria.TabelaPreço = Tabela.ObterTabela(2); cotação = Entidades.Financeiro.Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(5)); lblPreçoÁVistaConsignado.Text = CalcularPreço(dias[0]); lblPreço30Consignado.Text = CalcularPreço(dias[1]); lblPreço30x60Consignado.Text = CalcularPreço(dias[2]); lblPreço30x60x90Consignado.Text = CalcularPreço(dias[3]); // Índice lblÍndiceÁVista.Text = mercadoria.ÍndiceArredondado.ToString(); lblÍndice30.Text = Math.Round(mercadoria.ÍndiceArredondado * taxa30Dias, 2).ToString(); lblÍndice30x60.Text = Math.Round(mercadoria.ÍndiceArredondado * taxa30x60Dias, 2).ToString(); lblÍndice30x60x90.Text = Math.Round(mercadoria.ÍndiceArredondado * taxa30x60x90Dias, 2).ToString(); //lblCotação.Text = "* Cotação: " + // (cotação != null ? cotação.Valor.ToString("C", DadosGlobais.Instância.Cultura) : "Informação não disponível"); //lblCotação.Text = "; Tabela: " + // (mercadoria.TabelaPreço != null ? mercadoria.TabelaPreço.Nome : "Desconhecida"); } }
/// <summary> /// Substitui a cotação existente. /// </summary> private void SubstituirCotação() { AguardeDB.Mostrar(); try { cotação.Descadastrar(); cotação = null; CadastrarNovaCotação(); } finally { AguardeDB.Fechar(); if (cotação == null) MessageBox.Show( ParentForm, "Não foi possível cadastrar a nova cotação, porém a anterior foi removida.", string.Format("{0} - Cotação", moeda.Nome), MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Cadastra nova cotação no banco de dados. /// </summary> private void CadastrarNovaCotação() { try { if (!Entidades.Financeiro.Cotação.VerificarValor(moeda, txtCotação.Double)) { if (MessageBox.Show( ParentForm, string.Format("O valor {0} para a cotação de {1} encontra-se distante dos últimos valores registrados.\n\nEste valor está correto?", txtCotação.Double, moeda.Nome), string.Format("{0} - Cotação", moeda.Nome), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { txtCotação.Focus(); txtCotação.SelectAll(); return; } } cotação = Entidades.Financeiro.Cotação.RegistrarCotação(moeda, txtCotação.Double); } catch (Exception erro) { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(erro); AguardeDB.Suspensão(true); MessageBox.Show( ParentForm, "Não foi possível atualizar a cotação.", string.Format("{0} - Cotação", moeda.Nome), MessageBoxButtons.OK, MessageBoxIcon.Error); } ExibirCotaçãoVigente(); }
/// <summary> /// Seleciona um valor específico, se existir. /// </summary> /// <param name="valor">Valor a ser selecionado.</param> public void Selecionar(double valor) { if (emPréCarga) return; UseWaitCursor = true; try { ListViewItem itemEncontrado; if (hashValorListViewItem == null) CarregarItens(DadosGlobais.Instância.HoraDataAtual); if (hashValorListViewItem.TryGetValue(valor, out itemEncontrado)) { itemEncontrado.Selected = true; itemEncontrado.EnsureVisible(); seleção = hashListViewItemCotação[itemEncontrado]; } else { lista.SelectedItems.Clear(); seleção = null; } } catch (Exception e) { MessageBox.Show( ParentForm, "Ocorreu o seguinte erro enquanto selecionava-se um valor:\n\n" + e.ToString(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); try { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); } catch { } seleção = null; } finally { UseWaitCursor = false; } if (SelectedIndexChanged != null) this.SelectedIndexChanged(this, new EventArgs()); }
/// <summary> /// Ocorre ao mudar a seleção. /// </summary> private void lista_SelectedIndexChanged(object sender, System.EventArgs e) { if (lista.SelectedItems.Count == 1) seleção = hashListViewItemCotação[lista.SelectedItems[0]]; else seleção = null; if (SelectedIndexChanged != null) this.SelectedIndexChanged(sender, e); }
public void SelecionarPrimeiro() { if (InvokeRequired) { SelecionarPrimeiroCallback método = new SelecionarPrimeiroCallback(SelecionarPrimeiro); BeginInvoke(método); } else { lista.SelectedItems.Clear(); if (lista.Items.Count != 0) { lista.Items[0].Selected = true; seleção = hashListViewItemCotação[lista.Items[0]]; } else seleção = null; if (SelectedIndexChanged != null) this.SelectedIndexChanged(this, new EventArgs()); if (ListaDoubleClick != null) ListaDoubleClick(this, new EventArgs()); } }
private void LimpaListView() { lista.Items.Clear(); seleção = null; }
private bool CarregarItens(DateTime dia) { if (emPréCarga) return false; Console.WriteLine(" Obtendo cotações até dia " + dia.ToString()); Entidades.Financeiro.Cotação[] cotações = null; UseWaitCursor = true; try { if (moeda != null) cotações = Entidades.Financeiro.Cotação.ObterListaCotaçõesAtéDia(moeda, dia); else cotações = new Entidades.Financeiro.Cotação[0]; seleção = null; PreencherListView(cotações); } catch (Exception e) { MessageBox.Show( ParentForm, "Não foi possível carregar lista de cotações. O seguinte erro ocorreu:\n\n" + e.ToString(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); try { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); } catch { } } finally { UseWaitCursor = false; } return (cotações != null && cotações.Length > 0); }
/// <summary> /// Registra nova a cotação no banco de dados, em nome do usuário atual e na data atual. /// </summary> public static Cotação RegistrarCotação(Moeda moeda, double valor) { Entidades.Financeiro.Cotação novaEntidade; // Cria nova entidade novaEntidade = new Entidades.Financeiro.Cotação (); novaEntidade.Data = DadosGlobais.Instância.HoraDataAtual; novaEntidade.Funcionário = Pessoa.Funcionário.FuncionárioAtual.Código; novaEntidade.Valor = valor; novaEntidade.Moeda = moeda; novaEntidade.Cadastrar(); return novaEntidade; }
/// <summary> /// Registra nova a cotação no banco de dados, em nome do usuário atual e na data atual. /// </summary> public static Cotação RegistrarCotação(Moeda moeda, double valor, DateTime data) { Entidades.Financeiro.Cotação novaEntidade; // Cria nova entidade novaEntidade = new Entidades.Financeiro.Cotação(); novaEntidade.Data = data; novaEntidade.Funcionário = Pessoa.Funcionário.FuncionárioAtual.Código; novaEntidade.Valor = valor; novaEntidade.Moeda = moeda; novaEntidade.Cadastrar(); return novaEntidade; }