public TipoPagamentoVO ConsultaPeloID(int pId) { ConsultaSQL = "select * from ECF_TIPO_PAGAMENTO where id=" + Convert.ToString(pId); try { comando = new MySqlCommand(ConsultaSQL, conexao); leitor = comando.ExecuteReader(); TipoPagamentoVO TipoPagamento = new TipoPagamentoVO(); TipoPagamento.Id = Convert.ToInt32(leitor["ID"]); TipoPagamento.Codigo = Convert.ToString(leitor["CODIGO"]); TipoPagamento.Descricao = Convert.ToString(leitor["DESCRICAO"]); TipoPagamento.TEF = Convert.ToString(leitor["TEF"]); TipoPagamento.ImprimeVinculado = Convert.ToString(leitor["IMPRIME_VINCULADO"]); TipoPagamento.PermiteTroco = Convert.ToString(leitor["PERMITE_TROCO"]); TipoPagamento.TipoGP = Convert.ToString(leitor["TEF_TIPO_GP"]); TipoPagamento.GeraParcelas = Convert.ToString(leitor["GERA_PARCELAS"]); return(TipoPagamento); } catch (Exception eError) { Log.write(eError.ToString()); return(null); } finally { if (leitor != null) { leitor.Close(); } } }
private void ComboTipoPagamento_Leave(object sender, EventArgs e) { TipoPagamentoVO TipoPagamento = TipoPagamentoController.ConsultaPelaDescricao(ComboTipoPagamento.Text); if (TipoPagamento != null) { // TODO: Conclua a janela de parcelamentos if (TipoPagamento.GeraParcelas == "S") {/* * VerificaSaldoRestante(); * if (SaldoRestante > 0) * { * try * { * FParcelamento FParcelamento = new FParcelamento(); * FParcelamento.EditNome.Text = FCaixa.VendaCabecalho.NomeCliente; * FParcelamento.editCPF.Text = FCaixa.VendaCabecalho.CPFouCNPJCliente; * FParcelamento.editValorVenda.Text = labelTotalVenda.Text; * FParcelamento.editValorRecebido.Text = labelTotalRecebido.Text; * FParcelamento.editValorParcelar.Value = SaldoRestante; * FParcelamento.editVencimento.Text = (DateTime.Now).ToString("dd/MM/yyyy"); * * if (FCaixa.VendaCabecalho.Desconto > 0) * { * FParcelamento.lblDesconto.Text = "Desconto"; * FParcelamento.editDesconto.Value = FCaixa.VendaCabecalho.Desconto; * } * * if (FCaixa.VendaCabecalho.Acrescimo > 0) * { * FParcelamento.lblDesconto.Text = "Acrescimo"; * FParcelamento.editDesconto.Value = FCaixa.VendaCabecalho.Acrescimo; * } * * if ((FParcelamento.ShowDialog() == DialogResult.OK)) * { * // Depois de chamar a tela de parcelamento, se tudo deu certo finaliza a Venda. * editValorPago.Text = SaldoRestante.ToString(); * botaoSim.PerformClick(); * } * else * ComboTipoPagamento.Focus(); * } * catch (Exception eError) * { * Log.write(eError.ToString()); * } * } */ } else // TODO: Conclua a janela de cheques if (TipoPagamento.GeraParcelas == "C") { /* * VerificaSaldoRestante(); * if (SaldoRestante > 0) * { * try * { * FCheques FCheques = new FCheques(); * FCheques.EditNome.Text = FCaixa.VendaCabecalho.NomeCliente; * FCheques.editCPF.Text = FCaixa.VendaCabecalho.CPFouCNPJCliente; * FCheques.edValor.Text = labelTotalVenda.Text; * * if ((FCheques.ShowDialog() == DialogResult.OK)) * { * // Depois d chamar a tela de parcelamente, se tudo deu certo finaliza a Venda. * editValorPago.Text = SaldoRestante.ToString(); * botaoSim.PerformClick(); * } * else * ComboTipoPagamento.Focus(); * } * catch (Exception eError) * { * Log.write(eError.ToString()); * } * } */ } } }
private void botaoSim_Click(object sender, EventArgs e) { decimal ValorInformado; string Mensagem; TipoPagamentoVO TipoPagamento = ListaTipoPagamento[ComboTipoPagamento.SelectedIndex]; ValorInformado = Biblioteca.TruncaValor(Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); if (((TipoPagamento.Descricao == "CONSULTA CHEQUE") || (TipoPagamento.Descricao == "CONSULTA CHQ TECBAN")) && (TransacaoComTef)) { MessageBox.Show("Compra com Cartao e Cheque não permitida.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); PanelConfirmaValores.Visible = false; PanelConfirmaValores.SendToBack(); } else { TotalTipoPagamentoVO TotalTipoPagamento = new TotalTipoPagamentoVO(); if (((TransacaoComTef) || (TipoPagamento.TEF == "S")) && (ValorInformado > SaldoRestante)) { MessageBox.Show("Compra não permite troco.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); PanelConfirmaValores.Visible = false; PanelConfirmaValores.SendToBack(); } else if ((TipoPagamento.TEF == "S") && (QuantidadeCartao >= FCaixa.Configuracao.QuantidadeMaximaCartoes)) { MessageBox.Show("Ja foi utilizada a quantidade maxima de cartoes para efetuar pagamento.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); PanelConfirmaValores.Visible = false; PanelConfirmaValores.SendToBack(); } else if ((TipoPagamento.TEF == "S") && (QuantidadeCartao >= FCaixa.Configuracao.QuantidadeMaximaCartoes - 1) && (ValorInformado != SaldoRestante)) { Mensagem = "Multiplos Cartoes. Transacao suporta ate " + Convert.ToString(FCaixa.Configuracao.QuantidadeMaximaCartoes) + " cartoes. Informe o valor exato para fechar a venda."; MessageBox.Show(Mensagem, "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); PanelConfirmaValores.Visible = false; PanelConfirmaValores.SendToBack(); } else { GroupBox3.Enabled = false; StatusTransacao = true; if (TipoPagamento.TEF == "S") { try { try { //TODO: inicialize o TEF a partir de TipoPagamento.TipoGP ACBrTEFD.Initializar(ACBrFramework.TEFD.TefTipo.TefDial); } catch (Exception eError) { Log.write(eError.ToString()); MessageBox.Show("GP para tipo de pagamento solicitado não instalado.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); StatusTransacao = false; } if ((TipoPagamento.Descricao == "CONSULTA CHEQUE") || (TipoPagamento.Descricao == "CONSULTA CHQ TECBAN")) { StatusTransacao = ACBrTEFD.CHQ(ValorInformado, TipoPagamento.Codigo); } else { StatusTransacao = ACBrTEFD.CRT(ValorInformado, TipoPagamento.Codigo, FDataModule.ACBrECF.NumCOO); } if (StatusTransacao) { IndiceTransacaoTef++; //TODO: Verifique se esta é a forma correta de pegar essas informações - Analise o "RespostasPendentes" TotalTipoPagamento.NSU = ACBrTEFD.Req.NSU; TotalTipoPagamento.Rede = ACBrTEFD.Req.Rede; TotalTipoPagamento.DataHoraTransacao = ACBrTEFD.Req.DataHoraTransacaoComprovante; TotalTipoPagamento.Finalizacao = ACBrTEFD.Req.Finalizacao; //TODO: Verifique se tem como saber se o cartão usado foi de credito ou debito e armazene essa informação do banco de dados TotalTipoPagamento.CartaoDebitoOuCredito = "C"; QuantidadeCartao++; TransacaoComTef = true; PodeFechar = false; } } catch (Exception eError) { Log.write(eError.ToString()); } } if (StatusTransacao) { DataRow Registro = DTValores.NewRow(); Registro["DESCRICAO"] = ComboTipoPagamento.Text; decimal valor = Convert.ToDecimal(editValorPago.Text); Registro["VALOR"] = Convert.ToDecimal(valor.ToString("0.00")); if (TipoPagamento.TEF == "S") { Registro["TEF"] = "S"; Registro["NSU"] = TotalTipoPagamento.NSU; Registro["REDE"] = TotalTipoPagamento.Rede; Registro["DATA_HORA_TRANSACAO"] = TotalTipoPagamento.DataHoraTransacao.ToString(); Registro["INDICE_TRANSACAO"] = IndiceTransacaoTef; Registro["FINALIZACAO"] = TotalTipoPagamento.Finalizacao; } TotalRecebido = Biblioteca.TruncaValor(TotalRecebido + Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); Troco = Biblioteca.TruncaValor(TotalRecebido - TotalReceber, Constantes.DECIMAIS_VALOR); if (Troco < 0) { Troco = 0; } VerificaSaldoRestante(); TotalTipoPagamento.IdVenda = IdVenda; TotalTipoPagamento.IdTipoPagamento = TipoPagamento.Id; TotalTipoPagamento.Valor = Biblioteca.TruncaValor(Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); TotalTipoPagamento.CodigoPagamento = TipoPagamento.Codigo.Trim(); TotalTipoPagamento.Estorno = "N"; TotalTipoPagamento.TemTEF = TipoPagamento.TEF; ListaTotalTipoPagamento.Add(TotalTipoPagamento); // guarda o índice da lista Registro["INDICE_LISTA"] = ListaTotalTipoPagamento.Count - 1; DTValores.Rows.Add(Registro); } PanelConfirmaValores.Visible = false; PanelConfirmaValores.SendToBack(); if (SaldoRestante > 0) { editValorPago.Text = SaldoRestante.ToString("0.00"); } else { editValorPago.Text = "0.00"; } GroupBox3.Enabled = true; ComboTipoPagamento.Focus(); } VerificaSaldoRestante(); if (SaldoRestante <= 0) { FinalizaVenda(); } if (SegundoCartaoCancelado) { MessageBox.Show("Cupom fiscal cancelado. será aberto novo cupom e deve-se informar novamente os pagamentos.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); FCaixa.ProblemaNoPagamento = true; FCaixa.VendaCabecalho.CupomFoiCancelado = "S"; FCaixa.StatusCaixa = 0; FechaVendaComProblemas(); PodeFechar = true; this.Close(); } } }