Esempio n. 1
0
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                #region Verifica se tem pendencia financeira vencida

                //if (objConfigInfo.Config_VerificarPendenciaFinanceiraEmAtraso)
                //{
                //    if (totalValorAberto > 0 && CodigoCliente > 0)
                //    {
                //        if (FrmPrincipal.dadosConfiguracao.Config_Financeiro_ValidarPendenciaFinanceiroEmDias <= 0)
                //        {
                //            //Ja existia isso no sistema antes de colocar a quantidade de dias na configuracao do sistema, quem estiver usando vai funcionar normal (By Pedro)
                //            if (_objReceitaDespesaControl.PesquisarPendenciaFinanceira(CodigoCliente) > 0)
                //            {
                //                MessageBox.Show("Cliente possui pendências financeiras!\n\n" + (!objPermissaoVenderContasEmAtrasoInfo.PermSalv ? "Usuário logado não tem permissão para concluir quando o cliente tem parcelas em atraso, consulte o gerente!" : ""), "Informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                //                if (!objPermissaoVenderContasEmAtrasoInfo.PermSalv)
                //                    return;
                //            }
                //        }
                //        else
                //        {
                //            if (_objReceitaDespesaControl.VerificaPendenciaFinanceiraEmDias(CodigoCliente, FrmPrincipal.dadosConfiguracao.Config_Financeiro_ValidarPendenciaFinanceiroEmDias))
                //            {
                //                _Mensagens.MensagensAviso("Cliente possui débito superior à " + FrmPrincipal.dadosConfiguracao.Config_Financeiro_ValidarPendenciaFinanceiroEmDias.ToString() + " dias, informe a senha do vendedor supervisor para prosseguir com a venda.");
                //                FrmGetSenha frmGetSenha = new FrmGetSenha();
                //                frmGetSenha.ShowInTaskbar = false;
                //                frmGetSenha.ShowDialog();
                //                if (string.IsNullOrEmpty(frmGetSenha.SenhaInformada))
                //                {
                //                    _Mensagens.MensagensAviso("Por favor informe a senha de supervisor para prosseguir com a venda!");
                //                    return;
                //                }

                //                if (!_objFuncionarioControl.ValidarSenhaFuncionarioSupervisor(frmGetSenha.SenhaInformada))
                //                {
                //                    _Mensagens.MensagensAviso("Senha informada não é uma senha válida de supervisor, por favor verifique!");
                //                    return;
                //                }
                //            }
                //        }
                //    }
                //}

                #endregion

                #region Verifica o limite de crédito do cliente

                //if (CodigoCliente > 0)
                //{
                //    if (_objClientesControl.PesquisarSeLimiteEstaAtivo(CodigoCliente) && _ImportoPedido.Equals(false))
                //    {
                //        decimal LimiteCliente = _objClientesControl.PesquisarLimiteCliente(CodigoCliente);

                //        decimal DividaCliente = _objReceitaDespesaControl.PesquisarDividaTotalCliente(CodigoCliente);

                //        if ((TotalEmAberto + DividaCliente - valorTotalParcelasJaExistia) > LimiteCliente)
                //        {
                //            if (!objPermissaoBloquearVendasLimitiUltrapassar.PermSalv)
                //            {
                //                if (_Mensagens.MensagensConfirma("O Limite de crédito do cliente foi ultrapassado! \n\nLimite do cliente: " + LimiteCliente + "!\nDivida do cliente: " + DividaCliente + "!\nDivida do cliente após esse Pedido: " + (TotalEmAberto + DividaCliente) + "!\n\nDeseja Continuar?") == false)
                //                    return;
                //            }
                //            else
                //            {
                //                _Mensagens.MensagensAviso("O Limite de crédito do cliente foi ultrapassado! \n\nLimite do cliente: " + LimiteCliente + "!\nDivida do cliente: " + DividaCliente + "!\nDivida do cliente após esse Pedido: " + (TotalEmAberto + DividaCliente) + "\n\nUsuário logado não tem permissão para vender a prazo quando ultrapassar o limite do cliente, Consulte o gerente!");
                //                return;
                //            }
                //        }
                //    }
                //}

                #endregion

                if (grid.Rows.Count > 0)
                {
                    _FormaPagamentoCupomFiscal = grid.Rows[0].Cells["FormaPagamento_"].Value.ToString();
                }

                DataTable dtReceitas = new DataTable();
                List <ReceitasDespesas> listaReceitaDespesas = new List <ReceitasDespesas>();

                if (grid.Rows.Count > 0)
                {
                    if (possuiDuplicataPagas == true)
                    {
                        foreach (DataGridViewRow gridRow in grid.Rows)
                        {
                            ReceitasDespesas receitasDespesas = new ReceitasDespesas();

                            if (Convert.ToInt32(gridRow.Cells["ClientesId_"].Value) > 0)
                            {
                                receitasDespesas.ClientesId = Convert.ToInt32(gridRow.Cells["ClientesId_"].Value);
                            }

                            receitasDespesas.Emissao          = _Emissao;
                            receitasDespesas.Vencimento       = Convert.ToDateTime(gridRow.Cells["Vencimento_"].Value);
                            receitasDespesas.Observacao       = gridRow.Cells["Observacao_"].Value.ToString();
                            receitasDespesas.Parcela          = gridRow.Cells["Parcela_"].Value.ToString();
                            _FormaPagamentoId                 = Convert.ToInt32(gridRow.Cells["FormaPagamentoId_"].Value);
                            receitasDespesas.Valor            = Convert.ToDecimal(gridRow.Cells["Valor_"].Value);
                            receitasDespesas.FormaPagamentoId = Convert.ToInt32(gridRow.Cells["FormaPagamentoId_"].Value.ToString());
                            if (Convert.ToDecimal(gridRow.Cells["Valor_"].Value) > 0)
                            {
                                receitasDespesas.ValorExtenso = Util.NumeroParaExtenso(Convert.ToDecimal(gridRow.Cells["Valor_"].Value));
                            }
                            else
                            {
                                receitasDespesas.ValorExtenso = "VALOR NEGATIVO";
                            }
                            receitasDespesas.NumeroDocumento = _NumeroFatura;
                            receitasDespesas.ValorFatura     = Convert.ToDecimal(txtValorTotal.Text);

                            if (Convert.ToInt32(gridRow.Cells["ClientesId_"].Value) > 0)
                            {
                                receitasDespesas.MultaAposVencimentoPercentualValor = 0;
                                receitasDespesas.MultaAoDiaPercentualValor          = 0;
                                receitasDespesas.MultaAposVencimento = 0;
                                receitasDespesas.MultaPorDia         = 0;
                            }
                            else //CLIENTE NÃO IDENTIFICADO
                            {
                                receitasDespesas.MultaAposVencimento = 0;
                                receitasDespesas.MultaPorDia         = 0;
                            }

                            receitasDespesas.PagouComCartão = Convert.ToBoolean(gridRow.Cells["PagouComCartão_"].Value);

                            if (Convert.ToString(gridRow.Cells["StatusPagamento_"].Value) == "PG")
                            {
                                receitasDespesas.StatusPagamento = "PG";
                                receitasDespesas.DataPagamento   = Convert.ToDateTime(gridRow.Cells["DataPagamento_"].Value); //adicionar hora
                                receitasDespesas.ValorPago       = Convert.ToDecimal(gridRow.Cells["ValorPago_"].Value);
                                receitasDespesas.Pagando         = true;
                            }

                            listaReceitaDespesas.Add(receitasDespesas);
                        }

                        _ListaReceitaDespesas = listaReceitaDespesas;

                        _GravouFormaPagamento = true;
                        _Troco = Convert.ToDecimal(txtTroco.Text);

                        this.Close();
                    }
                    else // Entra aqui se o pagamento for PARCELADO
                    {
                        foreach (DataGridViewRow gridRow in grid.Rows)
                        {
                            ReceitasDespesas receitasDespesas = new ReceitasDespesas();

                            if (Convert.ToInt32(gridRow.Cells["ClientesId_"].Value) > 0)
                            {
                                receitasDespesas.ClientesId = Convert.ToInt32(gridRow.Cells["ClientesId_"].Value);
                            }

                            receitasDespesas.Emissao          = _Emissao;
                            receitasDespesas.Vencimento       = Convert.ToDateTime(gridRow.Cells["Vencimento_"].Value);
                            receitasDespesas.Observacao       = gridRow.Cells["Observacao_"].Value.ToString();
                            receitasDespesas.Parcela          = gridRow.Cells["Parcela_"].Value.ToString();
                            _FormaPagamentoId                 = Convert.ToInt32(gridRow.Cells["FormaPagamentoId_"].Value);
                            receitasDespesas.Valor            = Convert.ToDecimal(gridRow.Cells["Valor_"].Value);
                            receitasDespesas.FormaPagamentoId = Convert.ToInt32(gridRow.Cells["FormaPagamentoId_"].Value.ToString());
                            if (Convert.ToDecimal(gridRow.Cells["Valor_"].Value) > 0)
                            {
                                receitasDespesas.ValorExtenso = Util.NumeroParaExtenso(Convert.ToDecimal(gridRow.Cells["Valor_"].Value));
                            }
                            else
                            {
                                receitasDespesas.ValorExtenso = "VALOR NEGATIVO";
                            }
                            receitasDespesas.NumeroDocumento = _NumeroFatura;
                            receitasDespesas.ValorFatura     = Convert.ToDecimal(txtValorTotal.Text);

                            if (Convert.ToInt32(gridRow.Cells["ClientesId_"].Value) > 0)
                            {
                                receitasDespesas.MultaAposVencimentoPercentualValor = 0;
                                receitasDespesas.MultaAoDiaPercentualValor          = 0;
                                receitasDespesas.MultaAposVencimento = 0;
                                receitasDespesas.MultaPorDia         = 0;
                            }
                            else //CLIENTE NÃO IDENTIFICADO
                            {
                                receitasDespesas.MultaAposVencimento = 0;
                                receitasDespesas.MultaPorDia         = 0;
                            }

                            receitasDespesas.PagouComCartão = Convert.ToBoolean(gridRow.Cells["PagouComCartão_"].Value);

                            if (Convert.ToString(gridRow.Cells["StatusPagamento_"].Value) == "PG")
                            {
                                receitasDespesas.StatusPagamento = "PG";
                                receitasDespesas.DataPagamento   = Convert.ToDateTime(gridRow.Cells["ReDeDtPg"].Value);
                                receitasDespesas.ValorPago       = Convert.ToDecimal(gridRow.Cells["ReDeValo"].Value);
                                receitasDespesas.Pagando         = true;
                            }

                            listaReceitaDespesas.Add(receitasDespesas);
                        }

                        _ListaReceitaDespesas = listaReceitaDespesas;
                        _GravouFormaPagamento = true;

                        if (_NumeroDocumentoVenda > 0)
                        {
                            //BUSCANDO AS DUPLICATAS QUE JA FORAM PAGAS REFERENTE A VENDA
                            DataTable dtaDuplicatas = new DataTable();
                            dtaDuplicatas = receitasDespesasNegocios.PesquisarReceitaDespesaPorCodigoCompraVendaStatus(_NumeroDocumentoVenda, string.Empty);

                            if (dtaDuplicatas.Rows.Count > 0)
                            {
                                for (int i = 0; i < dtaDuplicatas.Rows.Count; i++)
                                {
                                    //CONSULTA OS MOVIMENTOS PARA ALTERAR O SALDO DO CAIXA
                                    DataTable dtaMovimento = new DataTable();
                                    dtaMovimento = movimentacaoCaixaNegocios.PesquisarMovimento_ReceitaDespesa(Convert.ToInt32(dtaDuplicatas.Rows[i]["ReceitasDespesasId_"].ToString()));
                                    if (dtaMovimento.Rows.Count > 0)
                                    {
                                        if (dtaMovimento.Rows[0]["Tipo"].ToString() == "R") //Receita
                                        {
                                            //TIRAR DA CAIXA
                                            Caixa caixa = caixaNegocios.PesquisarSaldoCaixa(Convert.ToInt32(dtaMovimento.Rows[0]["CaixaId"].ToString()));
                                            caixa.Valor -= Convert.ToInt32(dtaMovimento.Rows[0]["Valor"].ToString());
                                            caixaNegocios.AlterarSaldo(caixa);
                                        }
                                        else
                                        {
                                            //ACRESCENTAR NA CAIXA
                                            Caixa caixa = caixaNegocios.PesquisarSaldoCaixa(Convert.ToInt32(dtaMovimento.Rows[0]["CaixaId"].ToString()));
                                            caixa.Valor += Convert.ToInt32(dtaMovimento.Rows[0]["Valor"].ToString());
                                            caixaNegocios.AlterarSaldo(caixa);
                                        }

                                        //CAIXA NOVO
                                        movimentacaoCaixaNegocios.Excluir(Convert.ToInt32(dtaMovimento.Rows[0]["MovimentacaoCaixaId"].ToString()));

                                        //LancamentoCaixaDoPedidosInfo objLancamentoCaixaInfo = new LancamentoCaixaDoPedidosInfo();
                                        //objLancamentoCaixaInfo.MovimentoContaID = Convert.ToInt32(dtaMovimento.Rows[0]["MoviCodi"].ToString());
                                        //_objLancamentoCaixaControl.Excluir(objLancamentoCaixaInfo);

                                        //EXCLUINDO A MOVIMENTAÇAO QUE FOI PAGA
                                        ObjetoTransferencia.MovimentacaoCaixa movimentacaoCaixa = new ObjetoTransferencia.MovimentacaoCaixa();
                                        movimentacaoCaixa.ReceitasDespesasId = Convert.ToInt32(dtaDuplicatas.Rows[i]["ReceitasDespesasId"].ToString());
                                        movimentacaoCaixaNegocios.Excluir(movimentacaoCaixa);
                                    }

                                    ExcluirBaixa(Convert.ToInt32(dtaDuplicatas.Rows[i]["ReceitasDespesasId"].ToString()));
                                    //ExcluirBoleto(Convert.ToInt32(dtaDuplicatas.Rows[i]["ReceitasDespesasId"].ToString()));
                                }
                            }

                            //EXCLUINDO AS DUPLICATAS
                            //foreach (DataRow rv in dtaDuplicatas.Rows)
                            //{
                            //    LancamentoCaixaDoPedidosInfo objLancamentoCaixaInfo = new LancamentoCaixaDoPedidosInfo();
                            //    objLancamentoCaixaInfo.ReceitaID = Convert.ToInt32(rv["ReDeCodi"]);
                            //    _objLancamentoCaixaControl.ExcluirReceita(objLancamentoCaixaInfo);
                            //}

                            ReceitasDespesas receitasDespesas = new ReceitasDespesas();

                            receitasDespesas.ReceitasDespesasId = _NumeroDocumentoVenda;
                            receitasDespesasNegocios.ExcluirReceitaDespesaCompraVenda(receitasDespesas);
                        }

                        _Troco = Convert.ToDecimal(txtTroco.Text);
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("Por favor, informe uma Forma de pagamento.", "Aviso do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cbbFormaPagamento.Select();
                    cbbFormaPagamento.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao finalizar a venda.\nPor favor, entre em contato com o suporte técnico.\n\nDetalhe técnico:" + ex.Message, "Aviso do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Esempio n. 2
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (tipoOperacao == enumSangriaOuSuprimento.Sangria)
            {
                if (Convert.ToDecimal(txtSaldoAtual.Text) >= Convert.ToDecimal(txtValorSangria.Text))
                {
                    if (MessageBox.Show("Confirma a sangria(retirada) em dinheiro do caixa no valor de R$ " + txtValorSangria.Text + ".", "Pergunta do Sistema", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        Sangria sangria = new Sangria();
                        sangria.CaixaId          = Convert.ToInt32(drUltimaAbertura["CaixaId"]);
                        sangria.UsuarioId        = FrmLogin.usuarioId;
                        sangria.ValorCaixa       = Convert.ToDecimal(txtSaldoAtual.Text);
                        sangria.ValorSangria     = Convert.ToDecimal(txtValorSangria.Text);
                        sangria.ValorAposSangria = Convert.ToDecimal(txtSaldoApos.Text);
                        sangria.DataHora         = DateTime.Now;
                        sangria.Tipo             = 1;//Sangria
                        if (txtObservacao.Text.Trim().Length > 0)
                        {
                            sangria.Observacao = "Sangria - " + txtObservacao.Text;
                        }
                        else
                        {
                            sangria.Observacao = "Sangria";
                        }


                        sangriaNegocios.Inserir(sangria);

                        //Alterando o saldo do caixa
                        ObjetoTransferencia.Caixa caixa = new ObjetoTransferencia.Caixa();
                        caixa.CaixaId = Convert.ToInt32(drUltimaAbertura["CaixaId"]);
                        caixa.Valor   = Convert.ToDecimal(txtSaldoApos.Text);
                        caixaNegocios.AlterarSaldo(caixa);

                        MessageBox.Show("Operação realizada com sucesso!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        txtSaldoAtual.Clear();
                        txtValorSangria.Clear();
                        txtSaldoApos.Clear();

                        PesquisarSaldoEmCaixa();
                        CarregarGrid();

                        txtValorSangria.Select();
                        txtValorSangria.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("Não é possível fazer uma sangria(retirada) maior do que o valor do caixa!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtValorSangria.SelectAll();
                    txtValorSangria.Focus();
                }
            }
            else
            {
                if (txtValorSangria.Text != "0,00")
                {
                    if (MessageBox.Show("Confirma o suprimento em dinheiro no caixa no valor de R$ " + txtValorSangria.Text + "!", "Pergunta do Sistema", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        Sangria sangria = new Sangria();
                        sangria.CaixaId          = Convert.ToInt32(drUltimaAbertura["CaixaId"]);
                        sangria.UsuarioId        = FrmLogin.usuarioId;
                        sangria.ValorCaixa       = Convert.ToDecimal(txtSaldoAtual.Text);
                        sangria.ValorSangria     = Convert.ToDecimal(txtValorSangria.Text);
                        sangria.ValorAposSangria = Convert.ToDecimal(txtSaldoApos.Text);
                        sangria.DataHora         = DateTime.Now;
                        sangria.Tipo             = 2; //Suprimento
                        if (txtObservacao.Text.Trim().Length > 0)
                        {
                            sangria.Observacao = "Suprimento - " + txtObservacao.Text;
                        }
                        else
                        {
                            sangria.Observacao = "Suprimento";
                        }

                        sangriaNegocios.Inserir(sangria);

                        //Alterando o saldo do caixa
                        ObjetoTransferencia.Caixa caixa = new ObjetoTransferencia.Caixa();
                        caixa.CaixaId = Convert.ToInt32(drUltimaAbertura["CaixaId"]);
                        caixa.Valor   = Convert.ToDecimal(txtSaldoApos.Text);
                        caixaNegocios.AlterarSaldo(caixa);

                        MessageBox.Show("Operação realizada com sucesso!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        txtSaldoAtual.Clear();
                        txtValorSangria.Clear();
                        txtSaldoApos.Clear();

                        PesquisarSaldoEmCaixa();
                        CarregarGrid();

                        txtValorSangria.Select();
                        txtValorSangria.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("Informe um valor para o suprimento(entrada) do caixa!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtValorSangria.Focus();
                }
            }
        }