Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
 /// <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);
     }
 }
Exemplo n.º 4
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);
     }
 }
Exemplo n.º 5
0
        /// <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));
            }
        }
Exemplo n.º 6
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);
            }
        }
Exemplo n.º 7
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);
     }
 }
Exemplo n.º 8
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));
            }
        }
Exemplo n.º 9
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));
 }
Exemplo n.º 10
0
 /// <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));
 }
Exemplo n.º 11
0
        /// <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);
            }
        }