Пример #1
0
        public void FechaVendaComProblemas()
        {
            // altera o status da venda para C
            FCaixa.VendaCabecalho.StatusVenda = "C";
            FCaixa.ConcluiEncerramentoVenda();

            // grava os pagamentos no banco de dados com o indicador de estorno
            for (int i = 0; i <= ListaTotalTipoPagamento.Count - 1; i++)
            {
                ListaTotalTipoPagamento[i].Estorno = "S";
            }
            TotalTipoPagamentoController.GravaTotaisVenda(ListaTotalTipoPagamento);
        }
Пример #2
0
        public void FinalizaVenda()
        {
            ImpressaoOK = true;

            // subtotaliza o cupom
            SubTotalizaCupom();

            // manda os pagamentos para o ECF
            if (TransacaoComTef)
            {
                OrdenaLista();
            }

            TotalTipoPagamentoVO TotalTipoPagamento = new TotalTipoPagamentoVO();

            for (int i = 0; i <= ListaTotalTipoPagamento.Count - 1; i++)
            {
                TotalTipoPagamento = ListaTotalTipoPagamento[i];
                if (TotalTipoPagamento.TemTEF != "S")
                {
                    FDataModule.ACBrECF.EfetuaPagamento(TotalTipoPagamento.CodigoPagamento, TotalTipoPagamento.Valor);
                }
            }

            //TODO:  Descomente para bloquear teclado e mouse
            //BlockInput.Bloquear(true);

            // finaliza o cupom
            ACBrTEFD.FinalizarCupom();

            // imprime as transacoes pendentes - comprovantes nao fiscais vinculados
            ACBrTEFD.ImprimirTransacoesPendentes();

            //TODO:  Descomente para bloquear teclado e mouse
            //BlockInput.Bloquear(false);

            if (ImpressaoOK)
            {
                // grava os pagamentos no banco de dados
                TotalTipoPagamentoController.GravaTotaisVenda(ListaTotalTipoPagamento);

                // conclui o encerramento da venda - grava dados de cabecalho no banco
                FCaixa.VendaCabecalho.ValorFinal    = TotalReceber;
                FCaixa.VendaCabecalho.ValorRecebido = TotalRecebido;
                FCaixa.VendaCabecalho.Troco         = Troco;
                FCaixa.VendaCabecalho.StatusVenda   = "F";
                FCaixa.StatusCaixa = 0;
                FCaixa.ConcluiEncerramentoVenda();

                //  usado quando a gaveta tem sinal invertido
                if (FCaixa.Configuracao.SinalInvertido == 1)
                {
                    FDataModule.ACBrECF.GavetaSinalInvertido = true;
                }

                if (FCaixa.Configuracao.GavetaDinheiro > 0)
                {
                    FDataModule.ACBrECF.AbreGaveta();
                }

                PodeFechar = true;
                this.Close();
            }
            else
            {
                if (CupomCancelado)
                //ocorreu problema na impressao do comprovante do TEF. ECF Desligado.
                //Sistema pergunta ao usuário se o mesmo quer tentar novamente. Usuário responde não.
                //ECF agora está ligado e o sistema consegue cancelar o cupom.
                {
                    MessageBox.Show("Problemas no ECF. Cupom Fiscal Cancelado.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FCaixa.ProblemaNoPagamento = true;
                    FCaixa.VendaCabecalho.CupomFoiCancelado = "S";
                    FCaixa.StatusCaixa = 0;
                    FechaVendaComProblemas();
                    PodeFechar = true;
                    this.Close();
                }
                else
                //ocorreu problema na impressao do comprovante do TEF. ECF Desligado.
                //Sistema pergunta ao usuário se o mesmo quer tentar novamente. Usuário responde não.
                //ECF continua desligado e o sistema não consegue cancelar o cupom.
                {
                    MessageBox.Show("Problemas no ECF. Aplicação funcionará apenas para consulta.", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FCaixa.StatusCaixa = 3;
                    FechaVendaComProblemas();
                    PodeFechar = true;
                    this.Close();
                }
            }
        }