示例#1
0
        public void Abrir(Entidades.Relacionamento.Venda.Venda venda)
        {
            this.venda = venda;

            venda.ItensDébito.AoAdicionar += new Acesso.Comum.DbComposição<VendaDébito>.EventoComposição(ItensDébito_AoAdicionar);
            venda.ItensDébito.AoRemover += new Acesso.Comum.DbComposição<VendaDébito>.EventoComposição(ItensDébito_AoRemover);

            Carregar();
        }
示例#2
0
        private void Carregar(Venda v)
        {
            DadosVenda dv = new DadosVenda();

            dv.Abrir(v, null);
            flow.Controls.Add(dv);
            dv.Width = flow.ClientSize.Width;
            dv.Dock = DockStyle.Fill;
        }
示例#3
0
        /// <summary>
        /// Consulta os dados globais pelos modos de pagamento padrão
        /// E retorna os valores relativas a uma venda
        /// para impressão de orçamento.
        /// </summary>
        public static List<ModoPagamento> ObterModosPagamento(Venda v)
        {
            List<ModoPagamento> lista = new List<ModoPagamento>();

            foreach (string forma in DadosGlobais.Instância.Parcelamento)
            {
                lista.Add(new ModoPagamento(
                    forma,
                    -v.Saldo,
                    v.TaxaJuros));
            }

            return lista;
        }
示例#4
0
        private void Salvar(Venda v)
        {
            int códigoNfe;
            if (!int.TryParse(txtNfe.Text, out códigoNfe))
            {
                txtNfe.Focus();
                return;
            }

            int códigoCFOP;
            if (!int.TryParse(txtCFOP.Text, out códigoCFOP))
            {
                txtCFOP.Focus();
                return;
            }

            int códigoFatura;
            if (!int.TryParse(txtNumeroFatura.Text, out códigoFatura))
            {
                txtNumeroFatura.Focus();
                return;
            }

            double aliquota;
            if (!double.TryParse(txtAliquota.Text, out aliquota))
            {
                txtAliquota.Focus();
                return;
            }

            NfeVenda nota = new NfeVenda(v, códigoNfe, códigoCFOP, códigoFatura, aliquota);
            NfeVendaTxt escritorTxt = new NfeVendaTxt(nota);
            FolderBrowserDialog janela = new FolderBrowserDialog();
            DialogResult resultado = janela.ShowDialog();

            if (resultado == DialogResult.OK)
                SalvarVenda(v, códigoNfe, códigoFatura, nota, escritorTxt, janela);
        }
示例#5
0
        private void txtCódigoVenda_Validating(object sender, CancelEventArgs e)
        {
            int código;
            if (txtCódigoVenda.Text.Trim() == "")
            {
                e.Cancel = false;
                return;
            }

            bool ok = int.TryParse(txtCódigoVenda.Text, out código);

            if (!ok)
            {
                e.Cancel = true;
                btnSalvar.Enabled = false;
                return;
            }

            venda = Venda.ObterVenda(código);

            if (venda == null)
            {
                e.Cancel = true;
                btnSalvar.Enabled = false;
                return;
            }

            e.Cancel = false;
            btnSalvar.Enabled = true;
            Carregar(venda);
        }
 public SaquinhoDevolução(Venda v, Mercadoria.Mercadoria m, double qtd, double índice)
     : base(m, qtd, índice)
 {
     venda = v;
     this.índice = índice;
 }
