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); } }