// controle das teclas digitadas na Grid public void GridValoresKeyDown(object sender, KeyEventArgs e) { DataRow Registro = DTValores.Rows[GridValores.CurrentRow.Index]; if (e.KeyCode == Keys.Delete) { if (MessageBox.Show("Deseja remover o valor selecionado?", "Remover ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { TotalRecebido = Biblioteca.TruncaValor(TotalRecebido - Convert.ToDecimal(DTValores.Columns["VALOR"].ToString()), Constantes.DECIMAIS_VALOR); Troco = Biblioteca.TruncaValor(TotalRecebido - TotalReceber, Constantes.DECIMAIS_VALOR); if (Troco < 0) { Troco = 0; } ListaTotalTipoPagamento.RemoveAt(Convert.ToInt32(Registro["INDICE_LISTA"])); DTValores.Rows.RemoveAt(GridValores.CurrentRow.Index); VerificaSaldoRestante(); if (SaldoRestante > 0) { editValorPago.Text = SaldoRestante.ToString("###,###,##0.00"); } else { editValorPago.Text = "0.00"; } } ComboTipoPagamento.Focus(); } if (e.KeyCode == Keys.Enter) { ComboTipoPagamento.Focus(); } }
private void btnAdicionar_Click(object sender, EventArgs e) { if (ComboTipoPagamento.Text.Trim() == "") { MessageBox.Show("Informe uma forma de Pagamento valida!", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); return; } if (Convert.ToDecimal(edtValor.Text) <= 0) { MessageBox.Show("Informe um Valor valido!", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); edtValor.Focus(); return; } try { EcfFechamentoDTO Fechamento = new EcfFechamentoDTO(); Fechamento.IdEcfMovimento = Sessao.Instance.Movimento.Id; Fechamento.TipoPagamento = ComboTipoPagamento.Text; Fechamento.Valor = Convert.ToDecimal(edtValor.Text); EcfFechamentoController.GravaEcfFechamento(Fechamento); TotalizaFechamento(); } catch (Exception eError) { Log.write(eError.ToString()); } edtValor.Clear(); ComboTipoPagamento.Focus(); }
private void editValorPago_Leave(object sender, EventArgs e) { decimal ValorInformado; if (decimal.TryParse(editValorPago.Text, out ValorInformado)) { if (ValorInformado > 0) { VerificaSaldoRestante(); // se ainda tem saldo no ECF para pagamento if (SaldoRestante > 0) { PanelConfirmaValores.Visible = true; PanelConfirmaValores.BringToFront(); LabelConfirmaValores.Text = "Confirma forma de pagamento e valor?"; botaoSim.Focus(); } else { MessageBox.Show("Todos os valores Ja foram recebidos. Finalize a venda.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Valor não pode ser menor ou igual a zero.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); editValorPago.Clear(); ComboTipoPagamento.Focus(); } } else { MessageBox.Show("Valor inválido.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void TelaPadrao() { for (int i = 0; i <= Sessao.Instance.ListaTipoPagamento.Count - 1; i++) { ComboTipoPagamento.Items.Add(Sessao.Instance.ListaTipoPagamento[i].Descricao); } ComboTipoPagamento.SelectedIndex = 0; // Configura Grid DTValores = new DataTable("VALORES"); DTValores.Columns.Add("DESCRICAO", typeof(string)); //0 DTValores.Columns.Add("VALOR", typeof(decimal)); //1 DTValores.Columns.Add("ID", typeof(int)); //2 DTValores.Columns.Add("INDICE_LISTA", typeof(int)); //8 dataSet.Tables.Add(DTValores); GridValores.DataSource = dataSet; GridValores.DataMember = dataSet.Tables[0].ToString(); //definimos os cabeçalhos da Grid GridValores.Columns[0].HeaderText = "Descrição"; GridValores.Columns[0].ReadOnly = true; GridValores.Columns[1].HeaderText = "Valor"; GridValores.Columns[1].ReadOnly = true; GridValores.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; //nao exibe as colunas abaixo GridValores.Columns[2].Visible = false; GridValores.Columns[3].Visible = false; ComboTipoPagamento.Focus(); }
private void botaoConfirma_Click(object sender, EventArgs e) { VerificaSaldoRestante(); // se não houver mais saldo no ECF é porque Ja devemos finalizar a venda if (SaldoRestante <= 0) { if (MessageBox.Show("Deseja finalizar a venda?", "Finalizar venda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { FinalizaVenda(); } else { if (TransacaoComTef) { ACBrTEFD.CancelarTransacoesPendentes(); Sessao.Instance.VendaAtual.CupomCancelado = "S"; Sessao.Instance.StatusCaixa = Tipos.StatusCaixa.scAberto; FechaVendaComProblemas(); PodeFechar = true; this.Close(); } } } else { MessageBox.Show("Valores informados não são suficientes para finalizar a venda.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); } }
public EncerraMovimento() { // Required for Windows Form Designer support InitializeComponent(); ConfiguraDataSet(); FormCreate(); ComboTipoPagamento.Focus(); }
private void FEfetuaPagamento_Shown(object sender, EventArgs e) { TipoPagamentoController = new TipoPagamentoController(); TotalTipoPagamentoController = new TotalTipoPagamentoController(); // TotalVenda = 0; Desconto = 0; Acrescimo = 0; TotalReceber = 0; TotalRecebido = 0; Troco = 0; QuantidadeCartao = 0; if (FCaixa.VendaCabecalho.TaxaAcrescimo > 0) { FCaixa.VendaCabecalho.Acrescimo = Biblioteca.TruncaValor(FCaixa.VendaCabecalho.TaxaAcrescimo / 100 * FCaixa.VendaCabecalho.ValorVenda, Constantes.DECIMAIS_VALOR); } if (FCaixa.VendaCabecalho.TaxaDesconto > 0) { FCaixa.VendaCabecalho.Desconto = Biblioteca.TruncaValor(FCaixa.VendaCabecalho.TaxaDesconto / 100 * FCaixa.VendaCabecalho.ValorVenda, Constantes.DECIMAIS_VALOR); } // preenche valores nas variaveis TotalVenda = FCaixa.VendaCabecalho.ValorVenda.Value; Acrescimo = FCaixa.VendaCabecalho.Acrescimo.Value; Desconto = FCaixa.VendaCabecalho.Desconto.Value; TotalReceber = Biblioteca.TruncaValor(TotalVenda + Acrescimo - Desconto, Constantes.DECIMAIS_VALOR); SaldoRestante = TotalReceber; SegundoCartaoCancelado = false; TransacaoComTef = false; CupomCancelado = false; PodeFechar = true; IndiceTransacaoTef = -1; AtualizaLabelsValores(); if (SaldoRestante > 0) { editValorPago.Text = SaldoRestante.ToString("0.00"); } else { editValorPago.Text = "0.00"; } IdVenda = FCaixa.VendaCabecalho.Id; // lista que vai acumular os meios de pagamento ListaTotalTipoPagamento = new List <TotalTipoPagamentoVO>(); // tela padrão TelaPadrao(); ComboTipoPagamento.Focus(); }
private void btnRemover_Click(object sender, EventArgs e) { if (DTFechamento.Rows.Count > 0) { DataRow Registro = DTFechamento.Rows[GridValores.CurrentRow.Index]; EcfFechamentoDTO EcfFechamentoParaExclusao = new EcfFechamentoDTO(); EcfFechamentoParaExclusao.Id = Convert.ToInt32(Registro["ID"]); EcfFechamentoController.ExcluiEcfFechamento(EcfFechamentoParaExclusao); TotalizaFechamento(); } ComboTipoPagamento.Focus(); }
private void btnRemover_Click(object sender, EventArgs e) { if (DTFechamento.Rows.Count > 0) { DataRow Registro = DTFechamento.Rows[GridValores.CurrentRow.Index]; if (FechamentoController.ExcluiFechamento(Convert.ToInt32(Registro["ID"]))) { DTFechamento.Rows.RemoveAt(GridValores.CurrentRow.Index); TotalizaFechamento(); } } ComboTipoPagamento.Focus(); }
public FEncerraMovimento() { // Required for Windows Form Designer support InitializeComponent(); ConfiguraDataSet(); TipoPagamentoController = new TipoPagamentoController(); TotalTipoPagamentoController = new TotalTipoPagamentoController(); MovimentoController = new MovimentoController(); FechamentoController = new FechamentoController(); OperadorController = new OperadorController(); FormCreate(); ComboTipoPagamento.Focus(); //TODO: Carregue os valores de fechamento já gravados no banco }
private void botaoConfirma_Click(object sender, EventArgs e) { VerificaSaldoRestante(); // se não houver mais saldo no ECF é porque Ja devemos finalizar a venda if (SaldoRestante <= 0) { if (MessageBox.Show("Deseja finalizar a venda?", "Finalizar venda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { FinalizaVenda(); } } else { MessageBox.Show("Valores informados não são suficientes para finalizar a venda.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); } }
private void TelaPadrao() { for (int i = 0; i <= Sessao.Instance.ListaTipoPagamento.Count - 1; i++) { ComboTipoPagamento.Items.Add(Sessao.Instance.ListaTipoPagamento[i].Descricao); } ComboTipoPagamento.SelectedIndex = 0; // Configura Grid DTValores = new DataTable("VALORES"); DTValores.Columns.Add("DESCRICAO", typeof(string)); //0 DTValores.Columns.Add("VALOR", typeof(decimal)); //1 DTValores.Columns.Add("ID", typeof(int)); //2 //os campos abaixo serão utilizados caso seja necessario cancelar uma transacao TEF DTValores.Columns.Add("TEF", typeof(string)); //3 DTValores.Columns.Add("NSU", typeof(string)); //4 DTValores.Columns.Add("REDE", typeof(string)); //5 DTValores.Columns.Add("DATA_HORA_TRANSACAO", typeof(string)); //6 DTValores.Columns.Add("INDICE_TRANSACAO", typeof(int)); //7 DTValores.Columns.Add("INDICE_LISTA", typeof(int)); //8 DTValores.Columns.Add("FINALIZACAO", typeof(string)); //9 dataSet.Tables.Add(DTValores); GridValores.DataSource = dataSet; GridValores.DataMember = dataSet.Tables[0].ToString(); //definimos os cabeçalhos da Grid GridValores.Columns[0].HeaderText = "Descrição"; GridValores.Columns[0].ReadOnly = true; GridValores.Columns[1].HeaderText = "Valor"; GridValores.Columns[1].ReadOnly = true; GridValores.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; //nao exibe as colunas abaixo GridValores.Columns[2].Visible = false; GridValores.Columns[3].Visible = false; GridValores.Columns[4].Visible = false; GridValores.Columns[5].Visible = false; GridValores.Columns[6].Visible = false; GridValores.Columns[7].Visible = false; GridValores.Columns[8].Visible = false; GridValores.Columns[9].Visible = false; ComboTipoPagamento.Focus(); }
private void btnAdicionar_Click(object sender, EventArgs e) { if (ComboTipoPagamento.Text.Trim() == "") { MessageBox.Show("Informe uma forma de Pagamento valida!", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); return; } if (Convert.ToDecimal(edtValor.Text) <= 0) { MessageBox.Show("Informe um Valor valido!", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); edtValor.Focus(); return; } try { FechamentoVO Fechamento = new FechamentoVO(); Fechamento.IdMovimento = Movimento.Id; Fechamento.TipoPagamento = ComboTipoPagamento.Text; Fechamento.Valor = Convert.ToDecimal(edtValor.Text); DataRow Registro = DTFechamento.NewRow(); Registro["TIPO_PAGAMENTO"] = Fechamento.TipoPagamento; Registro["VALOR"] = Convert.ToDecimal(Fechamento.Valor.ToString("0.00")); Fechamento = FechamentoController.GravaFechamento(Fechamento); if (Fechamento != null) { Registro["ID"] = Fechamento.Id; DTFechamento.Rows.Add(Registro); TotalizaFechamento(); } } catch (Exception eError) { Log.write(eError.ToString()); } edtValor.Clear(); ComboTipoPagamento.Focus(); }
private void FEfetuaPagamento_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F2) { if (GridValores.RowCount == 0) { if (MessageBox.Show("Confirma valores e encerra venda por fechamento rapido?", "Finalizar venda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { FechamentoRapido(); } } else { MessageBox.Show("Ja existem valores informados. Impossivel utilizar Fechamento Rapido.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); } } if (e.KeyCode == Keys.F12) { botaoConfirma.PerformClick(); } if (e.KeyCode == Keys.Escape) { botaoCancela.PerformClick(); } if (e.KeyCode == Keys.F5) { if (GridValores.RowCount > 0) { GridValores.Focus(); } else { MessageBox.Show("Não existem valores informados para serem removidos.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboTipoPagamento.Focus(); } } }
private void botaoSim_Click(object sender, EventArgs e) { decimal ValorInformado; string Mensagem; EcfTipoPagamentoDTO TipoPagamento = Sessao.Instance.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 { EcfTotalTipoPagamentoDTO TotalTipoPagamento = new EcfTotalTipoPagamentoDTO(); 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 >= Sessao.Instance.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 >= Sessao.Instance.Configuracao.QuantidadeMaximaCartoes - 1) && (ValorInformado != SaldoRestante)) { Mensagem = "Multiplos Cartoes. Transacao suporta ate " + Convert.ToString(Sessao.Instance.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 { ACBrTEFD.Initializar((ACBrFramework.TEFD.TefTipo) int.Parse(TipoPagamento.TefTipoGp)); } 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, DataModule.ACBrECF.NumCOO); } if (StatusTransacao) { IndiceTransacaoTef++; TotalTipoPagamento.Nsu = ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].NSU; TotalTipoPagamento.Rede = ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].Rede; if ((ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].TipoTransacao >= 10) && (ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].TipoTransacao <= 12)) { TotalTipoPagamento.CartaoDc = "C"; } if ((ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].TipoTransacao >= 20) && (ACBrTEFD.RespostasPendentes[IndiceTransacaoTef].TipoTransacao <= 25)) { TotalTipoPagamento.CartaoDc = "D"; } 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["INDICE_TRANSACAO"] = IndiceTransacaoTef; } 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.IdEcfVendaCabecalho = Sessao.Instance.VendaAtual.Id; TotalTipoPagamento.Valor = Biblioteca.TruncaValor(Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); TotalTipoPagamento.Estorno = "N"; TotalTipoPagamento.SerieEcf = Sessao.Instance.Configuracao.EcfImpressora.Serie; TotalTipoPagamento.Coo = int.Parse(DataModule.ACBrECF.NumCOO); TotalTipoPagamento.Ccf = int.Parse(DataModule.ACBrECF.NumCCF); TotalTipoPagamento.Gnf = int.Parse(DataModule.ACBrECF.NumGNF); TotalTipoPagamento.EcfTipoPagamento = TipoPagamento; 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 noDTO cupom e deve-se informar novamente os pagamentos.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); Sessao.Instance.VendaAtual.CupomCancelado = "S"; Sessao.Instance.StatusCaixa = Tipos.StatusCaixa.scAberto; FechaVendaComProblemas(); PodeFechar = true; this.Close(); } } }
private void botaoNao_Click(object sender, EventArgs e) { PanelConfirmaValores.Visible = false; ComboTipoPagamento.Focus(); }
private void botaoSim_Click(object sender, EventArgs e) { decimal ValorInformado; NfceTipoPagamentoDTO TipoPagamento = Sessao.Instance.ListaTipoPagamento[ComboTipoPagamento.SelectedIndex]; ValorInformado = Biblioteca.TruncaValor(Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); NfeFormaPagamentoDTO TotalTipoPagamento = new NfeFormaPagamentoDTO(); GroupBox3.Enabled = false; DataRow Registro = DTValores.NewRow(); Registro["DESCRICAO"] = ComboTipoPagamento.Text; decimal valor = Convert.ToDecimal(editValorPago.Text); Registro["VALOR"] = Convert.ToDecimal(valor.ToString("0.00")); 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.IdNfeCabecalho = Sessao.Instance.VendaAtual.Id; //TotalTipoPagamento.IdNfceTipoPagamento = TipoPagamento.Id; TotalTipoPagamento.Valor = Biblioteca.TruncaValor(Convert.ToDecimal(editValorPago.Text), Constantes.DECIMAIS_VALOR); TotalTipoPagamento.Forma = TipoPagamento.Codigo; TotalTipoPagamento.Estorno = "N"; TotalTipoPagamento.NfceTipoPagamento = TipoPagamento; if (TipoPagamento.GeraParcelas == "N") { Sessao.Instance.VendaAtual.IndicadorFormaPagamento = 0; //a vista } else { Sessao.Instance.VendaAtual.IndicadorFormaPagamento = 1; //a prazo } 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(); } }
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(); } } }