public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Index", "Home"));
            }
            Assistant assistant = db.Assistants.Find(id);

            if (assistant == null)
            {
                return(HttpNotFound());
            }
            AssistantEditVM assistantEditVM = new AssistantEditVM();
            CareCompany     company         = db.CareCompanies.Find(assistant.CareCompanyId);

            if (company != null)
            {
                assistantEditVM.CompanyName = company.CompanyName;
            }

            assistantEditVM.FirstName               = assistant.FirstName;
            assistantEditVM.LastName                = assistant.LastName;
            assistantEditVM.AssistantSSN            = assistant.AssistantSSN;
            assistantEditVM.PhoneNumber             = assistant.PhoneNumber;
            assistantEditVM.Email                   = assistant.Email;
            assistantEditVM.HourlySalary            = assistant.HourlySalary;
            assistantEditVM.HolidayPayRate          = assistant.HolidayPayRate;
            assistantEditVM.PayrollTaxRate          = assistant.PayrollTaxRate;
            assistantEditVM.PensionAndInsuranceRate = assistant.PensionAndInsuranceRate;
            assistantEditVM.Id = (int)id;

            return(View(assistantEditVM));
        }
Esempio n. 2
0
        public ActionResult Create(CareCompanyCreateVM model)
        {
            if (db.CareCompanies.Where(c => c.OrganisationNumber == model.OrganisationNumber).Any())
            {
                ModelState.AddModelError("OrganisationNumber", "Det finns redan ett bolag med det organisationsnumret.");
            }

            if (ModelState.IsValid)
            {
                CareCompany company = new CareCompany()
                {
                    IsActive           = true,
                    CompanyPhoneNumber = model.CompanyPhoneNumber,
                    Postcode           = model.Postcode,
                    City = model.City,
                    OrganisationNumber            = model.OrganisationNumber,
                    StreetAddress                 = model.StreetAddress,
                    SelectedCollectiveAgreementId = model.SelectedCollectiveAgreementId,
                    CollectiveAgreementSpecName   = model.CollectiveAgreementSpecName,
                    AccountNumber                 = model.AccountNumber,
                    CompanyName = model.CompanyName
                };

                db.CareCompanies.Add(company);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            List <SelectListItem> collectiveAgreements = new List <SelectListItem>();

            collectiveAgreements = new ApplicationDbContext().CollectiveAgreementHeaders.ToList().ConvertAll(c => new SelectListItem
            {
                Value = $"{c.Id}",
                Text  = c.Name
            });
            model.CollectiveAgreements = new SelectList(collectiveAgreements, "Value", "Text");
            // If we got this far, something failed, redisplay form
            return(View(model));

            /*
             * ModelState.Remove(nameof(CareCompany.CollectiveAgreementSpecName));
             * if (ModelState.IsValid)
             * {
             *  db.CareCompanies.Add(careCompany);
             *  db.SaveChanges();
             *  return RedirectToAction("Index");
             * }
             *
             * return View(careCompany);
             */
        }
Esempio n. 3
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Index", "Home"));
            }
            CareCompany careCompany = db.CareCompanies.Find(id);

            if (careCompany == null)
            {
                return(HttpNotFound());
            }

            // It should not be possible to delete passive Companies
            if (careCompany.IsActive == false)
            {
                return(RedirectToAction("Index"));
            }

            CareCompanyDeleteVM deleteVM = new CareCompanyDeleteVM();

            deleteVM.CareCompanyId      = careCompany.Id;
            deleteVM.CompanyName        = careCompany.CompanyName;
            deleteVM.OrganisationNumber = careCompany.OrganisationNumber;
            deleteVM.StreetAddress      = careCompany.StreetAddress;
            deleteVM.Postcode           = careCompany.Postcode;
            deleteVM.City               = careCompany.City;
            deleteVM.AccountNumber      = careCompany.AccountNumber;
            deleteVM.CompanyPhoneNumber = careCompany.CompanyPhoneNumber;

            CollectiveAgreementHeader collectiveAgreement = db.CollectiveAgreementHeaders.Where(c => c.Id == careCompany.SelectedCollectiveAgreementId).SingleOrDefault();

            if (collectiveAgreement != null)
            {
                deleteVM.CollectiveAgreementName = collectiveAgreement.Name;
            }

            deleteVM.CollectiveAgreementSpecName = careCompany.CollectiveAgreementSpecName;

            return(View(deleteVM));
        }
