Esempio n. 1
0
        public async Task <IActionResult> AddTabacoToWorkStock(AddTabacoToWorkStock details)
        {
            //добавить вылезающие ошибки при вводе некоректной инфи
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company      companyUser  = userCompanyRepository.CompanyToUser(user.Id);
            CompanyStock companyStock = companyStockRepository.DisplayCompanyStock(companyUser)
                                        .Where(p => p.Id == details.SelectedCompanyStock).FirstOrDefault();

            if (companyStock.TabacoCount > details.CountTabacoPack)
            {
                companyStock.TabacoCount -= details.CountTabacoPack;
                companyStockRepository.EditCompanyStock(companyStock);
                workStockRepository.AddWorkStock(new WorkStock
                {
                    Company           = companyStock.Company,
                    NameTabaco        = companyStock.TabacoName,
                    TabacoWeigh       = details.TabacoWeigth,
                    Data              = DateTime.Now,
                    HookahMaster      = User.Identity.Name,
                    CountTabacoPack   = details.CountTabacoPack,
                    BundleTabacoWeigh = companyStock.TabacoBundleWeigh
                });
            }
            return(RedirectToAction("ShowWorkStock", "Display"));
        }
Esempio n. 2
0
        public async Task <IActionResult> RegistCompany(ViewRegistrCompany details)
        {
            Company company = new Company {
                Name = details.CompanyName
            };

            companyRepository.Add(company);

            CompanyStock companyStock = new CompanyStock
            {
                Company           = company,
                TabacoName        = details.TabacoNameSt,
                TabacoBundleWeigh = details.TabacoBundleWeithSt,
                TabacoCount       = details.TabacoCountSt
            };

            companyStockRepository.AddCompStock(companyStock);

            WorkStock workStock = new WorkStock
            {
                Company      = company,
                NameTabaco   = details.WSTabacoName,
                TabacoWeigh  = details.WSTabacoWeigth,
                HookahMaster = User.Identity.Name
            };

            workStockRepository.AddWorkStock(workStock);
            AppUser appUser = await userManager.FindByNameAsync(details.UserName);

            if (appUser != null)
            {
                UserCompany userCompany = new UserCompany {
                    Company = company, UserId = appUser.Id
                };
                userCompanyRepository.AddUserCompany(userCompany);
            }
            return(RedirectToAction("RegisterUser", "Account"));
        }
        public async Task <IActionResult> RedisCount(ViewRedisCount details)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company   company        = userCompanyRepository.CompanyToUser(user.Id);
            WorkStock lastRediscount = workStockRepository.DisplayWorkStock(userCompanyRepository.CompanyToUser(user.Id)).Where(
                p => p.NameTabaco == "REDISCOUNT").LastOrDefault();

            if (lastRediscount != null)
            {
                int sumTabacoWeigh = workStockRepository.DisplayWorkStock(userCompanyRepository.CompanyToUser(user.Id)).Where(
                    p => lastRediscount.Data <= p.Data).Sum(p => p.TabacoWeigh);
                int useTabaco            = details.CountHookah * details.Gramovka;
                int teorFinalTabacoWeigh = sumTabacoWeigh - useTabaco;
                workStockRepository.AddWorkStock(new WorkStock
                {
                    Company     = lastRediscount.Company,
                    NameTabaco  = "REDISCOUNT",
                    TabacoWeigh = details.FinalTabacoWeigh,
                    Data        = DateTime.Now
                });
                if (teorFinalTabacoWeigh > details.FinalTabacoWeigh)
                {
                    int disadvantege = teorFinalTabacoWeigh - details.FinalTabacoWeigh;
                    int disHookah    = disadvantege / details.Gramovka;
                    return(View("ResultRediscount", new ViewResultRediscount {
                        UsedTabaco = useTabaco,
                        Disadvantage = disadvantege, DisadvantageHookah = disHookah
                    }));
                }
                else
                {
                    int excess = details.FinalTabacoWeigh - teorFinalTabacoWeigh;
                    return(View("ResultRediscount", new ViewResultRediscount {
                        UsedTabaco = useTabaco, Excess = excess
                    }));
                }
            }
            else
            {
                int sumTabacoWeigh = workStockRepository.DisplayWorkStock(userCompanyRepository.CompanyToUser(user.Id)).Sum(
                    p => p.TabacoWeigh);
                int useTabaco = details.CountHookah * details.Gramovka;
                workStockRepository.AddWorkStock(new WorkStock
                {
                    Company     = company,
                    NameTabaco  = "REDISCOUNT",
                    TabacoWeigh = details.FinalTabacoWeigh,
                    Data        = DateTime.Now
                });
                int teorFinalTabacoWeigh = sumTabacoWeigh - useTabaco;

                if (teorFinalTabacoWeigh > details.FinalTabacoWeigh)
                {
                    int disadvantege = teorFinalTabacoWeigh - details.FinalTabacoWeigh;
                    int disHookah    = disadvantege / details.Gramovka;
                    return(View("ResultRediscount", new ViewResultRediscount
                    {
                        UsedTabaco = useTabaco,
                        Disadvantage = disadvantege,
                        DisadvantageHookah = disHookah
                    }));
                }
                else
                {
                    int excess = details.FinalTabacoWeigh - teorFinalTabacoWeigh;
                    return(View("ResultRediscount", new ViewResultRediscount {
                        UsedTabaco = useTabaco, Excess = excess
                    }));
                }
            }
        }