예제 #1
0
        private List <SqlParametros> PreencheCondicoesDevolucao(SaldoClientes saldoClientes)
        {
            List <SqlParametros> lstParametrosCondicionais = new List <SqlParametros>();

            lstParametrosCondicionais.Add(new SqlParametros("Devolucao", saldoClientes.Devolucao));

            return(lstParametrosCondicionais);
        }
예제 #2
0
        private List <SqlParametros> PreencheCondicoesPedido(SaldoClientes saldoClientes)
        {
            List <SqlParametros> lstParametrosCondicionais = new List <SqlParametros>();

            lstParametrosCondicionais.Add(new SqlParametros("VendasId", saldoClientes.VendasId));

            return(lstParametrosCondicionais);
        }
예제 #3
0
        private List <SqlParametros> PreencheCondicoesReceitasDespesas(SaldoClientes saldoClientes)
        {
            List <SqlParametros> lstParametrosCondicionais = new List <SqlParametros>();

            lstParametrosCondicionais.Add(new SqlParametros("ReceitasDespesasId", saldoClientes.ReceitasDespesasId));

            return(lstParametrosCondicionais);
        }
예제 #4
0
        private List <SqlParametros> PreencheParametrosAtualizarSituacao(SaldoClientes saldoClientes)
        {
            List <SqlParametros> lstParametros = new List <SqlParametros>();

            lstParametros.Add(new SqlParametros("Situacao", saldoClientes.Situacao));

            return(lstParametros);
        }
예제 #5
0
        //Situação do saldo do cliente
        public void DescontarSaldoCliente(SaldoClientes requisicao)
        {
            SaldoClientes utilizado = PesquisarSaldoClienteUtilizado(Convert.ToInt32(requisicao.ClientesId));

            decimal saldoADescontar = utilizado.Valor + utilizado.SaldoUtilizado;
            decimal valorADescontar = requisicao.Valor * -1;

            if (valorADescontar < saldoADescontar)
            {
                //DESCONTAR O SALDO
                requisicao.Devolucao  = utilizado.Devolucao;
                requisicao.Referencia = utilizado.SaldoClientesId;
                Inserir(requisicao);
            }
            else if (valorADescontar == saldoADescontar)
            {
                //DESCONTAR O SALDO
                requisicao.Devolucao  = utilizado.Devolucao;
                requisicao.Referencia = utilizado.SaldoClientesId;
                Inserir(requisicao);

                //ATUALIZAR O STATUS DO SALDO PRINCIPAL
                SaldoClientes atualizaStatus = new SaldoClientes();
                atualizaStatus.Situacao        = "PG";
                atualizaStatus.SaldoClientesId = utilizado.SaldoClientesId;
                AlterarSituacaoPorID(atualizaStatus);
            }
            else if (valorADescontar > saldoADescontar)
            {
                //DESCONTAR O SALDO
                requisicao.Valor      = (saldoADescontar * -1);
                requisicao.Devolucao  = utilizado.Devolucao;
                requisicao.Referencia = utilizado.SaldoClientesId;
                Inserir(requisicao);

                //ATUALIZAR O STATUS DO SALDO PRINCIPAL
                SaldoClientes atualizaStatus = new SaldoClientes();
                atualizaStatus.Situacao        = "PG";
                atualizaStatus.SaldoClientesId = utilizado.SaldoClientesId;
                AlterarSituacaoPorID(atualizaStatus);

                //CHAMAR O MÉTODO RECURSIVO
                requisicao.Valor = (saldoADescontar - valorADescontar);
                DescontarSaldoCliente(requisicao);
            }
        }
예제 #6
0
        private List <SqlParametros> PreencheParametros(SaldoClientes saldoClientes)
        {
            List <SqlParametros> lstParametros = new List <SqlParametros>();

            lstParametros.Add(new SqlParametros("ClientesId", saldoClientes.ClientesId));
            lstParametros.Add(new SqlParametros("Operacao", saldoClientes.Operacao));
            lstParametros.Add(new SqlParametros("Valor", saldoClientes.Valor.ToString().Replace(".", "").Replace(",", ".")));

            if (saldoClientes.FuncionarioId > 0)
            {
                lstParametros.Add(new SqlParametros("FuncionarioId", saldoClientes.FuncionarioId));
            }

            lstParametros.Add(new SqlParametros("Observacao", saldoClientes.Observacao));
            lstParametros.Add(new SqlParametros("DataHora", saldoClientes.DataHora.ToString("yyyy-MM-dd")));

            if (saldoClientes.VendasId > 0)
            {
                lstParametros.Add(new SqlParametros("VendasId", saldoClientes.VendasId));
            }

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

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

            if (saldoClientes.Devolucao > 0)
            {
                lstParametros.Add(new SqlParametros("Devolucao", saldoClientes.Devolucao));
            }

            lstParametros.Add(new SqlParametros("Situacao", !string.IsNullOrEmpty(saldoClientes.Situacao) ? saldoClientes.Situacao : "AB"));

            if (saldoClientes.Referencia > 0)
            {
                lstParametros.Add(new SqlParametros("Referencia", saldoClientes.Referencia));
            }

            return(lstParametros);
        }
