Example #1
0
        /// <summary>
        /// Obtém movimentações da conta / caixa no período especificado
        /// </summary>
        private void ObterMovimentacaoPeriodo()
        {
            DateTime dataInicial = dateTimePickerInicial.Value.Date;
            DateTime dataFinal   = dateTimePickerFinal.Value.Date;

            dataFinal = dataFinal.AddMinutes(24 * 60);

            int codContaBanco = (int)codContaBancoComboBox.SelectedValue;

            IEnumerable <TotaisMovimentacaoConta> totaisMovimentacaoConta = GerenciadorMovimentacaoConta.GetInstance(null).ObterTotalMovimentacaoContaPeriodo(codContaBanco, dataInicial, dataFinal);

            totaisMovimentacaoContaBindingSource.DataSource = totaisMovimentacaoConta;
            textTotalMovimentacao.Text = totaisMovimentacaoConta.Sum(t => t.TotalMovimentacaoConta).ToString("N2");

            IEnumerable <TotalPagamentoSaida> totaisSaida   = GerenciadorSaidaPagamento.GetInstance(null).ObterTotalPagamentoSaida(dataInicial, dataFinal);
            TotalPagamentoSaida totalPagamentoSaidaDinheiro = totaisSaida.Where(t => t.CodFormaPagamentos.Equals(FormaPagamento.DINHEIRO)).FirstOrDefault();

            if (totalPagamentoSaidaDinheiro != null)
            {
                decimal trocoPorPeriodo = GerenciadorSaida.GetInstance(null).ObterTrocoPorPeriodo(dataInicial, dataFinal);
                totalPagamentoSaidaDinheiro.TotalPagamento -= trocoPorPeriodo;
            }
            totaisSaidaBindingSource.DataSource = totaisSaida;

            textTotalVendas.Text = totaisSaida.Sum(t => t.TotalPagamento).ToString("N2");

            IEnumerable <VendasCartao> vendasCartao = GerenciadorSaidaPagamento.GetInstance(null).ObterVendasCartao(dataInicial, dataFinal);

            VendasCartaoBindingSource.DataSource = vendasCartao;
            textTotalCartao.Text = vendasCartao.Sum(t => t.TotalCartao).ToString("N2");
        }
Example #2
0
 private void tb_contaBindingSource_CurrentChanged(object sender, EventArgs e)
 {
     if (codContaTextBox.Text != "")
     {
         movimentacaoContaBindingSource.DataSource = GerenciadorMovimentacaoConta.GetInstance(null).ObterPorConta(Convert.ToInt64(codContaTextBox.Text));
     }
 }
Example #3
0
        private void ListarPagamentosContasSelecionadas()
        {
            var contasExibidas = new List <Int64>();

            for (int i = 0; i < contasPessoaDataGridView.SelectedRows.Count; i++)
            {
                contasExibidas.Add((long)contasPessoaDataGridView.SelectedRows[i].Cells[0].Value);
            }
            movimentacaoContaBindingSource.DataSource = GerenciadorMovimentacaoConta.GetInstance(null).ObterPorContas(contasExibidas);
        }
