public ActionResult Criar(int id, int projetoDigitalId) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } UnidadeProducao caracterizacao = new UnidadeProducao(); caracterizacao.Empreendimento.Id = id; if (!_validar.Acessar(caracterizacao.Empreendimento.Id, projetoDigitalId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() })); } UnidadeProducaoVM vm = new UnidadeProducaoVM(caracterizacao); vm.UnidadeProducao.Empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(id); UnidadeProducaoInternoBus unidadeConsolidacaoInternoBus = new UnidadeProducaoInternoBus(); UnidadeProducao caracterizacaoInterno = unidadeConsolidacaoInternoBus.ObterPorEmpreendimento(vm.UnidadeProducao.Empreendimento.InternoID, true); if (caracterizacaoInterno.Id > 0) { vm.UnidadeProducao.PossuiCodigoPropriedade = caracterizacaoInterno.PossuiCodigoPropriedade; vm.UnidadeProducao.CodigoPropriedade = caracterizacaoInterno.CodigoPropriedade; vm.UnidadeProducao.InternoID = caracterizacaoInterno.Id; } return(View(vm)); }
internal bool Salvar(UnidadeProducao caracterizacao, int projetoDigitalId) { if (!_caracterizacaoValidar.Basicas(caracterizacao.Empreendimento.Id)) { return(false); } UnidadeProducao auxiliar = _da.ObterPorEmpreendimento(caracterizacao.Empreendimento.Id, true) ?? new UnidadeProducao(); if (caracterizacao.Id <= 0 && auxiliar.Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.Empreendimento.Id, projetoDigitalId)) { return(false); } if (caracterizacao.PossuiCodigoPropriedade) { if (caracterizacao.CodigoPropriedade < 1) { Validacao.Add(Mensagem.UnidadeProducao.CodigoPropriedadeObrigatorio); } else { if (caracterizacao.CodigoPropriedade > Convert.ToInt32(_configSys.Obter <String>(ConfiguracaoSistema.KeyUnidadeProducaoMaxCodigoPropriedade))) { Validacao.Add(Mensagem.UnidadeProducao.CodigoPropriedadeSuperiorMaximo); } else if (_da.CodigoPropriedadeExistente(caracterizacao)) { Validacao.Add(Mensagem.UnidadeProducao.CodigoPropriedadeJaExiste); } } } if (string.IsNullOrEmpty(caracterizacao.LocalLivroDisponivel)) { Validacao.Add(Mensagem.UnidadeProducao.LocalLivroDisponivelObrigatorio); } if (caracterizacao.UnidadesProducao.Count < 1) { Validacao.Add(Mensagem.UnidadeProducao.UnidadeProducaoObrigatorio); } for (int i = 0; i < caracterizacao.UnidadesProducao.Count; i++) { if (SalvarItemUnidadeProducao(caracterizacao.UnidadesProducao[i], caracterizacao.Empreendimento.Id).Count > 0) { Validacao.Add(Mensagem.UnidadeProducao.UnidadeProducaoItemIncorreto); break; } } return(Validacao.EhValido); }
public ActionResult Editar(UnidadeProducao caracterizacao, int projetoDigitalId) { Cultura cultura = null; Cultivar cultivar = null; foreach (var unidade in caracterizacao.UnidadesProducao) { foreach (var responsavel in unidade.ResponsaveisTecnicos) { cultura = new Cultura() { Id = unidade.CulturaId, Nome = unidade.CulturaTexto }; cultivar = new Cultivar() { Id = unidade.CultivarId.GetValueOrDefault(), Nome = unidade.CultivarTexto }; var validacaoResponsavelTecnico = ObterResponsavelTecnico(responsavel.Id, cultura, cultivar); if (!Validacao.EhValido) { return(validacaoResponsavelTecnico); } } } _bus.Salvar(caracterizacao, projetoDigitalId); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.Empreendimento.Id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }) }, JsonRequestBehavior.AllowGet)); }
public UnidadeProducaoPDF(UnidadeProducao unidadeProducao) { CodigoPropriedade = String.Format("{0:D4}", unidadeProducao.CodigoPropriedade); //Unidades Item foreach (var item in unidadeProducao.UnidadesProducao) { Unidades.Add(new UnidadeProducaoItemPDF(item)); } //Straggs List <ResponsavelPDF> responsaveis = new List <ResponsavelPDF>(); Unidades.SelectMany(x => x.ResponsaveisTecnicos).ToList().ForEach(resp => { if (!responsaveis.Exists(x => x.CPFCNPJ == resp.CPFCNPJ)) { responsaveis.Add(resp); } }); ProdutoresStragg = EntitiesBus.Concatenar(Unidades.SelectMany(x => x.Produtores).GroupBy(x => new { x.NomeRazaoSocial, x.Tipo, x.CPFCNPJ }).Select(g => g.First()).Select(x => x.NomeRazaoSocial + ", " + (x.Tipo == PessoaTipo.FISICA ? "CPF " : "CNPJ ") + x.CPFCNPJ).ToList()); ResponsaveisTecnicosStragg = EntitiesBus.Concatenar(responsaveis.Select(x => x.DadosCompletos).ToList()); ResponsaveisTecnicosCFONumeroStragg = EntitiesBus.Concatenar(responsaveis.Select(x => x.CFONumero.Trim()).ToList()); if (responsaveis.Count > 1) { ResponsaveisTecnicosCFONumeroStragg += " respectivamente"; } }
internal bool CopiarDadosCredenciado(UnidadeProducao caracterizacao) { if (caracterizacao.CredenciadoID <= 0) { Validacao.Add(Mensagem.UnidadeProducao.CopiarCaractizacaoCadastrada); } string auxiliar = _da.CodigoPropriedadeExistenteImportar(caracterizacao); if (!string.IsNullOrEmpty(auxiliar)) { Validacao.Add(Mensagem.UnidadeProducao.CodigoPropriedadeExistenteImportar(auxiliar)); } caracterizacao.UnidadesProducao.ForEach(unidade => { EmpreendimentoCaracterizacao emp = _da.VerificarCodigoUPJaCadastrado(unidade.CodigoUP, caracterizacao.Empreendimento.Id); if (emp != null && emp.Id > 0) { Validacao.Add(Mensagem.UnidadeProducao.CodigoUPJaAssociado(emp.Codigo.GetValueOrDefault(), emp.Denominador)); } }); return(Validacao.EhValido); }
public UnidadeProducao ObterPorEmpreendimento(int empreendimentoId, int projetoDigitalId = 0, bool simplificado = false, BancoDeDados banco = null) { UnidadeProducao caracterizacao = null; try { CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus(); List <Caracterizacao> caracterizacoesAssociadas = caracterizacaoBus.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId).Where(x => x.Tipo == eCaracterizacao.UnidadeProducao).ToList(); if (caracterizacoesAssociadas != null && caracterizacoesAssociadas.Count > 0) { caracterizacao = ObterHistorico(caracterizacoesAssociadas.FirstOrDefault().Id, caracterizacoesAssociadas.FirstOrDefault().Tid); } else { caracterizacao = _da.ObterPorEmpreendimento(empreendimentoId, simplificado); } } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
public bool ValidarAssociar(int id, int projetoDigitalID = 0) { UnidadeProducao caracterizacao = _da.Obter(id); _validar.Salvar(caracterizacao, projetoDigitalID); return(Validacao.EhValido); }
internal bool CopiarDadosInstitucional(UnidadeProducao caracterizacao) { if (caracterizacao.InternoID <= 0) { Validacao.Add(Mensagem.Dominialidade.CopiarCaractizacaoCadastrada); } return(Validacao.EhValido); }
public ActionResult Criar(UnidadeProducao caracterizacao, int projetoDigitalId = 0) { _bus.Salvar(caracterizacao, projetoDigitalId); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.Empreendimento.Id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }) }, JsonRequestBehavior.AllowGet)); }
public bool PodeEnviar(int caracterizacaoID) { UnidadeProducao caracterizacao = _da.Obter(caracterizacaoID); foreach (var item in caracterizacao.UnidadesProducao) { if (item.CodigoUP.ToString().Substring(7, 4) != caracterizacao.CodigoPropriedade.ToString("D4")) { Validacao.Add(Mensagem.UnidadeProducao.CodigoUPNaoContemCodPropriedade(item.CodigoUP)); } } return(Validacao.EhValido); }
public bool CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoId, BancoDeDados banco, BancoDeDados bancoCredenciado = null) { if (banco == null) { return(false); } if (_validar == null) { _validar = new UnidadeProducaoValidar(); } #region Configurar Unidade de Produção Cred.UnidadeProducaoBus credenciadoBus = new Cred.UnidadeProducaoBus(); UnidadeProducao caracterizacao = credenciadoBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid); caracterizacao.Empreendimento.Id = empreendimentoInternoId; caracterizacao.CredenciadoID = caracterizacao.Id; caracterizacao.Id = 0; caracterizacao.Tid = string.Empty; caracterizacao.UnidadesProducao.SelectMany(u => u.ResponsaveisTecnicos).ToList().ForEach(r => { r.IdRelacionamento = 0; }); caracterizacao.UnidadesProducao.SelectMany(u => u.Produtores).ToList().ForEach(p => { p.Id = _busCaracterizacao.ObterPessoaID(p.CpfCnpj, banco); p.IdRelacionamento = 0; }); #endregion if (_validar.CopiarDadosCredenciado(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); //Setar ID caracterizacao.Id = ObterPorEmpreendimento(empreendimentoInternoId, simplificado: true, banco: bancoDeDados).Id; _da.CopiarDadosCredenciado(caracterizacao, bancoDeDados); credenciadoBus.AtualizarInternoIdTid(caracterizacao.CredenciadoID, caracterizacao.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado); bancoDeDados.Commit(); } } return(Validacao.EhValido); }
public bool PodeEnviar(int caracterizacaoID) { UnidadeProducao caracterizacao = _da.Obter(caracterizacaoID); foreach (var item in caracterizacao.UnidadesProducao) { if (!UnidadeProducaoGenerator.CodigoUpHasCodigoPropriedade(caracterizacao.CodigoPropriedade, item.CodigoUP)) { Validacao.Add(Mensagem.UnidadeProducao.CodigoUPNaoContemCodPropriedade(item.CodigoUP)); } } return(Validacao.EhValido); }
public bool CopiarDadosInstitucional(int empreendimentoID, int empreendimentoInternoID, BancoDeDados banco) { if (banco == null) { return(false); } if (_validar == null) { _validar = new UnidadeProducaoValidar(); } #region Configurar Caracterização UnidadeProducaoInternoBus unidadeConsolidacaoInternoBus = new UnidadeProducaoInternoBus(); UnidadeProducao caracterizacao = unidadeConsolidacaoInternoBus.ObterPorEmpreendimento(empreendimentoInternoID); caracterizacao.Empreendimento.Id = empreendimentoID; caracterizacao.InternoID = caracterizacao.Id; caracterizacao.InternoTID = caracterizacao.Tid; caracterizacao.UnidadesProducao.SelectMany(u => u.Produtores).ToList().ForEach(p => { p.IdRelacionamento = 0; }); caracterizacao.UnidadesProducao.SelectMany(u => u.ResponsaveisTecnicos).ToList().ForEach(r => { r.IdRelacionamento = 0; }); //Remove UPs nao relacionadas. CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus(); CredenciadoPessoa credenciado = caracterizacaoBus.ObterCredenciado(User.FuncionarioId, true); //REMOVIDO FILTRO QUE IMPORTAVA APENAS UP's VINCULADAS AO RESPONSAVEL TECNICO //caracterizacao.UnidadesProducao.RemoveAll(x => !x.ResponsaveisTecnicos.Any(y => y.CpfCnpj == credenciado.Pessoa.CPFCNPJ)); #endregion if (_validar.CopiarDadosInstitucional(caracterizacao)) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); //Setar ID do credenciado caracterizacao.Id = ObterPorEmpreendimento(empreendimentoID, simplificado: true, banco: bancoDeDados).Id; _da.CopiarDadosInstitucional(caracterizacao, bancoDeDados); bancoDeDados.Commit(); } } return(Validacao.EhValido); }
public UnidadeProducao ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null) { UnidadeProducao caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0) { ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus(); ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId); UnidadeProducao caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId); UnidadeProducaoVM vm = new UnidadeProducaoVM() { IsVisualizar = true }; vm.UnidadeProducao = caracterizacao; vm.UrlRetorno = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId }); return(View("Visualizar", vm)); }
public ActionResult Editar(int id, int projetoDigitalId) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } if (!_validar.Acessar(id, projetoDigitalId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() })); } UnidadeProducao caracterizacao = _bus.ObterPorEmpreendimento(id); UnidadeProducaoVM vm = new UnidadeProducaoVM(caracterizacao); return(View(vm)); }
public ActionResult Editar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } if (!_validar.Acessar(id)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } UnidadeProducao caracterizacao = _bus.ObterPorEmpreendimento(id); UnidadeProducaoVM vm = new UnidadeProducaoVM(); vm.UnidadeProducao = caracterizacao; return(View(vm)); }
internal UnidadeProducao ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null) { UnidadeProducao caracterizacao = new UnidadeProducao(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select t.id from {0}crt_unidade_producao t where t.empreendimento = :empreendimento", EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32); object valor = bancoDeDados.ExecutarScalar(comando); if (valor != null && !Convert.IsDBNull(valor)) { caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado); } } return(caracterizacao); }
public ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } UnidadeProducao caracterizacao = new UnidadeProducao(); caracterizacao.Empreendimento.Id = id; if (!_validar.Acessar(caracterizacao.Empreendimento.Id)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } UnidadeProducaoVM vm = new UnidadeProducaoVM(); vm.UnidadeProducao.Empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(id); return(View(vm)); }
public ActionResult Visualizar(int id) { if (!_caracterizacaoValidar.Basicas(id, isVisualizar: true)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } if (!_validar.Acessar(id)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } UnidadeProducao caracterizacao = _bus.ObterPorEmpreendimento(id); UnidadeProducaoVM vm = new UnidadeProducaoVM() { IsVisualizar = true }; vm.UnidadeProducao = caracterizacao; vm.UrlRetorno = Url.Action("", "Caracterizacao", new { id = caracterizacao.Empreendimento.Id }); return(View(vm)); }
internal UnidadeProducao Obter(int id, BancoDeDados banco = null, bool simplificado = false) { UnidadeProducao caracterizacao = new UnidadeProducao(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Unidade de Produção Comando comando = bancoDeDados.CriarComando(@" select c.id, c.tid, c.empreendimento, c.possui_cod_propriedade, c.propriedade_codigo, e.codigo empreendimento_codigo, c.local_livro from {0}crt_unidade_producao c, tab_empreendimento e where c.empreendimento = e.id and c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { caracterizacao.Id = id; caracterizacao.CodigoPropriedade = reader.GetValue <int>("propriedade_codigo"); caracterizacao.Empreendimento.Id = reader.GetValue <int>("empreendimento"); caracterizacao.Empreendimento.Codigo = reader.GetValue <int>("empreendimento_codigo"); caracterizacao.LocalLivroDisponivel = reader.GetValue <string>("local_livro"); caracterizacao.PossuiCodigoPropriedade = reader.GetValue <bool>("possui_cod_propriedade"); caracterizacao.Tid = reader.GetValue <string>("tid"); } reader.Close(); } #endregion if (simplificado) { return(caracterizacao); } #region Unidades de produção comando = bancoDeDados.CriarComando(@" select c.id, c.tid, c.unidade_producao, c.possui_cod_up, c.codigo_up, c.tipo_producao, c.renasem, c.renasem_data_validade, c.area, c.ano_abertura, c.cultura, c.cultivar, tc.texto cultura_texto, cc.cultivar cultivar_nome, c.data_plantio_ano_producao, c.estimativa_quant_ano, c.estimativa_unid_medida from crt_unidade_producao_unidade c, tab_cultura_cultivar cc, tab_cultura tc where cc.id(+) = c.cultivar and tc.id = c.cultura and c.unidade_producao = :unidade_producao" , EsquemaBanco); comando.AdicionarParametroEntrada("unidade_producao", caracterizacao.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { while (reader.Read()) { caracterizacao.UnidadesProducao.Add(new UnidadeProducaoItem() { Id = reader.GetValue <int>("id"), Tid = reader.GetValue <string>("tid"), PossuiCodigoUP = reader.GetValue <bool>("possui_cod_up"), CodigoUP = reader.GetValue <long>("codigo_up"), TipoProducao = reader.GetValue <int>("tipo_producao"), RenasemNumero = reader.GetValue <string>("renasem"), DataValidadeRenasem = string.IsNullOrEmpty(reader.GetValue <string>("renasem_data_validade")) ? "" : Convert.ToDateTime(reader.GetValue <string>("renasem_data_validade")).ToShortDateString(), AreaHA = reader.GetValue <decimal>("area"), DataPlantioAnoProducao = reader.GetValue <string>("data_plantio_ano_producao"), EstimativaProducaoQuantidadeAno = reader.GetValue <decimal>("estimativa_quant_ano"), CultivarId = reader.GetValue <int>("cultivar"), CultivarTexto = reader.GetValue <string>("cultivar_nome"), CulturaId = reader.GetValue <int>("cultura"), CulturaTexto = reader.GetValue <string>("cultura_texto"), AnoAbertura = reader.GetValue <string>("ano_abertura") }); } reader.Close(); } foreach (var item in caracterizacao.UnidadesProducao) { #region Coordenadas comando = bancoDeDados.CriarComando(@" select id, tid, unidade_producao_unidade, tipo_coordenada, datum, easting_utm, northing_utm, fuso_utm, hemisferio_utm, municipio from crt_unidade_producao_un_coord where unidade_producao_unidade = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.String); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Coordenada coordenada = null; if (reader.Read()) { coordenada = new Coordenada(); coordenada.Id = reader.GetValue <int>("id"); coordenada.Tipo.Id = reader.GetValue <int>("tipo_coordenada"); coordenada.Datum.Id = reader.GetValue <int>("datum"); coordenada.EastingUtmTexto = reader.GetValue <string>("easting_utm"); coordenada.NorthingUtmTexto = reader.GetValue <string>("northing_utm"); coordenada.FusoUtm = reader.GetValue <int>("fuso_utm"); coordenada.HemisferioUtm = reader.GetValue <int>("hemisferio_utm"); coordenada.HemisferioUtmTexto = reader.GetValue <string>("hemisferio_utm"); item.Municipio.Id = reader.GetValue <int>("municipio"); item.Coordenada = coordenada; } reader.Close(); } #endregion #region Produtores comando = bancoDeDados.CriarComando(@" select c.id, c.tid, c.produtor, nvl(p.nome, p.razao_social) nome_razao, nvl(p.cpf, p.cnpj) cpf_cnpj, p.tipo from crt_unidade_prod_un_produtor c, tab_pessoa p where p.id = c.produtor and c.unidade_producao_unidade = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.String); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { while (reader.Read()) { item.Produtores.Add(new Responsavel() { Id = reader.GetValue <int>("produtor"), NomeRazao = reader.GetValue <string>("nome_razao"), CpfCnpj = reader.GetValue <string>("cpf_cnpj"), IdRelacionamento = reader.GetValue <int>("id"), Tipo = reader.GetValue <int>("tipo"), Tid = reader.GetValue <string>("tid") }); } reader.Close(); } #endregion #region Responsáveis Técnicos comando = bancoDeDados.CriarComando(@" select c.id, c.tid, c.unidade_producao_unidade, c.responsavel_tecnico, nvl(p.nome, p.razao_social) nome_razao, nvl(p.cpf, p.cnpj) cpf_cnpj, pf.texto profissao, oc.orgao_sigla, pp.registro, c.numero_hab_cfo_cfoc, c.numero_art, c.art_cargo_funcao, c.data_validade_art, (select h.extensao_habilitacao from tab_hab_emi_cfo_cfoc h where h.responsavel = c.responsavel_tecnico) extensao_habilitacao from {0}crt_unidade_prod_un_resp_tec c, {0}tab_credenciado tc, {1}tab_pessoa p, {1}tab_pessoa_profissao pp, {0}tab_profissao pf, {0}tab_orgao_classe oc where tc.id = c.responsavel_tecnico and p.id = tc.pessoa and pp.pessoa(+) = p.id and pf.id(+) = pp.profissao and oc.id(+) = pp.orgao_classe and c.unidade_producao_unidade = :id" , EsquemaBanco, EsquemaCredenciadoBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.String); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { ResponsavelTecnico responsavel = null; while (reader.Read()) { responsavel = new ResponsavelTecnico(); responsavel.IdRelacionamento = reader.GetValue <int>("id"); responsavel.Id = reader.GetValue <int>("responsavel_tecnico"); responsavel.NomeRazao = reader.GetValue <string>("nome_razao"); responsavel.CpfCnpj = reader.GetValue <string>("cpf_cnpj"); responsavel.CFONumero = reader.GetValue <string>("numero_hab_cfo_cfoc"); responsavel.ArtCargoFuncao = reader.GetValue <bool>("art_cargo_funcao"); responsavel.NumeroArt = reader.GetValue <string>("numero_art"); responsavel.ProfissaoTexto = reader.GetValue <string>("profissao"); responsavel.OrgaoClasseSigla = reader.GetValue <string>("orgao_sigla"); responsavel.NumeroRegistro = reader.GetValue <string>("registro"); responsavel.DataValidadeART = reader.GetValue <string>("data_validade_art"); if (!string.IsNullOrEmpty(responsavel.DataValidadeART)) { responsavel.DataValidadeART = Convert.ToDateTime(responsavel.DataValidadeART).ToShortDateString(); } if (Convert.ToBoolean(reader.GetValue <int>("extensao_habilitacao"))) { responsavel.CFONumero += "-ES"; } item.ResponsaveisTecnicos.Add(responsavel); } reader.Close(); } #endregion } #endregion } return(caracterizacao); }
public void ValidarProduto(int cfo, int empreendimento, IdentificacaoProduto item, List <IdentificacaoProduto> lista) { lista = lista ?? new List <IdentificacaoProduto>(); if (item.UnidadeProducao <= 0) { Validacao.Add(Mensagem.EmissaoCFO.ProdutoUnidadeProducaoObrigatorio); return; } TituloInternoBus tituloBus = new TituloInternoBus(); Titulo titulo = tituloBus.UnidadeProducaoPossuiAberturaConcluido(item.UnidadeProducao); if (titulo == null || titulo.Id <= 0) { Validacao.Add(Mensagem.EmissaoCFO.UPTituloConcluido); } if (item.Quantidade <= 0) { Validacao.Add(Mensagem.EmissaoCFO.ProdutoQuantidadeObrigatorio); } ValidacoesGenericasBus.DataMensagem(item.DataInicioColheita, "CFO_Produto_InicioColheita", "início da colheita", false); ValidacoesGenericasBus.DataMensagem(item.DataFimColheita, "CFO_Produto_FimColheita", "fim da colheita", false); if (!Validacao.EhValido) { return; } if (DateTime.Parse(item.DataFimColheita.DataTexto) < DateTime.Parse(item.DataInicioColheita.DataTexto)) { Validacao.Add(Mensagem.EmissaoCFO.DataFimColheitaNaoPodeSerMenorQueDataInicial); } TituloInternoDa tituloInternoDa = new TituloInternoDa(); var dependencia = tituloInternoDa.ObterDependencia(titulo.Id, eCaracterizacao.UnidadeProducao); UnidadeProducao UnidadeProducao = _da.ObterUnidadeProducao(dependencia.Id, dependencia.DependenciaTid); UnidadeProducaoItem unidade = UnidadeProducao.UnidadesProducao.FirstOrDefault(x => x.Id == item.UnidadeProducao); if (unidade == null || unidade.Id <= 0) { Validacao.Add(Mensagem.EmissaoCFO.UPDessassociada(item.CodigoUP)); } else { if (unidade.TipoProducao == (int)eUnidadeProducaoTipoProducao.MaterialPropagacao) { if (string.IsNullOrEmpty(unidade.DataValidadeRenasem) || DateTime.Parse(unidade.DataValidadeRenasem) < DateTime.Today) { Validacao.Add(Mensagem.EmissaoCFO.DataValidadeRENASEMMenorAtual(item.CodigoUP)); } } eUnidadeProducaoTipoProducao tipoProducao = ValidacoesGenericasBus.ObterTipoProducao(item.UnidadeMedidaId); DateTime dataSaldo = titulo.DataSituacao.Data.GetValueOrDefault(); if (titulo.DataSituacao.Data.GetValueOrDefault().Year < DateTime.Today.Year) { dataSaldo = new DateTime(DateTime.Today.Year - 1, dataSaldo.Month, dataSaldo.Day); } decimal totalTela = item.Quantidade + lista.Where(x => !x.Equals(item) && x.CultivarId == item.CultivarId && x.UnidadeMedidaId == item.UnidadeMedidaId).Sum(x => x.Quantidade); if (unidade.EstimativaProducaoQuantidadeAno < _da.ObterQuantidadeProduto(empreendimento, item.CultivarId, tipoProducao, item.UnidadeProducao, cfo, dataSaldo) + totalTela) { Validacao.Add(Mensagem.EmissaoCFO.QuantidadeMensalInvalida(unidade.CodigoUP.ToString())); } } if (lista.Count(x => !x.Equals(item)) >= 5) { Validacao.Add(Mensagem.EmissaoCFO.LimiteMaximo); } if (lista.Any(x => x.UnidadeProducao == item.UnidadeProducao && !x.Equals(item))) { Validacao.Add(Mensagem.EmissaoCFO.UnidadeProducaoJaAdicionado); } }
public bool Salvar(UnidadeProducao caracterizacao) { try { if (!_validar.Salvar(caracterizacao)) { return(Validacao.EhValido); } #region Configurar Salvar Municipio municipio = _da.ObterMunicipioPropriedade(caracterizacao.Empreendimento.Id); if (!caracterizacao.PossuiCodigoPropriedade) { if (caracterizacao.Id < 1) { int sequencial = _da.ObterSequenciaCodigoPropriedade(); caracterizacao.CodigoPropriedade = UnidadeProducaoGenerator.GerarCodigoPropriedade(municipio.Ibge, sequencial); } else { caracterizacao.CodigoPropriedade = ObterPorEmpreendimento(caracterizacao.Empreendimento.Id, true).CodigoPropriedade; } } RequestJson requestJson = new RequestJson(); ResponseJsonData <dynamic> resposta = new ResponseJsonData <dynamic>(); UnidadeProducao caracterizacaoBanco = ObterPorEmpreendimento(caracterizacao.Empreendimento.Id); int ultimoCodigoUP = _da.ObterUltimoCodigoUP(caracterizacao.Empreendimento.Id); foreach (long item in caracterizacao.UnidadesProducao.Where(x => x.PossuiCodigoUP).Select(x => x.CodigoUP)) { int aux = Convert.ToInt32(item.ToString().Substring(14)); if (aux > ultimoCodigoUP) { ultimoCodigoUP = aux; } } foreach (UnidadeProducaoItem item in caracterizacao.UnidadesProducao) { int codigoIbge = 0; resposta = requestJson.Executar <dynamic>(_configCoord.Obter <String>(ConfiguracaoCoordenada.KeyUrlObterMunicipioCoordenada) + "?easting=" + item.Coordenada.EastingUtm + "&northing=" + item.Coordenada.NorthingUtm); if (resposta.Erros != null && resposta.Erros.Count > 0) { Validacao.Erros.AddRange(resposta.Erros); return(Validacao.EhValido); } if (resposta.Data == null) { throw new Exception(Mensagem.Empreendimento.ErroConexaoMunicipioGeobases.ToString()); } var objJson = resposta.Data; if (objJson["EstaNoEstado"] && (objJson["Municipio"] == null || Convert.ToInt32(objJson["Municipio"]["IBGE"] ?? 0) == 0)) { Validacao.Add(Mensagem.Mapas.MunicipioSemRetorno); } if (!Validacao.EhValido) { return(Validacao.EhValido); } if (objJson["Municipio"] != null) { codigoIbge = Convert.ToInt32(objJson["Municipio"]["IBGE"] ?? 0); } ListaValoresDa listaValoresDa = new ListaValoresDa(); item.Municipio = listaValoresDa.ObterMunicipio(codigoIbge); if (!item.PossuiCodigoUP) { item.AnoAbertura = DateTime.Today.Year.ToString().Substring(2); if (item.Id < 1) { ultimoCodigoUP++; item.CodigoUP = UnidadeProducaoGenerator.GerarCodigoUnidadeProducao( item.Municipio.Ibge , caracterizacao.CodigoPropriedade , item.AnoAbertura , ultimoCodigoUP ); } else { item.CodigoUP = caracterizacaoBanco.UnidadesProducao.Single(x => x.Id == item.Id).CodigoUP; } } else { item.AnoAbertura = item.CodigoUP.ToString().Substring(11, 2); } foreach (var aux in item.ResponsaveisTecnicos) { aux.CFONumero = aux.CFONumero.Split('-').GetValue(0).ToString(); } } #endregion if (caracterizacao.UnidadesProducao.Any(x => caracterizacao.UnidadesProducao.Count(y => y.CodigoUP == x.CodigoUP) > 1)) { Validacao.Add(Mensagem.UnidadeProducao.UnidadeProducaoItemIncorreto); return(false); } foreach (var item in caracterizacao.UnidadesProducao) { if (!UnidadeProducaoGenerator.CodigoUpHasCodigoPropriedade(caracterizacao.CodigoPropriedade, item.CodigoUP)) { Validacao.Add(Mensagem.UnidadeProducao.CodigoUPNaoContemCodPropriedade(item.CodigoUP)); return(false); } } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); Validacao.Add(Mensagem.UnidadeProducao.SalvoSucesso); bancoDeDados.Commit(); } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public UnidadeProducaoVM() { UnidadeProducao = new UnidadeProducao(); }
public UnidadeProducaoVM(UnidadeProducao unidade) { this.UnidadeProducao = unidade; }