示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UnidadCultivoDatosHidricos"/> class.
        /// </summary>
        /// <param name="idUnidadCultivo">The IdUnidadCultivo<see cref="string"/>.</param>
        /// <param name="fecha">The idTemporada<see cref="string"/>.</param>
        public UnidadCultivoDatosHidricos(string idUnidadCultivo, DateTime fecha)
        {
            string idTemporada = DB.TemporadaDeFecha(idUnidadCultivo, fecha);

            if ((temporada = DB.Temporada(idTemporada)) == null)
            {
                throw new Exception($"Imposible cargar datos de la temporada {idTemporada}.");
            }

            if ((unidadCultivo = DB.UnidadCultivo(idUnidadCultivo)) == null)
            {
                throw new Exception($"Imposible cargar datos del cultivo {idUnidadCultivo}.");
            }

            pUnidadCultivoExtensionM2 = DB.UnidadCultivoExtensionM2(idUnidadCultivo, idTemporada);

            if ((UnidadCultivoCultivoEtapasList = DB.UnidadCultivoCultivoEtapasList(idUnidadCultivo, idTemporada)).Count == 0)
            {
                throw new Exception($"Imposible cargar las etapas para la unidad de cultivo {idUnidadCultivo}.");
            }

            if ((unidadCultivoCultivo = DB.UnidadCultivoCultivo(idUnidadCultivo, idTemporada)) == null)
            {
                throw new Exception("Imposible datos del cultivo en la temporada indicada.");
            }

            lTiposEstres          = DB.ListaTipoEstres();
            lTipoEstresUmbralList = DB.ListaEstresUmbral();

            if ((lDatosClimaticos = DB.DatosClimaticosList(FechaSiembra(), FechaFinalDeEstudio(), unidadCultivo.IdEstacion)) == null)
            {
                throw new Exception($"Imposible cargar datos climáticos para la estación {unidadCultivo.IdEstacion}  en el intervalo de fechas de {FechaSiembra()} a {FechaFinalDeEstudio()}");
            }

            cultivo  = DB.Cultivo(unidadCultivoCultivo.IdCultivo);
            estacion = DB.Estacion(unidadCultivo.IdEstacion);
            regante  = (Regante)DB.Regante(unidadCultivoCultivo.IdRegante);

            if ((ListaUcSuelo = DB.UnidadCultivoSueloList(idTemporada, idUnidadCultivo)) == null)
            {
                throw new Exception("No se ha definido suelo para la unidad de Cultivo:" + idUnidadCultivo);
            }

            riegoTipo = DB.RiegoTipo(unidadCultivoCultivo.IdTipoRiego);

            DateTime fechaSiembra = FechaSiembra();
            DateTime fechaFinal   = FechaFinalDeEstudio();;

            lDatosRiego = DB.RiegosList(idUnidadCultivo, fechaSiembra, fechaFinal);

            lUnidadCultivoDatosExtas = DB.ParcelasDatosExtrasList(idUnidadCultivo, fechaSiembra, fechaFinal);
        }
示例#2
0
        /// <summary>
        /// The UnidadCultivoCultivoTemporadaSave.
        /// </summary>
        /// <param name="db">The db<see cref="Database"/>.</param>
        /// <param name="IdUnidadCultivo">The IdUnidadCultivo<see cref="string"/>.</param>
        /// <param name="idTemporada">The idTemporada<see cref="string"/>.</param>
        /// <param name="idCultivo">The idCultivo<see cref="int"/>.</param>
        /// <param name="idRegante">The idRegante<see cref="int"/>.</param>
        /// <param name="idTipoRiego">The idTipoRiego<see cref="int"/>.</param>
        /// <param name="fechaSiembra">The fechaSiembra<see cref="string"/>.</param>
        private static void UnidadCultivoCultivoTemporadaSave(Database db, string IdUnidadCultivo, string idTemporada, int idCultivo, int idRegante, int idTipoRiego, DateTime fechaSiembra)
        {
            try {
                // validar Unidad de cultivo
                if (db.Exists <UnidadCultivo>(IdUnidadCultivo) == false)
                {
                    throw new Exception("Error. No existe la unida de cultivo indicada.");
                }

                // validar Cultivo
                if (db.Exists <Cultivo>(idCultivo) == false)
                {
                    throw new Exception("Error. No existe el cultivo indicado. ");
                }

                // validar Regante
                if (db.Exists <Regante>(idRegante) == false)
                {
                    throw new Exception("Error. No existe el Regante indicado. ");
                }

                // validar TipoRiego
                if (db.Exists <RiegoTipo>(idTipoRiego) == false)
                {
                    throw new Exception("Error. No existe el tipo de Riego indicado.");
                }

                //Si existe, se elimina
                db.Execute(" delete from UnidadCultivoCultivo where IdUnidadCultivo=@0 and IdTemporada=@1 and IdCultivo=@2 ", IdUnidadCultivo, idTemporada, idCultivo);

                // Crear Registro Parcelas Cultivo
                UnidadCultivoCultivo uniCulCul = new UnidadCultivoCultivo {
                    IdUnidadCultivo = IdUnidadCultivo,
                    IdCultivo       = idCultivo,
                    IdRegante       = idRegante,
                    IdTemporada     = idTemporada,
                    IdTipoRiego     = idTipoRiego,
                    Pluviometria    = DB.PluviometriaTipica(idTipoRiego)
                };
                db.Insert(uniCulCul);

                // Leer Cultivo Etapas de IdCultivo
                List <CultivoEtapas> listaCF = db.Fetch <CultivoEtapas>("Select * from CultivoEtapas Where IdCultivo=@0", idCultivo);
                if (listaCF.Count == 0)
                {
                    throw new Exception("Error. No existe una definición de las Etapas para el cultivo indicado.");
                }

                DateTime fechaEtapa = fechaSiembra;
                foreach (CultivoEtapas cf in listaCF)
                {
                    UnidadCultivoCultivoEtapas pcf = new UnidadCultivoCultivoEtapas {
                        IdUnidadCultivo   = uniCulCul.IdUnidadCultivo,
                        IdTemporada       = uniCulCul.IdTemporada,
                        IdEtapaCultivo    = cf.OrdenEtapa,
                        IdTipoEstres      = cf.IdTipoEstres,
                        DuracionDiasEtapa = cf.DuracionDiasEtapa,
                        Etapa             = cf.Etapa,
                        FechaInicioEtapa  = fechaEtapa
                    };
                    fechaEtapa = fechaEtapa.AddDays(cf.DuracionDiasEtapa);
                    pcf.FechaInicioEtapaConfirmada = null;
                    pcf.DefinicionPorDias          = cf.DefinicionPorDias;
                    pcf.KcInicial           = cf.KcInicial;
                    pcf.KcFinal             = cf.KcFinal;
                    pcf.CobInicial          = cf.CobInicial;
                    pcf.CobFinal            = cf.CobFinal;
                    pcf.FactorDeAgotamiento = cf.FactorAgotamiento;
                    db.Insert(pcf);
                }
                return;
            } catch (Exception ex) {
                throw new Exception("Error. No existe una definición de las Etapas para el cultivo indicado." + ex.Message);
            }
        }