コード例 #1
0
ファイル: Pagamento.cs プロジェクト: njmube/openposbr
        /// <summary>
        /// Efetua um pagamento com cartão 
        /// </summary>
        public void Pagar(IImpressoraFormaPagto forma, decimal valor, string numeroCOO, DadosCheque cheque = null)
        {
            valor = Math.Round(valor, 2);
            FormaPagamento = forma;
            NumeroCOO = numeroCOO;
            Valor = valor;

            string indice = string.Format("{0:D2}", forma.Indice);

            switch (forma.FormaPagamento.TipoForma)
            {
                case Enuns.Cadastro.TipoForma.Dinheiro:
                    break;
                case Enuns.Cadastro.TipoForma.Cheque:
                    if (cheque != null)
                        Cheque = cheque;
                    ACBrTEF.CHQEmGerencial = true;
                    ACBrTEF.CHQ(valor, indice.ToString(), NumeroCOO, string.Empty, Convert.ToChar("F"), string.Empty, DateTime.Now, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoDebito:
                    ACBrTEF.CRT(valor, indice, numeroCOO);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoCredito:
                    ACBrTEF.CRT(valor, indice, numeroCOO);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoPrivateLabel:
                    break;
                case Enuns.Cadastro.TipoForma.ConfirmacaoPreAutorizacao:
                    break;
                case Enuns.Cadastro.TipoForma.CreditoConsumidor:
                    break;
                default:
                    break;
            }
        }
コード例 #2
0
ファイル: Pagamento.cs プロジェクト: njmube/openposbr
        /// <summary>
        /// Efetua forma de pagamento a cartão
        /// </summary>
        /// <param name="forma">Indíce da forma de pagamento da impressora fiscal</param>
        /// <param name="valor">Valor da forma de pagamento</param>
        public void Pagar(IImpressoraFormaPagto forma, decimal valor, DadosCheque cheque = null)
        {
            valor = Math.Round(valor, 2);
            FormaPagamento = forma;
            Valor = valor;

            string indice = string.Format("{0:D2}", forma.Indice);

            switch (forma.FormaPagamento.TipoForma)
            {
                case Enuns.Cadastro.TipoForma.Dinheiro:
                    break;
                case Enuns.Cadastro.TipoForma.Cheque:
                    if (cheque != null)
                        Cheque = cheque;
                    ACBrTEF.CHQ(valor, indice);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoDebito:
                    ACBrTEF.CRT(valor, indice);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoCredito:
                    ACBrTEF.CRT(valor, indice);
                    break;
                case Enuns.Cadastro.TipoForma.CartaoPrivateLabel:
                    break;
                case Enuns.Cadastro.TipoForma.ConfirmacaoPreAutorizacao:
                    break;
                case Enuns.Cadastro.TipoForma.CreditoConsumidor:
                    break;
                default:
                    break;
            }
        }
コード例 #3
0
ファイル: FormaPagamento.cs プロジェクト: njmube/openposbr
        private void btnOK_Click(object sender, System.EventArgs e)
        {
            ParentForm.DialogResult = DialogResult.None;
            #region Validar antes de continuar
            if (GUID.IsNullOrEmpty(lstFormaPagto.SelectedItem == null ? GUID.Empty : ((FormaPagamentoValue)lstFormaPagto.SelectedItem).value))
            {
                MessageBox.RequiredField(lstFormaPagto, "Forma de Pagamento");
                return;
            }

            if (maskValorRecebido.Value <= 0)
            {
                MessageBox.RequiredField(maskValorRecebido, "Valor Recebido");
                return;
            }

            //Validar o campo "Condição de Pagamento" e "Parcelas", somente se for o pagamento parcelado
            IImpressoraFormaPagto impForma = new ImpressoraFormaPagto(((FormaPagamentoValue)lstFormaPagto.SelectedItem).value.ToString());
            if (Tipo == Enuns.Cadastro.TipoForma.Parcelado)
            {
                if (GUID.IsNullOrEmpty(usParcela.CondicaoPagamento == null ? GUID.Empty : usParcela.CondicaoPagamento.GUID))
                {
                    MessageBox.RequiredField(usParcela, "Condição de Pagamento");
                    return;
                }
                else if (usParcela.Parcelas.Count == 0)
                {
                    MessageBox.RequiredField(usParcela, "Parcelas");
                    return;
                }
            }

            if (!Settings.TEF.UsaTEF &&
                Tipo.IsTEF())
            {
                if (txtNSU.Text.IsNullOrEmpty())
                {
                    MessageBox.RequiredField(txtNSU, "Valor NSU");
                    return;
                }
            }

            #endregion

            ParentForm.DialogResult = DialogResult.OK;

            if (OnOkClick != null)
            {
                FormaPagamentoEventArgs f = new FormaPagamentoEventArgs(FormaPagto.GUID);
                DadosCheque d = new DadosCheque();
                d.Agencia = txtChequeAgencia.Text;
                d.AgenciaDC = txtChequeC1.Text;
                d.Compensacao = Unimake.Convert.ToInt(txtChequeComp.Text);
                d.ContaCorrente = txtChequeContaCorrente.Text;
                d.ContaCorrenteDC = txtChequeC2.Text;
                d.Numero = txtChequeNumero.Text;
                d.NumeroDC = txtChequeC3.Text;
                d.Banco = new Banco(sfChequeBanco.SelectedItem.GUID);
                d.NumeroAutorizacao = txtNumAutorizacao.Text;
                f.Cheque = d;
                f.NSU = NSU;
                f.Voucher = Voucher;
                f.FormaPagamentoSelecionada = FormaPagto;

                OnOkClick(this, f);
            }
        }