/// <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");
        }
    }
Beispiel #3
0
 public void AddToSCPM_SUBROGA_HIST(SCPM_SUBROGA_HIST sCPM_SUBROGA_HIST)
 {
     base.AddObject("SCPM_SUBROGA_HIST", sCPM_SUBROGA_HIST);
 }
Beispiel #4
0
 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;
 }