Esempio n. 1
0
 public TermoCPFARLCR()
 {
     CedenteARLCompensacao              = new List <ReservaLegal>();
     CedenteResponsaveisEmpreendimento  = new List <Responsavel>();
     ReceptorResponsaveisEmpreendimento = new List <Responsavel>();
     DataEmissao = new DateTecno();
 }
Esempio n. 2
0
        internal bool Ativar(DateTecno DataAtivacao, PTV ptvBanco)
        {
            if (!FuncionarioHabilitadoValido())
            {
                return(false);
            }

            ValidacoesGenericasBus.DataMensagem(DataAtivacao, "DataAtivacao", "ativação", ptvBanco.NumeroTipo == (int)eDocumentoFitossanitarioTipoNumero.Bloco);

            if (ptvBanco.NumeroTipo == (int)eDocumentoFitossanitarioTipoNumero.Digital && DataAtivacao.DataTexto != DateTime.Today.ToShortDateString())
            {
                Validacao.Add(Mensagem.Padrao.DataIgualAtual("DataAtivacao", "ativação"));
            }

            if (ptvBanco.Situacao != (int)ePTVSituacao.EmElaboracao)
            {
                Validacao.Add(Mensagem.PTV.AtivarSituacaoInvalida);
            }

            if (DateTime.Today > ptvBanco.ValidoAte.Data)
            {
                Validacao.Add(Mensagem.PTV.DataPTVInvalida);
            }

            return(Validacao.EhValido);
        }
 private bool ValidarDatas(DateTecno data, string campo, string tipoData)
 {
     if (data.IsEmpty)
     {
         Validacao.Add(Mensagem.TituloAlterarSituacao.DataObrigatoria(campo, tipoData));
         return(false);
     }
     else
     {
         if (!data.IsValido)
         {
             Validacao.Add(Mensagem.TituloAlterarSituacao.DataInvalida(campo, tipoData));
             return(false);
         }
         else if (data.Data > DateTime.Today.AddDays(1))
         {
             Validacao.Add(Mensagem.TituloAlterarSituacao.DataIgualMenorAtual(campo, tipoData));
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
Esempio n. 4
0
        public Fiscalizacao()
        {
            SituacaoTexto       =
                Tid             = string.Empty;
            Vencimento          = new DateTecno();
            DataConclusao       = new DateTecno();
            SituacaoNovaData    = new DateTecno();
            SituacaoAtualData   = new DateTecno();
            LocalInfracao       = new LocalInfracao();
            ComplementacaoDados = new ComplementacaoDados();
            Enquadramento       = new Enquadramento();
            Infracao            = new Infracao();
            ObjetoInfracao      = new ObjetoInfracao();
            MaterialApreendido  = new MaterialApreendido();
            ConsideracaoFinal   = new ConsideracaoFinal();
            ProjetoGeo          = new ProjetoGeografico();

            AutuadoPessoa         = new Pessoa();
            AutuadoEmpreendimento = new Empreendimento();

            Autuante = new Funcionario();

            PdfAutoTermo = new Arquivo.Arquivo();
            PdfLaudo     = new Arquivo.Arquivo();
            PdfCroqui    = new Arquivo.Arquivo();
            PdfIUF       = new Arquivo.Arquivo();
        }
        internal DateTecno ObterDataConclusao(int fiscalizacaoId, BancoDeDados banco = null)
        {
            DateTecno dataConclusao = new DateTecno();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select f.situacao_data data_conclusao from {0}hst_fiscalizacao f 
															where f.situacao_id = 2/*Cadastro Concluido*/ and f.fiscalizacao_id = :fiscalizacao
															and f.data_execucao = (select max(data_execucao) from {0}hst_fiscalizacao where 
															situacao_id = 2/*Cadastro Concluido*/ and fiscalizacao_id = :fiscalizacao)"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", fiscalizacaoId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        if (reader["data_conclusao"] != null && !Convert.IsDBNull(reader["data_conclusao"]))
                        {
                            dataConclusao.Data = reader.GetValue <DateTime>("data_conclusao");
                        }
                    }

                    reader.Close();
                }
            }

            return(dataConclusao);
        }
