/// <summary>
        /// Listeaza suspendarile contractului individual de munca
        /// </summary>
        private void LoadIstoricSuspendariCIM()
        {
            try
            {
                listTable.Rows.Clear();

                listTable.Attributes.Add("width", "100%");
                listTable.Style.Add("border", "1px solid #20b2aa");
                listTable.Attributes.Add("cellpadding", "0");
                listTable.Attributes.Add("cellspacing", "1");

                IntervaleIntreruperiAngajat istSuspCIM = new IntervaleIntreruperiAngajat(AngajatID);

                string[] arHeader = { "Data de inceput", "Data de sfarsit", "Observatii" };
                string[] arCols   = { "DataStart", "DataEnd", "Descriere" };

                SiemensHR.Classes.ListTable objListTable = new SiemensHR.Classes.ListTable(listTable, istSuspCIM.LoadIntreruperiCIM(), arHeader, arCols);
                objListTable.textForEmptyDataSet = "Nu exista nici o intrerupere a contractului individual de munca asociata acestui angajat!";

                string[] ar_OnClickParam     = { AngajatID.ToString(), "AngajatIntrerupereID", "DataStart", "DataEnd", "Descriere" };
                string[] ar_OnClickParamType = { "const", "dataset", "dataset", "dataset", "dataset" };

                objListTable.OnclickParams     = ar_OnClickParam;
                objListTable.OnclickParamsType = ar_OnClickParamType;
                objListTable.OnclickJSMethod   = "SelectSuspendareCIM";

                objListTable.DrawListTableWithoutDigits();
            }
            catch (Exception ex)
            {
                litError.Text  = "The following error occurred: <br>";
                litError.Text += ex.Message;
            }
        }
        /// <summary>
        /// Procedura determina zilele din luna cu intreruperi
        /// </summary>
        /// <param name="z"></param>
        /// <returns>Returneaza un DataSet care contine aceste date</returns>
        private DataSet GetZileLunaIntreruperi(Zile z)
        {
            try
            {
                DataSet ds     = new IntervaleIntreruperiAngajat(this.GetAngajat()).GetIntervaleIntreruperiAngajatLuna(this.SelectedDate);
                DataSet dsZile = z.GetZileIntrerupereContract(this.SelectedDate.Year, this.SelectedDate.Month, (DateTime)ds.Tables[0].Rows[0]["DataStart"], (DateTime)ds.Tables[0].Rows[0]["DataEnd"]);

                for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow dr = ds.Tables[0].Rows[i];
                    dsZile.Merge(z.GetZileIntrerupereContract(this.SelectedDate.Year, this.SelectedDate.Month, (DateTime)dr["DataStart"], (DateTime)dr["DataEnd"]));
                }
                return(dsZile);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        /// <summary>
        /// Sterge o intrerupere CIM
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStergeDate_Click(object sender, System.EventArgs e)
        {
            ErrHandler.MyErrHandler.WriteError("IstoricSuspendariCIM.ascx - start - StergeSuspendare() - angID: " + AngajatID + " - " + txtDataStart.Text + " - " + txtDataEnd.Text);

            DateTime dataStart              = SiemensTM.utils.Utilities.ConvertText2DateTime(DateStart.Value);
            DateTime dataEnd                = SiemensTM.utils.Utilities.ConvertText2DateTime(DateEnd.Value);
            string   observatii             = txtObservatii.Text;
            int      intrerupereId          = Convert.ToInt32(txtIntrerupereID.Value);
            IntervaleIntreruperiAngajat iia = new IntervaleIntreruperiAngajat(this.AngajatID);


            DataSet ds = iia.GetIntervalIntreruperiAngajatByID(intrerupereId);

            if (ds.Tables[0].Rows.Count > 0 && ds != null)
            {
                if ((DateTime)ds.Tables[0].Rows[0]["DataStart"] < dataStartLunaActiva)
                {
                    new IntervaleAngajat(this.AngajatID).RestoreIntervaleAngajatPerioadaSterseTemporar(dataStartLunaActiva, (DateTime)ds.Tables[0].Rows[0]["DataEnd"]);
                    DateTime dataEndInt = dataStartLunaActiva.AddDays(-1);
                    iia.UpdateIntervalIntreruperiAngajat(intrerupereId, (DateTime)ds.Tables[0].Rows[0]["DataStart"], dataEndInt, ds.Tables[0].Rows[0]["Descriere"].ToString());
                }
                else
                {
                    new IntervaleAngajat(this.AngajatID).RestoreIntervaleAngajatPerioadaSterseTemporar((DateTime)ds.Tables[0].Rows[0]["DataStart"], (DateTime)ds.Tables[0].Rows[0]["DataEnd"]);
                    iia.DeleteIntervalIntreruperiAngajat(intrerupereId);
                }
            }
            else
            {
                iia.DeleteIntervalIntreruperiAngajat(intrerupereId);
            }
            string [][] tmp = GetOreLucrateIntervaleSpecialeLuna();
            RedistribuireOreSuplimentareLunaAngajat(tmp);
            LoadIstoricSuspendariCIM();
            this.txtDataStart.Text = "";
            this.txtDataEnd.Text   = "";

            ErrHandler.MyErrHandler.WriteError("IstoricSuspendariCIM.ascx - end - StergeSuspendare() - angID: " + AngajatID);
        }
        /// <summary>
        /// Adaugarea propriu-zisa a absentelor
        ///
        /// Autor:		Fratila Claudia
        /// Data:		29.10.2007
        /// Descriere:	S-a adaugat un mesaj de avertizare la specificarea unei date care nu exista.
        ///				Ex: 31.09.2007
        /// </summary>
        /// <param name="DataStart"></param>
        /// <param name="DataEnd"></param>
        /// <param name="descriere"></param>
        /// <param name="tipActiune"></param>
        /// <param name="IntervalID"></param>
        /// <param name="iia"></param>
        private void InsertIntervalIntreruperiPosibil(DateTime DataStart, DateTime DataEnd, string descriere, int tipActiune, int IntervalID, IntervaleIntreruperiAngajat iia)
        {
            IntervaleIntreruperiAngajat intervIntr = new IntervaleIntreruperiAngajat(this.AngajatID);

            intervIntr.InsertIntervalIntreruperiAngajat(DataStart, DataEnd, descriere);

            /*string dataS = "";
             * try
             * {
             *      dataS = SiemensTM.utils.Utilities.ConvertToShort(SiemensTM.utils.Utilities.ConvertText2DateTime(this.txtDataEnd.Text).AddDays( 1 )).ToString();
             * }
             * catch (Exception ex)
             * {
             *      Response.Write( "<script> alert( '"+Definitions.alertInceput+"' );</script>" );
             *      return;
             * }
             * char []split = new char[ 1 ]; split[ 0 ] = ' ';
             * dataS = dataS.Split( split )[ 0 ];
             *
             * this.txtDataStart.Text = dataS;
             * this.txtDataEnd.Text = "";*/
        }
 /// <summary>
 /// Modifica o intrerupere CIM
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnModificaDate_Click(object sender, System.EventArgs e)
 {
     ErrHandler.MyErrHandler.WriteError("IstoricSuspendariCIM.ascx - start - ModificaSuspendare() - angID: " + AngajatID + " - " + txtDataStart.Text + " - " + txtDataEnd.Text);
     try
     {
         DateTime dataStart              = SiemensTM.utils.Utilities.ConvertText2DateTime(DateStart.Value);
         DateTime dataEnd                = SiemensTM.utils.Utilities.ConvertText2DateTime(DateEnd.Value);
         string   observatii             = txtObservatii.Text;
         int      intrerupereId          = Convert.ToInt32(txtIntrerupereID.Value);
         IntervaleIntreruperiAngajat iia = new IntervaleIntreruperiAngajat(this.AngajatID);
         ActiuneInsertIntreruperiBDPosibil(dataStart, dataEnd, observatii, 1, intrerupereId, iia);
         LoadIstoricSuspendariCIM();
         this.txtDataStart.Text = "";
         this.txtDataEnd.Text   = "";
     }
     catch (Exception ex)
     {
         litError.Text  = "The following error occurred: <br>";
         litError.Text += ex.Message;
         ErrHandler.MyErrHandler.WriteError("IstoricSuspendariCIM.ascx - error - ModificaSuspendare() - angID: " + AngajatID + " - " + ex.Message);
     }
     ErrHandler.MyErrHandler.WriteError("IstoricSuspendariCIM.ascx - end - ModificaSuspendare() - angID: " + AngajatID);
 }
        /// <summary>
        /// Actualizeaza un interval de intrerupere
        /// </summary>
        /// <param name="DataStart"></param>
        /// <param name="DataEnd"></param>
        /// <param name="descriere"></param>
        /// <param name="tipActiune"></param>
        /// <param name="IntervalID"></param>
        /// <param name="iia"></param>
        private void UpdateIntervalIntreruperiPosibil(DateTime DataStart, DateTime DataEnd, string descriere, int tipActiune, int IntervalID, IntervaleIntreruperiAngajat iia)
        {
            //dovle
            DataSet ds = iia.GetIntervalIntreruperiAngajatByID(IntervalID);

            if (ds.Tables[0].Rows.Count > 0 && ds != null)
            {
                if ((DateTime)ds.Tables[0].Rows[0]["DataEnd"] > DataEnd)
                {
                    new IntervaleAngajat(this.AngajatID).RestoreIntervaleAngajatPerioadaSterseTemporar(DataEnd.AddDays(1), (DateTime)ds.Tables[0].Rows[0]["DataEnd"]);
                }
                if ((DateTime)ds.Tables[0].Rows[0]["DataStart"] < DataStart)
                {
                    new IntervaleAngajat(this.AngajatID).RestoreIntervaleAngajatPerioadaSterseTemporar((DateTime)ds.Tables[0].Rows[0]["DataStart"], DataStart.AddDays(-1));
                }
            }
            iia.UpdateIntervalIntreruperiAngajat(IntervalID, DataStart, DataEnd, descriere);
        }
        /// <summary>
        /// Procedura adauga un interval de intrerupere
        /// </summary>
        /// <param name="DataStart"></param>
        /// <param name="DataEnd"></param>
        /// <param name="descriere"></param>
        /// <param name="tipActiune"></param>
        /// <param name="IntervalID"></param>
        /// <param name="iia"></param>
        private void ActiuneInsertIntreruperiBDPosibil(DateTime DataStart, DateTime DataEnd, string descriere, int tipActiune, int IntervalID, IntervaleIntreruperiAngajat iia)
        {
            int potIntrodInBD = new IntervaleIntreruperiAngajat(this.AngajatID).IntersectieCuIntervaleExistente(DataStart, DataEnd, IntervalID);

            switch (potIntrodInBD)
            {
            case 0:
                string [][] tmp = GetOreLucrateIntervaleSpecialeLuna();
                switch (tipActiune)
                {
                case 0:
                    InsertIntervalIntreruperiPosibil(DataStart, DataEnd, descriere, tipActiune, IntervalID, iia);
                    RedistribuireOreSuplimentareLunaAngajat(tmp);
                    break;

                case 1:
                    UpdateIntervalIntreruperiPosibil(DataStart, DataEnd, descriere, tipActiune, IntervalID, iia);
                    break;
                }
                RedistribuireOreSuplimentareLunaAngajat(tmp);
                break;

            case 1:
                this.txtDataStart.Text = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaAbsenteInceput + "' );</script>");
                break;

            case 2:
                this.txtDataEnd.Text = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaAbsenteSfarsit + "' );</script>");
                break;

            case 3:
                this.txtDataStart.Text = "";
                this.txtDataEnd.Text   = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaAbsenteInceputSfarsit + "' );</script>");
                break;

            case 4:
                Response.Write("<script> alert( '" + Definitions.alertAdaugaAbsenteContineInterval + "' );</script>");
                break;

            case 5:
                new IntervaleAngajat(this.AngajatID).DeleteTemporarIntervaleAngajatPerioada(DataStart, DataEnd, false);
                tmp = GetOreLucrateIntervaleSpecialeLuna();
                switch (tipActiune)
                {
                case 0:
                    InsertIntervalIntreruperiPosibil(DataStart, DataEnd, descriere, tipActiune, IntervalID, iia);
                    break;

                case 1:
                    UpdateIntervalIntreruperiPosibil(DataStart, DataEnd, descriere, tipActiune, IntervalID, iia);
                    break;
                }
                RedistribuireOreSuplimentareLunaAngajat(tmp);
                break;

            case 6:
                this.txtDataStart.Text = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaIntreruperiInceput + "' );</script>");
                break;

            case 7:
                this.txtDataEnd.Text = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaIntreruperiSfarsit + "' );</script>");
                break;

            case 8:
                this.txtDataStart.Text = "";
                this.txtDataEnd.Text   = "";
                Response.Write("<script> alert( '" + Definitions.alertAdaugaIntreruperiInceputSfarsit + "' );</script>");
                break;

            case 9:
                Response.Write("<script> alert( '" + Definitions.alertAdaugaIntreruperiContineInterval + "' );</script>");
                break;

            //se verifica faptul ca data de inceput si de sfarsit a intervalului sa nu fie inversate
            case 10:
                Response.Write("<script> alert( '" + Definitions.alertAdaugaAbsenteDateInversate + "' );</script>");
                break;

            default:
                break;
            }
        }