public MovimentacaoVendas PesquisarMovimentoBaixaNova(int receitasDespesasBaixasId)
        {
            DataTable dtMovimento = new DataTable();

            dtMovimento = conexao.Pesquisar(string.Format("{0} WHERE M.ReceitasDespesasBaixasId = {1}", sqlDefault, receitasDespesasBaixasId));

            if (dtMovimento != null && dtMovimento.Rows.Count > 0)
            {
                var objMovimentoTemp = new MovimentacaoVendas()
                {
                    MovimentacaoVendasId = Convert.ToInt32(dtMovimento.Rows[0]["MovimentacaoVendasId"]),
                    CaixaId            = Convert.ToInt32(dtMovimento.Rows[0]["CaixaId"]),
                    DataHora           = Convert.ToDateTime(dtMovimento.Rows[0]["DataHora"]),
                    Observacao         = dtMovimento.Rows[0]["Observacao"].ToString(),
                    StatusMovimentacao = dtMovimento.Rows[0]["StatusMovimentacao"].ToString(),
                    Tipo  = dtMovimento.Rows[0]["Tipo"].ToString(),
                    Valor = Convert.ToDecimal(dtMovimento.Rows[0]["Valor"]),
                    ReceitasDespesasId      = Convert.ToInt32(dtMovimento.Rows[0]["ReceitasDespesasId"]),
                    ReceitasDespesasBaixaId = !string.IsNullOrEmpty(dtMovimento.Rows[0]["ReceitasDespesasBaixaId"].ToString()) ? Convert.ToInt32(dtMovimento.Rows[0]["ReceitasDespesasBaixaId"]) : 0,
                };
                return(objMovimentoTemp);
            }
            else
            {
                return(null);
            }
        }
        //Baixa Nova
        private List <SqlParametros> PreencheCondicoesReceitasDespesasBaixa(MovimentacaoVendas movimentacaoVendas)
        {
            List <SqlParametros> lstParametrosCondicionais = new List <SqlParametros>();

            lstParametrosCondicionais.Add(new SqlParametros("ReceitasDespesasBaixaId", movimentacaoVendas.ReceitasDespesasBaixaId));

            return(lstParametrosCondicionais);
        }
        private List <SqlParametros> PreencheCondicoesMovimento(MovimentacaoVendas movimentacaoVendas)
        {
            List <SqlParametros> lstParametrosCondicionais = new List <SqlParametros>();

            lstParametrosCondicionais.Add(new SqlParametros("MovimentacaoVendasId", movimentacaoVendas.MovimentacaoVendasId));

            return(lstParametrosCondicionais);
        }
        private List <SqlParametros> PreencheParametros(MovimentacaoVendas movimentacaoVendas)
        {
            List <SqlParametros> lstParametros = new List <SqlParametros>();

            if (!movimentacaoVendas.DataHora.ToString().Contains("01/01/0001") && !movimentacaoVendas.DataHora.ToString().Contains("1/1/0001"))
            {
                lstParametros.Add(new SqlParametros("DataHora", movimentacaoVendas.DataHora.ToString("yyyy-MM-dd HH:mm:ss")));
            }

            if (movimentacaoVendas.ReceitasDespesasId > 0)
            {
                lstParametros.Add(new SqlParametros("ReceitasDespesasId", movimentacaoVendas.ReceitasDespesasId));
            }

            lstParametros.Add(new SqlParametros("Valor", movimentacaoVendas.Valor.ToString().Replace(",", ".")));
            lstParametros.Add(new SqlParametros("Tipo", movimentacaoVendas.Tipo));
            lstParametros.Add(new SqlParametros("StatusMovimentacao", movimentacaoVendas.StatusMovimentacao));
            lstParametros.Add(new SqlParametros("Observacao", movimentacaoVendas.Observacao));

            if (movimentacaoVendas.CaixaId > 0)
            {
                lstParametros.Add(new SqlParametros("CaixaId", movimentacaoVendas.CaixaId));
            }

            if (movimentacaoVendas.TransferenciaSaldoClientesId > 0)
            {
                lstParametros.Add(new SqlParametros("TransferenciaSaldoClientesId", movimentacaoVendas.TransferenciaSaldoClientesId));
            }

            if (movimentacaoVendas.ReceitasDespesasBaixaId > 0)
            {
                lstParametros.Add(new SqlParametros("ReceitasDespesasBaixaId", movimentacaoVendas.ReceitasDespesasBaixaId));
            }

            return(lstParametros);
        }
        public MovimentacaoVendas PesquisarMovimento(int receitasDespesasId)
        {
            Conexao conexao = new Conexao();

            string UltimoMovimentoDaReceita = conexao.ExecuteScalar("SELECT MAX(MovimentacaoVendasId) AS MovimentacaoVendasId FROM MovimentacaoVendas WHERE ReceitasDespesasId = " + receitasDespesasId);

            if (!string.IsNullOrEmpty(UltimoMovimentoDaReceita))
            {
                DataTable dtMovimento = new DataTable();
                dtMovimento = conexao.Pesquisar(string.Format("{0} WHERE M.MovimentacaoVendasId = {1}", sqlDefault, UltimoMovimentoDaReceita));

                if (dtMovimento != null && dtMovimento.Rows.Count > 0)
                {
                    var movimentacaoVendas = new MovimentacaoVendas()
                    {
                        MovimentacaoVendasId = Convert.ToInt32(dtMovimento.Rows[0]["MovimentacaoVendasId"]),
                        CaixaId            = Convert.ToInt32(dtMovimento.Rows[0]["CaixaId"]),
                        DataHora           = Convert.ToDateTime(dtMovimento.Rows[0]["DataHora"]),
                        Observacao         = dtMovimento.Rows[0]["Observacao"].ToString(),
                        StatusMovimentacao = dtMovimento.Rows[0]["StatusMovimentacao"].ToString(),
                        Tipo  = dtMovimento.Rows[0]["Tipo"].ToString(),
                        Valor = Convert.ToDecimal(dtMovimento.Rows[0]["Valor"]),
                        ReceitasDespesasId = Convert.ToInt32(dtMovimento.Rows[0]["ReceitasDespesasId"]),
                    };
                    return(movimentacaoVendas);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            if (clienteId.Equals(0))
            {
                MessageBox.Show("Por favor, informe o cliente!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                btnPesquisaCliente.Focus();
                return;
            }

            if (Convert.ToDecimal(txtValor.Text) <= 0)
            {
                MessageBox.Show("Por favor, informe o valor!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtValor.Focus();
                return;
            }

            if (txtSenhaFuncionario.Visible)
            {
                if (string.IsNullOrEmpty(lblNomeFuncionario.Text))
                {
                    MessageBox.Show("Por favor, informe a senha do funcionário!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtSenhaFuncionario.Focus();
                    return;
                }
            }


            //Acho que aqui só uma linha serve
            int ultimaAbertura = caixaNegocios.VerificarSeCaixaEstaAberto();

            if (ultimaAbertura.Equals(0))
            {
                MessageBox.Show("Por favor, Efetue a abertura do caixa!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //if (objPermissaoInfo.PermSalv)
            //{
            decimal saldoAtual = saldoClientesNegocios.PesquisarSaldoCliente(clienteId);

            decimal SaldoAposOperacao = 0;

            if (cbbOperacao.Text.Equals("Somar"))
            {
                SaldoAposOperacao = saldoAtual + Convert.ToDecimal(txtValor.Text);
            }
            else
            {
                SaldoAposOperacao = saldoAtual - Convert.ToDecimal(txtValor.Text);
            }

            if (SaldoAposOperacao < 0)
            {
                MessageBox.Show("Não é possivel efetuar a operação, saldo após a operação será negativo!\n\nSaldo Atual: " + saldoAtual.ToString("N2") + "\nValor da operação: " + txtValor.Text + "\nApós operação: " + SaldoAposOperacao.ToString("N2"), "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else
            {
                if (MessageBox.Show("Saldo atual: " + saldoAtual.ToString("N2") + "\n\nValor da operação: " + txtValor.Text + "\n\nApós operação: " + SaldoAposOperacao.ToString("N2") + "\n\n\nConfirma a operação?", "Pergunta do Sistema", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    SaldoClientes saldoClientes = new SaldoClientes();

                    saldoClientes.ClientesId    = clienteId;
                    saldoClientes.FuncionarioId = funcionarioId;
                    if (!string.IsNullOrEmpty(txtObservacao.Text.TrimEnd().TrimStart()))
                    {
                        saldoClientes.Observacao = "Saldo lançado manualmente - " + txtObservacao.Text;
                    }
                    else
                    {
                        saldoClientes.Observacao = "Saldo lançado manualmente";
                    }
                    saldoClientes.Operacao = cbbOperacao.Text.Equals("Somar") ? 1 : 2;  // 1 = Somar    2 = Subtrair
                    saldoClientes.Valor    = cbbOperacao.Text.Equals("Somar") ? Convert.ToDecimal(txtValor.Text) : Convert.ToDecimal(txtValor.Text) * (-1);
                    saldoClientes.DataHora = DateTime.Now;
                    saldoClientes.CaixaId  = caixaNegocios.VerificarSeCaixaEstaAberto();

                    // Aqui grava o saldo do cliente
                    if (saldoClientes.Operacao == 1)
                    {
                        saldoClientesNegocios.Inserir(saldoClientes);
                    }
                    else
                    {
                        saldoClientesNegocios.DescontarSaldoCliente(saldoClientes);
                    }


                    // Aqui grava a movimentação de vendas
                    int ultimoLancamentoSaldoID           = conexao.RetornarUltimoId("SaldoClientes", "SaldoClientesId");
                    MovimentacaoVendas movimentacaoVendas = new MovimentacaoVendas();

                    movimentacaoVendas.MovimentacaoVendasId = ultimoLancamentoSaldoID;
                    movimentacaoVendas.DataHora             = DateTime.Now;

                    if (cbbOperacao.Text.Equals("Somar"))
                    {
                        movimentacaoVendas.Tipo       = "R";
                        movimentacaoVendas.Observacao = "Saldo lançado para o cliente " + txtCliente.Text;
                    }
                    else
                    {
                        movimentacaoVendas.Tipo       = "D";
                        movimentacaoVendas.Observacao = "Saldo lançado para o cliente " + txtCliente.Text;
                    }
                    movimentacaoVendas.StatusMovimentacao = "N";
                    movimentacaoVendas.Valor = Convert.ToDecimal(txtValor.Text);
                    movimentacaoVendas.ReceitasDespesasId   = 0;
                    movimentacaoVendas.MovimentacaoVendasId = caixaNegocios.VerificarSeCaixaEstaAberto();

                    movimentacaoVendasNegocios.InserirNovo(movimentacaoVendas);


                    // Aqui grava a movimentação do caixa
                    int ultimoId = conexao.RetornarUltimoId("MovimentacaoVendas", "MovimentacaoVendasId");
                    movimentacaoCaixaNegocios.MovimentoCaixa(ultimoId, cbbOperacao.Text.Equals("Somar") ? movimentacaoVendas.Valor : movimentacaoVendas.Valor * -1);

                    MessageBox.Show("Operação efetuada com sucesso!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);


                    // PABLO - Imprimir comprovante saldo do cliente
                    //if (chkImprimirComprovante.Checked)
                    //ImpressaoComprovante(ultimoLancamentoSaldoID);


                    LimpaCampos();
                    btnPesquisaCliente.Focus();
                }
            }
            //}
            //else
            //{
            //    MessageBox.Show("Você não tem permissão para executar esta ação, entre em contato com o administrador!", "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //}
        }
 public Boolean ExcluirMovimento(MovimentacaoVendas movimentacaoVendas)
 {
     return(conexao.Excluir(nomeTabela, PreencheCondicoesMovimento(movimentacaoVendas)));
 }
 //Baixa Nova
 public Boolean ExcluirReceitaDespesaBaixa(MovimentacaoVendas movimentacaoVendas)
 {
     return(conexao.Excluir(nomeTabela, PreencheCondicoesReceitasDespesasBaixa(movimentacaoVendas)));
 }
 public Boolean Alterar(MovimentacaoVendas movimentacaoVendas)
 {
     return(conexao.Atualizar(nomeTabela, PreencheParametros(movimentacaoVendas), PreencheCondicoesMovimento(movimentacaoVendas)));
 }
 public Boolean InserirNovo(MovimentacaoVendas movimentacaoVendas)
 {
     return(conexao.Inserir(nomeTabela, PreencheParametros(movimentacaoVendas)));
 }