Esempio n. 6
0
        public PTVOutro()
        {
            DataEmissao      = new DateTecno();
            DataAtivacao     = new DateTecno();
            DataCancelamento = new DateTecno();
            ValidoAte        = new DateTecno();
            Produtos         = new List <PTVOutroProduto>();
            Destinatario     = new DestinatarioPTV();
            Pragas           = new List <Praga>();
            Declaracoes      = new List <PTVOutroDeclaracao>();

            Anexos = new List <Anexo>();

            Tid =
                SituacaoTexto                                                   =
                    Interessado                                                 =
                        InteressadoCnpjCpf                                      =
                            InteressadoEstadoTexto                              =
                                InteressadoMunicipioTexto                       =
                                    RespTecnico                                 =
                                        RespTecnicoNumHab                       =
                                            EstadoTexto                         =
                                                MunicipioTexto                  =
                                                    DeclaracaoAdicional         =
                                                        DeclaracaoAdicionalHtml = "";
        }
Esempio n. 7
0
 public ProjetoDigital()
 {
     Pessoas      = new List <Pessoa>();
     DataCriacao  = new DateTecno();
     DataEnvio    = new DateTecno();
     Dependencias = new List <Dependencia>();
 }
 public static bool DataMensagem(DateTecno data, string campo, string tipoData, bool superiorAtual = true)
 {
     if (data.IsEmpty)
     {
         Validacao.Add(Mensagem.Padrao.DataObrigatoria(campo, tipoData));
         return(false);
     }
     else
     {
         if (!data.IsValido)
         {
             Validacao.Add(Mensagem.Padrao.DataInvalida(campo, tipoData));
             return(false);
         }
         else if (superiorAtual && data.Data > DateTime.Today.AddDays(1).Subtract(TimeSpan.FromSeconds(1)))
         {
             Validacao.Add(Mensagem.Padrao.DataIgualMenorAtual(campo, tipoData));
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
Esempio n. 9
0
 public Relatorio()
 {
     DataCriacao           = new DateTecno();
     ConfiguracaoRelatorio = new ConfiguracaoRelatorio();
     FonteDados            = new Fato();
     UsuarioCriador        = new Usuario();
     UsuariosPermitidos    = new List <Usuario>();
 }
Esempio n. 10
0
 public PTVConversa()
 {
     DataConversa  = new DateTecno();
     Id            = 0;
     ArquivoId     = 0;
     FuncionarioId = 0;
     CredenciadoId = 0;
 }
Esempio n. 11
0
 public EmissaoCFOC()
 {
     DataEmissao  = new DateTecno();
     DataAtivacao = new DateTecno();
     Produtos     = new List <IdentificacaoProduto>();
     Pragas       = new List <Praga>();
     TratamentosFitossanitarios = new List <TratamentoFitossanitario>();
 }
Esempio n. 12
0
 public ActionResult LoteValidarItem(LoteItem item, DateTecno dataCriacao, int empreendimentoID, List <LoteItem> lista, int loteID)
 {
     _loteValidar.Lote(item, dataCriacao, empreendimentoID, lista, loteID);
     return(Json(new
     {
         @Msg = Validacao.Erros,
         @EhValido = Validacao.EhValido
     }));
 }
Esempio n. 13
0
 public CadastroAmbientalRural()
 {
     DataVistoriaAprovacao = new DateTecno();
     DispensaARL           = false;
     Situacao = new Situacao();
     SituacaoProcessamento = new Situacao();
     Arquivo      = new ArquivoProjeto();
     Dependencias = new List <Dependencia>();
     Areas        = new List <Area>();
 }
Esempio n. 14
0
 public CobrancaParcelamento(Fiscalizacao fiscalizacao)
 {
     ValorMulta           = fiscalizacao.Multa.ValorMulta;
     ValorMultaAtualizado = fiscalizacao.Multa.ValorMulta;
     DataEmissao          = new DateTecno()
     {
         Data = DateTime.Now
     };
     DUAS = new List <CobrancaDUA>();
 }
 public ConfiguracaoRelatorio()
 {
     OrientacaoRetrato  = true;
     FonteDados         = new Fato();
     CamposSelecionados = new List <ConfiguracaoCampo>();
     Ordenacoes         = new List <ConfiguracaoOrdenacao>();
     Termos             = new List <Termo>();
     Sumarios           = new List <Sumario>();
     Agrupamentos       = new List <ConfiguracaoAgrupamento>();
     DataCriacao        = new DateTecno();
 }
Esempio n. 16
0
 public PTV()
 {
     DataEmissao  = new DateTecno();
     ValidoAte    = new DateTecno();
     DataAtivacao = new DateTecno();
     SituacaoData = new DateTecno();
     Produtos     = new List <PTVProduto>();
     Produto      = new PTVProduto();
     Destinatario = new DestinatarioPTV();
     Anexos       = new List <Anexo>();
 }
Esempio n. 17
0
        public FiscalizacaoDocumento()
        {
            PdfGeradoAutoTermo = new Arquivo.Arquivo();
            PdfGeradoLaudo     = new Arquivo.Arquivo();

            SituacaoData = new DateTecno();
            Croqui       = new Arquivo.Arquivo();

            PdfAutoInfracao      = new Arquivo.Arquivo();
            PdfTermoEmbargoInter = new Arquivo.Arquivo();
            PdfTermoApreensaoDep = new Arquivo.Arquivo();
            PdfTermoCompromisso  = new Arquivo.Arquivo();
        }
Esempio n. 18
0
 public PTV()
 {
     DataEmissao        = new DateTecno();
     ValidoAte          = new DateTecno();
     DataAtivacao       = new DateTecno();
     SituacaoData       = new DateTecno();
     Produtos           = new List <PTVProduto>();
     Produto            = new PTVProduto();
     Destinatario       = new DestinatarioPTV();
     Anexos             = new List <Anexo>();
     NotaFiscalDeCaixas = new List <NotaFiscalCaixa>();
     NFCaixa            = new NotaFiscalCaixa();
     IsPossuiDocOrigem  = 1;
     SemDocOrigem       = new ProdutoSemDocOrigem();
 }
Esempio n. 19
0
        public PTVOutro()
        {
            DataEmissao      = new DateTecno();
            DataAtivacao     = new DateTecno();
            DataCancelamento = new DateTecno();
            ValidoAte        = new DateTecno();
            Produtos         = new List <PTVOutroProduto>();
            Destinatario     = new DestinatarioPTV();

            Tid =
                SituacaoTexto                                  =
                    Interessado                                =
                        InteressadoCnpjCpf                     =
                            InteressadoEstadoTexto             =
                                InteressadoMunicipioTexto      =
                                    RespTecnico                =
                                        RespTecnicoNumHab      =
                                            EstadoTexto        =
                                                MunicipioTexto = "";
        }
Esempio n. 20
0
        //Valida um item que está sendo incluído no lote
        public void Lote(LoteItem item, DateTecno loteData, int empreendimentoID, List <LoteItem> lista, int loteID)
        {
            if (empreendimentoID <= 0)
            {
                Validacao.Add(Mensagem.Lote.EmpreendimentoObrigatorio);
                return;
            }

            if (item.OrigemTipo <= 0)
            {
                Validacao.Add(Mensagem.Lote.OrigemObrigatorio);
            }

            if (item.Cultura <= 0)
            {
                Validacao.Add(Mensagem.Lote.CulturaObrigatoria);
            }

            if (item.Cultivar <= 0)
            {
                Validacao.Add(Mensagem.Lote.CultivarObrigatoria);
            }

            if (item.OrigemTipo >= 5 && item.Quantidade <= 0)
            {
                Validacao.Add(Mensagem.Lote.QuantidadeObrigatorio);
            }

            if (lista.Count(x => x.OrigemTipo == item.OrigemTipo && x.OrigemNumero == item.OrigemNumero && x.Serie == item.Serie && !x.Equals(item)) > 0)
            {
                Validacao.Add(Mensagem.Lote.OrigemJaAdicionada(item.OrigemTipoTexto, item.OrigemNumero.ToString()));
            }

            if (lista != null && lista.Count > 0 && !lista.Any(x => x.Cultivar == item.Cultivar))
            {
                Validacao.Add(Mensagem.Lote.CultivarUnico);
            }

            if (lista != null && lista.Count > 0 && lista.Any(x => x.UnidadeMedida != item.UnidadeMedida))
            {
                Validacao.Add(Mensagem.Lote.UnidadeMedidaUnico);
            }

            if (!Validacao.EhValido)
            {
                return;
            }

            int     auxiliar       = 0;
            decimal saldoDocOrigem = 0;
            List <IdentificacaoProduto> produtos = OrigemNumero(item.OrigemNumero, item.OrigemTipo, item.Serie, out auxiliar);

            if (produtos != null)
            {
                switch ((eDocumentoFitossanitarioTipo)item.OrigemTipo)
                {
                case eDocumentoFitossanitarioTipo.CFO:
                    EmissaoCFOBus emissaoCFOBus = new EmissaoCFOBus();
                    EmissaoCFO    cfo           = emissaoCFOBus.Obter(item.Origem);
                    saldoDocOrigem = cfo.Produtos.Where(x => x.CultivarId == item.Cultivar && x.UnidadeMedidaId == item.UnidadeMedida).Sum(x => x.Quantidade);

                    if (cfo.SituacaoId != (int)eDocumentoFitossanitarioSituacao.Valido)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                    }

                    DateTime dataVencimentoCFO = cfo.DataAtivacao.Data.GetValueOrDefault().AddDays(cfo.ValidadeCertificado);
                    if (dataVencimentoCFO < DateTime.Today)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                    }

                    if (cfo.DataEmissao.Data > loteData.Data)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                    }
                    break;

                case eDocumentoFitossanitarioTipo.CFOC:
                    EmissaoCFOCBus emissaoCFOCBus = new EmissaoCFOCBus();
                    EmissaoCFOC    cfoc           = emissaoCFOCBus.Obter(item.Origem);
                    saldoDocOrigem = cfoc.Produtos.Where(x => x.CultivarId == item.Cultivar && x.UnidadeMedidaId == item.UnidadeMedida).Sum(x => x.Quantidade);

                    if (cfoc.SituacaoId != (int)eDocumentoFitossanitarioSituacao.Valido)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                    }

                    DateTime dataVencimentoCFOC = cfoc.DataAtivacao.Data.GetValueOrDefault().AddDays(cfoc.ValidadeCertificado);
                    if (dataVencimentoCFOC < DateTime.Today)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                    }

                    if (cfoc.DataEmissao.Data > loteData.Data)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                    }
                    break;

                case eDocumentoFitossanitarioTipo.PTV:
                    PTVInternoBus ptvInternoBus = new PTVInternoBus();
                    PTV           ptv           = ptvInternoBus.Obter(item.Origem);
                    saldoDocOrigem = ptv.Produtos.Where(x => x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida).Sum(x => x.Quantidade);

                    if (ptv.Situacao != (int)ePTVOutroSituacao.Valido)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                    }

                    if (ptv.ValidoAte.Data.GetValueOrDefault() < DateTime.Today)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                    }

                    if (ptv.DataEmissao.Data > loteData.Data)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                    }
                    break;

                case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                    PTVOutroBus ptvOutroBus = new PTVOutroBus();
                    PTVOutro    ptvOutro    = ptvOutroBus.Obter(item.Origem);
                    saldoDocOrigem = ptvOutro.Produtos.Where(x => x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida).Sum(x => x.Quantidade);

                    if (ptvOutro.Situacao != (int)ePTVOutroSituacao.Valido &&
                        ptvOutro.Situacao != (int)ePTVOutroSituacao.Invalido)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                    }

                    if (ptvOutro.DataEmissao.Data > loteData.Data)
                    {
                        Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                    }
                    break;
                }

                string empreendimento = string.Empty;
                if ((eDocumentoFitossanitarioTipo)item.OrigemTipo == eDocumentoFitossanitarioTipo.PTVOutroEstado)
                {
                    empreendimento = _da.PTVOutroEstadoJaAssociado(item.Origem, empreendimentoID);

                    if (!string.IsNullOrEmpty(empreendimento))
                    {
                        Validacao.Add(Mensagem.Lote.OrigemEmpreendimentoUtilizadoOutroUF(item.OrigemTipoTexto, item.OrigemNumero.ToString(), empreendimento));
                    }
                }

                if (item.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO ||
                    item.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFOC ||
                    item.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTVOutroEstado)
                {
                    if (!_da.UCPossuiCultivar(empreendimentoID, item.Cultivar))
                    {
                        Validacao.Add(Mensagem.Lote.CultivarDesassociadoUC(item.CultivarTexto));
                    }


                    decimal quantidadeAdicionada = lista.Where(x => x.OrigemTipo == item.OrigemTipo && x.Origem == item.Origem && x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida && !x.Equals(item)).Sum(x => x.Quantidade);



                    decimal saldoOutrosDoc = _da.ObterOrigemQuantidade((eDocumentoFitossanitarioTipo)item.OrigemTipo, item.Origem, item.OrigemNumero, item.Cultivar, item.UnidadeMedida, DateTime.Now.Year, item.Id);


                    if (item.ExibeKg)
                    {
                        item.Quantidade = item.Quantidade / 1000;
                    }

                    if ((saldoOutrosDoc + item.Quantidade) > saldoDocOrigem)
                    {
                        Validacao.Add(Mensagem.PTV.SomaQuantidadeInvalida);
                    }

                    //SALDO DA UC
                    decimal saldoUc = _da.obterSaldoRestanteCultivarUC(empreendimentoID, item.Cultivar, item.Cultura);



                    if (saldoUc <= 0)
                    {
                        Validacao.Add(Mensagem.Lote.CultivarSaldoTodoUtilizado);
                    }


                    if ((quantidadeAdicionada + item.Quantidade) > saldoUc)
                    {
                        Validacao.Add(Mensagem.Lote.CultivarQuantidadeSomaSuperior);
                    }
                }

                item.Quantidade = saldoDocOrigem;
            }
        }
 public FinalidadeCaracterizacao()
 {
     TituloValidadeData     = new DateTecno();
     ProtocoloRenovacaoData = new DateTecno();
 }
