public ActionResult ValidarUnidadeProducaoItem(UnidadeProducaoItem unidade, int empreendimento) { HabilitarEmissaoCFOCFOC credenciadoHabilitado = null; List <Mensagem> Validacoes = new List <Mensagem>(); Cultura cultura = new Cultura() { Id = unidade.CulturaId, Nome = unidade.CulturaTexto }; foreach (var responsavel in unidade.ResponsaveisTecnicos) { credenciadoHabilitado = _busHabilitacaoCFOCFOC.ObterPorCredenciado(responsavel.Id); if (Validacao.EhValido) { credenciadoHabilitado.Pragas.ForEach(x => { x.Praga.Culturas = _pragaBus.ObterCulturas(x.Praga.Id); }); _validar.ValidarResponsavelTecnicoHabilitado(credenciadoHabilitado, cultura); } } Validacao.Erros.AddRange(_validar.SalvarItemUnidadeProducao(unidade, empreendimento)); return(Json(new { @Msg = Validacao.Erros, @EhValido = Validacao.EhValido, })); }
public UnidadeProducaoItemVM() { UnidadeProducaoItem = new UnidadeProducaoItem(); LstProdutores = new List <SelectListItem>(); LstUnidadeMedida = new List <SelectListItem>(); TiposCoordenada = new List <SelectListItem>(); Datuns = new List <SelectListItem>(); Fusos = new List <SelectListItem>(); Hemisferios = new List <SelectListItem>(); }
public UnidadeProducaoItemVM(UnidadeProducaoItem item, List <CoordenadaTipo> lstTiposCoordenada = null, List <Datum> lstDatuns = null, List <Fuso> lstFusos = null, List <CoordenadaHemisferio> lstHemisferios = null, List <Lista> lstCultivar = null, List <PessoaLst> lstProdutores = null) { this.UnidadeProducaoItem = item ?? new UnidadeProducaoItem(); this.TiposCoordenada = ViewModelHelper.CriarSelectList(lstTiposCoordenada.Where(x => x.Id == 3).ToList(), true, false); this.Datuns = ViewModelHelper.CriarSelectList(lstDatuns.Where(x => x.Id == 1).ToList(), true, false); this.Fusos = ViewModelHelper.CriarSelectList(lstFusos.Where(x => x.Id == 24).ToList(), true, false); this.Hemisferios = ViewModelHelper.CriarSelectList(lstHemisferios.Where(x => x.Id == 1).ToList(), true, false); this.LstCultivar = ViewModelHelper.CriarSelectList(lstCultivar, false, true); this.LstProdutores = ViewModelHelper.CriarSelectList(lstProdutores); }
public UnidadeProducaoItem ObterUnidadeProducaoItem(int id) { UnidadeProducaoItem item = null; try { item = _da.ObterUnidadeProducaoItem(id); } catch (Exception exc) { Validacao.AddErro(exc); } return(item); }
public ActionResult AdicionarUnidadeProducao(int empreendimento, UnidadeProducaoItem unidade = null, bool visualizar = false) { UnidadeProducaoItemVM vm = new UnidadeProducaoItemVM( unidade, ListaCredenciadoBus.TiposCoordenada, ListaCredenciadoBus.Datuns, ListaCredenciadoBus.Fusos, ListaCredenciadoBus.Hemisferios, _culturaBus.ObterLstCultivar(unidade.CulturaId), _empreendimentoBus.ObterResponsaveisLista(empreendimento)); vm.IsVisualizar = visualizar; return(PartialView("UnidadeProducaoItemPartial", vm)); }
public ActionResult AdicionarUnidadeProducao(int empreendimento, UnidadeProducaoItem unidade = null, bool visualizar = false) { UnidadeProducaoItemVM vm = new UnidadeProducaoItemVM(); if (unidade != null) { vm.UnidadeProducaoItem = unidade; } vm.TiposCoordenada = ViewModelHelper.CriarSelectList(_listaBus.TiposCoordenada.Where(x => x.Id == 3).ToList(), true, false); vm.Datuns = ViewModelHelper.CriarSelectList(_listaBus.Datuns.Where(x => x.Id == 1).ToList(), true, false); vm.Fusos = ViewModelHelper.CriarSelectList(_listaBus.Fusos.Where(x => x.Id == 24).ToList(), true, false); vm.Hemisferios = ViewModelHelper.CriarSelectList(_listaBus.Hemisferios.Where(x => x.Id == 1).ToList(), true, false); vm.LstCultivar = ViewModelHelper.CriarSelectList(_culturaBus.ObterLstCultivar(unidade.CulturaId), false, true); vm.LstProdutores = ViewModelHelper.CriarSelectList(_empreendimentoBus.ObterResponsaveis(empreendimento)); vm.IsVisualizar = visualizar; return(PartialView("UnidadeProducaoPartialItem", vm)); }
public List <Mensagem> SalvarItemUnidadeProducao(UnidadeProducaoItem unidade, int empreendimentoID) { List <Mensagem> mensagens = new List <Mensagem>(); if (unidade.PossuiCodigoUP) { if (unidade.CodigoUP < 1) { mensagens.Add(Mensagem.UnidadeProducao.CodigoUPObrigatorio); } else { if (unidade.CodigoUP.ToString().Length < 17) { mensagens.Add(Mensagem.UnidadeProducao.CodigoUPInvalido); } else { if (_da.CodigoUPExistente(unidade, empreendimentoID)) { mensagens.Add(Mensagem.UnidadeProducao.CodigoUPJaExiste); } } } } if (unidade.TipoProducao == (int)eUnidadeProducaoTipoProducao.MaterialPropagacao) { if (String.IsNullOrEmpty(unidade.RenasemNumero)) { mensagens.Add(Mensagem.UnidadeProducao.RenasemNumeroObrigatorio); } if (String.IsNullOrEmpty(unidade.DataValidadeRenasem)) { mensagens.Add(Mensagem.Padrao.DataObrigatoria("UnidadeProducaoItem_DataValidadeRenasem", "validade")); } if (!String.IsNullOrEmpty(unidade.DataValidadeRenasem) && !ValidacoesGenericasBus.ValidarData(unidade.DataValidadeRenasem)) { mensagens.Add(Mensagem.Padrao.DataInvalida("UnidadeProducaoItem_DataValidadeRenasem", "validade")); } if (!String.IsNullOrEmpty(unidade.DataValidadeRenasem) && ValidacoesGenericasBus.ValidarData(unidade.DataValidadeRenasem) && Convert.ToDateTime(unidade.DataValidadeRenasem) <= DateTime.Today) { mensagens.Add(Mensagem.UnidadeProducao.RenasemDataVencimentoMenorQueDataAtual); } } else { unidade.RenasemNumero = string.Empty; unidade.DataValidadeRenasem = string.Empty; } if (unidade.AreaHA <= 0) { mensagens.Add(Mensagem.UnidadeProducao.AreaHAObrigatorio); } if (unidade.Coordenada.EastingUtm.GetValueOrDefault() < 1 || unidade.Coordenada.NorthingUtm.GetValueOrDefault() < 1) { mensagens.Add(Mensagem.UnidadeProducao.CoordenadaObrigatorio); } if (unidade.Coordenada.EastingUtm <= 0) { mensagens.Add(Mensagem.UnidadeProducao.EastingUtmObrigatorio); } if (unidade.Coordenada.NorthingUtm <= 0) { mensagens.Add(Mensagem.UnidadeProducao.NorthingUtmObrigatorio); } if (unidade.CulturaId < 1) { mensagens.Add(Mensagem.UnidadeProducao.CulturaObrigatorio); } if (unidade.CultivarId < 1) { mensagens.Add(Mensagem.UnidadeProducao.CultivarObrigatorio); } if (string.IsNullOrEmpty(unidade.DataPlantioAnoProducao)) { mensagens.Add(Mensagem.UnidadeProducao.DataPlantioAnoProducaoObrigatorio); } else { string[] mesAno = unidade.DataPlantioAnoProducao.Split('/'); if (unidade.DataPlantioAnoProducao.Length != 7 || mesAno.Length < 2 || Convert.ToInt32(mesAno.GetValue(0)) <= 0 || Convert.ToInt32(mesAno.GetValue(0)) > 12 || Convert.ToInt32(mesAno.GetValue(1)) <= 0) { mensagens.Add(Mensagem.UnidadeProducao.DataPlantioAnoProducaoInvalida); } else { if (Convert.ToInt32(mesAno.GetValue(1)) > DateTime.Now.Year || (Convert.ToInt32(mesAno.GetValue(0)) > DateTime.Now.Month && Convert.ToInt32(mesAno.GetValue(1)) == DateTime.Now.Year)) { mensagens.Add(Mensagem.UnidadeProducao.DataPlantioAnoProducaoMaiorAtual); } } } if (unidade.Produtores.Count < 1) { Validacao.Add(Mensagem.UnidadeProducao.ProdutorObrigatorio); } unidade.Produtores.ForEach(x => { if (!_da.VerificarResponsavelEmpreendimento(empreendimentoID, x.Id.GetValueOrDefault())) { Validacao.Add(Mensagem.UnidadeProducao.ProdutorNaoEstaMaisVinculadoNoEmpreendimento(x.NomeRazao)); } }); if (unidade.ResponsaveisTecnicos.Count < 1) { mensagens.Add(Mensagem.UnidadeProducao.ResponsavelTecnicoObrigatorio); } else { foreach (var item in unidade.ResponsaveisTecnicos) { if (!item.ArtCargoFuncao) { if (!ValidacoesGenericasBus.ValidarData(item.DataValidadeART)) { mensagens.Add(Mensagem.Padrao.DataInvalida("UnidadeProducaoItem_ResponsavelTecnico_DataValidadeART", "validade da ART")); } } else { item.DataValidadeART = string.Empty; } } } if (unidade.EstimativaProducaoQuantidadeAno <= 0) { mensagens.Add(Mensagem.UnidadeProducao.EstimativaProducaoQuantidadeAnoObrigatorio); } if (string.IsNullOrEmpty(unidade.EstimativaProducaoUnidadeMedida)) { mensagens.Add(Mensagem.UnidadeProducao.EstimativaProducaoUnidadeMedidaObrigatorio); } return(mensagens); }
public UnidadeProducaoItemPDF(UnidadeProducaoItem item) { CodigoUP = item.CodigoUP; AreaHa = item.AreaHA.ToStringTrunc(4); QuantidadeAno = item.EstimativaProducaoQuantidadeAno.ToString(); UnidadeMedida = item.EstimativaProducaoUnidadeMedida; Cultivar = new CultivarPDF() { Nome = item.CultivarTexto, Cultura = item.CulturaTexto }; //Produtores Produtores = new List <ResponsavelPDF>(); foreach (var produtor in item.Produtores) { if (Produtores.Exists(x => x.CPFCNPJ == produtor.CpfCnpj)) { continue; } Produtores.Add(new ResponsavelPDF() { NomeRazaoSocial = produtor.NomeRazao, CPFCNPJ = produtor.CpfCnpj, Tipo = produtor.Tipo.GetValueOrDefault() }); } #region Responsaveis Tecnicos string dadosCompletos = string.Empty; ResponsaveisTecnicos = new List <ResponsavelPDF>(); foreach (var responsavel in item.ResponsaveisTecnicos) { dadosCompletos = responsavel.NomeRazao; if (!string.IsNullOrEmpty(responsavel.ProfissaoTexto)) { dadosCompletos += ", " + responsavel.ProfissaoTexto; } if (!string.IsNullOrEmpty(responsavel.OrgaoClasseSigla)) { dadosCompletos += ", " + responsavel.OrgaoClasseSigla; } if (!string.IsNullOrEmpty(responsavel.NumeroRegistro)) { dadosCompletos += " " + responsavel.NumeroRegistro; } ResponsaveisTecnicos.Add(new ResponsavelPDF() { CPFCNPJ = responsavel.CpfCnpj, NomeRazaoSocial = responsavel.NomeRazao, CFONumero = responsavel.CFONumero, Profissao = responsavel.ProfissaoTexto, OrgaoClasseSigla = responsavel.OrgaoClasseSigla, NumeroRegistro = responsavel.NumeroRegistro, DadosCompletos = dadosCompletos }); } #endregion Responsaveis Tecnicos }
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); } }