internal bool Cancelar(NumeroCFOCFOC objeto) { if (_da.NumeroCancelado(objeto.Id)) { Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.CancelarSituacaoInvalida(objeto.TipoDocumentoTexto, objeto.Numero.ToString())); return(false); } int utilizadoID = 0; switch ((eDocumentoFitossanitarioTipo)objeto.Tipo) { case eDocumentoFitossanitarioTipo.CFO: EmissaoCFODa daCFO = new EmissaoCFODa(); utilizadoID = daCFO.NumeroUtilizado(objeto.Numero, objeto.Serie); break; case eDocumentoFitossanitarioTipo.CFOC: EmissaoCFOCDa daCFOC = new EmissaoCFOCDa(); utilizadoID = daCFOC.NumeroUtilizado(objeto.Numero, objeto.Serie); break; } if (utilizadoID > 0) { var aux = _da.CFOCFOCJaAssociado(objeto.Tipo, utilizadoID); if (aux.Count == 1) { Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.DocumentoJaAssociado(objeto.TipoDocumentoTexto, objeto.Numero.ToString(), aux.First().Key, aux.First().Value)); } else if (aux.Count > 1) { Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.DocumentoJaAssociadoEOutros(objeto.TipoDocumentoTexto, objeto.Numero.ToString(), aux.First().Key, aux.First().Value)); } } if (string.IsNullOrWhiteSpace(objeto.Motivo)) { Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.MotivoCancelamentoObrigatorio); } return(Validacao.EhValido); }