示例#7
0
        private void SalvarVenda(Venda v, int códigoNfe, int códigoFatura, NfeVenda nota, NfeVendaTxt escritorTxt, FolderBrowserDialog janela)
        {
            string arquivo = Path.Combine(janela.SelectedPath, v.Código.ToString() + ".txt");
            if (File.Exists(arquivo))
            {
                DialogResult apagar = MessageBox.Show(this,
                    "Sobrescrever ?",
                    "Arquivo já existe",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question, 
                    MessageBoxDefaultButton.Button2);

                if (apagar == DialogResult.No)
                    return;

                File.Delete(arquivo);
            }

            if (!TentaSalvarArquivo(escritorTxt, arquivo))
                return;

            nota.Cadastrar();

            if (AoSalvarNfe != null)
                AoSalvarNfe(null, null);

            Process.Start(janela.SelectedPath);

            últimaNFe.Valor = códigoNfe;
            últimaFatura.Valor = códigoFatura;
            últimaVendaExportada.Valor = v.Código;
            txtCódigoVenda.Text = "";

            Carregar();
            txtCódigoVenda.Focus();
        }
        private static void Persistir(Venda venda)
        {
            if (venda.Cadastrado)
                venda.Atualizar();
            else
                venda.Cadastrar();

        }
        private void LançarDescontoAA(Venda venda)
        {
            if (venda.Cliente.Setor.Referente(Setor.ObterSetor(SetorSistema.AltoAtacado)))
            {
                /* Antes de 2013:
                 * Se o alto-atacadista vender 20% ou mais do valor
                 * das mercadorias de peça (que não são de peso),
                 * ele ganha 15% das mercadorias vendidas. Caso contrário,
                 * ele ganha apenas 10% de desconto das mercadorias vendidas.
                 * 
                 * Após 2013: 
                 * Desconto = 12%
                 */
                double totalÍndiceSaída;
                double totalÍndiceVendidoMenosDevolvido;
                double totalVendaPeça = 0;
                double porcentagemAtingida;
                double porcentagemDataDesconto;

                venda.Desconto = acerto.CalcularDesconto(out totalÍndiceSaída,
                    out totalÍndiceVendidoMenosDevolvido,
                    out totalVendaPeça,
                    out porcentagemAtingida,
                    out porcentagemDataDesconto);

                venda.Observações =
                        " == Cálculo do desconto == "
                        + "\nTotal índice saída:" + totalÍndiceSaída.ToString()
                        + "\nTotal índice vendido (menos devolução): " + totalÍndiceVendidoMenosDevolvido.ToString()
                        + "\nTotal vendido em peça (valor base para desconto):" + totalVendaPeça.ToString()
                        + "\nPorcentagem atingida:" + porcentagemAtingida.ToString() + " %"
                        + "\nPorcentagem desconto:" + porcentagemDataDesconto.ToString() + " %"
                        + "\nDesconto atribuído: " + venda.Desconto.ToString("C");
            }
        }
 public HistóricoRelacionamentoDevolução(Venda pai) : base(pai)
 {
     this.venda = pai;
 }
示例#11
0
 /// <summary>
 /// Ocorre ao remover uma venda.
 /// </summary>
 private void AoRemoverVenda(DbComposição<Venda> composição, Venda entidade)
 {
     if (entidade.AcertoConsignado != null && entidade.AcertoConsignado.Equals(this))
         entidade.DefinirAcertoConsignado(null);
 }
示例#12
0
 private void txtCódigoVenda_Enter(object sender, EventArgs e)
 {
     flow.Controls.Clear();
     venda = null;
 }
示例#13
0
 /// <summary>
 /// Adiciona a venda no banco de dados.
 /// </summary>
 private void AdicionarVenda(IDbCommand cmd, Venda venda)
 {
     AtualizarEntidade(cmd, venda);
 }
示例#14
0
 /// <summary>
 /// Remove a venda deste acerto no banco de dados.
 /// </summary>
 private void RemoverVenda(IDbCommand cmd, Venda venda)
 {
     AtualizarEntidade(cmd, venda);
 }
示例#15
0
 public SaquinhoVenda(Venda v, Mercadoria.Mercadoria m, double qtd, double índice)
     : base(m, qtd, índice)
 {
     venda = v;
 }
示例#16
0
        ///// <summary>
        ///// Atualiza a comissão no banco de dados.
        ///// </summary>
        //private void AtualizarComissão()
        //{
        //    IDbConnection conexão = Conexão;

        //    lock (conexão)
        //        using (IDbCommand cmd = conexão.CreateCommand())
        //        {
        //            cmd.CommandText = "UPDATE vendacredito SET comissao = " + DbTransformar(comissão)
        //                + " WHERE codigo = " + DbTransformar(código);
        //            cmd.ExecuteNonQuery();
        //        }
        //}

        #endregion

        #region Recuperação de dados

        /// <summary>
        /// Obtém os Créditos de uma venda.
        /// </summary>
        public static List<VendaCrédito> ObterCréditos(Venda venda)
        {
            List<VendaCrédito> créditos = Mapear<VendaCrédito>(
                 "SELECT codigo, descricao, valorbruto, valorliquido, data, diasdejuros, cobrarjuros, credito FROM vendacredito WHERE venda = " + DbTransformar(venda.Código));

            foreach (VendaCrédito crédito in créditos)
                crédito.venda = venda;

            return créditos;
        }
示例#17
0
        /// <summary>
        /// Verifica quais vendas podem ser quitadas, quitando-as.
        /// </summary>
        /// <param name="vendas">Vendas a serem verificadas.</param>
        /// <returns>Vendas não quitadas.</returns>
        public static Venda[] VerificarQuitação(Venda[] vendas, out double dívidaTotal)
        {
            List<Venda> pendências = new List<Venda>();

            dívidaTotal = 0;

            foreach (Venda venda in vendas)
            {
                if (!venda.ExistePagamentoPendente())
                {
                    double dívida, juros;

                    venda.CalcularDívida(out dívida, out juros);

                    if (dívida == 0)
                    {
                        //venda.Quitar();
                    }
                    else
                    {
                        pendências.Add(venda);
                        dívidaTotal += dívida;
                    }
                }
                else
                    pendências.Add(venda);
            }

            return pendências.ToArray();
        }
示例#18
0
        /// <summary>
        /// Cria nova venda.
        /// </summary>
        public static Venda CriarNovaVenda(Entidades.Pessoa.Pessoa cliente, Entidades.Pessoa.Pessoa vendedor)
        {
            Venda venda = new Venda();
            venda.Data = Entidades.Configuração.DadosGlobais.Instância.HoraDataAtual;
            venda.cliente = cliente;
            venda.vendedor = vendedor;
            //venda.Cotação = Entidades.Financeiro.Cotação.ObterCotaçãoVigente(moeda);
            //venda.Cadastrar();

            return venda;
        }
示例#19
0
 internal void CarregarVenda(long códigoVenda)
 {
     txtCódigoVenda.Text = códigoVenda.ToString();
     venda = Venda.ObterVenda(códigoVenda);
     Carregar(venda);
     btnSalvar.Enabled = true;
 }
		public HistóricoRelacionamentoVenda(Venda pai)  : base(pai)
		{
            venda = pai;
        }
示例#21
0
        /// <summary>
        /// Obtém os débitos de uma venda.
        /// </summary>
        public static List<VendaDébito> ObterDébitos(Venda venda)
        {
           List<VendaDébito> débitos = Mapear<VendaDébito>(
                "SELECT codigo, descricao, valorbruto, valorliquido, data, diasdejuros, cobrarjuros, pagamento FROM vendadebito WHERE venda = " + DbTransformar(venda.Código));

            foreach (VendaDébito débito in débitos)
                débito.venda = venda;

            return débitos;
        }
示例#22
0
 /// <summary>
 /// Constrói o item para uma venda.
 /// </summary>
 /// <param name="venda">Venda vinculada.</param>
 public VendaDébito(Venda venda)
 {
     this.venda = venda;
     this.data = DadosGlobais.Instância.HoraDataAtual;
 }
		public HistóricoVendaItem(Entidades.Mercadoria.Mercadoria mercadoria, double qtd, Venda venda, DateTime data, Entidades.Pessoa.Funcionário funcionário, double índice) : base(mercadoria, qtd, data, funcionário, índice)
		{
            this.venda = venda;
		}
示例#24
0
 /// <summary>
 /// Ocorre ao adicionar uma venda.
 /// </summary>
 private void AoAdicionarVenda(DbComposição<Venda> composição, Venda entidade)
 {
     GarantirConsistênciaAdição(entidade, composição);
     entidade.DefinirAcertoConsignado(this);
     entidade.AntesDeAtualizar += new DbManipulaçãoCancelávelHandler(AntesDeAtualizarRelacionamento);
 }