/// <summary> /// añade un registro de subrogacion/encargo al historial /// Falla si el puesto ya esta actualmente sugbrogado/encargado /// </summary> /// <param name="historial"></param> /// <param name="cargo_id">ID: id del cargo a subrogar</param> /// <param name="current_subroga_id">id: personaID a la q esta subrogado o encargado dcm: no esta subrogado</param> /// <param name="current_tipo_id">1: si el puesto actual esta subrogado 2: puesto actual encargado dcm: puesto no sugbrogado </param> /// <param name="current_persona_id">ID: personaID si el puesto esta ocupado dcm: puesto no ocupado</param> /// <param name="newPersonaID">ID: personaID a la cual se subrogará</param> /// <param name="sub_hist_id"></param> /// <returns> /// true si fue añadido, false si no fue añadido. /// </returns> public bool addSubrogaHistorial(SCPM_SUBROGA_HIST historial, int cargo_id, string current_subroga_id, string current_tipo_id, string current_persona_id, int newPersonaID, String sub_hist_id) { var nowTime = DateTime.Now; if (!current_tipo_id.Equals("dcm")) {//puesto ya subrogado /encargado SCPM_SUBROGA_HIST lastSubroga = getSubrogaByID(Convert.ToInt32(sub_hist_id)); if (current_tipo_id == "1" && historial.SUB_HIS_IS_ENCARGO.Value) {//ya esta subrogado/encargado no puede ser encargado/subrogado HelperUtil.showNotifi(String.Format("El puesto ya esta {0}, no puede ser {1}", current_tipo_id == "1" ? "subrogado" : "encargado", current_tipo_id == "1" ? "encargado" : "subrogado")); return(false); } else if (Convert.ToInt32(current_subroga_id) == newPersonaID) {//actualiza fecha fin //fecha fin no puede ser menor a fecha inicio if (historial.SUB_HIS_FEC_FIN != null && lastSubroga.SUB_HIS_FEC_INI.Value.CompareTo(historial.SUB_HIS_FEC_FIN) > 0) { HelperUtil.showNotifi("fecha inicio no puede ser mayor que final"); return(false); } lastSubroga.SUB_HIS_FEC_FIN = historial.SUB_HIS_FEC_FIN; db.SaveChanges(); HelperUtil.showNotifi("Solo fecha final actualizada"); return(true); } else {//actualizar cambiar la persona a la q esta subrogado/encargado el puesto, se finaliza este historial y añade nuevo lastSubroga.SUB_HIS_FEC_FIN = nowTime; db.SaveChanges(); HelperUtil.showNotifi("Historial anterior finalizado."); //add new historial historial.SCPM_PERSONALES = getPersonasByID(newPersonaID).ToList().First(); historial.SCPM_CARGOS = getCargoByID(cargo_id); historial.SUB_HIS_FEC_INI = nowTime; db.AddToSCPM_SUBROGA_HIST(historial); //save db.SaveChanges(); HelperUtil.showNotifi("Nueva Historial de Subrogacion/encargo añadido."); return(true); } } else {//puesto no subrogado /encargado //fecha fin no puede ser menor a fecha inicio if (historial.SUB_HIS_FEC_FIN != null && historial.SUB_HIS_FEC_INI.Value.CompareTo(historial.SUB_HIS_FEC_FIN) > 0) { HelperUtil.showNotifi("fecha inicio no puede ser mayor que final"); return(false); } //add new subroga/encargo historial.SCPM_PERSONALES = getPersonasByID(newPersonaID).ToList().First(); historial.SCPM_CARGOS = getCargoByID(cargo_id); db.AddToSCPM_SUBROGA_HIST(historial); //save db.SaveChanges(); HelperUtil.showNotifi("Nueva Historial de Subrogacion/encargo añadido."); return(true); } }
private void fillData(int cargo_id) { try { var puesto = psvm.getCargoByID(cargo_id); if (puesto != null) { current_puesto_id.Value = puesto.CAR_ID.ToString(); ViewDetail(true); fillPersonas(); //puesto detall puesto.SCPM_AREASReference.Load(); puesto.SCPM_AREAS.SCPM_UNIDADReference.Load(); puesto.SCPM_DENOMINACIONESReference.Load(); unidadLabel.InnerHtml = puesto.SCPM_AREAS.SCPM_UNIDAD.UNI_NOM; areaLabel.InnerHtml = puesto.SCPM_AREAS.ARE_NOM; cargoLabel.InnerHtml = puesto.CAR_NOM; denominacionLabel.InnerHtml = puesto.SCPM_DENOMINACIONES.DEN_NOM; //puesto funcionario puesto.SCPM_PUESTO_HIST.Load(); SCPM_PUESTO_HIST lastCargo = puesto.SCPM_PUESTO_HIST.Count > 0 ? puesto.SCPM_PUESTO_HIST.OrderByDescending(c => c.PST_HIS_FEC_INI).FirstOrDefault() : puesto.SCPM_PUESTO_HIST.FirstOrDefault(); if (lastCargo != null && (lastCargo.PST_HIS_FEC_FIN == null || DateTime.Now.CompareTo(lastCargo.PST_HIS_FEC_FIN) <= 0)) {//cargo tiene un funcionario actualmente lastCargo.SCPM_PERSONALESReference.Load(); SCPM_PERSONALES persona = lastCargo.SCPM_PERSONALES; personaLabel.InnerHtml = String.Format("{0} {1} {2} {3}", persona.PER_APE_PAT, persona.PER_APE_MAT, persona.PER_NOM1, persona.PER_NOM2); HelperUtil.showNotifi("Cargo ocupado<br/>" + personaLabel.InnerHtml); lastCargo.SCPM_RELACIONES_LABORALESReference.Load(); relLabLabel.InnerHtml = lastCargo.SCPM_RELACIONES_LABORALES.REL_LAB_NOM; current_persona_id.Value = persona.PER_ID.ToString();; } else {//cargo no ocupado HelperUtil.showNotifi("Cargo no ocupado"); relLabLabel.InnerHtml = "ninguno"; personaLabel.InnerHtml = "ninguno"; current_persona_id.Value = "dcm"; } //puesto subrogado/encargo puesto.SCPM_SUBROGA_HIST.Load(); var q = puesto.SCPM_SUBROGA_HIST.ToList(); SCPM_SUBROGA_HIST lastSugroga = q.Count > 0 ? q.OrderByDescending(c => c.SUB_HIS_FEC_INI).FirstOrDefault() : q.FirstOrDefault(); if (lastSugroga != null && (lastSugroga.SUB_HIS_FEC_FIN == null || DateTime.Now.CompareTo(lastSugroga.SUB_HIS_FEC_FIN) <= 0)) {//puesto esta subrogado o encargado actualmente combo_tipo.SelectedValue = lastSugroga.SUB_HIS_IS_ENCARGO.Value ? "2" : "1"; lastSugroga.SCPM_PERSONALESReference.Load(); comboPersona.SelectedValue = lastSugroga.SCPM_PERSONALES.PER_ID.ToString(); HelperUtil.showNotifi("Cargo actualmente " + (lastSugroga.SUB_HIS_IS_ENCARGO.Value ? "Encargado" : "Subrogado")); current_subroga_id.Value = lastSugroga.SCPM_PERSONALES.PER_ID.ToString(); current_tipo_id.Value = lastSugroga.SUB_HIS_IS_ENCARGO.Value ? "2" : "1"; sub_hist_id.Value = lastSugroga.SUB_HIS_ID.ToString(); inFechaStart.Text = lastSugroga.SUB_HIS_FEC_INI.Value.ToString("yyyy-MM-dd"); inFechaEnd.Text = (lastSugroga.SUB_HIS_FEC_FIN == null ? "" : lastSugroga.SUB_HIS_FEC_FIN.Value.ToString("yyyy-MM-dd")); subrogaPerLabel.InnerHtml = String.Format("{0} {1} {2} {3}", lastSugroga.SCPM_PERSONALES.PER_APE_PAT, lastSugroga.SCPM_PERSONALES.PER_APE_MAT, lastSugroga.SCPM_PERSONALES.PER_NOM1, lastSugroga.SCPM_PERSONALES.PER_NOM2); } else {//puesto no encargado subrogado current_subroga_id.Value = "dcm"; sub_hist_id.Value = "dcm"; subrogaPerLabel.InnerHtml = "ninguno"; current_tipo_id.Value = "dcm"; inFechaStart.Text = DateTime.Now.ToString("yyyy-MM-dd"); HelperUtil.showNotifi("Puesto no subrogado"); } } else { ViewDetail(false); HelperUtil.showNotifi("Puesto no encontrado"); current_puesto_id.Value = "dcm"; } } catch (Exception ex) { ViewDetail(false); HelperUtil.showNotifi("Error: Puesto no encontrado"); current_subroga_id.Value = "dcm"; sub_hist_id.Value = "dcm"; subrogaPerLabel.InnerHtml = "ninguno"; current_tipo_id.Value = "dcm"; inFechaStart.Text = DateTime.Now.ToString("yyyy-MM-dd"); } }
public void AddToSCPM_SUBROGA_HIST(SCPM_SUBROGA_HIST sCPM_SUBROGA_HIST) { base.AddObject("SCPM_SUBROGA_HIST", sCPM_SUBROGA_HIST); }
public static SCPM_SUBROGA_HIST CreateSCPM_SUBROGA_HIST(decimal sUB_HIS_ID) { SCPM_SUBROGA_HIST sCPM_SUBROGA_HIST = new SCPM_SUBROGA_HIST(); sCPM_SUBROGA_HIST.SUB_HIS_ID = sUB_HIS_ID; return sCPM_SUBROGA_HIST; }