Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <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();
        }
Exemplo n.º 3
0
        /// <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");
            }
        }
Exemplo n.º 5
0
        /// <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);
            }
        }
Exemplo n.º 6
0
        /// <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();
        }
Exemplo n.º 7
0
		/// <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());
		}
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 9
0
        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());
            }
        }
Exemplo n.º 10
0
 private void LimpaListView()
 {
     lista.Items.Clear();
     seleção = null;
 }
Exemplo n.º 11
0
		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);
		}
Exemplo n.º 12
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;
        }
Exemplo n.º 13
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, 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;
        }