protected void btnAccept_Click(object sender, ImageClickEventArgs e) { try { if (!DataOk()) { return; } if (newRecord) { plantillaRevision = new PlantillaRevision(); } UnloadData(plantillaRevision); if (newRecord) { ctx.Add(plantillaRevision); } ctx.SaveChanges(); if (newRecord) { string url = String.Format("PlantillaRevisionTab.aspx?Caller=PlantillaRevisionGrid&PlantillaId={0}", plantillaRevision.PlantillaId); string jCommand = String.Format("closeOpen('{0}','{1}');", url, "PlantillaRevisionTab"); RadAjaxManager1.ResponseScripts.Add(jCommand); //RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller)); } else { RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", "PlantillaRevisionGrid")); } } catch (Exception ex) { ControlDeError(ex); } }
protected void Page_Init(object sender, EventArgs e) { // it gets an appropiate context (LainsaSciCTX -> web.config) ctx = new LainsaSci("LainsaSciCTX"); // verify if a Usuario is logged usuario = CntWinWeb.IsSomeoneLogged(this, ctx); if (usuario == null) { Response.Redirect("Default.aspx"); } else { Session["UsuarioId"] = usuario.UsuarioId; } // // si llega aquí está autorizado permiso = CntLainsaSci.GetPermiso(usuario.GrupoUsuario, "PlantillaRevisiongrid", ctx); if (permiso == null) { RadNotification1.Text = String.Format("<b>{0}</b><br/>{1}", (string)GetGlobalResourceObject("ResourceLainsaSci", "Warning"), (string)GetGlobalResourceObject("ResourceLainsaSci", "NoPermissionsAssigned")); RadNotification1.Show(); RadAjaxManager1.ResponseScripts.Add("closeWindow();"); } btnAccept.Visible = permiso.Modificar; // Si esto no va antes de PlantillaRevisionID tendrás problemas. if (Request.QueryString["Caller"] != null) { caller = Request.QueryString["Caller"]; caller = caller.Replace("'", ""); } // CargarTiposPeriodo(""); // Is it a new record or not? if (Request.QueryString["PlantillaId"] != null) { plantillaRevision = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx); LoadData(plantillaRevision); this.Title = String.Format("PlantillaRevision: {0}", plantillaRevision.Descripcion); newRecord = false; } if (Request.QueryString["TipoId"] != null) { tipoId = int.Parse(Request.QueryString["TipoId"]); tipo = CntLainsaSci.GetTipoDispositivo(tipoId, ctx); if (tipo != null) { rdcTipoDisp.Items.Clear(); rdcTipoDisp.Items.Add(new RadComboBoxItem(tipo.Nombre, tipo.TipoId.ToString())); rdcTipoDisp.SelectedValue = tipo.TipoId.ToString(); rdcTipoDisp.Enabled = false; imgbTipo.Enabled = false; } } }
protected void UnloadData(PlantillaRevision plantillaRevision) { plantillaRevision.Descripcion = txtDescripcion.Text; plantillaRevision.TipoDispositivo = CntLainsaSci.GetTipoDispositivo(int.Parse(rdcTipoDisp.SelectedValue), ctx); plantillaRevision.TipoPeriodo = rdcTipoPeriodo.SelectedValue; plantillaRevision.NumeroPeriodos = (int)txtNumeroPeriodos.Value; plantillaRevision.Comentarios = txtComentarios.Text; plantillaRevision.ConSustitucion = chkConSustitucion.Checked; }
protected void Page_Init(object sender, EventArgs e) { // it gets an appropiate context (LainsaSciCTX -> web.config) ctx = new LainsaSci("LainsaSciCTX"); // verify if a Usuario is logged Usuario = CntWinWeb.IsSomeoneLogged(this, ctx); if (Usuario == null) { Response.Redirect("Default.aspx"); } else { Session["UsuarioId"] = Usuario.UsuarioId; } // // si llega aquí está autorizado permiso = CntLainsaSci.GetPermiso(Usuario.GrupoUsuario, "campogrid", ctx); if (permiso == null) { RadNotification1.Text = String.Format("<b>{0}</b><br/>{1}", (string)GetGlobalResourceObject("ResourceLainsaSci", "Warning"), (string)GetGlobalResourceObject("ResourceLainsaSci", "NoPermissionsAssigned")); RadNotification1.Show(); RadAjaxManager1.ResponseScripts.Add("closeWindow();"); } btnAccept.Visible = permiso.Modificar; if (Request.QueryString["Caller"] != null) { caller = Request.QueryString["Caller"]; caller = caller.Replace("'", ""); } if (Request.QueryString["PlantillaId"] != null) { plantilla = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx); CargaPlantilla(plantilla); } CargaTipos(new TipoCampo()); // Is it a new record or not? if (Request.QueryString["CampoId"] != null) { campo = CntLainsaSci.GetCampo(int.Parse(Request.QueryString["CampoId"]), ctx); LoadData(campo); newRecord = false; } else { CargarInformeDe(""); } // control de skin if (Session["Skin"] != null) { RadSkinManager1.Skin = Session["Skin"].ToString(); } }
protected void btnPlanificar_Click(object sender, ImageClickEventArgs e) { bool noRealizadPreviamente = false; try { if (!DataOk()) { return; } if (newRecord) { revision = new Revision(); } UnloadData(revision); CntLainsaSci.CTXGuardar(ctx); // peso de esta revisión PlantillaRevision pr = revision.PlantillaRevision; int peso = CntLainsaSci.CalculoPeso(pr.TipoPeriodo) * pr.NumeroPeriodos; // Buscamos los resúmenes de revisón de ese dispositivo foreach (ResumenRevision rr in revision.Dispositivo.ResumenesRevisones) { // cargamos la plantilla correspondiente pr = rr.PlantillaRevision; // si la revisón no es periódica no la tocamos if (pr.NoPeriodica) { continue; } // calculamos su peso int peso2 = CntLainsaSci.CalculoPeso(pr.TipoPeriodo) * pr.NumeroPeriodos; // comprobamos si su plantilla es igual o inferior if (peso2 <= peso) { // actualizamos la última fecha de revisión como esta rr.FechaUltima = revision.FechaRevision; // ya ahora planificamos con las fechas actualizadas CntLainsaSci.PlanificarRevisiones(rr, ctx); } } if (newRecord) { RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller)); } else { RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller)); } } catch (Exception ex) { ControlDeError(ex); } }
protected void LoadData(PlantillaRevision plantillaRevision) { txtPlantillaId.Text = plantillaRevision.PlantillaId.ToString(); txtDescripcion.Text = plantillaRevision.Descripcion; // cargar el tipo de dispositivo rdcTipoDisp.Items.Clear(); rdcTipoDisp.Items.Add(new RadComboBoxItem(plantillaRevision.TipoDispositivo.Nombre, plantillaRevision.TipoDispositivo.TipoId.ToString())); rdcTipoDisp.SelectedValue = plantillaRevision.TipoDispositivo.TipoId.ToString(); // CargarTiposPeriodo(plantillaRevision.TipoPeriodo); txtNumeroPeriodos.Value = plantillaRevision.NumeroPeriodos; txtComentarios.Text = plantillaRevision.Comentarios; chkConSustitucion.Checked = plantillaRevision.ConSustitucion; }
protected void Page_Init(object sender, EventArgs e) { // it gets an appropiate context (LainsaSciCTX -> web.config) ctx = new LainsaSci("LainsaSciCTX"); // verify if a Usuario is logged Usuario = CntWinWeb.IsSomeoneLogged(this, ctx); if (Usuario == null) { Response.Redirect("Default.aspx"); } else { Session["UsuarioId"] = Usuario.UsuarioId; } // si llega aquí está autorizado permiso = CntLainsaSci.GetPermiso(Usuario.GrupoUsuario, "campogrid", ctx); if (permiso == null) { RadNotification1.Text = String.Format("<b>{0}</b><br/>{1}", (string)GetGlobalResourceObject("ResourceLainsaSci", "Warning"), (string)GetGlobalResourceObject("ResourceLainsaSci", "NoPermissionsAssigned")); RadNotification1.Show(); RadAjaxManager1.ResponseScripts.Add("closeWindow();"); } CntWinWeb.TranslateRadGridFilters(RadGrid1); if (Request.QueryString["InTab"] != null) { mode = Request.QueryString["InTab"]; } if (Request.QueryString["Caller"] != null) { caller = Request.QueryString["Caller"]; } if (Request.QueryString["PlantillaId"] != null) { plantilla = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx); if (plantilla != null) { RadGrid1.Columns.FindByDataField("PlantillaRevision.Descripcion").Visible = false; } } // control de skin if (Session["Skin"] != null) { RadSkinManager1.Skin = Session["Skin"].ToString(); } }
protected void CargaPlantilla(PlantillaRevision plantilla) { if (plantilla == null) { rdcPlantilla.DataSource = CntLainsaSci.GetPlantillaRevisiones(ctx); rdcPlantilla.DataTextField = "Nombre"; rdcPlantilla.DataValueField = "PlantillaId"; } rdcPlantilla.Items.Clear(); rdcPlantilla.Items.Add(new RadComboBoxItem(plantilla.Descripcion, plantilla.PlantillaId.ToString())); rdcPlantilla.SelectedValue = plantilla.PlantillaId.ToString(); if (caller.Equals("PlantillaRevisionTab")) { ImageButton1.Enabled = false; rdcPlantilla.Enabled = false; } }
protected void btnAccept_Click(object sender, ImageClickEventArgs e) { try { if (!DataOk()) { return; } if (newRecord) { plantillaRevision = new PlantillaRevision(); } UnloadData(plantillaRevision); if (newRecord) { ctx.Add(plantillaRevision); } ctx.SaveChanges(); if (newRecord) { string url = String.Format("PlantillaRevisionTab.aspx?Caller=PlantillaRevisionGrid&PlantillaId={0}", plantillaRevision.PlantillaId); string jCommand = String.Format("closeOpen('{0}','{1}');", url, "PlantillaRevisionTab"); RadAjaxManager1.ResponseScripts.Add(jCommand); //RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller)); } else { lblCarga.Visible = true; foreach (ResumenRevision rr in plantillaRevision.ResumenesRevisones) { CntLainsaSci.PlanificarRevisiones(rr, ctx); if (rr.Dispositivo.Accesorios.Count > 0) { CntLainsaSci.PlanificarRevisionesAccesorios(rr, ctx); } } RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller)); } } catch (Exception ex) { ControlDeError(ex); } }
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) { // we only process commands with a datasource (our image buttons) if (e.CommandSource == null) { return; } string typeOfControl = e.CommandSource.GetType().ToString(); if (typeOfControl.Equals("System.Web.UI.WebControls.ImageButton")) { int id = 0; ImageButton imgb = (ImageButton)e.CommandSource; if (imgb.ID != "New" && imgb.ID != "Exit") { id = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex][e.Item.OwnerTableView.DataKeyNames[0]]; } switch (imgb.ID) { case "Select": break; case "Edit": break; case "Delete": try { PlantillaRevision plantillaRevision = CntLainsaSci.GetPlantillaRevision(id, ctx); CntLainsaSci.CTXEliminar(plantillaRevision, ctx); CntLainsaSci.CTXGuardar(ctx); RefreshGrid(true); } catch (Exception ex) { ControlDeError(ex); } break; } } }
// public static DateTime SiguienteFecha(DateTime fechaBase, PlantillaRevision pr) { DateTime fechaFin = fechaBase; switch (pr.TipoPeriodo) { case "D": fechaFin = fechaBase.AddDays((double)pr.NumeroPeriodos); break; case "S": fechaFin = fechaBase.AddDays((double)pr.NumeroPeriodos * 7); break; case "M": fechaFin = fechaBase.AddMonths(pr.NumeroPeriodos); break; case "A": fechaFin = fechaBase.AddYears(pr.NumeroPeriodos); break; } return(fechaFin); }
public static void ProgramarSiguienteRevision(Revision rev, LainsaSci ctx, bool controlSuperiores) { // si la plantilla no es periódica no hay nada que planificar if (rev.PlantillaRevision.NoPeriodica) { return; } // si el dispositivo está caducado no hay nada que planificar. if (rev.Dispositivo.Caducado) { return; } // si la revisión actual no tiene fecha tampoco podemos planificar. if (CntLainsaSci.FechaNula(rev.FechaRevision)) { return; } Dispositivo dsp = rev.Dispositivo; // controlamos si el dispositivo en el intermedio no está operativo y no se planifican if (!dsp.Operativo && !dsp.SiguePlan) { return; } PlantillaRevision pr = rev.PlantillaRevision; ResumenRevision rr = (from rsr in dsp.ResumenesRevisones where rsr.PlantillaRevision.PlantillaId == pr.PlantillaId select rsr).FirstOrDefault <ResumenRevision>(); // lo primero es conocer cuando tocaría la siguiente. DateTime fechaFin = SiguienteFecha(rev.FechaRevision, pr); // controlar que no hay una revisión de periodo mayor que coincida con ella //if (controlSuperiores) //{ // if (HayPlanificadaSuperior(fechaFin, rev, ctx)) // return; //} // buscamos si ya había una revisión que exactamente [fecha y tipo] // coi-ncida con la que vamos a dar de alta Revision rev2 = (from r in ctx.Revisions where r.Dispositivo.DispositivoId == dsp.DispositivoId && r.PlantillaRevision.PlantillaId == pr.PlantillaId && r.FechaPlanificada == fechaFin select r).FirstOrDefault <Revision>(); if (rev2 == null) { rev2 = new Revision(); rev2.Dispositivo = rev.Dispositivo; rev2.FechaPlanificada = fechaFin; rev2.PlantillaRevision = pr; rev2.Estado = "PLANIFICADA"; // Comprobamos si caemos en caducidad if (fechaFin >= dsp.FechaCaducidad) { rev2.CaduProx = true; } else { // calculamos en que fecha caerá la siguiente y si es fuera de caducidad DateTime fechaSS = SiguienteFecha(fechaFin, pr); if (fechaSS >= dsp.FechaCaducidad) { rev2.CaduProx = true; } } ctx.Add(rev2); foreach (Campo c in pr.Campos) { DatosRevision dr = new DatosRevision(); dr.Campo = c; // Miramos los valores de campo en la anterior para copiarlos DatosRevision dr2 = (from d in rev.DatosRevisions where d.Campo.Nombre == c.Nombre select d).FirstOrDefault <DatosRevision>(); if (dr2 != null) { dr.Valor = dr2.Valor; } dr.Revision = rev2; ctx.Add(dr); } // Eliminmos las posibles inferiores a la planificada. if (controlSuperiores) { EliminarInferiores(rev2, ctx); // esto ya se ha hecho antes } ctx.SaveChanges(); } // Por último actulaizar la fecha en resumen rr.FechaUltima = rev.FechaRevision; rr.FechaSiguiente = fechaFin; ctx.SaveChanges(); }