Example #4
0
        /// <summary>
        /// Obtém movimentações da conta / caixa no período especificado
        /// </summary>
        private void ObterMovimentacaoPeriodo()
        {
            DateTime dataInicial = dateTimePickerInicial.Value.Date;
            DateTime dataFinal   = dateTimePickerFinal.Value.Date;

            dataFinal = dataFinal.AddDays(1).AddSeconds(-1);

            int codContaBanco = (int)codContaBancoComboBox.SelectedValue;

            IEnumerable <TotaisMovimentacaoConta> totaisMovimentacaoConta = GerenciadorMovimentacaoConta.GetInstance(null).ObterTotalMovimentacaoContaPeriodo(codContaBanco, dataInicial, dataFinal);

            totaisMovimentacaoContaBindingSource.DataSource = totaisMovimentacaoConta;
            textTotalMovimentacao.Text = totaisMovimentacaoConta.Sum(t => t.TotalMovimentacaoConta).ToString("N2");

            IEnumerable <TotalPagamentoSaida> totaisSaida   = GerenciadorSaidaPagamento.GetInstance(null).ObterTotalPagamentoSaida(dataInicial, dataFinal);
            TotalPagamentoSaida totalPagamentoSaidaDinheiro = totaisSaida.Where(t => t.CodFormaPagamentos.Equals(FormaPagamento.DINHEIRO)).FirstOrDefault();

            if (totalPagamentoSaidaDinheiro != null)
            {
                decimal trocoPorPeriodo = GerenciadorSaida.GetInstance(null).ObterTrocoPorPeriodo(dataInicial, dataFinal);
                totalPagamentoSaidaDinheiro.TotalPagamento -= trocoPorPeriodo;
            }
            totaisSaidaBindingSource.DataSource = totaisSaida;

            textTotalVendas.Text = totaisSaida.Sum(t => t.TotalPagamento).ToString("N2");

            IEnumerable <VendasCartao> vendasCartao  = GerenciadorSaidaPagamento.GetInstance(null).ObterVendasCartao(dataInicial, dataFinal);
            IEnumerable <VendasCartao> redeCredito   = vendasCartao.Where(vendas => vendas.CodCartao != BANESECARD_CREDITO && vendas.TipoCartao != "DEBITO");
            IEnumerable <VendasCartao> redeDebito    = vendasCartao.Where(vendas => vendas.TipoCartao == "DEBITO");
            IEnumerable <VendasCartao> baneseCredito = vendasCartao.Where(vendas => vendas.CodCartao == BANESECARD_CREDITO);

            vendasCartaoRede.DataSource          = RemoverDuplicados(redeCredito.Union(redeDebito));
            vendasCartaoBaneseCredito.DataSource = RemoverDuplicados(baneseCredito);

            totalCreditoRede.Text   = redeCredito.Sum(t => t.TotalCartao).ToString("N2");
            totalDebitoRede.Text    = redeDebito.Sum(t => t.TotalCartao).ToString("N2");
            totalRede.Text          = (redeCredito.Sum(t => t.TotalCartao) + redeDebito.Sum(t => t.TotalCartao)).ToString("N2");
            totalCreditoBanese.Text = baneseCredito.Sum(t => t.TotalCartao).ToString("N2");
        }
