/// <summary> /// Abre a janela para cadastro de novo pagamento /// </summary> /// <param name="venda">Venda vinculada a pagamento</param> public virtual void PrepararParaCadastro(IDadosVenda venda, Entidades.Pessoa.Pessoa pessoa) { pagamento = CriarEntidade(); pagamento.Cliente = pessoa.Código; pagamento.CobrarJuros = true; if (venda != null) pagamento.Venda = venda.Código; chkCobrarJuros.Checked = pagamento.CobrarJuros; if (venda != null) { // A data inicial do pagamento é o mesmo da venda data.Value = venda.Data; pagamento.Data = data.Value; // O valor inicial do pagamento é aquele para acerto a vista na data da venda. Entidades.Relacionamento.Venda.Venda v = Entidades.Relacionamento.Venda.Venda.ObterVenda(venda.Código); if (v.Saldo < 0) { pagamento.Valor = -v.Saldo; txtValor.Double = -v.Saldo; } else { pagamento.Valor = 0; txtValor.Double = 0; } } txtValor.Focus(); }
public static IPagamento[] ObterPagamentos(IDadosVenda venda) { return Mapear<PagamentoGenérico>( string.Format( "SELECT t.*, COUNT(*) AS vendas FROM" + " ((SELECT p.codigo, p.cliente, p.valor, p.data, p.data AS vencimento, p.registradoPor, p.pendente FROM dinheiro d" + " JOIN pagamento p ON d.codigo = p.codigo" + " JOIN vinculovendapagamento v ON v.pagamento = p.codigo" + " AND v.venda = {0})" + " UNION (SELECT p.codigo, p.cliente, p.valor, p.data, p.data AS vencimento, p.registradoPor, p.pendente FROM credito cr" + " JOIN pagamento p ON cr.codigo = p.codigo" + " JOIN vinculovendapagamento v ON v.pagamento = p.codigo" + " AND v.venda = {0})" + " UNION (SELECT p.codigo, p.cliente, p.valor, p.data, n.vencimento, p.registradoPor, p.pendente FROM notapromissoria n" + " JOIN pagamento p ON n.codigo = p.codigo" + " JOIN vinculovendapagamento v ON v.pagamento = p.codigo" + " AND v.venda = {0})" + " UNION (SELECT p.codigo, p.cliente, p.valor, p.data, if(c.prorrogadopara is null, c.vencimento, c.prorrogadopara) as vencimento, p.registradoPor, p.pendente FROM cheque c" + " JOIN pagamento p ON c.codigo = p.codigo" + " JOIN vinculovendapagamento v ON v.pagamento = p.codigo" + " AND v.venda = {0}))" + " t JOIN vinculovendapagamento v ON v.pagamento = t.codigo" + " GROUP BY t.codigo, t.cliente, t.valor, t.data, t.vencimento, t.registradoPor, t.pendente", DbTransformar(venda.Código))).ToArray(); }
public new static List<Dolar> ObterPagamentos(IDadosVenda venda) { string cmd = "select dolar.*, pagamento.* from dolar " + " join pagamento on dolar.codigo=pagamento.codigo where " + " venda=" + DbTransformar(venda.Código); return Mapear<Dolar>(cmd); }
public new static List<Dinheiro> ObterPagamentos(IDadosVenda venda) { string cmd = "select cobrarJuros, pagamento.codigo, descricao, cliente, valor, data, pendente, registradopor from dinheiro " + " join pagamento on dinheiro.codigo=pagamento.codigo where " + " venda=" + DbTransformar(venda.Código); return Mapear<Dinheiro>(cmd); }
/// <summary> /// Constrói a lista de vendas mostrando um /// vetor de vendas. /// </summary> /// <param name="vendas">Vetor de vendas a ser exibido.</param> public ListarVendas(IDadosVenda[] vendas, VínculoVendaPessoa tipo) : this() { if (vendas.Length != 0) { switch (tipo) { case VínculoVendaPessoa.Cliente: lblDescrição.Text = "Abaixo estão as compras de " + vendas[0].NomeCliente; break; case VínculoVendaPessoa.Vendedor: lblDescrição.Text = "Abaixo estão as vendas de " + Entidades.Pessoa.Pessoa.AbreviarNome(vendas[0].NomeVendedor); break; default: lblDescrição.Text = "Listagem das vendas"; break; } lista.TipoExibição = tipo; lista.Carregar(vendas); } }
/// <summary> /// Quita uma venda no banco de dados. /// </summary> /// <param name="venda">Venda a ser quitada.</param> internal static void Quitar(IDadosVenda venda) { PermissãoFuncionário.AssegurarPermissão(Permissão.ManipularComissão); IDbConnection conexão = Conexão; lock (conexão) { Usuários.UsuárioAtual.GerenciadorConexões.RemoverConexão(conexão); try { using (IDbCommand cmd = conexão.CreateCommand()) { cmd.CommandText = string.Format( "UPDATE venda SET quitacao = NOW() WHERE codigo = {0}", DbTransformar(venda.Código)); cmd.ExecuteNonQuery(); } } finally { Usuários.UsuárioAtual.GerenciadorConexões.AdicionarConexão(conexão); } } }
/// <summary> /// Constrói a lista de vendas mostrando um /// vetor de vendas. /// </summary> /// <param name="controlador"> /// Controlador da base inferior que será utilizada para /// exibir a base de visualização de vendas. /// </param> /// <param name="vendas">Vetor de vendas a ser exibido.</param> public ListarVendas(ControladorBaseInferior controlador, IDadosVenda[] vendas, VínculoVendaPessoa tipo) : this(vendas, tipo) { this.controlador = controlador; btnVisualizar.Visible = true; }
public new static List<NotaPromissória> ObterPagamentos(IDadosVenda venda) { string cmd = "select cobrarJuros, pagamento.codigo, descricao, cliente, valor, data, pendente, registradopor, vencimento, prorrogadopara from notapromissoria " + " join pagamento on notapromissoria.codigo=pagamento.codigo where " + " venda=" + DbTransformar(venda.Código); return Mapear<NotaPromissória>(cmd); }
public void Carregar(IDadosVenda[] vendas) { SuspendLayout(); lista.SuspendLayout(); Visible = false; lista.Items.Clear(); hashCódigoItem.Clear(); hashListViewItemVenda.Clear(); if (vendas == null) return; double somatorioValor = AdicionarVendas(vendas); ContabilizarLegendas(vendas); InformaçõesStatus.Instância.QtdVendas = lista.Items.Count; InformaçõesStatus.Instância.ValorTotal = somatorioValor; AtualizarStatus(); AtualizarTamanhoColunas(); lista.Sort(); lista.ShowGroups = btnAgruparLegenda.Checked = configuraçãoUsuárioAgruparLegenda.Valor; lista.ResumeLayout(); Visible = true; ResumeLayout(); }
/// <summary> /// Um dos dois parametros precisa ser nulo! /// Ou recupera vendas de um cliente ou relacionadas a uma venda! /// </summary> private static Pagamento[] ObterPagamentos(Entidades.Pessoa.Pessoa cliente, IDadosVenda venda, bool somentePendente) { List<Pagamento> pagamentos = new List<Pagamento>(); if (venda != null && venda.Código == 0) return pagamentos.ToArray(); IDbConnection conexão; IDataReader leitor = null; conexão = Conexão; using (IDbCommand cmd = conexão.CreateCommand()) { cmd.CommandText = "select p.*,d.*, c.*, pr.*, o.*, dl.* from pagamento p " + " left join dinheiro d on p.codigo=d.codigo " + " left join cheque c on p.codigo=c.codigo " + " left join notapromissoria pr on p.codigo=pr.codigo " + " left join ouro o on p.codigo=o.codigo " + " left join dolar dl on p.codigo=dl.codigo "; if (cliente != null && venda != null) throw new InvalidOperationException(); if (cliente != null) { cmd.CommandText += " where cliente=" + DbTransformar(cliente.Código); if (somentePendente) cmd.CommandText += " AND pendente = 1 "; } if (venda != null) { cmd.CommandText += " where venda=" + DbTransformar(venda.Código); } lock (conexão) { try { using (leitor = cmd.ExecuteReader()) { Pagamento entidade; while (leitor.Read()) { if (!leitor.IsDBNull(totalAtributos)) { entidade = new Dinheiro(); entidade.PreencherAtributos(leitor, 0, totalAtributos); } else if (!leitor.IsDBNull(totalAtributos + Dinheiro.totalAtributos)) { entidade = new Cheque(); entidade.PreencherAtributos(leitor, 0, totalAtributos + Dinheiro.totalAtributos); } else if (!leitor.IsDBNull(totalAtributos + Dinheiro.totalAtributos + Cheque.totalAtributos)) { entidade = new NotaPromissória(); entidade.PreencherAtributos(leitor, 0, totalAtributos + Dinheiro.totalAtributos + Cheque.totalAtributos); } else if (!leitor.IsDBNull(totalAtributos + Dinheiro.totalAtributos + Cheque.totalAtributos + NotaPromissória.totalAtributos)) { entidade = new Ouro(); entidade.PreencherAtributos(leitor, 0, totalAtributos + Dinheiro.totalAtributos + Cheque.totalAtributos + NotaPromissória.totalAtributos); } else { entidade = new Dolar(); entidade.PreencherAtributos(leitor, 0, totalAtributos + Dinheiro.totalAtributos + Cheque.totalAtributos + NotaPromissória.totalAtributos + Ouro.totalAtributos); } entidade.DefinirCadastrado(); pagamentos.Add(entidade); } } } finally { if (leitor != null) leitor.Close(); } } } return pagamentos.ToArray(); }
/// <summary> /// Recupera todos os pagamentos associados a uma venda. /// </summary> public static Pagamento[] ObterPagamentos(IDadosVenda venda) { return ObterPagamentos(null, venda, false); }
private ListViewItem CriarItem(IDadosVenda venda, out double valorTotal) { ListViewItem item = new ListViewItem(venda.Data.ToString("dd/MM/yyyy", Entidades.Configuração.DadosGlobais.Instância.Cultura)); item.ImageIndex = (int)venda.Semáforo; item.Group = lista.Groups[ObterIndiceSemáforo(venda.Semáforo)]; item.SubItems.AddRange(new string[] { "", "", "", "", "", "", "", "" }); item.SubItems[colCódigo.Index].Text = venda.CódigoFormatado; item.SubItems[colControle.Index].Text = venda.Controle.HasValue ? venda.Controle.ToString() : ""; if (lista.Columns.Contains(colVendedor) && (venda.NomeVendedor != null)) item.SubItems[colVendedor.Index].Text = venda.NomeVendedor; if (lista.Columns.Contains(colCliente) && (venda.NomeCliente != null)) item.SubItems[colCliente.Index].Text = venda.NomeCliente; valorTotal = venda.Valor; item.SubItems[colValor.Index].Text = valorTotal.ToString("C", Entidades.Configuração.DadosGlobais.Instância.Cultura); item.UseItemStyleForSubItems = true; return item; }
private double AdicionarVendas(IDadosVenda[] vendas) { ListViewItem[] novosItens = new ListViewItem[vendas.Length]; int x = 0; double valorTotalGlobal = 0; foreach (IDadosVenda venda in vendas) { double valorTotal; ListViewItem item = CriarItem(venda, out valorTotal); hashListViewItemVenda.Add(item, venda); hashCódigoItem.Add(venda.Código, item); foreach (ListViewItem.ListViewSubItem subitem in item.SubItems) localizador.InserirFraseBuscável(subitem.Text, item); novosItens[x++] = item; valorTotalGlobal += valorTotal; } lista.Items.AddRange(novosItens); return valorTotalGlobal; }
private void ContabilizarLegendas(IDadosVenda[] vendas) { int totalLegendas = Enum.GetValues(typeof(SemaforoEnum)).Cast<int>().Max() + 1; int[] legendas = new int[totalLegendas]; foreach (IDadosVenda v in vendas) legendas[(int)v.Semáforo]++; LegendasContabilizadas?.Invoke(legendas); }
/// <summary> /// Obtem o número de dias de juros cobrado /// caso o pagamento seja vinculado com a venda do parâmetro. /// </summary> /// <param name="venda"></param> /// <returns></returns> public int ObterDiasJuros(IDadosVenda venda) { if (CobrarJuros) return Preço.CalcularDias(Preço.SomarDias(venda.Data, (int)venda.DiasSemJuros), ÚltimoVencimento); else return 0; }
public void Carregar(IDadosVenda venda) { Text = string.Format("Nota fiscal eletrônica da venda {0}", venda.CódigoFormatado); SaidaFiscalPdf nfe = SaidaFiscalPdf.Obter(venda.Código); Carregar(nfe.Pdf); }
public double ObterValorLíquido(IDadosVenda venda) { if (CobrarJuros) { return Preço.Corrigir(ÚltimoVencimento.Date, Preço.SomarDias(venda.Data, (int)venda.DiasSemJuros), Valor, venda.TaxaJuros); } else { return Valor; } }
public new static List<Ouro> ObterPagamentos(IDadosVenda venda) { string cmd = "select ouro.*, pagamento.* from ouro " + " join pagamento on ouro.codigo=pagamento.codigo where " + " venda=" + DbTransformar(venda.Código); return Mapear<Ouro>(cmd); }
public new static List<Cheque> ObterPagamentos(IDadosVenda venda) { ArrayList lista = new ArrayList(); string cmd = "select cheque.*, pagamento.* from cheque " + " join pagamento on cheque.codigo=pagamento.codigo where " + " venda=" + DbTransformar(venda.Código); return Mapear<Cheque>(cmd); }