public RaportEficienteObiect RaportEficienteLista(string FiltruDeLa, string FiltruPanaLa, string FiltruDepartament, string Ordonat, string TipFiltru) { DateTime dateDeLa, datePanaLa; RaportEficienteObiect oRaportEficiente = new RaportEficienteObiect(); if (TipFiltru == "Perioada") { oRaportEficiente.Perioada = FiltruDeLa + " - " + FiltruPanaLa; if (!DateTime.TryParseExact(FiltruDeLa.Replace(".", ""), "ddMMyyyy", null, System.Globalization.DateTimeStyles.None, out dateDeLa)) { oRaportEficiente.Eroare = "Date its not corect!"; } if (!DateTime.TryParseExact(FiltruPanaLa.Replace(".", ""), "ddMMyyyy", null, System.Globalization.DateTimeStyles.None, out datePanaLa)) { oRaportEficiente.Eroare = "Date its not corect!"; } } else { oRaportEficiente.Perioada = FiltruDeLa + FiltruPanaLa; dateDeLa = new DateTime(Convert.ToInt32(FiltruDeLa), Convert.ToInt32(FiltruPanaLa), 1); datePanaLa = dateDeLa.AddMonths(1).AddDays(-1); } if (oRaportEficiente.Eroare == "") { if (GlobalClass.VerificareAcces("Raport numar angajati", "1")) { if (Ordonat != "1") { oRaportEficiente.Tabela.AddRange(PreparaRaportEficiente(dateDeLa, datePanaLa, FiltruDepartament, Ordonat)); } else { oRaportEficiente = PreparaRaportEficienteLuna(dateDeLa, datePanaLa, FiltruDepartament); } } else { oRaportEficiente.Eroare = "Acces interzis!"; } } return(oRaportEficiente); }
private RaportEficienteObiect PreparaRaportEficienteLuna(DateTime FiltruDeLa, DateTime FiltruPanaLa, string FiltruDepartament) { RaportEficienteObiect oRaportEficiente = new RaportEficienteObiect(); var Tabela = oRaportEficiente.TabelaLuna; dcWbmOlimpias = new DataClassWbmOlimpias(); int deLa = FiltruDeLa.Year * 100 + FiltruDeLa.Month; int panaLa = FiltruPanaLa.Year * 100 + FiltruPanaLa.Month; var query = from tRaportEficiente in dcWbmOlimpias.RaportEficienteLunarViews where tRaportEficiente.AnLuna >= deLa && tRaportEficiente.AnLuna <= panaLa && tRaportEficiente.Departament.Equals(FiltruDepartament) orderby tRaportEficiente.AnLuna, tRaportEficiente.Eficienta descending select tRaportEficiente; RaportEficientaLunaObiect oRaportEficienta = new RaportEficientaLunaObiect(); int i = 0; string LinieEchipa = ""; var queryLunaAn = query.GroupBy(x => x.AnLuna).OrderBy(x => x.Key); foreach (var rezLunaAn in queryLunaAn) { var sLuna = rezLunaAn.Key.Value.ToString(); oRaportEficiente.AnLuna.Add(sLuna.Substring(0, 4) + " " + GlobalClass.ConversieNumarInLuna(Convert.ToInt32(sLuna.Substring(4)))); } foreach (var rezultat in query) { i++; if (!String.IsNullOrEmpty(rezultat.Linie)) { LinieEchipa = rezultat.Linie; } else if (!String.IsNullOrEmpty(rezultat.Echipa)) { LinieEchipa = rezultat.Echipa; } else { LinieEchipa = ""; } var querySecund = Tabela.Where(x => x.Nume.Equals(rezultat.Nume) && x.Prenume.Equals(rezultat.Prenume) && x.PostDeLucru.Equals(rezultat.PostDeLucru) && x.LinieEchipa.Equals(LinieEchipa)); if (querySecund.Count() == 0) { oRaportEficienta = new RaportEficientaLunaObiect(); oRaportEficienta.NrCrt = i.ToString(); oRaportEficienta.Nume = rezultat.Nume; oRaportEficienta.Prenume = rezultat.Prenume; oRaportEficienta.PostDeLucru = rezultat.PostDeLucru; oRaportEficienta.LinieEchipa = LinieEchipa; oRaportEficienta.DataAngajarii = rezultat.DataAngajarii.ToString("dd.MM.yyyy"); if (rezultat.Eficienta.HasValue) { oRaportEficienta.Eficiente.Add(rezultat.Eficienta.Value.ToString("N1")); } else { oRaportEficienta.Eficiente.Add(""); } Tabela.Add(oRaportEficienta); } else { oRaportEficienta = querySecund.First(); if (rezultat.Eficienta.HasValue) { oRaportEficienta.Eficiente.Add(rezultat.Eficienta.Value.ToString("N1")); } else { oRaportEficienta.Eficiente.Add(""); } } } return(oRaportEficiente); }