Exemple #1
0
        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);
        }