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