Esempio n. 4
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Index", "Home"));
            }
            CareCompany careCompany = db.CareCompanies.Find(id);

            if (careCompany == null)
            {
                return(HttpNotFound());
            }

            // It should not be possible to update passive Companies
            if (User.IsInRole("Admin") && careCompany.IsActive == false)
            {
                return(RedirectToAction("Index"));
            }

            CareCompanyEditVM careCompanyEditVM = new CareCompanyEditVM();

            careCompanyEditVM.CareCompany   = careCompany;
            careCompanyEditVM.CareCompanyId = (int)id;

            List <SelectListItem> collectiveAgreements = new List <SelectListItem>();

            collectiveAgreements = db.CollectiveAgreementHeaders.ToList().ConvertAll(c => new SelectListItem
            {
                Value = $"{c.Id}",
                Text  = c.Name
            });
            careCompanyEditVM.CollectiveAgreement           = new SelectList(collectiveAgreements, "Value", "Text");
            careCompanyEditVM.SelectedCollectiveAgreementId = careCompany.SelectedCollectiveAgreementId;
            return(View(careCompanyEditVM));
        }
Esempio n. 5
0
        public ActionResult DeleteConfirmed(int id, string submitButton)
        {
            if (submitButton == "Bekräfta")
            {
                // All Assistants connected to this CareCompany will be automatically deleted
                // because of Cascade Delete in table dbo.Assistants

                // All Users connected to this CareCompany should be deleted
                var usersToDelete = db.Users.Where(u => u.CareCompanyId == id).ToList();
                foreach (ApplicationUser user in usersToDelete)
                {
                    db.Users.Remove(user);
                }

                // All Unsent Claims(Claims with StatusId == 2) and connected to this company should be deleted
                var unsentClaims = db.Claims.Where(c => (c.CareCompanyId == id && c.ClaimStatusId == 2)).ToList();
                foreach (var claim in unsentClaims)
                {
                    if (claim.CompletionStage > 1)
                    {
                        db.ClaimDays.RemoveRange(db.ClaimDays.Where(c => c.ReferenceNumber == claim.ReferenceNumber));
                    }
                    if (claim.CompletionStage >= 2)
                    {
                        db.ClaimCalculations.RemoveRange(db.ClaimCalculations.Where(c => c.ReferenceNumber == claim.ReferenceNumber));
                    }
                    if (claim.CompletionStage >= 4)
                    {
                        if (claim.Documents.Count() > 0)
                        {
                            db.Documents.RemoveRange(db.Documents.Where(d => d.ReferenceNumber == claim.ReferenceNumber));
                        }
                    }
                }
                db.SaveChanges();

                // We don't want sent Claims to be deleted when the Company is deleted
                // Because of that we create a new CareCompany with status Passive, and copy all the other properties
                // to this passive Company from the Company that will be deleted
                CareCompany companyToDelete = db.CareCompanies.Find(id);

                CareCompany passiveCompany = new CareCompany()
                {
                    IsActive           = false,
                    CompanyPhoneNumber = companyToDelete.CompanyPhoneNumber,
                    Postcode           = companyToDelete.Postcode,
                    City = companyToDelete.City,
                    OrganisationNumber            = companyToDelete.OrganisationNumber,
                    StreetAddress                 = companyToDelete.StreetAddress,
                    SelectedCollectiveAgreementId = companyToDelete.SelectedCollectiveAgreementId,
                    CollectiveAgreementName       = companyToDelete.CollectiveAgreementName,
                    CollectiveAgreementSpecName   = companyToDelete.CollectiveAgreementSpecName,
                    AccountNumber                 = companyToDelete.AccountNumber,
                    CompanyName = companyToDelete.CompanyName
                };
                db.CareCompanies.Add(passiveCompany);
                db.SaveChanges();

                // All the Claims that has been sent should point to the passive Company when the active Company has been deleted
                var sentClaims = db.Claims.Where(c => (c.CareCompanyId == id && c.ClaimStatusId != 2)).ToList();

                foreach (var claim in sentClaims)
                {
                    claim.CareCompanyId   = passiveCompany.Id;
                    db.Entry(claim).State = EntityState.Modified;
                    db.SaveChanges();
                }

                db.CareCompanies.Remove(companyToDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }