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);
            }
        }
        internal List <NumeroCFOCFOC> FiltrarConsulta(ConsultaFiltro filtro, BancoDeDados banco = null)
        {
            List <NumeroCFOCFOC> retorno = new List <NumeroCFOCFOC>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select t.* from tab_numero_cfo_cfoc t, hst_liberacao_cfo_cfoc h 
				where h.responsavel_tecnico_id = :credenciado_id and h.liberacao_id = t.liberacao and t.tipo_numero = :tipo_numero "                );

                comando.AdicionarParametroEntrada("tipo_numero", filtro.TipoNumero, DbType.Int32);
                comando.AdicionarParametroEntrada("credenciado_id", filtro.CredenciadoId, DbType.Int32);

                comando.DbCommand.CommandText += comando.FiltroAnd("t.numero", "numero", filtro.Numero);

                comando.DbCommand.CommandText += comando.FiltroAnd("t.tipo_documento", "tipo_documento", filtro.TipoDocumento);

                if (!string.IsNullOrEmpty(filtro.DataInicialEmissao))
                {
                    comando.DbCommand.CommandText += " and h.data_execucao >= :data_inicial ";
                    comando.AdicionarParametroEntrada("data_inicial", filtro.DataInicialEmissao, DbType.DateTime);
                }

                if (!string.IsNullOrEmpty(filtro.DataFinalEmissao))
                {
                    comando.DbCommand.CommandText += " and h.data_execucao <= :data_final";
                    comando.AdicionarParametroEntrada("data_final", filtro.DataFinalEmissao, DbType.DateTime);
                }

                comando.DbCommand.CommandText += " order by t.numero";

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    NumeroCFOCFOC item = null;
                    while (reader.Read())
                    {
                        item = new NumeroCFOCFOC();

                        item.Id         = reader.GetValue <int>("id");
                        item.Numero     = reader.GetValue <long>("numero");
                        item.Situacao   = reader.GetValue <bool>("situacao");
                        item.Tipo       = reader.GetValue <int>("tipo_documento");
                        item.TipoNumero = filtro.TipoNumero;
                        item.Utilizado  = reader.GetValue <bool>("utilizado");
                        item.Motivo     = reader.GetValue <string>("motivo");
                        retorno.Add(item);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }
        internal void Cancelar(NumeroCFOCFOC objeto, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando("update tab_numero_cfo_cfoc set motivo =:motivo, situacao = 0, tid = :tid where id = :id", EsquemaBanco);
                comando.AdicionarParametroEntrada("id", objeto.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("motivo", objeto.Motivo, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);
                Historico.Gerar(objeto.Id, eHistoricoArtefato.numerocfocfoc, eHistoricoAcao.cancelar, bancoDeDados);
                bancoDeDados.Commit();
            }
        }
示例#4
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);
        }
 public ActionResult Cancelar(NumeroCFOCFOC objeto)
 {
     _bus.Cancelar(objeto);
     return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }));
 }