예제 #7
0
        public SaldoClientes PesquisarSaldoClienteUtilizado(int clientesId)
        {
            string qry = string.Format(@"SELECT TOP 1 S.SaldoClientesId,S.ClientesId,S.Operacao,S.Valor,S.Situacao,S.DataHora,ISNULL(S.VendasId,0) AS VendasId,ISNULL(S.CaixaId,0) AS CaixaId,ISNULL(S.ReceitasDespesasId,0) AS ReceitasDespesasId,ISNULL(S.Devolucao,0) AS Devolucao,ISNULL(S.Referencia,0) AS Referencia,ISNULL((
                                         SELECT SUM (SC.Valor) FROM SaldoClientes SC WHERE S.Referencia =S.SaldoClientesId AND S.Operacao = 2),0) AS SaldoUtilizado FROM SaldoClientes S WHERE (S.Situacao ='AB' OR S.Situacao IS NULL) AND S.Operacao = 1 AND S.ClientesId = {0} ORDER BY S.DataHora ASC ", clientesId);

            DataTable     ds            = conexao.Pesquisar(qry);
            SaldoClientes SaldoClientes = new SaldoClientes();

            SaldoClientes.SaldoClientesId    = Convert.ToInt32(ds.Rows[0]["SaldoClientesId"].ToString());
            SaldoClientes.ClientesId         = Convert.ToInt32(ds.Rows[0]["ClientesId"].ToString());
            SaldoClientes.Operacao           = Convert.ToInt32(ds.Rows[0]["Operacao"].ToString());
            SaldoClientes.Valor              = Convert.ToDecimal(Convert.ToDecimal(ds.Rows[0]["Valor"].ToString()));
            SaldoClientes.Situacao           = ds.Rows[0]["Situacao"].ToString();
            SaldoClientes.DataHora           = Convert.ToDateTime(ds.Rows[0]["DataHora"].ToString());
            SaldoClientes.VendasId           = Convert.ToInt32(ds.Rows[0]["VendasId"].ToString());
            SaldoClientes.CaixaId            = Convert.ToInt32(ds.Rows[0]["CaixaId"].ToString());
            SaldoClientes.ReceitasDespesasId = Convert.ToInt32(ds.Rows[0]["ReceitasDespesasId"].ToString());
            SaldoClientes.Referencia         = Convert.ToInt32(ds.Rows[0]["Referencia"].ToString());
            SaldoClientes.Devolucao          = Convert.ToInt32(ds.Rows[0]["Devolucao"].ToString());
            SaldoClientes.SaldoUtilizado     = Convert.ToDecimal(ds.Rows[0]["SaldoUtilizado"].ToString());

            return(SaldoClientes);
        }
예제 #8
0
        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);
            //}
        }
예제 #9
0
 public Boolean ExcluirSaldoPedido(SaldoClientes saldoClientes)
 {
     return(conexao.Excluir(nomeTabela, PreencheCondicoesPedido(saldoClientes)));
 }
예제 #10
0
 public Boolean AlterarSituacaoPorDevolucaoID(SaldoClientes saldoClientes)
 {
     return(conexao.Atualizar(nomeTabela, PreencheParametrosAtualizarSituacao(saldoClientes), PreencheCondicoesDevolucao(saldoClientes)));
 }
예제 #11
0
 public Boolean Alterar(SaldoClientes saldoClientes)
 {
     return(conexao.Atualizar(nomeTabela, PreencheParametros(saldoClientes), PreencheCondicoes(saldoClientes)));
 }
예제 #12
0
 public Boolean Inserir(SaldoClientes saldoClientes)
 {
     return(conexao.Inserir(nomeTabela, PreencheParametros(saldoClientes)));
 }
예제 #13
0
 public Boolean ExcluirSaldoClientePorReceitaDespesa(SaldoClientes saldoClientes)
 {
     return(conexao.Excluir(nomeTabela, PreencheCondicoesReceitasDespesas(saldoClientes)));
 }