public void FechaVendaComProblemas() { // altera o status da venda para C Sessao.Instance.VendaAtual.StatusVenda = "C"; Caixa.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"; } EcfTotalTipoPagamentoController.GravaEcfTotalTipoPagamentoLista(ListaTotalTipoPagamento); }
public void FinalizaVenda() { ImpressaoOK = true; // subtotaliza o cupom SubTotalizaCupom(); // manda os pagamentos para o ECF if (TransacaoComTef) { OrdenaLista(); } for (int i = 0; i <= ListaTotalTipoPagamento.Count - 1; i++) { if (ListaTotalTipoPagamento[i].EcfTipoPagamento.Tef != "S") { DataModule.ACBrECF.EfetuaPagamento(ListaTotalTipoPagamento[i].EcfTipoPagamento.Codigo, ListaTotalTipoPagamento[i].Valor.Value); } } // Descomente para bloquear teclado e mouse //BlockInput.Bloquear(true); // finaliza o cupom ACBrTEFD.FinalizarCupom(); // imprime as transacoes pendentes - comprovantes nao fiscais vinculados ACBrTEFD.ImprimirTransacoesPendentes(); // Descomente para bloquear teclado e mouse //BlockInput.Bloquear(false); if (ImpressaoOK) { // grava os pagamentos no banco de dados EcfTotalTipoPagamentoController.GravaEcfTotalTipoPagamentoLista(ListaTotalTipoPagamento); // conclui o encerramento da venda - grava dados de cabecalho no banco Sessao.Instance.VendaAtual.ValorFinal = TotalReceber; Sessao.Instance.VendaAtual.ValorRecebido = TotalRecebido; Sessao.Instance.VendaAtual.Troco = Troco; Sessao.Instance.VendaAtual.StatusVenda = "F"; Sessao.Instance.StatusCaixa = Tipos.StatusCaixa.scAberto; Caixa.ConcluiEncerramentoVenda(); // usado quando a gaveta tem sinal invertido if (Sessao.Instance.Configuracao.GavetaSinalInvertido == "S") { DataModule.ACBrECF.GavetaSinalInvertido = true; } if (Sessao.Instance.Configuracao.GavetaUtilizacao > 0) { DataModule.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); Sessao.Instance.VendaAtual.CupomCancelado = "S"; Sessao.Instance.StatusCaixa = Tipos.StatusCaixa.scAberto; 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); Sessao.Instance.StatusCaixa = Tipos.StatusCaixa.scSomenteConsulta; FechaVendaComProblemas(); PodeFechar = true; this.Close(); } } }