Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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());
                      *     }
                      * }
                      */
                }
            }
        }
Пример #3
0
        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();
                }
            }
        }