Esempio n. 1
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            string script_text = "<script>var ctrlID = \"" + this.UniqueID + "\"</script>";

            Response.Write(script_text);
            if (objAngajat.IsLichidat)
            {
                btnGenerati.Enabled      = false;
                lstPerAngajarii.Disabled = true;
                txtDataDeLa.Enabled      = false;
                txtDataPanaLa.Enabled    = false;

                lblEroare.Text = "Angajatul selectat este lichidat!";
            }
            else
            {
                Salaries.Business.Angajat dateAngajat = new Salaries.Business.Angajat();
                dateAngajat.AngajatId = Convert.ToInt32(objAngajat.AngajatId);
                DataTable dt = dateAngajat.GetDetaliiAngajat().Tables[0];

                foreach (DataRow dr in dt.Rows)
                {
                    lstPerAngajarii.SelectedIndex = dr["PerioadaDeterminata"].ToString().Equals("True")?0:1;
                    if (dr["DataDeLa"] != DBNull.Value)
                    {
                        txtDataDeLa.Text = Convert.ToDateTime(dr["DataDeLa"]).ToString("dd.MM.yyyy");
                    }
                    if (dr["DataPanaLa"] != DBNull.Value)
                    {
                        txtDataPanaLa.Text = Convert.ToDateTime(dr["DataPanaLa"]).ToString("dd.MM.yyyy");
                    }
                    txtDataGenerarii.Text = DateTime.Today.ToString("dd.MM.yyyy");
                    break;
                }
            }

            //header de tabel
            Utilities.CreateTableHeader(Table2, "Comunicare prelungire contract individual de munca", "", "normal");
        }
Esempio n. 2
0
        /// <summary>
        /// Procedura calculeaza nr de zile de CO disponibile pe an
        /// </summary>
        /// <param name="dataStart">Data de inceput</param>
        /// <param name="dataEnd">Data de sfarsit</param>
        /// <param name="angajatorID">Id-ul angajatorului</param>
        /// <returns>Returneaza nr de zile de CO disponibile</returns>
        public int GetAngajatNrZileCODisponibileAn(DateTime dataStart, DateTime dataEnd, int angajatorID)
        {
            try
            {
                Salaries.Business.Angajat angajat = new Salaries.Business.Angajat();
                angajat.AngajatId = angajatId;
                DataSet ds = angajat.GetDetaliiAngajat();

                if (dataStart.Year < ((DateTime)ds.Tables[0].Rows[0]["DataDeLa"]).Year)
                {
                    return(0);
                }
                else if (dataStart.Year == ((DateTime)ds.Tables[0].Rows[0]["DataDeLa"]).Year)
                {
                    dataStart = (DateTime)ds.Tables[0].Rows[0]["DataDeLa"];
                }

                if ((bool)ds.Tables[0].Rows[0]["Lichidat"])
                {
                    if (dataEnd.Year > ((DateTime)ds.Tables[0].Rows[0]["DataLichidare"]).Year)
                    {
                        return(0);
                    }
                    else if (dataEnd.Year == ((DateTime)ds.Tables[0].Rows[0]["DataLichidare"]).Year)
                    {
                        dataEnd = (DateTime)ds.Tables[0].Rows[0]["DataLichidare"];
                    }
                }

                float nrZileAngPerLuna  = 0;
                float nrZileDisponibile = 0;
                float nrZileCOAn        = float.Parse(ds.Tables[0].Rows[0]["NrZileCOAn"].ToString());
                float norma             = float.Parse(ds.Tables[0].Rows[0]["ProgramLucru"].ToString());


                for (int i = dataStart.Month; i <= dataEnd.Month; i++)
                {
                    int ziSt  = 1;
                    int ziEnd = DateTime.DaysInMonth(dataStart.Year, i);
                    if (dataStart.Month == i)
                    {
                        ziSt = dataStart.Day;
                    }

                    DateTime dt = new DateTime(dataStart.Year, i, ziSt);

                    Luni          luni     = new Luni(angajatorID);
                    int           lunaID   = luni.GetDetaliiByData(dt).LunaId;
                    Data.LunaData lunaData = luni.GetDetalii(lunaID);

                    Data.IntervaleSchimbariLuna [] interv = GetIntervalProgramLucru(lunaID);

                    if (interv.Length > 0)
                    {
                        for (int j = 0; j < interv.Length; j++)
                        {
                            norma = interv[j].ProgramLucru;
                            if (ziSt <= interv[j].DataEnd.Day)
                            {
                                if (ziSt <= interv[j].DataStart.Day)
                                {
                                    ziSt = interv[j].DataStart.Day;
                                }
                                ziEnd            = interv[j].DataEnd.Day;
                                nrZileAngPerLuna = GetAngajatNrZileCODisponibileLunaAn(dataStart.Year, i, ziSt, ziEnd);

                                //folosim varianta initala, deoarece la formula data de Sica, nr de zile disponibile creste cu 1 pt anumiti ani
                                nrZileDisponibile += (nrZileCOAn * 8 * nrZileAngPerLuna) / (12 * 8 * DateTime.DaysInMonth(dataStart.Year, i));
                            }
                        }
                    }
                    else
                    {
                        nrZileAngPerLuna = GetAngajatNrZileCODisponibileLunaAn(dataStart.Year, i, ziSt, ziEnd);

                        //folosim varianta initala, deoarece la formula data de Sica, nr de zile disponibile creste cu 1 pt anumiti ani
                        nrZileDisponibile += (nrZileCOAn * 8 * nrZileAngPerLuna) / (12 * 8 * DateTime.DaysInMonth(dataStart.Year, i));
                    }
                }

                if (nrZileDisponibile > nrZileCOAn)
                {
                    nrZileDisponibile = nrZileCOAn;
                }
                if (nrZileDisponibile % 1 < 0.5)
                {
                    return((int)nrZileDisponibile);
                }
                return((int)nrZileDisponibile + 1);
            }
            catch
            {
                return(0);
            }
        }