public async Task <IActionResult> Edit(EditYearEventViewModel model) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == model.Id); yearEvent.EventText = model.EventText; yearEvent.FirstQuarter = model.FirstQuarter; yearEvent.SecondQuarter = model.SecondQuarter; yearEvent.ThirdQuarter = model.ThirdQuarter; yearEvent.FourthQuarter = model.FourthQuarter; yearEvent.Unit = model.Unit; yearEvent.TypeSection = model.TypeSection; Section section = await db.Sections.FirstOrDefaultAsync(sec => sec.Id == model.SectionId); yearEvent.Section = section.Name; SubSection subSection = await db.SubSections.FirstOrDefaultAsync(sub => sub.Id == model.SubSectionId); yearEvent.SubSection = subSection.Name; SubSection1 subSection1 = await db.SubSection1s.FirstOrDefaultAsync(sub1 => sub1.Id == model.SubSection1Id); yearEvent.SubSection1 = subSection1.Name; yearEvent.DataYear = model.DataYear; await db.SaveChangesAsync(); return(RedirectToAction("Details", "Agency", new { id = yearEvent.AgencyId, DataYearVM = yearEvent.DataYear })); }
public async Task <IActionResult> ConfirmDelete(int?id) { if (id != null) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == id); if (yearEvent != null) { DeleteYearEventViewModel model = new DeleteYearEventViewModel() { Id = (int)id, AgencyId = yearEvent.AgencyId, Number = yearEvent.Number, EventText = yearEvent.EventText, FirstQuarter = yearEvent.FirstQuarter, SecondQuarter = yearEvent.SecondQuarter, ThirdQuarter = yearEvent.ThirdQuarter, FourthQuarter = yearEvent.FourthQuarter, Unit = yearEvent.Unit, Section = yearEvent.Section, SubSection = yearEvent.SubSection, SubSection1 = yearEvent.SubSection1, TypeSection = yearEvent.TypeSection, DataYear = yearEvent.DataYear, partYearEvents = await db.PartYearEvents.Where(p => p.YearEventId == yearEvent.Id).ToListAsync() }; return(View(model)); } } return(NotFound()); }
public async Task <IActionResult> Create(CreateYearEventViewModel model) { YearEvent yearEvent = new YearEvent() { AgencyId = model.AgencyId, Number = await db.YearEvents.Where(y => y.AgencyId == model.AgencyId && y.DataYear == model.DataYear).CountAsync() + 1, EventText = model.EventText, FirstQuarter = model.FirstQuarter, SecondQuarter = model.SecondQuarter, ThirdQuarter = model.ThirdQuarter, FourthQuarter = model.FourthQuarter, Unit = model.Unit, TypeSection = model.TypeSection, DataYear = model.DataYear }; Section Section = await db.Sections.FirstOrDefaultAsync(subs => subs.Id == model.SectionId); yearEvent.Section = Section.Name; SubSection subSection = await db.SubSections.FirstOrDefaultAsync(subs => subs.Id == model.SubSectionId); yearEvent.SubSection = subSection.Name; SubSection1 subSection1 = await db.SubSection1s.FirstOrDefaultAsync(subs => subs.Id == model.SubSection1Id); yearEvent.SubSection1 = subSection1.Name; db.YearEvents.Add(yearEvent); await db.SaveChangesAsync(); return(RedirectToAction("Details", "Agency", new { id = yearEvent.AgencyId, DataYearVM = yearEvent.DataYear })); }
public async Task <IActionResult> Confirm(int?Id) { if (Id != null) { PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == Id); if (partYearEvent != null) { PartYearEventDetailsViewModel partYearEventDetailsViewModel = new PartYearEventDetailsViewModel() { Id = (int)Id, NumberYearEvent = partYearEvent.NumberYearEvent, Done = partYearEvent.Done, Img = partYearEvent.Img, Pdf = partYearEvent.Pdf, PriceB = partYearEvent.PriceB, PriceNotB = partYearEvent.PriceNotB, DateTime = partYearEvent.DateTime, UserNameСonfirmed = partYearEvent.UserNameСonfirmed, UserNameSent = partYearEvent.UserNameSent }; YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == partYearEvent.YearEventId); partYearEventDetailsViewModel.DataYear = yearEvent.DataYear; partYearEventDetailsViewModel.EventText = yearEvent.EventText; Agency agency = await db.Agencies.FirstOrDefaultAsync(a => a.Id == yearEvent.AgencyId); partYearEventDetailsViewModel.Agency = agency.Name; partYearEventDetailsViewModel.FullDonePlan = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FirstQuarter; return(View(partYearEventDetailsViewModel)); } } return(RedirectToAction("Index", "Home")); }
public YearEvent GetYearEvent(string bearOrBull) { YearEvent thisYear = new YearEvent("", "", "", 0); var rng = new Random(); if (string.Equals(bearOrBull, "bear...")) { BearEvent newBearEvent = BearEvents[rng.Next(BearEvents.Count - 1)]; thisYear = new YearEvent("bear...", newBearEvent.StalkName, newBearEvent.Description, newBearEvent.PriceChange); foreach (stalk stalk in stalkList) { if (string.Equals(stalk.Name, thisYear.StalkName)) { stalk.PricePerShare += thisYear.PriceChange; } } } else { BullEvent newBullEvent = BullEvents[rng.Next(BullEvents.Count - 1)]; thisYear = new YearEvent("BULL BULL BULL", newBullEvent.StalkName, newBullEvent.Description, newBullEvent.PriceChange); foreach (stalk stalk in stalkList) { if (string.Equals(stalk.Name, thisYear.StalkName)) { stalk.PricePerShare += thisYear.PriceChange; } } } return(thisYear); }
/// <summary> /// возвращает имя годового плана по ид пункта годового плана /// </summary> /// <param name="YearEventId"></param> /// <param name="db"></param> /// <returns></returns> static public async Task <string> GetStringDataYear(int YearEventId, AllContext db) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == YearEventId); string hh = yearEvent.DataYear; return(hh); }
public async Task <IActionResult> Delete(int?id) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == id); if (yearEvent != null) { db.YearEvents.Remove(yearEvent); await db.SaveChangesAsync(); return(RedirectToAction("Details", "Agency", new { id = yearEvent.AgencyId, DataYearVM = yearEvent.DataYear })); } return(NotFound()); }
public async Task <IActionResult> Edit(int id) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == id); if (yearEvent == null) { return(NotFound()); } else { EditYearEventViewModel model = new EditYearEventViewModel { Id = yearEvent.Id, Agency = await db.Agencies.FirstOrDefaultAsync(ag => ag.Id == yearEvent.AgencyId), AgencyId = yearEvent.AgencyId, Number = yearEvent.Number, EventText = yearEvent.EventText, FirstQuarter = yearEvent.FirstQuarter, SecondQuarter = yearEvent.SecondQuarter, ThirdQuarter = yearEvent.ThirdQuarter, FourthQuarter = yearEvent.FourthQuarter, Unit = yearEvent.Unit, Units = await db.Units.ToListAsync(), TypeSection = yearEvent.TypeSection, TypeSections = await db.TypeSections.ToListAsync(), Sections = await db.Sections.ToListAsync(), SubSections = await db.SubSections.ToListAsync(), SubSection = yearEvent.SubSection, SubSection1s = await db.SubSection1s.ToListAsync(), SubSection1 = yearEvent.SubSection1, DataYear = yearEvent.DataYear, DataYears = await db.DataYears.ToListAsync() }; if (yearEvent.Section == null) { yearEvent.Section = "ИСО"; } Section section = await db.Sections.FirstOrDefaultAsync(sec => sec.Name == yearEvent.Section); model.SectionId = section.Id; SubSection subSection = await db.SubSections.FirstOrDefaultAsync(sub => sub.Name == yearEvent.SubSection); model.SubSectionId = subSection.Id; SubSection1 subSection1 = await db.SubSection1s.FirstOrDefaultAsync(sub1 => sub1.Name == yearEvent.SubSection1); model.SubSection1Id = subSection1.Id; return(View(model)); } }
/// <summary> /// Возвращает количество затраченных внебюджетных средств на выполнения данного пункта годового плана /// </summary> /// <param name="idYearEvent">id пункта годового плана</param> /// <returns></returns> public async Task <float> GetFullPriceNotBNow(int idYearEvent, AllContext db) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == idYearEvent); List <PartYearEvent> partYearEvents = await db.PartYearEvents .Where(p => p.YearEventId == yearEvent.Id && p.Сomment == null && p.UserNameСonfirmed != null).ToListAsync(); float FullPriceNotBnow = 0; foreach (var part in partYearEvents) { FullPriceNotBnow += part.PriceNotB; } return(FullPriceNotBnow); }
/// <summary> /// Возвращает процент выполнения пункта годового плана по id пункта годового плана /// </summary> /// <param name="idYearEvent">id годового плана</param> /// <returns></returns> public async Task <decimal> GetProcentYearEvent(int idYearEvent, AllContext db) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == idYearEvent); List <PartYearEvent> partYearEvents = await db.PartYearEvents .Where(p => p.YearEventId == yearEvent.Id && p.Сomment == null && p.UserNameСonfirmed != null).ToListAsync(); decimal fullDonePlan = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FourthQuarter; decimal fullDoneNaw = 0; foreach (var part in partYearEvents) { fullDoneNaw += part.Done; } decimal procent = fullDoneNaw / fullDonePlan; return(procent); }
/// <summary> /// Проверяет принадлежит ли данный отчет авторезированому в данный момент пользователю /// </summary> ///<param name="partYearEvent">отчет годового плана</param> /// <returns></returns> public async Task <bool> Success(PartYearEvent partYearEvent) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEvent.YearEventId); //получаем год план Agency agency = await db.Agencies.FirstOrDefaultAsync(a => a.Id == yearEvent.AgencyId); // получаем учреждение User userAgency = await _userManager.FindByNameAsync(User.Identity.Name); //пользователь который авторизован if (userAgency != null) //если авторизован { var userAgencyRoles = await _userManager.GetRolesAsync(userAgency); //перечень ролей пользователя авторизованного в данный момент if (userAgencyRoles.Contains(agency.Name)) //если среди ролей есть название учреждения { return(true); } } return(false); }
public async Task <IActionResult> Execute(int YearEventId) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == YearEventId); if (yearEvent != null) { int totalDone = 0; int maxDone = 0; List <PartYearEvent> partYearEvents = await db.PartYearEvents.Where(p => p.YearEventId == YearEventId).ToListAsync(); int numberPartReturns = partYearEvents.Where(p => p.UserNameСonfirmed != null && p.Сomment != null).Count(); // количество отчетов которые вернули на доработку int numberPartSent = partYearEvents.Where(p => p.UserNameСonfirmed == null && p.UserNameSent != null).Count(); // количество отчетов еще на рассмотрении if ((numberPartReturns + numberPartSent) == 0) { if (partYearEvents != null) { foreach (PartYearEvent part in partYearEvents) { totalDone += part.Done; } maxDone = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FourthQuarter - totalDone; } PartYearEventViewModel partYearEventViewModel = new PartYearEventViewModel() { YearEventId = yearEvent.Id, NumberYearEvent = yearEvent.Number, EventText = yearEvent.EventText, FirstQuarter = yearEvent.FirstQuarter, SecondQuarter = yearEvent.SecondQuarter, ThirdQuarter = yearEvent.ThirdQuarter, FourthQuarter = yearEvent.FourthQuarter, Unit = yearEvent.Unit, DataYear = yearEvent.DataYear, maxDone = maxDone }; return(View(partYearEventViewModel)); } } return(RedirectToAction("Index", "Home")); }
/// <summary> /// Проверяет есть ли по данному пункту годового плана еще не рассмотренные отчеты и отправленные на доработку, проверка нужна для отоброжения кнопки ВЫПОЛНИТЬ, если есть отчеты отправленные на доработку или еще не рассмотренные то выполнить нельзя /// </summary> /// <param name="YearEventId">id пункта годового плана</param> /// <returns></returns> public async Task <bool> GetNumberPartReturnsAndSent(int?YearEventId) { if (YearEventId != null) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == YearEventId); if (yearEvent != null) { List <PartYearEvent> partYearEvents = await db.PartYearEvents.Where(p => p.YearEventId == YearEventId).ToListAsync(); int numberPartReturns = partYearEvents.Where(p => p.UserNameСonfirmed != null && p.Сomment != null).Count(); // количество отчетов которые вернули на доработку int numberPartSent = partYearEvents.Where(p => p.UserNameСonfirmed == null && p.UserNameSent != null).Count(); // количество отчетов еще на рассмотрении if (numberPartReturns + numberPartSent > 0) { return(false); } } } return(true); }
/// <summary> /// Возвращает количество необходимое для полного завершения данного пункта годового плана по id отчета /// </summary> /// <param name="idPartYearEvent">id отчета годового плана</param> /// <returns></returns> public async Task <int> GetMaxDone(int?idPartYearEvent, AllContext db) { if (idPartYearEvent != null) { PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == idPartYearEvent); YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEvent.YearEventId); int fullDonePlan = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FirstQuarter; List <PartYearEvent> partYearEventsСonfirmed = await db.PartYearEvents .Where(p => p.YearEventId == partYearEvent.YearEventId && p.Сomment == null && p.UserNameСonfirmed != null).ToListAsync(); int fullDoneNaw = 0; foreach (var part in partYearEventsСonfirmed) { fullDoneNaw += part.Done; } return(fullDonePlan - fullDoneNaw); } return(0); }
public async Task GetNewYear(string bullBear) { player player = playerList.First(x => x.ConnectionId == Context.ConnectionId); player.StartNewYear = true; YearEvent thisYear = new YearEvent("", "", "", 0); bool isEveryoneReady = CheckReadyYear(); if (isEveryoneReady || EndTheGame && EndTheGameCount < 0) { //stalkList = JsonConvert.DeserializeAnonymousType(stalksListToJson, stalkList); if (EndTheGame) { EndTheGameCount++; } year++; bullBear = BullBear(); adjustStalks(bullBear); thisYear = GetYearEvent(bullBear); CheckBankruptcy(); splitStalks(); PayDividend(bullBear); // add Loan adjustments for year end here if (AllLoans.Count > 0) { AdjustLoans(); } GetNetWorth(); foreach (player otherplayer in playerList) { otherplayer.StartNewYear = false; otherplayer.EndGame = false; } } await Clients.All.SendAsync("New Year", year, bullBear, JsonConvert.SerializeObject(stalkList), JsonConvert.SerializeObject(stalksOwned), JsonConvert.SerializeObject(playerList), JsonConvert.SerializeObject(thisYear), JsonConvert.SerializeObject(stalksBankrupt), JsonConvert.SerializeObject(AllLoans)); }
private static async Task <int> GetOverdueYearEvent(int Id, AllContext db) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == Id); List <PartYearEvent> AgreedPartYearEvents = await db.PartYearEvents .Where(p => p.YearEventId == yearEvent.Id) .Where(p => p.UserNameSent != null) .Where(p => p.UserNameСonfirmed == null) .Where(p => p.Сomment == null) .ToListAsync(); List <PartYearEvent> ReturnPartYearEvents = await db.PartYearEvents .Where(p => p.YearEventId == yearEvent.Id) .Where(p => p.UserNameSent != null) .Where(p => p.Сomment != null) .ToListAsync(); //на согласовании if (AgreedPartYearEvents.Count > 0) { return(1);//"bg-info"; } //возвращен на доработку" else if (ReturnPartYearEvents.Count > 0) { return(2);// "bg-warning"; } //сколько запланировано на сегодня int planQuarterNow = 0; //сколько выполнено на сегодня int fullDoneNaw = await Doner.GetNowDone(yearEvent.Id, db); if (DateTime.Now.DayOfYear <= 90)//1 квартал { planQuarterNow = yearEvent.FirstQuarter; } else if (90 < DateTime.Now.DayOfYear && DateTime.Now.DayOfYear <= 181)//2 квартал { planQuarterNow = yearEvent.FirstQuarter + yearEvent.SecondQuarter; } else if (181 < DateTime.Now.DayOfYear && DateTime.Now.DayOfYear <= 272)//3 квартал { planQuarterNow = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter; } else if (272 < DateTime.Now.DayOfYear)//4 квартал { planQuarterNow = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FourthQuarter; } //пункт выполнен if (fullDoneNaw >= planQuarterNow) { return(3);// "bg-success"; } //просрочен else { return(4);// "bg-danger"; } }
public async Task <IActionResult> Execute(PartYearEventViewModel partYearEventViewModel) { if (partYearEventViewModel != null) { YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEventViewModel.YearEventId); Agency agency = await db.Agencies.FirstOrDefaultAsync(ag => ag.Id == yearEvent.AgencyId); // путь к папке Files string path = Path.Combine(_appEnvironment.WebRootPath, "img"); //string pathWWWRootNot = "\\img\\"; if (!Directory.Exists(Path.Combine(path, agency.Name))) { Directory.CreateDirectory(Path.Combine(path, agency.Name)); } path = Path.Combine(path, agency.Name); string pathWWWRootNot = Path.Combine("img", agency.Name); if (!Directory.Exists(Path.Combine(path, partYearEventViewModel.DataYear))) { Directory.CreateDirectory(Path.Combine(path, partYearEventViewModel.DataYear)); } path = Path.Combine(path, partYearEventViewModel.DataYear); pathWWWRootNot = Path.Combine(pathWWWRootNot, partYearEventViewModel.DataYear); if (!Directory.Exists(Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString()))) { Directory.CreateDirectory(Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString())); } path = Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString()); pathWWWRootNot = Path.Combine(pathWWWRootNot, partYearEventViewModel.NumberYearEvent.ToString()); string fullFileNameImageFile; string fullFileNamePdfFile; string extensionImageFile = Path.GetExtension(partYearEventViewModel.ImageFile.FileName); string extensionPdfFile = Path.GetExtension(partYearEventViewModel.PdfFile.FileName); string fileNameImageFile = $"ГП_image_{agency.Name}_{partYearEventViewModel.NumberYearEvent}_{DateTime.Now:dd-MM-yyyy-hh-mm-ss}{extensionImageFile}"; string fileNamePdfFile = $"ГП_pdf_{agency.Name}_{partYearEventViewModel.NumberYearEvent}_{DateTime.Now:dd-MM-yyyy-hh-mm-ss}{extensionPdfFile}"; using (var fileStream = new FileStream(Path.Combine(path, fileNameImageFile), FileMode.Create)) { await partYearEventViewModel.ImageFile.CopyToAsync(fileStream); await fileStream.FlushAsync(); fullFileNameImageFile = "\\" + Path.Combine(pathWWWRootNot, fileNameImageFile); } using (var fileStream = new FileStream(Path.Combine(path, fileNamePdfFile), FileMode.Create)) { await partYearEventViewModel.PdfFile.CopyToAsync(fileStream); await fileStream.FlushAsync(); fullFileNamePdfFile = "\\" + Path.Combine(pathWWWRootNot, fileNamePdfFile); } PartYearEvent partYearEvent = new PartYearEvent() { YearEventId = partYearEventViewModel.YearEventId, NumberYearEvent = partYearEventViewModel.NumberYearEvent, Done = partYearEventViewModel.Done, PriceB = partYearEventViewModel.PriceB, PriceNotB = partYearEventViewModel.PriceNotB, DateTime = DateTime.Now, UserNameSent = User.Identity.Name, Img = fullFileNameImageFile, Pdf = fullFileNamePdfFile }; await db.PartYearEvents.AddAsync(partYearEvent); await db.SaveChangesAsync(); } return(RedirectToAction("Index", new { userName = User.Identity.Name, dataYear = partYearEventViewModel.DataYear })); }