public MonthlyReport(DateTime d1, DateTime d2) { this.months = new List<Month>(); SetDataMonthlyReport(d1, d2); this.ItogItem = new Month(); this.ItogItem.NameMonth = "ИТОГО:"; this.CalculateItogItem(); }
private void SetDataMonthlyReport(DateTime d1, DateTime d2) { var resumes = (from R in ugtu_db.Resume where R.DataPrinytiya < d2 && R.DataPrinytiya > d1 select new { idResume = R.idResume, idStatus = R.idStatus, DataPrinyatiya = R.DataPrinytiya, DataZakritiya = R.DataZakritiya, CZS = R.UstroenCZS }).ToList(); var ParamRes = (from r in resumes join PR in ugtu_db.Param_Resume on r.idResume equals PR.idResume select new { idResume = r.idResume, idStatus = r.idStatus, DataPrinyatiya = r.DataPrinyatiya, DataZakritiya = r.DataZakritiya, idParam = PR.idParam, idResumeZnachParam = PR.idResumeZnachParam, CZS = r.CZS }).ToList(); var vakans = (from V in ugtu_db.Vakans where V.DataPostVakans < d2 && V.DataPostVakans > d1 select new { idVakans = V.idVakans, idStatus = V.idStatus, DataPrinyatiya = V.DataPostVakans, DataObzvon = V.DataObzvon }).ToList(); var ParamVak = (from v in vakans join PV in ugtu_db.Param_Vakans on v.idVakans equals PV.idVakans select new { idVakans = v.idVakans, idStatus = v.idStatus, DataPrinyatiya = v.DataPrinyatiya, DataObzvon = v.DataObzvon, idParam = PV.idParam, idParamZnachVakans = PV.idParamZnachVakans }).ToList(); for (DateTime date = d1; date < d2; date = date.AddMonths(1)) { Month m = new Month(); m.NameMonth = date.Month + "." + date.Year; m.KolObrStudPostTrud = ParamRes.Where(t => t.idParam == idParamTipZan && t.idResumeZnachParam == idZnachParamPost && t.DataPrinyatiya.Year == date.Year && t.DataPrinyatiya.Month == date.Month).Count(); m.KolObrStudVremZan = ParamRes.Where(t => t.idParam == idParamTipZan && t.idResumeZnachParam == idZnachParamVrem && t.DataPrinyatiya.Year == date.Year && t.DataPrinyatiya.Month == date.Month).Count(); m.KolPostVakansPostZan = ParamVak.Where(t => t.idParam == idParamTipZan && t.idParamZnachVakans == idZnachParamPost && t.DataPrinyatiya.Year == date.Year && t.DataPrinyatiya.Month == date.Month).Count(); m.KolPostVakansVremZan = ParamVak.Where(t => t.idParam == idParamTipZan && t.idParamZnachVakans == idZnachParamVrem && t.DataPrinyatiya.Year == date.Year && t.DataPrinyatiya.Month == date.Month).Count(); m.KolTrudStudPostZan = (from PR1 in (from PR in ParamRes where PR.idParam == idParamTipZan && PR.idResumeZnachParam == idZnachParamPost && PR.DataPrinyatiya.Year == date.Year && PR.DataPrinyatiya.Month == date.Month select new { idRes = PR.idResume }).ToList() join PR2 in ParamRes on PR1.idRes equals PR2.idResume where PR2.idParam == IDPARAM_ReasonEndRegistration && (PR2.idResumeZnachParam == idResumeZnachParamSCZS || PR2.idResumeZnachParam == idResumeZnachParamBezCZS) select PR2).Count(); m.KolTrudStudVremZan = (from PR1 in (from PR in ParamRes where PR.idParam == idParamTipZan && PR.idResumeZnachParam == idZnachParamVrem && PR.DataPrinyatiya.Year == date.Year && PR.DataPrinyatiya.Month == date.Month select new { idRes = PR.idResume }).ToList() join PR2 in ParamRes on PR1.idRes equals PR2.idResume where PR2.idParam == IDPARAM_ReasonEndRegistration && (PR2.idResumeZnachParam == idResumeZnachParamSCZS || PR2.idResumeZnachParam == idResumeZnachParamBezCZS) select PR2).Count(); m.KolTrudStudPostZanCZS = (from PR1 in (from PR in ParamRes where PR.idParam == idParamTipZan && PR.idResumeZnachParam == idZnachParamPost && PR.DataPrinyatiya.Year == date.Year && PR.DataPrinyatiya.Month == date.Month select new { idRes = PR.idResume }).ToList() join PR2 in ParamRes on PR1.idRes equals PR2.idResume where PR2.idParam == IDPARAM_ReasonEndRegistration && PR2.idResumeZnachParam == idResumeZnachParamSCZS select PR2).Count(); m.KolTrudStudVremZanCZS = (from PR1 in (from PR in ParamRes where PR.idParam == idParamTipZan && PR.idResumeZnachParam == idZnachParamVrem && PR.DataPrinyatiya.Year == date.Year && PR.DataPrinyatiya.Month == date.Month select new { idRes = PR.idResume }).ToList() join PR2 in ParamRes on PR1.idRes equals PR2.idResume where PR2.idParam == IDPARAM_ReasonEndRegistration && PR2.idResumeZnachParam == idResumeZnachParamSCZS select PR2).Count(); this.months.Add(m); } }