/// <summary> /// Procedura calculeaza nr de zile de CO lunare de angajat /// </summary> /// <param name="dataStart">Data de inceput</param> /// <param name="dataEnd">Data de sfarsit</param> /// <param name="IntervalID">Id-ul intervalului</param> /// <returns>Returneaza nr de zile de CO</returns> public int GetAngajatNrZileCOLuateAn(DateTime dataStart, DateTime dataEnd, int IntervalID) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrZileAbsenteTipLuna(angajatId, dataStart, dataEnd, SituatieLunaraAngajat.codAbsente[2]); //sterge CO care au inceput in anul precedent si se termina in anul curent (pt ca apartin de anul precedent) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dr = ds.Tables[0].Rows[i]; if ((DateTime)dr["DataStart"] < dataStart || (DateTime)dr["DataStart"] > dataEnd || IntervalID == int.Parse(dr["IntervalAbsentaID"].ToString())) { ds.Tables[0].Rows.RemoveAt(i); i--; } } //pt cazul in care concediul incepe in Decembrie si se termina prin Ianuarie if ((DateTime)ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1]["DataStart"] <= dataEnd && dataEnd < (DateTime)ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1]["DataEnd"]) { dataEnd = (DateTime)ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1]["DataEnd"]; } return(TimpAbsente(ds, pa, dataStart, dataEnd)); } catch { return(0); } }
/// <summary> /// Calculeaza numarul de zile de concediu de odihna ramase. /// </summary> /// <param name="lunaId"> Id-ul lunii.</param> /// <returns> Numarul de zile de concediu de odihna ramase.</returns> /// <remarks> /// Autor: Cristina Raluca Muntean /// Data: 21.04.2006 /// </remarks> public int GetNrZileConcediuOdihnaRamase(int lunaId) { int nrZileCOneefectuate; Data.PontajAngajat pontajAngajat = new Data.PontajAngajat(settings.ConnectionString); nrZileCOneefectuate = pontajAngajat.GetNrZileConcediuOdihnaRamase(lunaId, angajatId); return(nrZileCOneefectuate); }
/// <summary> /// Returneaza numarul de zile de concediu de boala platite de BASS. /// </summary> /// <param name="lunaId"> Id-ul lunii pentru care se doreste aflarea numarului de zile /// de concediu de boala platite de BASS.</param> /// <returns> Numarul de zile de concediu de boala platite de BASS</returns> /// <remarks> /// Autor: Muntean Raluca Cristina /// Data: 1.06.2005 /// </remarks> public int GetNrZileConcediuBoalaBASS(int lunaId) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); return(pa.GetNrZileConcediuBoalaBASS(int.Parse(angajatId.ToString()), lunaId)); } catch { return(0); } }
/// <summary> /// Procedura calculeaza nr ore de un anumit tip lucrate de angajat /// </summary> /// <param name="dataStart">Data de inceput</param> /// <param name="dataEnd">Data de sfarsit</param> /// <param name="tipInterval">Tipul orelor lucrate</param> /// <returns>Returneaza un DataSet care contine aceste date</returns> public DataSet GetAngajatZileOreTipLucrate(DateTime dataStart, DateTime dataEnd, int tipInterval) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); return(pa.GetAngajatZileOreTipLucrate(angajatId, dataStart, dataEnd, tipInterval)); } catch { return(null); } }
/// <summary> /// Procedura calculeaza nr de ore lucrate de angajat pe luna /// </summary> /// <param name="luna">Luna pentru care se calculeaza</param> /// <returns>Returneaza nr de ore lucrate</returns> public TimeSpan GetAngajatNrOreLucrateLuna(int luna) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrOreLucrateLuna(angajatId, luna); return(TimpLuna(ds)); } catch { return(new TimeSpan(0)); } }
/// <summary> /// Procedura calculeaza nr de zile de absente de un anumit tip /// </summary> /// <param name="dataStart">Data de inceput</param> /// <param name="dataEnd">Data de sfarsit</param> /// <param name="tipAbsente">Tipul absentei</param> /// <returns>Returneaza nr de zile calculete</returns> public int GetAngajatNrZileCuSarbatoriAbsenteTipLuna(DateTime dataStart, DateTime dataEnd, string tipAbsente) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrZileAbsenteTipLuna(angajatId, dataStart, dataEnd, tipAbsente); return(TimpAbsenteCuWeekend(ds, pa, dataStart, dataEnd)); } catch { return(0); } }
/// <summary> /// Procedura selecteaza nr de zile de absenta de un anumit tip pe luna /// </summary> /// <param name="luna">Luna pentru care se selecteaza</param> /// <param name="tipAbsente">Tipul absentelor</param> /// <returns>Returneaza nr de zile de absenta</returns> public int GetAngajatNrZileAbsenteTipLuna(int luna, string tipAbsente) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrZileAbsenteTipLuna(angajatId, luna, tipAbsente); DateTime primaZi = pa.GetPrimaZiDinLuna(luna); DateTime ultimaZi = new DateTime(primaZi.Year, primaZi.Month, DateTime.DaysInMonth(primaZi.Year, primaZi.Month)); return(TimpAbsente(ds, pa, primaZi, ultimaZi)); } catch { return(0); } }
/// <summary> /// Procedura calculeaza nr de ore de un anumit tip lucrate de angajat pe o perioada de timp /// </summary> /// <param name="dataStart">Data de inceput</param> /// <param name="dataEnd">Data de sfarsit</param> /// <param name="tipOre">Tipul orelor lucrate</param> /// <returns>Returneaza timpul lucrat</returns> public TimeSpan GetAngajatNrOreTipLucrate(DateTime dataStart, DateTime dataEnd, string tipOre) { try { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrOreTipLucrate(angajatId, dataStart, dataEnd, tipOre); return(TimpLuna(ds)); } catch { return(new TimeSpan(0)); } }
/// <summary> /// Procedura calculeaza nr de zile lucratoare pe o perioada /// </summary> /// <param name="dataStart">Data de inceput</param> /// <param name="dataEnd">Data de sfarsit</param> /// <returns>Returneaza nr de zile lucratoare</returns> public int GetNrZileLucratoarePerioada(DateTime dataStart, DateTime dataEnd) { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); return(pa.GetNrZileLucratoarePerioada(dataStart, dataEnd)); }
/// <summary> /// Procedura calculeaza nr de zile ale unei luni /// </summary> /// <param name="luna">Luna pt care se calculeaza</param> /// <returns>Returneaza nr de zile</returns> public int GetNrZileLuna(int luna) { Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); return(pa.GetNrZileLuna(luna)); }
/// <summary> /// Preia intervalele libere dintr-o zi; sunt 2 cazuri: intervale libere din timpul zilei si weekend (8-22) /// si intervale din timpul noptii (22-6). /// </summary> /// <param name="oraMin"></param> /// <param name="oraMax"></param> /// <param name="data"></param> /// <returns></returns> public Data.IntervalOrar[] GetIntervaleLibereZi(int oraMin, int oraMax, DateTime data) { try { DateTime oraMinima = new DateTime(data.Year, data.Month, data.Day, oraMin, 0, 0); DateTime oraMaxima = new DateTime(data.Year, data.Month, data.Day, oraMax, 0, 0); Data.PontajAngajat pa = new Data.PontajAngajat(settings.ConnectionString); DataSet ds = pa.GetAngajatNrOreLucrateLuna(angajatId, data, data); DataView dv = new DataView(ds.Tables[0]); if (oraMin < oraMax) //cazul in care avem ore speciale normale (ziua in timpul saptamanii, weekend) { dv.RowFilter = "'" + oraMinima.ToString() + "'<OraStart and OraEnd<'" + oraMaxima.ToString() + "'"; dv.Sort = "OraStart"; //stabilirea numarului de intervale if (dv.Count > 0) { int intervalDimension = 0; if (oraMinima < (DateTime)dv[0]["OraStart"]) { intervalDimension++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalDimension++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < oraMaxima) { intervalDimension++; } Data.IntervalOrar [] intervalOrar = new Salaries.Data.IntervalOrar[intervalDimension]; //crearea de intervale int intervalIndex = 0; if (oraMinima < (DateTime)dv[0]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = oraMinima; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[0]["OraStart"]; intervalIndex++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = (DateTime)dv[i]["OraEnd"]; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[i + 1]["OraStart"]; intervalIndex++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < oraMaxima) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = (DateTime)dv[dv.Count - 1]["OraEnd"]; intervalOrar[intervalIndex].OraEnd = oraMaxima; } return(intervalOrar); } else { Data.IntervalOrar [] intervalOrar = new Salaries.Data.IntervalOrar[1]; intervalOrar[0].Data = data; intervalOrar[0].OraStart = oraMinima; intervalOrar[0].OraEnd = oraMaxima; return(intervalOrar); } } else //cazul in care avem ore suplimentare speciale (noaptea) { DateTime ora0 = new DateTime(data.Year, data.Month, data.Day, 0, 0, 0); DateTime ora24 = new DateTime(data.Year, data.Month, data.Day, 0, 0, 0); ora24 = ora24.AddDays(1); //intervalul de la 00:00 - 06:00 dv.RowFilter = "'" + ora0.ToString() + "'<=OraStart and OraEnd<='" + oraMaxima.ToString() + "'"; dv.Sort = "OraStart"; //stabilirea numarului de intervale int intervalDimension = 0; if (dv.Count > 0) { if (ora0 < (DateTime)dv[0]["OraStart"]) { intervalDimension++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalDimension++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < oraMaxima) { intervalDimension++; } } else { intervalDimension++; } //intervalul de la 22:00 - 24:00 dv.RowFilter = "'" + oraMinima.ToString() + "'<=OraStart and OraEnd<='" + ora24.ToString() + "'"; if (dv.Count > 0) { if (oraMinima < (DateTime)dv[0]["OraStart"]) { intervalDimension++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalDimension++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < ora24) { intervalDimension++; } } else { intervalDimension++; } //crearea de intervale Data.IntervalOrar [] intervalOrar = new Salaries.Data.IntervalOrar[intervalDimension]; dv.RowFilter = "'" + ora0.ToString() + "'<=OraStart and OraEnd<='" + oraMaxima.ToString() + "'"; int intervalIndex = 0; if (dv.Count > 0) { if (ora0 < (DateTime)dv[0]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = ora0; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[0]["OraStart"]; intervalIndex++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = (DateTime)dv[i]["OraEnd"]; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[i + 1]["OraStart"]; intervalIndex++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < oraMaxima) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = (DateTime)dv[dv.Count - 1]["OraEnd"]; intervalOrar[intervalIndex].OraEnd = oraMaxima; intervalIndex++; } } else { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = ora0; intervalOrar[intervalIndex].OraEnd = oraMaxima; intervalIndex++; } //intervalul de la 22:00 - 24:00 dv.RowFilter = "'" + oraMinima.ToString() + "'<=OraStart and OraEnd<='" + ora24.ToString() + "'"; if (dv.Count > 0) { if (oraMinima < (DateTime)dv[0]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = oraMinima; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[0]["OraStart"]; intervalIndex++; } if (dv.Count > 1) { for (int i = 0; i < dv.Count - 1; i++) { if ((DateTime)dv[i]["OraEnd"] < (DateTime)dv[i + 1]["OraStart"]) { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = (DateTime)dv[i]["OraEnd"]; intervalOrar[intervalIndex].OraEnd = (DateTime)dv[i + 1]["OraStart"]; intervalIndex++; } } } if ((DateTime)dv[dv.Count - 1]["OraEnd"] < ora24) { intervalOrar[intervalIndex].Data = data; if ((DateTime)dv[dv.Count - 1]["OraEnd"] > oraMinima) { intervalOrar[intervalIndex].OraStart = (DateTime)dv[dv.Count - 1]["OraEnd"]; } else { intervalOrar[intervalIndex].OraStart = oraMinima; } intervalOrar[intervalIndex].OraEnd = ora24; } } else { intervalOrar[intervalIndex].Data = data; intervalOrar[intervalIndex].OraStart = oraMinima; intervalOrar[intervalIndex].OraEnd = ora24; intervalIndex++; } return(intervalOrar); } } catch { return(null); } }