/// <summary> /// Sterge o intrerupere CIM /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStergeDate_Click() { ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - start - StergeRetinere() - angID: " + AngajatID + " - " + txtDataStart.Text + " - " + txtDataEnd.Text); int retinereId = Convert.ToInt32(txtRetinereID.Value); Salaries.Business.RetineriRecurenteAngajat ret = new Salaries.Business.RetineriRecurenteAngajat(); ret.GetRetinere(retinereId); DateTime dataStart = ret.RetAng.DataInceput; DateTime dataEnd = ret.RetAng.DataSfarsit; DateTime data1 = new DateTime(dataStart.Year, dataStart.Month, 1); DateTime data2; if (dataEnd.Month != 12) { data2 = new DateTime(dataEnd.Year, dataEnd.Month + 1, 1); data2 = data2.AddDays(-1); } else { data2 = new DateTime(dataEnd.Year, dataEnd.Month, 31); } if (data1.CompareTo(ret.RetAng.DataInceput) != 0 && data1 < dataStartLunaActiva) { Response.Write("<script> alert('Nu se pot modifica retinerile pentru lunile anterioare'); </script>"); return; } //if (data1.CompareTo(ret.RetAng.DataInceput) >= 0 && data2 >= dataStartLunaActiva ) if ((data1.CompareTo(ret.RetAng.DataInceput) > 0 || (data1.CompareTo(ret.RetAng.DataInceput) == 0 && (data1.CompareTo(dataStartLunaActiva) < 0))) && data2 >= dataStartLunaActiva) { Response.Write("<script> alert('Se va updata intervalul astfel incat sa ramana doar perioada dinaintea lunii active.'); </script>"); //se face update la retinerea deja existenta...se modifica data sfarsit si anume pana la luna activa ret.RetAng.DataSfarsit = dataStartLunaActiva.AddDays(-1); ret.UpdateRetinereRecurentaAngajat(); LoadRetineriAngajat(); this.txtDataStart.Text = ""; this.txtDataEnd.Text = ""; return; } //daca am perioada activa trebuie sa modific valorile retinerilor //actualizarea retinerilor if (ret.RetAng.DataInceput <= dataStartLunaActiva && dataStartLunaActiva <= ret.RetAng.DataSfarsit) { Salaries.Business.TipuriRetineriValori tipuri = new Salaries.Business.TipuriRetineriValori(); tipuri.UpdateValoareRetinere((int)lunaID, AngajatID, ret.RetAng.TipRetinere, 0); } ret.DeleteRetinereRecurentaAngajat(); Salaries.Business.SituatieLunaraAngajat sitAngajat = new Salaries.Business.SituatieLunaraAngajat(AngajatID); sitAngajat.GenerareSituatieLunaraAngajat((int)AngajatID, (int)lunaID); LoadRetineriAngajat(); this.txtDataStart.Text = ""; this.txtDataEnd.Text = ""; ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - end - StergeRetinere() - angID: " + AngajatID); }
/// <summary> /// Listeaza retinerile unui angajat /// </summary> private void LoadRetineriAngajat() { 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"); Salaries.Business.RetineriRecurenteAngajat retineriBL = new Salaries.Business.RetineriRecurenteAngajat(); retineriBL.RetAng.AngajatID = AngajatID; string[] arHeader = { "Tip retinere", "Denumire", "Data de inceput", "Data de sfarsit", "Valoare", "Alerta" }; string[] arCols = { "TipRetinere", "DenumireRetinere", "DataInceput", "DataSfarsit", "Valoare", "Alerta" }; SiemensHR.Classes.ListTable objListTable = new SiemensHR.Classes.ListTable(listTable, retineriBL.LoadRetineriAngajat(), arHeader, arCols); objListTable.textForEmptyDataSet = "Nu exista nici o retinere asociata acestui angajat!"; //string[] ar_OnClickParam = { AngajatID.ToString(), "IdRetinere", "AngajatID", "DataInceput", "DataSfarsit", "Valoare", "Alerta"}; //string[] ar_OnClickParamType = { "const", "dataset", "dataset", "dataset", "dataset"}; string[] ar_OnClickParam = { "IdRetinere", "AngajatID", "TipRetinere", "DenumireRetinere", "DataInceput", "DataSfarsit", "Valoare", "Alerta" }; string[] ar_OnClickParamType = { "dataset", "dataset", "dataset", "dataset", "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> /// Modifica o intrerupere CIM /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnModificaDate_Click() { ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - start - ModificaRetinere() - angID: " + AngajatID + " - " + txtDataStart.Text + " - " + txtDataEnd.Text); try { int retinereId = Convert.ToInt32(txtRetinereID.Value); Salaries.Business.RetineriRecurenteAngajat ret = new Salaries.Business.RetineriRecurenteAngajat(); ret.GetRetinere(retinereId); Salaries.Business.RetineriRecurenteAngajat retinereVeche = ret; DateTime dataStart = SiemensTM.utils.Utilities.ConvertText2DateTime(txtDataStart.Text /*DateStart.Value*/); DateTime dataEnd = SiemensTM.utils.Utilities.ConvertText2DateTime(txtDataEnd.Text /*DateEnd.Value*/); string tipRetinere = ddlTipuriRetineri.SelectedValue; string denumireRetinere = txtRetinere.Text; decimal valoare = decimal.Parse(txtValoare.Text); bool alerta = chkAlerta.Checked; DateTime data1 = new DateTime(dataStart.Year, dataStart.Month, 1); DateTime data2; if (dataEnd.Month != 12) { data2 = new DateTime(dataEnd.Year, dataEnd.Month + 1, 1); data2 = data2.AddDays(-1); } else { data2 = new DateTime(dataEnd.Year, dataEnd.Month, 31); } //daca noile date sunt inaintea lunii active if (data1.CompareTo(ret.RetAng.DataInceput) != 0 && data1 < dataStartLunaActiva) { Response.Write("<script> alert('Nu se pot modifica retinerile pentru lunile anterioare') </script>"); return; } if ((data1.CompareTo(ret.RetAng.DataInceput) > 0 || (data1.CompareTo(ret.RetAng.DataInceput) == 0 && (data1.CompareTo(dataStartLunaActiva) < 0))) && data2 >= dataStartLunaActiva && valoare != ret.RetAng.Valoare) { Response.Write("<script> alert('Se vor realiza doua intervale separate pentru ca difera valorile retinerii pentru lunile anterioare si cele viitoare'); </script>"); //se face update la retinerea deja existenta...se modifica data sfarsit si anume pana la luna activa ret.RetAng.DataSfarsit = dataStartLunaActiva.AddDays(-1); ret.UpdateRetinereRecurentaAngajat(); //se adauga o noua inregistrare cu noua retinere ret.RetAng.AngajatID = AngajatID; ret.RetAng.IdRetinere = 0; ret.RetAng.TipRetinere = tipRetinere; ret.RetAng.DenumireRetinere = denumireRetinere; ret.RetAng.DataInceput = dataStartLunaActiva; ret.RetAng.DataSfarsit = data2; ret.RetAng.Valoare = valoare; ret.RetAng.Alerta = alerta; ret.InsertRetinereRecurentaAngajat(); //daca am perioada activa trebuie sa modific valorile retinerilor //actualizarea retinerilor if (ret.RetAng.DataInceput <= dataStartLunaActiva && dataStartLunaActiva <= ret.RetAng.DataSfarsit) { Salaries.Business.TipuriRetineriValori tipuri = new Salaries.Business.TipuriRetineriValori(); tipuri.UpdateValoareRetinere((int)lunaID, AngajatID, ret.RetAng.TipRetinere, ret.RetAng.Valoare); } LoadRetineriAngajat(); this.txtDataStart.Text = ""; this.txtDataEnd.Text = ""; return; } // in rest se face modificare...inseamna ca se modifica doar alerta sau datele astfel incat sa nu influeneteze ret = new Salaries.Business.RetineriRecurenteAngajat(); ret.RetAng.AngajatID = AngajatID; ret.RetAng.IdRetinere = retinereId; ret.RetAng.TipRetinere = tipRetinere; ret.RetAng.DenumireRetinere = denumireRetinere; ret.RetAng.DataInceput = data1; ret.RetAng.DataSfarsit = data2; ret.RetAng.Valoare = valoare; ret.RetAng.Alerta = alerta; ret.UpdateRetinereRecurentaAngajat(); //daca am perioada activa trebuie sa modific valorile retinerilor //actualizarea retinerilor if (ret.RetAng.DataInceput <= dataStartLunaActiva && dataStartLunaActiva <= ret.RetAng.DataSfarsit && retinereVeche.RetAng.Valoare != ret.RetAng.Valoare) { Salaries.Business.TipuriRetineriValori tipuri = new Salaries.Business.TipuriRetineriValori(); tipuri.UpdateValoareRetinere((int)lunaID, AngajatID, ret.RetAng.TipRetinere, ret.RetAng.Valoare); } Salaries.Business.SituatieLunaraAngajat sitAngajat = new Salaries.Business.SituatieLunaraAngajat(AngajatID); sitAngajat.GenerareSituatieLunaraAngajat((int)AngajatID, (int)lunaID); LoadRetineriAngajat(); this.txtDataStart.Text = ""; this.txtDataEnd.Text = ""; } catch (Exception ex) { litError.Text = "The following error occurred: <br>"; litError.Text += ex.Message; ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - error - ModificaRetinere() - angID: " + AngajatID + " - " + ex.Message); } ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - end - ModificaRetinere() - angID: " + AngajatID); }
/// <summary> /// Adauga o retinere /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdauga_Click() { ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - start - AdaugaRetinere() - angID: " + AngajatID + " - " + txtDataStart.Text + " - " + txtDataEnd.Text); try { DateTime dataStart = SiemensTM.utils.Utilities.ConvertText2DateTime(txtDataStart.Text /*DateStart.Value*/); DateTime dataEnd = SiemensTM.utils.Utilities.ConvertText2DateTime(txtDataEnd.Text /*DateEnd.Value*/); string denumireRetinere = txtRetinere.Text; decimal valoare = decimal.Parse(txtValoare.Text); string tipRetinere = ddlTipuriRetineri.SelectedValue; bool alerta = chkAlerta.Checked; int retinereId = Convert.ToInt32(txtRetinereID.Value); DateTime data1 = new DateTime(dataStart.Year, dataStart.Month, 1); DateTime data2; if (dataEnd.Month != 12) { data2 = new DateTime(dataEnd.Year, dataEnd.Month + 1, 1); data2 = data2.AddDays(-1); } else { data2 = new DateTime(dataEnd.Year, dataEnd.Month, 31); } //data de start as cam vrea sa fie in luna activa pentru a nu avea probleme cu legaturile catre tipul de retinere if (data1 != dataStartLunaActiva || data2 < dataStartLunaActiva) { Response.Write("<script> alert('Data de inceput trebuie sa fie in luna activa si data de sfarsit trebuie sa fie dupa data de inceput!'); </script>"); return; } //sa verific daca pot adauga, daca nu exista inca o retinere cu acelasi tip de retinere si perioada intersectatat Salaries.Business.RetineriRecurenteAngajat ret = new Salaries.Business.RetineriRecurenteAngajat(); ret.RetAng.AngajatID = AngajatID; ret.RetAng.IdRetinere = retinereId; ret.RetAng.TipRetinere = tipRetinere; ret.RetAng.DenumireRetinere = denumireRetinere; ret.RetAng.DataInceput = data1; ret.RetAng.DataSfarsit = data2; ret.RetAng.Valoare = valoare; ret.RetAng.Alerta = alerta; if (ret.VerificaIntersectieNrRetineri() == 0) { ret.InsertRetinereRecurentaAngajat(); } else { Response.Write("<script> alert('Nu se poate introduce acelasi tip de retinere pentru perioade ce se intersecteaza!'); </script>"); } //daca am perioada activa trebuie sa modific valorile retinerilor //actualizarea retinerilor if (ret.RetAng.DataInceput <= dataStartLunaActiva && dataStartLunaActiva <= ret.RetAng.DataSfarsit) { Salaries.Business.TipuriRetineriValori tipuri = new Salaries.Business.TipuriRetineriValori(); tipuri.UpdateValoareRetinere((int)lunaID, AngajatID, ret.RetAng.TipRetinere, ret.RetAng.Valoare); } Salaries.Business.SituatieLunaraAngajat sitAngajat = new Salaries.Business.SituatieLunaraAngajat(AngajatID); sitAngajat.GenerareSituatieLunaraAngajat((int)AngajatID, (int)lunaID); LoadRetineriAngajat(); this.txtDataStart.Text = ""; this.txtDataEnd.Text = ""; } catch (Exception ex) { litError.Text = "The following error occurred: <br>"; litError.Text += ex.Message; ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - error - - angID: " + AngajatID + " - " + ex.Message); } ErrHandler.MyErrHandler.WriteError("RetineriAngajat.ascx - end - AdaugaRetinere() - angID: " + AngajatID); }