Example #5
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Confirma registro de pagamento?", "Confirmar Pagamento", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                Cursor.Current = Cursors.WaitCursor;
                int     formaPagamento = int.Parse(codFormaPagamentoComboBox.SelectedValue.ToString());
                decimal valorPagamento = Convert.ToDecimal(valorPagamentoTextBox.Text);
                decimal totalPago      = Convert.ToDecimal(totalPagamentosTextBox.Text);
                decimal faltaReceber   = Convert.ToDecimal(faltaReceberTextBox.Text);

                if (valorPagamento > faltaReceber)
                {
                    codFormaPagamentoComboBox.Focus();
                    Cursor.Current = Cursors.Default;
                    throw new TelaException("O valor do pagamento não pode ser maior que o valor a receber.");
                }

                // Adicionar todas as saídas e totais para impressão do documento fiscal
                List <SaidaPedido> listaSaidaPedido = new List <SaidaPedido>();
                List <long>        listaContas      = new List <long>();

                for (int i = contasPessoaDataGridView.SelectedRows.Count - 1; i >= 0; i--)
                {
                    listaContas.Add(Convert.ToInt64(contasPessoaDataGridView.SelectedRows[i].Cells[0].Value.ToString()));            //codConta
                    long    codSaidaTemp    = Convert.ToInt64(contasPessoaDataGridView.SelectedRows[i].Cells[1].Value.ToString());   //codSaida
                    decimal valorAVistaTemp = Convert.ToDecimal(contasPessoaDataGridView.SelectedRows[i].Cells[9].Value.ToString()); //totalAVista
                    if (listaSaidaPedido.Where(sp => sp.CodSaida.Equals(codSaidaTemp)).Count() == 0)
                    {
                        listaSaidaPedido.Add(new SaidaPedido()
                        {
                            CodSaida = codSaidaTemp, TotalAVista = valorAVistaTemp
                        });
                    }
                }


                // cupom fiscal pode ser impresso quando todas as contas associadas a uma saída estiverem selecionadas
                bool podeImprimirCF = (valorPagamento == faltaReceber);
                if (podeImprimirCF)
                {
                    foreach (SaidaPedido saidaPedido in listaSaidaPedido)
                    {
                        List <Conta> contas = (List <Conta>)GerenciadorConta.GetInstance(null).ObterPorSaida(saidaPedido.CodSaida);
                        foreach (Conta conta in contas)
                        {
                            if ((!listaContas.Contains(conta.CodConta)) || ((conta.CF != null) && !conta.CF.Trim().Equals("")))
                            {
                                podeImprimirCF = false;
                                break;
                            }
                        }
                        if (!podeImprimirCF)
                        {
                            break;
                        }
                    }
                }

                //if (formaPagamento.Equals(FormaPagamento.CARTAO) && !podeImprimirCF)
                //{
                //    Cursor.Current = Cursors.Default;
                //    throw new TelaException("Não é possível realizar o pagamento com cartão de crédito. Verifique se alguma NFe referente às contas selecionadas já foi impresso OU se todas as contas referente às saídas escolhidas estão selecionadas.");
                //}

                if (formaPagamento.Equals(FormaPagamento.DINHEIRO) || formaPagamento.Equals(FormaPagamento.DEPOSITO) || formaPagamento.Equals(FormaPagamento.CARTAO)) //&& podeImprimirCF))
                {
                    AtualizarValoresDescontosContas();

                    if (formaPagamento.Equals(FormaPagamento.DINHEIRO) || formaPagamento.Equals(FormaPagamento.DEPOSITO))
                    {
                        MovimentacaoConta movimentacao = new MovimentacaoConta();
                        movimentacao.CodConta = listaContas.ElementAt(0); // valor é irrelevante
                        if (formaPagamento.Equals(FormaPagamento.DINHEIRO))
                        {
                            movimentacao.CodContaBanco = Global.CAIXA_PADRAO;
                        }
                        else
                        {
                            movimentacao.CodContaBanco = (int)codContaBancoComboBox.SelectedValue;
                        }

                        movimentacao.CodResponsavel      = pessoa.CodPessoa;
                        movimentacao.CodTipoMovimentacao = TipoMovimentacaoConta.RECEBIMENTO_CREDIARIO;
                        movimentacao.DataHora            = DateTime.Now;
                        movimentacao.Valor = valorPagamento;

                        List <MovimentacaoConta> listaMovimentacaoConta = (List <MovimentacaoConta>)movimentacaoContaBindingSource.DataSource;
                        GerenciadorMovimentacaoConta.GetInstance(null).Inserir(movimentacao, listaContas, listaMovimentacaoConta);
                        Cursor.Current = Cursors.Default;
                        if (podeImprimirCF && MessageBox.Show("Deseja imprimir NFe/NFCe das contas selecionadas?", "Confirmar Impressão", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            SaidaPagamento saidaPagamento         = new SaidaPagamento();
                            FormaPagamento formaPagamentoDinheiro = GerenciadorFormaPagamento.GetInstance().Obter(FormaPagamento.DINHEIRO).ElementAt(0);
                            saidaPagamento.CodFormaPagamento        = formaPagamentoDinheiro.CodFormaPagamento;
                            saidaPagamento.MapeamentoFormaPagamento = formaPagamentoDinheiro.Mapeamento;
                            saidaPagamento.DescricaoFormaPagamento  = formaPagamentoDinheiro.Descricao;
                            saidaPagamento.Valor            = valorPagamento;
                            saidaPagamento.CodCartaoCredito = Global.CARTAO_LOJA;
                            //saidaPagamento.CodContaBanco


                            long codSolicitacao = GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, new List <SaidaPagamento>()
                            {
                                saidaPagamento
                            }, DocumentoFiscal.TipoSolicitacao.NFCE, false, false);
                            FrmSaidaAutorizacao frmSaidaAutorizacao = new FrmSaidaAutorizacao(listaSaidaPedido.FirstOrDefault().CodSaida, pessoa.CodPessoa, DocumentoFiscal.TipoSolicitacao.NFCE);
                            frmSaidaAutorizacao.ShowDialog();
                            frmSaidaAutorizacao.Dispose();
                        }
                        else if (!podeImprimirCF && MessageBox.Show("Deseja imprimir CRÉDITO para o cliente?", "Confirmar Impressão", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            movimentacao.Valor = valorPagamento;
                            GerenciadorSaida.GetInstance(null).ImprimirCreditoPagamento(movimentacao);
                        }
                    }
                    else if (formaPagamento.Equals(FormaPagamento.CARTAO))
                    {
                        List <SaidaPagamento> listaSaidaPagamento = new List <SaidaPagamento>();
                        //if (totalPago > 0)
                        //{
                        //    SaidaPagamento saidaPagamentoDinheiro = new SaidaPagamento();
                        //    FormaPagamento formaPagamentoDinheiro = GerenciadorFormaPagamento.GetInstance().Obter(FormaPagamento.DINHEIRO).ElementAt(0);
                        //    saidaPagamentoDinheiro.CodFormaPagamento = FormaPagamento.DINHEIRO;
                        //    saidaPagamentoDinheiro.MapeamentoFormaPagamento = formaPagamentoDinheiro.Mapeamento;
                        //    saidaPagamentoDinheiro.DescricaoFormaPagamento = formaPagamentoDinheiro.Descricao;
                        //    saidaPagamentoDinheiro.Valor = totalPago;
                        //    listaSaidaPagamento.Add(saidaPagamentoDinheiro);
                        //}

                        SaidaPagamento saidaPagamentoCartao = new SaidaPagamento();

                        int           codCartao     = Convert.ToInt32(codCartaoComboBox.SelectedValue.ToString());
                        int           parcelas      = Convert.ToInt32(parcelasTextBox.Text);
                        CartaoCredito cartaoCredito = GerenciadorCartaoCredito.GetInstance().Obter(codCartao).ElementAt(0);
                        saidaPagamentoCartao.CodFormaPagamento        = FormaPagamento.CARTAO;
                        saidaPagamentoCartao.MapeamentoFormaPagamento = cartaoCredito.Mapeamento;
                        saidaPagamentoCartao.MapeamentoCartao         = cartaoCredito.Mapeamento;
                        saidaPagamentoCartao.NomeCartaoCredito        = cartaoCredito.Nome;
                        saidaPagamentoCartao.DescricaoFormaPagamento  = cartaoCredito.Nome;
                        saidaPagamentoCartao.Valor            = valorPagamento;
                        saidaPagamentoCartao.Parcelas         = parcelas;
                        saidaPagamentoCartao.CodCartaoCredito = codCartao;
                        listaSaidaPagamento.Add(saidaPagamentoCartao);

                        if (podeImprimirCF)
                        {
                            long codSolicitacao = GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, listaSaidaPagamento, DocumentoFiscal.TipoSolicitacao.NFCE, false, false);
                            FrmSaidaAutorizacao frmSaidaAutorizacao = new FrmSaidaAutorizacao(listaSaidaPedido.FirstOrDefault().CodSaida, pessoa.CodPessoa, DocumentoFiscal.TipoSolicitacao.NFCE);
                            frmSaidaAutorizacao.ShowDialog();
                            frmSaidaAutorizacao.Dispose();
                        }


                        if (MessageBox.Show("A compra foi confirmada pela administradora do cartão selecionado?", "Confirma Cartão de Crédito", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            GerenciadorConta.GetInstance(null).QuitarContasCartaoCredito(listaContas, valorPagamento, cartaoCredito, parcelas);
                        }
                    }
                    codClienteComboBox_Leave(sender, e);
                }
            }
            habilitaBotoes(true);
            btnNovo.Focus();
        }
 private void FrmSaidaPagamentoRecebido_Load(object sender, EventArgs e)
 {
     movimentacaoPeriodoBindingSource.DataSource = GerenciadorMovimentacaoConta.GetInstance(null).ObterMovimentacaoContaPeriodo(dataInicioDateTimePicker.Value, dataFinalDateTimePicker.Value);
 }