public void Cancelar(NumeroCFOCFOC objeto, BancoDeDados banco = null)
        {
            try
            {
                if (!_validar.Cancelar(objeto))
                {
                    return;
                }

                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.Cancelar(objeto, bancoDeDados);

                    switch ((eDocumentoFitossanitarioTipo)objeto.Tipo)
                    {
                    case eDocumentoFitossanitarioTipo.CFO:
                        EmissaoCFOBus busCFO = new EmissaoCFOBus();
                        busCFO.Cancelar(new EmissaoCFO()
                        {
                            Numero = objeto.Numero.ToString(), Serie = objeto.Serie
                        });
                        break;

                    case eDocumentoFitossanitarioTipo.CFOC:
                        EmissaoCFOCBus busCFOC = new EmissaoCFOCBus();
                        busCFOC.Cancelar(new EmissaoCFOC()
                        {
                            Numero = objeto.Numero.ToString(), Serie = objeto.Serie
                        });
                        break;
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return;
                    }

                    bancoDeDados.Commit();

                    String numero = !string.IsNullOrWhiteSpace(objeto.Serie) ? objeto.Numero.ToString() + "/" + objeto.Serie : objeto.Numero.ToString();

                    Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.NumeroCanceladoSucesso(numero));
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }