/// <summary> /// Procedura verifica daca data este dupa luna activa /// </summary> /// <param name="data">Data verificata</param> /// <returns>Returneaza true daca e dupa luna activa si false altfel</returns> private bool DataDupaLunaCurenta( DateTime data ) { Luni l = new Luni( this.GetAngajator()); Salaries.Data.LunaData ld = l.GetLunaActiva(); DateTime dataUltimaZiLunaActiva = ld.Data.AddMonths( 1 ); return dataUltimaZiLunaActiva<=data; }
/// <summary> /// Reinitializare ore (normale si suplimentare) /// </summary> /// <param name="angajatID">Id-ul angajatului</param> private void ReinitializeOreLunaActivaAngajat( long angajatID ) { //preluare ore normale si suplimentare Salaries.Data.LunaData lunaData = new Luni( this.GetAngajator()).GetLunaActiva(); PontajAngajat pa = new PontajAngajat( angajatID ); Salaries.Data.IntervaleSchimbariLuna []intervSL = pa.GetIntervaleSchimbariLuna( lunaData.LunaId ); float nrOreLucrate = 0; float nrOreSuplimentare50 = 0; float nrOreSuplimentare100 = 0; float []intervaleNrOreLucrate = new float[ intervSL.Length ]; int i=0; foreach( Salaries.Data.IntervaleSchimbariLuna interv in intervSL ) { int nrZileLucratoareLuna = pa.GetNrZileLucratoarePerioada( interv.DataStart, interv.DataEnd ); TimeSpan nrOreLucrateLuna = pa.GetAngajatNrOreTipLucrate( interv.DataStart, interv.DataEnd, Salaries.Business.SituatieLunaraAngajat.denumireOreLucrate[ 0 ] ); TimeSpan nrOreSuplimentare50Luna = pa.GetAngajatNrOreTipLucrate( interv.DataStart, interv.DataEnd, Salaries.Business.SituatieLunaraAngajat.denumireOreLucrate[ 1 ] ); TimeSpan nrOreSuplimentare100Luna = pa.GetAngajatNrOreTipLucrate( interv.DataStart, interv.DataEnd, Salaries.Business.SituatieLunaraAngajat.denumireOreLucrate[ 2 ] ); nrOreLucrate += nrOreLucrateLuna.Days*24+nrOreLucrateLuna.Hours+(float)nrOreLucrateLuna.Minutes/60; nrOreSuplimentare50 += nrOreSuplimentare50Luna.Days*24+nrOreSuplimentare50Luna.Hours+(float)nrOreSuplimentare50Luna.Minutes/60; nrOreSuplimentare100 += nrOreSuplimentare100Luna.Days*24+nrOreSuplimentare100Luna.Hours+(float)nrOreSuplimentare100Luna.Minutes/60; intervaleNrOreLucrate[ i ] = nrOreLucrateLuna.Days*24+nrOreLucrateLuna.Hours+(float)nrOreLucrateLuna.Minutes/60; i++; } //stergere ore din luna activa SiemensTM.Classes.IntervaleAngajat ia = new SiemensTM.Classes.IntervaleAngajat( angajatID ); ia.DeleteIntervaleVizibileAngajatPerioada( lunaData.Data, new DateTime( lunaData.Data.Year, lunaData.Data.Month, DateTime.DaysInMonth( lunaData.Data.Year, lunaData.Data.Month ))); //reinitializarea angajatului for( i=0; i<intervaleNrOreLucrate.Length; i++ ) { //reinitializare pe intervale de zile ia.InitializeOreLucratePerioadaAngajatFromIntervalSchimbare( lunaData.Data, intervSL[ i ] ); } //initializeaza orele suplimentare 100% int tipIntervalID = new SiemensTM.Classes.IntervaleAngajat( angajatID ).GetTipIntervalIDByName( Salaries.Business.SituatieLunaraAngajat.denumireOreLucrate[ 1 ] ); double nrOreSuplimentare = nrOreSuplimentare50; double nrOreSuplimentare_old = 0; if( tipIntervalID > 0 ) { ia.DistribuieOreSuplimentareInRegimNormal( lunaData.Data, nrOreSuplimentare50, tipIntervalID, nrOreSuplimentare_old ); } //initializeaza orele suplimentare 200% tipIntervalID = new SiemensTM.Classes.IntervaleAngajat( angajatID ).GetTipIntervalIDByName( Salaries.Business.SituatieLunaraAngajat.denumireOreLucrate[ 2 ] ); nrOreSuplimentare = nrOreSuplimentare100; if( tipIntervalID > 0 ) { ia.DistribuieOreSuplimentareInRegimWeekendNoapte( lunaData.Data, nrOreSuplimentare, tipIntervalID, nrOreSuplimentare_old ); } }
/// <summary> /// Salvarea unei valori pentru o variabile globala /// </summary> private void btnSalveaza_Click(object sender, System.EventArgs e) { try { //se selecteaza din baza de date informatiile despre variabila selectata VariabileGlobaleValori objVariabileGlobaleValori = new VariabileGlobaleValori(); this.VarExists = objVariabileGlobaleValori.GetVariabileGlobaleValoriInfo(int.Parse(this.txtVariabilaGlobalaID.Text)); //se determina luna curenta Luni luni = new Luni(this.GetAngajator()); lunaId = luni.GetLunaActiva().LunaId; //se completeaza controalele cu valorile existente objVariabileGlobaleValori.VariabilaGlobalaID = int.Parse(this.drpTipVariabila.SelectedValue); objVariabileGlobaleValori.Valoare = float.Parse(this.txtValoare.Text); objVariabileGlobaleValori.LunaID = lunaId; objVariabileGlobaleValori.ID = (this.VarExists) ? int.Parse(this.txtVariabilaGlobalaID.Text) : -1; //daca variabila exista deja atunci se actiualizeaza cu noile valori if (this.VarExists) { objVariabileGlobaleValori.Update(); } //daca variabila nu exista se adauga else { objVariabileGlobaleValori.Insert(); } this.EditMode = false; drpPerioada.Enabled = true; drpTipVariabila.Enabled = true; if (!EditMode) { //se determina lista cu tipuri de variabile care mai trebuie adaugate LoadTipVariabile(); //daca mai exista atunci ramane butonul pentru adaugare si se selecteaza primul tip de variabila if (drpTipVariabila.Items.Count > 0) { drpTipVariabila.SelectedIndex = 0; btnAdaugaVariabilaGlobala.Visible = true; } //daca nu mai exista variabile dispare butonul pentru adaugare else { btnAdaugaVariabilaGlobala.Visible = false; } } } catch (Exception ex) { litError.Text = "The following error occurred: <br>"; litError.Text += ex.Message; } }
/// <summary> /// Actiunea executata la modificarea denumirii unei etichete /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TextBox_TextChanged(object sender, System.EventArgs e) { string labelOfType = ((TextBox)sender).Text; string[] sir = ((System.Web.UI.Control)sender).ID.Split(';'); string nameOfType = sir[0]; Luni l = new Luni(int.Parse(Session["AngajatorID"].ToString())); int LunaID = GetCurrentMonth(); //Daca s-a sters textul din control atunci eticheta trebuie stearsa if (labelOfType == "") { //Se verifica daca se poate sterge eticheta if (new TypesOfRestraints().CheckIfLabelCanBeDeleted(nameOfType, LunaID)) { //Daca da atunci se actualizeaza valoarea etichetei la stingul vid new TypesOfRestraints().UpdateLabel(nameOfType, labelOfType, LunaID); } else { //Daca nu se poate face stergerea utilizatorul este avertizat de acest lucru Response.Write("<script> alert('Retinerea are asociate valori pentru angajati si nu poate fi stearsa!'); </script>"); } } //Daca exista text in control atunci se actualizeaza eticheta la valoarea din control else { new TypesOfRestraints().UpdateLabel(nameOfType, labelOfType, LunaID); } //Se reincarca controalele cu valorile etichetelor DataSet dsRestraints = new TypesOfRestraints().GetLabels(LunaID); foreach (DataRow dr in dsRestraints.Tables[0].Rows) { sir = ((TextBox)sender).ID.Split(';'); if (sir[0] == dr[0].ToString()) { ((TextBox)sender).Text = dr[1].ToString(); } } }
private void Page_Load(object sender, System.EventArgs e) { Luni l = new Luni(int.Parse(Session["AngajatorID"].ToString())); int LunaID = GetCurrentMonth(); DataSet dsRestraints = new TypesOfRestraints().GetLabels(LunaID); if (l.GetLunaActiva().LunaId == LunaID) { butSaveData.Visible = true; } else { butSaveData.Visible = false; } Table restraintsTable = new Table(); TableRow tr = null; TableCell tc = null; System.Web.UI.Control ctl = null; int lunaActivaId = l.GetLunaActiva().LunaId; Salaries.Business.Luni lunaActiva = new Salaries.Business.Luni(this.GetAngajator(), lunaActivaId); DateTime dataStartLunaActiva = lunaActiva.Data; DateTime dataEndLunaActiva = dataStartLunaActiva.AddMonths(1).AddDays(-1); Center.Controls.Clear(); foreach (DataRow dr in dsRestraints.Tables[0].Rows) { tr = new TableRow(); ctl = new Label(); ((Label)ctl).Text = dr[0].ToString(); string tipRetinere = dr[0].ToString(); ((Label)ctl).CssClass = "NormalGreenBold"; ctl.ID = dr[0].ToString() + "Label"; tc = new TableCell(); tc.Controls.Add(ctl); tr.Cells.Add(tc); ctl = new TextBox(); ctl.ID = dr[0].ToString() + ";" + LunaID; if (dr[1] != System.DBNull.Value) { ((TextBox)ctl).Text = dr[1].ToString(); } Salaries.Configuration.ModuleSettings settings = Salaries.Configuration.ModuleConfig.GetSettings(); Salaries.Data.RetineriRecurenteAngajat retineri = new Salaries.Data.RetineriRecurenteAngajat(settings.ConnectionString); int nr = retineri.VerificaIntersectieNrRetineri(0, tipRetinere, dataStartLunaActiva, dataEndLunaActiva); if (l.GetLunaActiva().LunaId != LunaID || nr != 0) { ((TextBox)ctl).ReadOnly = true; } if (l.GetLunaActiva().LunaId == LunaID) { ((TextBox)ctl).TextChanged += new System.EventHandler(this.TextBox_TextChanged); } tc = new TableCell(); tc.Controls.Add(ctl); tr.Cells.Add(tc); restraintsTable.Rows.Add(tr); Center.Controls.Add(restraintsTable); } }
/// <summary> /// Proceudra verifica daca o data este in luna curenta /// </summary> /// <param name="data">Date care se verifica</param> /// <returns>Returneaza true daca e in luna curenta si false altfel</returns> private bool DataInLunaCurenta( DateTime data ) { Luni l = new Luni( this.GetAngajator()); Salaries.Data.LunaData ld = l.GetLunaActiva(); return (ld.Data.Month == data.Month) && (ld.Data.Year == data.Year); }