Esempio n. 1
0
        internal List <Lista> ObterCultivar(eDocumentoFitossanitarioTipo origemTipo, int culturaID)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                List <Lista> retorno = null;
                Comando      comando = bancoDeDados.CriarComando(@"select t.id, t.cultivar from {0}tab_cultura_cultivar t where t.cultura = :culturaID", UsuarioCredenciado);
                comando.AdicionarParametroEntrada("culturaID", culturaID, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    retorno = new List <Lista>();
                    while (reader.Read())
                    {
                        retorno.Add(new Lista()
                        {
                            Id = reader.GetValue <string>("id"), Texto = reader.GetValue <string>("cultivar")
                        });
                    }

                    reader.Close();
                }

                return(retorno);
            }
        }
Esempio n. 2
0
        public int SetarNumeroUtilizado(string numero, int tipoNumero, eDocumentoFitossanitarioTipo tipoDocumento)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"
				update tab_numero_cfo_cfoc t set t.utilizado = 1 
				where t.tipo_documento = :tipo_documento and t.tipo_numero = :tipo_numero and t.numero = :numero 
				returning t.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("numero", numero, DbType.Int64);
                comando.AdicionarParametroEntrada("tipo_documento", (int)tipoDocumento, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_numero", tipoNumero, DbType.Int32);
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                int id = comando.ObterValorParametro <int>("id");

                Historico.Gerar(id, eHistoricoArtefato.numerocfocfoc, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();

                return(id);
            }
        }
Esempio n. 3
0
 public ActionResult ObterUnidadeMedida(eDocumentoFitossanitarioTipo origemTipo, int origemID, int culturaID, int cultivarID)
 {
     return(Json(new
     {
         @EhValido = Validacao.EhValido,
         @Erros = Validacao.Erros,
         @UnidadeMedida = _busPTV.ObterUnidadeMedida(origemTipo, origemID, culturaID, cultivarID)
     }, JsonRequestBehavior.AllowGet));
 }
Esempio n. 4
0
 public ActionResult ObterCultivar(eDocumentoFitossanitarioTipo origemTipo, int culturaID = 0)
 {
     return(Json(new
     {
         @EhValido = Validacao.EhValido,
         @Erros = Validacao.Erros,
         @Cultivar = _bus.ObterCultivar(origemTipo, culturaID)
     }, JsonRequestBehavior.AllowGet));
 }
Esempio n. 5
0
 public ActionResult ObterNumeroOrigem(eDocumentoFitossanitarioTipo origemTipo, int empreendimentoID)
 {
     return(Json(new
     {
         @EhValido = Validacao.EhValido,
         @Erros = Validacao.Erros,
         @NumeroOrigem = _busPTV.ObterNumeroOrigem(origemTipo, empreendimentoID)
     },
                 JsonRequestBehavior.AllowGet));
 }
