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); }
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(); } } }