public ActionResult editar(int?id)
        {
            var ViewModel = new CupomDescontoForm();

            ViewModel.CupomDesconto = this.OCupomDescontoBL.carregar(UtilNumber.toInt32(id)) ?? new CupomDesconto();

            return(View(ViewModel));
        }
        public ActionResult editar(CupomDescontoForm ViewModel)
        {
            if (!ModelState.IsValid)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Houve um problema ao salvar o registro. Tente novamente.");

                return(View(ViewModel));
            }

            if (ViewModel.CupomDesconto.id > 0)
            {
                var OCupom = this.OCupomDescontoBL.carregar(ViewModel.CupomDesconto.id);

                var flagUsadoQtde = OTituloReceitaPagamentoBL.listar(0).Count(x => x.idCupomDesconto == ViewModel.CupomDesconto.id);

                if (OCupom?.flagUtilizado == true || (OCupom?.qtdeUsos > 0 && flagUsadoQtde > 0))
                {
                    this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Não é possível editar um cupom de desconto que já foi usado.");

                    return(View(ViewModel));
                }
            }

            bool flagSalvo = this.OCupomDescontoBL.salvar(ViewModel.CupomDesconto);

            if (flagSalvo)
            {
                this.OCupomDescontoBL.enviarCupom(ViewModel.CupomDesconto.id);

                this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, "<strong>Sucesso!</strong><br />As informações foram salvas com sucesso!");

                return(View(ViewModel));
            }

            this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, "Não foi possível salvar as informações, tente novamente.");

            return(View(ViewModel));
        }