/// <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); }
/// <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); } }