Esempio n. 6
0
        public bool VerificarSeDocumentoJaAssociadaALote(int origemID, eDocumentoFitossanitarioTipo origemTipo)
        {
            try
            {
                return(_da.VerificarSeDocumentoJaAssociadaALote(origemID, (int)origemTipo));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(false);
        }
Esempio n. 7
0
        public List <Lista> ObterCultivar(eDocumentoFitossanitarioTipo origemTipo, int culturaID)
        {
            try
            {
                return(_da.ObterCultivar(origemTipo, culturaID));
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(new List <Lista>());
        }
Esempio n. 8
0
        public List <Lista> ObterNumeroOrigem(eDocumentoFitossanitarioTipo origemTipo, int empreendimentoID)
        {
            try
            {
                return(_da.ObterNumeroOrigem(origemTipo, empreendimentoID));
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(new List <Lista>());
        }
        public void SetarNumeroUtilizado(string numero, int tipoNumero, eDocumentoFitossanitarioTipo tipoDocumento)
        {
            GerenciadorTransacao.ObterIDAtual();

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

                if (_da.SetarNumeroUtilizado(numero, tipoNumero, tipoDocumento) <= 0)
                {
                    Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.NumeroNaoEncontrado);
                }

                bancoDeDados.Commit();
            }
        }
Esempio n. 10
0
        public Dictionary <string, object> VerificarDocumentoOrigem(eDocumentoFitossanitarioTipo origemTipo, string origemTipoTexto, long numero)
        {
            List <Lista> listaCulturas                  = new List <Lista>();
            Dictionary <string, object> retorno         = new Dictionary <string, object>();
            Dictionary <string, object> documentoOrigem = null;

            try
            {
                if (numero <= 0)
                {
                    Validacao.Add(Mensagem.PTV.NumeroDocumentoOrigemObrigatorio);
                }
                else
                {
                    documentoOrigem = _da.VerificarDocumentoOrigem(origemTipo, numero);
                    if (documentoOrigem != null)
                    {
                        switch (origemTipo)
                        {
                        case eDocumentoFitossanitarioTipo.CFO:
                            if ((int)documentoOrigem["situacao"] != (int)eDocumentoFitossanitarioSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.CfoSituacaoInvalida);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.CFOC:
                            if ((int)documentoOrigem["situacao"] != (int)eDocumentoFitossanitarioSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.CfocSituacaoInvalida);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.PTV:
                            if ((int)documentoOrigem["situacao"] != (int)ePTVSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.PTVSituacaoInvalida);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                            if ((int)documentoOrigem["situacao"] != (int)ePTVOutroSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.PTVOutroEstadoSituacaoInvalida);
                            }
                            break;
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.PTV.NumeroDocumentoOrigemNaoExistente(origemTipoTexto));
                    }
                }

                if (documentoOrigem == null)
                {
                    retorno.Add("id", 0);
                    retorno.Add("empreendimento_id", 0);
                    retorno.Add("empreendimento_denominador", string.Empty);
                    retorno.Add("listaCulturas", new List <Lista>());
                }
                else
                {
                    retorno.Add("id", documentoOrigem["id"]);
                    retorno.Add("empreendimento_id", documentoOrigem["empreendimento_id"]);
                    retorno.Add("empreendimento_denominador", documentoOrigem["empreendimento_denominador"]);
                    retorno.Add("listaCulturas", _da.ObterCultura((int)origemTipo, (int)documentoOrigem["id"]));
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(retorno);
        }
Esempio n. 11
0
        public Dictionary <string, object> VerificarDocumentoOrigem(eDocumentoFitossanitarioTipo origemTipo, string origemTipoTexto, long numero, string serieNumero)
        {
            List <Lista> listaCulturas                  = new List <Lista>();
            Dictionary <string, object> retorno         = new Dictionary <string, object>();
            Dictionary <string, object> documentoOrigem = null;

            try
            {
                if (numero <= 0)
                {
                    Validacao.Add(Mensagem.PTV.NumeroDocumentoOrigemObrigatorio);
                }
                else
                {
                    documentoOrigem = _da.VerificarDocumentoOrigem(origemTipo, numero, serieNumero);
                    if (documentoOrigem != null)
                    {
                        CredenciadoDa _credenciadoDa = new CredenciadoDa();
                        var           credenciado    = _credenciadoDa.Obter(User.FuncionarioId);

                        switch (origemTipo)
                        {
                        case eDocumentoFitossanitarioTipo.CFO:
                            if ((int)documentoOrigem["situacao"] != (int)eDocumentoFitossanitarioSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.CfoSituacaoInvalida);
                            }

                            PessoaInternoDa _pessoaInternoDa = new PessoaInternoDa();
                            var             produtor         = _pessoaInternoDa.Obter((int)documentoOrigem["produtor"]);

                            if ((int)documentoOrigem["credenciado"] != User.FuncionarioId && produtor.CPFCNPJ != credenciado.Pessoa.CPFCNPJ)
                            {
                                Validacao.Add(Mensagem.PTV.UsuarioSemPermissaoDocOrigem);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.CFOC:
                            if ((int)documentoOrigem["situacao"] != (int)eDocumentoFitossanitarioSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.CfocSituacaoInvalida);
                            }

                            EmpreendimentoInternoDa _empreendimentoInternoDa = new EmpreendimentoInternoDa();
                            var empreendimento = _empreendimentoInternoDa.Obter((int)documentoOrigem["empreendimento_id"]);

                            if ((int)documentoOrigem["credenciado"] != User.FuncionarioId && empreendimento.CNPJ != credenciado.Pessoa.CPFCNPJ)
                            {
                                Validacao.Add(Mensagem.PTV.UsuarioSemPermissaoDocOrigem);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.PTV:
                            if ((int)documentoOrigem["situacao"] != (int)ePTVSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.PTVSituacaoInvalida);
                            }
                            break;

                        case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                            if ((int)documentoOrigem["situacao"] != (int)ePTVOutroSituacao.Valido)
                            {
                                Validacao.Add(Mensagem.PTV.PTVOutroEstadoSituacaoInvalida);
                            }
                            if ((int)documentoOrigem["credenciado"] != User.FuncionarioId)
                            {
                                Validacao.Add(Mensagem.PTV.UsuarioSemPermissaoDocOrigem);
                            }
                            break;
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.PTV.NumeroDocumentoOrigemNaoExistente(origemTipoTexto));
                    }
                }

                if (documentoOrigem == null)
                {
                    retorno.Add("id", 0);
                    retorno.Add("empreendimento_id", 0);
                    retorno.Add("empreendimento_denominador", string.Empty);
                    retorno.Add("listaCulturas", new List <Lista>());
                    retorno.Add("declaracao_adicional", " ");
                }
                else
                {
                    retorno.Add("id", documentoOrigem["id"]);
                    retorno.Add("empreendimento_id", documentoOrigem["empreendimento_id"]);
                    retorno.Add("empreendimento_denominador", documentoOrigem["empreendimento_denominador"]);
                    retorno.Add("listaCulturas", _da.ObterCultura((int)origemTipo, (int)documentoOrigem["id"]));
                    retorno.Add("declaracao_adicional", _da.ObterDeclaracaoAdicional((int)documentoOrigem["id"]));
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(retorno);
        }
Esempio n. 12
0
        internal decimal ObterOrigemQuantidade(eDocumentoFitossanitarioTipo origemTipo, int origemID, string origemNumero, int cultivarID, int unidadeMedida, int anoEmissao, int lote)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaCredenciado))
            {
                string query = string.Empty;

                switch (origemTipo)
                {
                case eDocumentoFitossanitarioTipo.CFO:
                case eDocumentoFitossanitarioTipo.CFOC:
                case eDocumentoFitossanitarioTipo.PTV:
                    query = @"
						select (
						/*LOTE*/
						nvl((select sum(i.quantidade) quantidade
						from tab_lote t, tab_lote_item i
						where i.lote = t.id
						and i.origem_tipo = :origem_tipo
						and i.origem = :origem
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and extract (year from t.data_criacao) = :anoEmissao
						and t.id != :lote), 0)
						+
						/*EPTV*/
						nvl((select sum(i.quantidade) quantidade
						from tab_ptv t, tab_ptv_produto i
						where i.ptv = t.id
						and i.origem_tipo = :origem_tipo
						and i.origem = :origem
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and extract (year from t.data_emissao) = :anoEmissao
						and t.situacao != 3), 0)
						+
						/*PTV*/
						nvl((select sum(i.quantidade) quantidade
						from ins_ptv t, ins_ptv_produto i
						where i.ptv = t.id
						and i.origem_tipo = :origem_tipo
						and i.origem = :origem
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and extract (year from t.data_emissao) = :anoEmissao
						and t.situacao != 3), 0)) saldo_utilizado from dual"                        ;
                    break;

                case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                    query = @"
						select (
						/*LOTE*/
						nvl((select sum(i.quantidade) quantidade
						from tab_lote t, tab_lote_item i
						where i.lote = t.id
						and i.origem_tipo = :origem_tipo
						and i.origem_numero = :origem_numero
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and t.id != :lote), 0)
						+
						/*EPTV*/
						nvl((select sum(i.quantidade) quantidade
						from tab_ptv t, tab_ptv_produto i
						where i.ptv = t.id
						and i.origem_tipo = :origem_tipo
						and i.numero_origem = :origem_numero
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and t.situacao != 3), 0)
						+
						/*PTV*/
						nvl((select sum(i.quantidade) quantidade
						from ins_ptv t, ins_ptv_produto i
						where i.ptv = t.id
						and i.origem_tipo = :origem_tipo
						and i.numero_origem = :origem_numero
						and i.cultivar = :cultivar
						and i.unidade_medida = :unidade_medida
						and t.situacao != 3), 0)) saldo_utilizado from dual"                        ;
                    break;
                }

                Comando comando = bancoDeDados.CriarComando(query, EsquemaCredenciado);

                comando.AdicionarParametroEntrada("lote", lote, DbType.Int32);
                comando.AdicionarParametroEntrada("origem_tipo", (int)origemTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("cultivar", cultivarID, DbType.Int32);
                comando.AdicionarParametroEntrada("unidade_medida", unidadeMedida, DbType.Int32);

                switch (origemTipo)
                {
                case eDocumentoFitossanitarioTipo.CFO:
                case eDocumentoFitossanitarioTipo.CFOC:
                case eDocumentoFitossanitarioTipo.PTV:
                    comando.AdicionarParametroEntrada("origem", origemID, DbType.Int32);
                    comando.AdicionarParametroEntrada("anoEmissao", anoEmissao, DbType.Int32);
                    break;

                case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                    comando.AdicionarParametroEntrada("origem_numero", origemNumero, DbType.String);
                    break;
                }

                return(Convert.ToDecimal(bancoDeDados.ExecutarScalar(comando)));
            }
        }