Esempio n. 22
0
 public IdentificacaoProduto()
 {
     DataInicioColheita = new DateTecno();
     DataFimColheita    = new DateTecno();
     DataConsolidacao   = new DateTecno();
 }
Esempio n. 23
0
 public Consumo()
 {
     DUADataPagamento = new DateTecno();
     Licenca          = new FinalidadeCaracterizacao();
     FontesEnergia    = new List <FonteEnergia>();
 }
Esempio n. 24
0
 public ProjetoDigitalListarFiltro()
 {
     DataEnvio = new DateTecno();
 }
Esempio n. 25
0
        public bool ValidarProduto(PTVProduto item, DateTecno ptvData, List <PTVProduto> lista, int ptvID)
        {
            lista = lista ?? new List <PTVProduto>();

            if (item.OrigemTipo <= 0)
            {
                Validacao.Add(Mensagem.PTV.TipoOrigemObrigatorio);
            }

            if (item.Origem <= 0 && string.IsNullOrEmpty(item.OrigemNumero))
            {
                Validacao.Add(Mensagem.PTV.OrigemObrigatorio);
            }

            var loteBus = new LoteBus();

            if (item.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO && loteBus.VerificarSeCfoJaAssociadaALote(item.Origem))
            {
                Validacao.Add(Mensagem.EmissaoCFO.DocumentoOrigemDeveSerDeMesmaUC);
                return(false);
            }

            #region Saldo

            //TODO
            decimal saldo        = 0;
            int     produtorItem = 0;
            switch ((eDocumentoFitossanitarioTipo)item.OrigemTipo)
            {
            case eDocumentoFitossanitarioTipo.CFO:
                EmissaoCFOBus emissaoCFOBus = new EmissaoCFOBus();
                EmissaoCFO    cfo           = emissaoCFOBus.Obter(item.Origem);
                saldo        = cfo.Produtos.Where(x => x.CultivarId == item.Cultivar && x.UnidadeMedidaId == item.UnidadeMedida).Sum(x => x.Quantidade);
                produtorItem = cfo.ProdutorId;

                if (cfo.SituacaoId != (int)eDocumentoFitossanitarioSituacao.Valido)
                {
                    Validacao.Add(Mensagem.PTV.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                }

                DateTime dataVencimentoCFO = cfo.DataEmissao.Data.GetValueOrDefault().AddDays(cfo.ValidadeCertificado);
                if (dataVencimentoCFO < DateTime.Today)
                {
                    Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                }

                if (cfo.DataEmissao.Data > ptvData.Data)
                {
                    Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                }
                break;

            case eDocumentoFitossanitarioTipo.CFOC:
                EmissaoCFOCBus emissaoCFOCBus = new EmissaoCFOCBus();
                EmissaoCFOC    cfoc           = emissaoCFOCBus.Obter(item.Origem);
                saldo = cfoc.Produtos.Where(x => x.CultivarId == item.Cultivar && x.UnidadeMedidaId == item.UnidadeMedida).Sum(x => x.Quantidade);

                if (cfoc.SituacaoId != (int)eDocumentoFitossanitarioSituacao.Valido)
                {
                    Validacao.Add(Mensagem.PTV.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                }

                DateTime dataVencimentoCFOC = cfoc.DataEmissao.Data.GetValueOrDefault().AddDays(cfoc.ValidadeCertificado);
                if (dataVencimentoCFOC < DateTime.Today)
                {
                    Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                }

                if (cfoc.DataEmissao.Data > ptvData.Data)
                {
                    Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                }
                break;

            case eDocumentoFitossanitarioTipo.PTVOutroEstado:
                PTVOutroBus ptvOutroBus = new PTVOutroBus();
                PTVOutro    ptvOutro    = ptvOutroBus.Obter(item.Origem);
                saldo = ptvOutro.Produtos.Where(x => x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida).Sum(x => x.Quantidade);

                if (ptvOutro.Situacao != (int)ePTVOutroSituacao.Valido)
                {
                    Validacao.Add(Mensagem.PTV.OrigemSituacaoInvalida(item.OrigemTipoTexto));
                }

                if (ptvOutro.ValidoAte.Data.GetValueOrDefault() < DateTime.Today)
                {
                    Validacao.Add(Mensagem.Lote.OrigemVencida(item.OrigemTipoTexto));
                }

                if (ptvOutro.DataEmissao.Data > ptvData.Data)
                {
                    Validacao.Add(Mensagem.Lote.OrigemDataMaiorLoteData);
                }
                break;

            case eDocumentoFitossanitarioTipo.PTV:
                PTVInternoBus ptvBus = new PTVInternoBus();
                PTV           ptv    = ptvBus.Obter(item.Origem);
                saldo        = ptv.Produtos.Where(x => x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida).Sum(x => x.Quantidade);
                produtorItem = ptv.ResponsavelEmpreendimento;
                break;
            }

            #endregion Saldo

            if (lista.Count > 0 && produtorItem > 0)
            {
                int        produtorOrigem = 0;
                PTVProduto primeiroItem   = lista.FirstOrDefault(x => x.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO || x.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTV);

                if (primeiroItem != null)
                {
                    switch ((eDocumentoFitossanitarioTipo)primeiroItem.OrigemTipo)
                    {
                    case eDocumentoFitossanitarioTipo.CFO:
                        EmissaoCFOBus emissaoCFOBus = new EmissaoCFOBus();
                        EmissaoCFO    cfo           = emissaoCFOBus.Obter(primeiroItem.Origem, true);
                        produtorOrigem = cfo.ProdutorId;
                        break;

                    case eDocumentoFitossanitarioTipo.PTV:
                        PTVInternoBus ptvBus = new PTVInternoBus();
                        PTV           ptv    = ptvBus.Obter(primeiroItem.Origem, true);
                        produtorOrigem = ptv.ResponsavelEmpreendimento;
                        break;
                    }

                    if (produtorItem != produtorOrigem)
                    {
                        Validacao.Add(Mensagem.PTV.ProdutorDiferente);
                    }
                }
            }

            if (!Validacao.EhValido)
            {
                return(false);
            }

            if (item.Cultura <= 0)
            {
                Validacao.Add(Mensagem.PTV.CulturaObrigatorio);
            }
            if (item.Cultivar <= 0)
            {
                Validacao.Add(Mensagem.PTV.CultivarObrigatorio);
            }

            if (item.UnidadeMedida <= 0)
            {
                Validacao.Add(Mensagem.PTV.UnidadeMedidaObrigatorio);
            }

            if (item.Quantidade <= 0)
            {
                Validacao.Add(Mensagem.PTV.QuantidadeObrigatorio);
            }

            if (lista.Count(x => !x.Equals(item)) >= 5)
            {
                Validacao.Add(Mensagem.PTV.QauntidadeItensUltrapassado);
            }

            if (Validacao.EhValido && lista.Count > 0)
            {
                if (lista.Count(x => x.Origem == item.Origem && item.Cultivar == x.Cultivar && x.UnidadeMedida == item.UnidadeMedida && !x.Equals(item)) > 0)
                {
                    Validacao.Add(Mensagem.PTV.ITemProdutoJaAdicionado(item.OrigemTipoTexto));
                }

                if (lista.Count(x => x.EmpreendimentoId != item.EmpreendimentoId && x.EmpreendimentoId > 0) > 0)
                {
                    Validacao.Add(Mensagem.PTV.EmpreendimentoOrigemDiferente);
                }
            }

            if (Validacao.EhValido)
            {
                if (_da.EmpreendimentoPossuiEPTVBloqueado(item.EmpreendimentoId))
                {
                    Validacao.Add(Mensagem.PTV.EmpreendimentoEPTVBloqueado);
                }
            }

            if (Validacao.EhValido)
            {
                if (item.OrigemTipo != (int)eDocumentoFitossanitarioTipo.CFCFR && item.OrigemTipo != (int)eDocumentoFitossanitarioTipo.TF)
                {
                    decimal saldoOutrosDoc = _da.ObterOrigemQuantidade((eDocumentoFitossanitarioTipo)item.OrigemTipo, item.Origem, item.OrigemNumero, item.Cultivar, item.UnidadeMedida, ptvData.Data.GetValueOrDefault().Year, ptvID);

                    decimal quantidadeAdicionada = lista.Where(x => x.OrigemTipo == item.OrigemTipo && x.Origem == item.Origem && x.Cultivar == item.Cultivar && x.UnidadeMedida == item.UnidadeMedida && !x.Equals(item)).Sum(x => x.Quantidade);

                    if ((saldoOutrosDoc + quantidadeAdicionada + item.Quantidade) > saldo)
                    {
                        Validacao.Add(Mensagem.PTV.SomaQuantidadeInvalida);
                    }
                }
            }

            return(Validacao.EhValido);
        }
Esempio n. 26
0
        public ActionResult ValidarIdentificacaoProduto(PTVProduto item, DateTecno dataEmissao, List <PTVProduto> lista, int ptvID)
        {
            _validar.ValidarProduto(item, dataEmissao, lista, ptvID);

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }));
        }
Esempio n. 27
0
 public Lote()
 {
     DataCriacao = new DateTecno();
     Lotes       = new List <LoteItem>();
     Item        = new LoteItem();
 }
Esempio n. 28
0
 public Sobreposicoes()
 {
     DataVerificacaoBanco = new DateTecno();
     Itens = new List <Sobreposicao>();
 }