Exemple #1
0
        public void ConvertFrom(LegalEntityOwner legalEntityOwner, LegalEntityOwnerView legalEntityOwnerView, ObjectContext db)
        {
            legalEntityOwnerView.LegalEntityOwnerPK = legalEntityOwner.LegalEntityOwnerPK;

            legalEntityOwnerView.LegalEntityFK = legalEntityOwner.LegalEntityFK;

            legalEntityOwnerView.OwnerStringFK = legalEntityOwner.OwnerType.Trim() + "|" + legalEntityOwner.OwnerFK.ToString();

            legalEntityOwnerView.AdditionalFactorFK    = legalEntityOwner.AdditionalFactorFK;
            legalEntityOwnerView.FulfilledFactorFK     = legalEntityOwner.FulfilledFactorFK;
            legalEntityOwnerView.BussinesShareBurdenFK = legalEntityOwner.BussinesShareBurdenFK;
            legalEntityOwnerView.ChangeTypeFK          = legalEntityOwner.ChangeTypeFK;

            legalEntityOwnerView.BusinessShareAmount        = legalEntityOwner.BusinessShareAmount;
            legalEntityOwnerView.NominalBussinesShareAmount = legalEntityOwner.NominalBussinesShareAmount;
            legalEntityOwnerView.PaidBussinesShareAmount    = legalEntityOwner.PaidBussinesShareAmount;

            legalEntityOwnerView.NumberOfVotes = legalEntityOwner.NumberOfVotes;

            legalEntityOwnerView.EntryDate = legalEntityOwner.EntryDate;

            legalEntityOwnerView.Deleted = legalEntityOwner.Deleted;

            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityOwnerView.LegalEntityFK);

            legalEntityOwnerView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";
        }
Exemple #2
0
        public void ConvertFrom(Contract contract, ContractView contractView, ObjectContext db)
        {
            contractView.ContractPK             = contract.ContractPK;
            contractView.LegalEntityFK          = contract.LegalEntityFK;
            contractView.Name                   = contract.Name;
            contractView.Number                 = contract.Number;
            contractView.Date                   = contract.Date;
            contractView.ContractValidityFK     = contract.ContractValidityFK;
            contractView.ContractBegin          = contract.ContractBegin;
            contractView.ContractEnd            = contract.ContractEnd;
            contractView.TerminationDate        = contract.TerminationDate;
            contractView.TerminationDescription = contract.TerminationDescription;
            contractView.Terminated             = contract.Terminated;
            contractView.CurrencyFK             = contract.CurrencyFK;
            contractView.MIO     = contract.MIO;
            contractView.TSI     = contract.TSI;
            contractView.GZR     = contract.GZR;
            contractView.OPL     = contract.OPL;
            contractView.AUP     = contract.AUP;
            contractView.Deleted = contract.Deleted;

            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)contractView.LegalEntityFK);

            contractView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";
        }
Exemple #3
0
        public ActionResult Add(int?legalEntityFK)
        {
            TempData["legalEntityFK"] = legalEntityFK;

            AssessmentsView assessmentView = new AssessmentsView();

            // Assessment types ddl
            IAssessmentTypesRepository assessmentTypesRepository = new AssessmentTypesRepository(db);

            assessmentView.AssessmentTypes = new SelectList(assessmentTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "AssessmentTypePK", "Name");

            //legalEntities ddl
            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);

            if (legalEntityFK != null)
            {
                TempData["legalEntityFK"]      = legalEntityFK;
                assessmentView.LegalEntityFK   = (int)legalEntityFK;
                assessmentView.LegalEntityName = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }

            // Assessment types
            IAssessmentGroupsRepository    assessmentGroupsRepository    = new AssessmentGroupsRepository(db);
            IAssessmentQuestionsRepository assessmentQuestionsRepository = new AssessmentQuestionsRepository(db);

            assessmentView.AssessmentsTypesView = AssessmentsView.FillQuiz(assessmentTypesRepository.GetValid(), assessmentGroupsRepository, assessmentQuestionsRepository, null);


            return(View(assessmentView));
        }
Exemple #4
0
        public void ConvertFrom(LegalEntityBank LegalEntityBank, LegalEntityBankView LegalEntityBankView, ObjectContext db)
        {
            LegalEntityBankView.LegalEntityBankPK = LegalEntityBank.LegalEntityBankPK;
            LegalEntityBankView.LegalEntityFK     = LegalEntityBank.LegalEntityFK;
            LegalEntityBankView.BankFK            = LegalEntityBank.BankFK;
            LegalEntityBankView.Iban    = LegalEntityBank.Iban;
            LegalEntityBankView.Deleted = LegalEntityBank.Deleted;

            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)LegalEntityBankView.LegalEntityFK);

            LegalEntityBankView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";
        }
Exemple #5
0
        public void ConvertFrom(LegalEntityLegalRepresentative legalEntityLegalRepresentative, LegalEntityLegalRepresentativeView legalEntityLegalRepresentativeView, ObjectContext db)
        {
            legalEntityLegalRepresentativeView.LegalEntityLegalRepresentativePK = legalEntityLegalRepresentative.LegalEntityLegalRepresentativePK;

            legalEntityLegalRepresentativeView.LegalEntityFK         = legalEntityLegalRepresentative.LegalEntityFK;
            legalEntityLegalRepresentativeView.WayOfRepresentationFK = legalEntityLegalRepresentative.WayOfRepresentationFK;
            legalEntityLegalRepresentativeView.LegalRepresentativeFK = legalEntityLegalRepresentative.LegalRepresentativeFK;

            legalEntityLegalRepresentativeView.Deleted = legalEntityLegalRepresentative.Deleted;

            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityLegalRepresentative.LegalEntityFK);

            legalEntityLegalRepresentativeView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";
        }
Exemple #6
0
        public ActionResult UnOwner(int?legalEntityPK)
        {
            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);

            if (legalEntityPK != null)
            {
                LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityPK);

                legalEntity.Owner = false;

                legalEntitiesRepository.SaveChanges();
            }

            return(Redirect(Request.UrlReferrer.AbsoluteUri));
        }
Exemple #7
0
        public ActionResult Delete(int?legalEntityPK)
        {
            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);

            if (legalEntityPK != null)
            {
                LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityPK);

                legalEntity.Deleted = true;

                legalEntitiesRepository.SaveChanges();

                TempData["message"] = LayoutHelper.GetMessage("DELETE", legalEntity.LegalEntityPK);
            }

            return(Redirect(Request.UrlReferrer.AbsoluteUri));
        }
Exemple #8
0
        public ActionResult Edit(int?legalEntityPK)
        {
            if (legalEntityPK != null)
            {
                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                LegalEntity     legalEntity     = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityPK);
                LegalEntityView legalEntityView = new LegalEntityView();

                legalEntityView.ConvertFrom(legalEntity, legalEntityView);
                legalEntityView.BindDDLs(legalEntityView, db);

                return(View(legalEntityView));
            }
            else
            {
                return(RedirectToAction("Index", "LegalEntity"));
            }
        }
Exemple #9
0
        public ActionResult Add(int?legalEntityFK)
        {
            LegalEntityLegalRepresentativeView legalEntityLegalRepresentativeView = new LegalEntityLegalRepresentativeView();

            if (legalEntityFK != null)
            {
                TempData["legalEntityFK"] = legalEntityFK;

                legalEntityLegalRepresentativeView.LegalEntityFK = (int)legalEntityFK;

                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                legalEntityLegalRepresentativeView.LegalEntityName = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }

            legalEntityLegalRepresentativeView.BindDDLs(legalEntityLegalRepresentativeView, db);

            return(View(legalEntityLegalRepresentativeView));
        }
Exemple #10
0
        public ActionResult Add(int?legalEntityFK)
        {
            ContractView contractView = new ContractView();

            if (legalEntityFK != null)
            {
                TempData["legalEntityFK"] = legalEntityFK;

                contractView.LegalEntityFK = (int)legalEntityFK;

                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                contractView.LegalEntityName = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }

            contractView.BindDDLs(contractView, db);

            return(View(contractView));
        }
Exemple #11
0
        public ActionResult Edit(int?assessmentPK)
        {
            if (assessmentPK != null)
            {
                IAssessmentsRepository assessmentsRepository = new AssessmentsRepository(db);
                Assessment             assessment            = assessmentsRepository.GetAssessmentByPK((int)assessmentPK);
                AssessmentsView        assessmentView        = new AssessmentsView();

                assessmentView.ConvertFrom(assessment, assessmentView);

                IAssessmentTypesRepository assessmentTypesRepository = new AssessmentTypesRepository(db);
                assessmentView.AssessmentTypes = new SelectList(assessmentTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "AssessmentTypePK", "Name");

                // Assessment types ddl
                IAssessmentGroupsRepository    assessmentGroupsRepository    = new AssessmentGroupsRepository(db);
                IAssessmentQuestionsRepository assessmentQuestionsRepository = new AssessmentQuestionsRepository(db);

                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)assessment.LegalEntityFK);
                assessmentView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";

                FormCollection form = new FormCollection();

                IAssessmentAnswersRepository   assessmentAnswersRepository = new AssessmentAnswersRepository(db);
                IQueryable <AssessmentAnswers> assessmentAnswers           = assessmentAnswersRepository.GetAssessmentAnswersByAssessment((int)assessmentPK);

                foreach (var assessmentAnswer in assessmentAnswers)
                {
                    string answer = assessmentAnswer.AssessmentAnswer == null ? "NP": (bool)assessmentAnswer.AssessmentAnswer ? "Da" : "Ne";
                    form.Add("answer[" + assessmentAnswer.AssessmentQuestionFK + "]", answer);
                }

                assessmentView.AssessmentsTypesView = AssessmentsView.FillQuiz(assessmentTypesRepository.GetValid(), assessmentGroupsRepository, assessmentQuestionsRepository, form);

                return(View(assessmentView));
            }
            else
            {
                return(RedirectToAction("Index", "Assessment"));
            }
        }
Exemple #12
0
        public static LegalEntityView GetLegalEntityReport(ObjectContext db, int legalEntityPK)
        {
            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK(legalEntityPK);

            LegalEntityView legalEntityView = new LegalEntityView
            {
                LegalEntityPK = legalEntity.LegalEntityPK,
                Name          = legalEntity.Name,
                ShortName     = legalEntity.ShortName,
                OIB           = legalEntity.OIB,
                MB            = legalEntity.MB,
                MBS           = legalEntity.MBS,
                FormName      = legalEntity.FormFK != null ? legalEntity.Form.Name : null,

                Active  = legalEntity.Active,
                Deleted = legalEntity.Deleted
            };

            return(legalEntityView);
        }
Exemple #13
0
        public ActionResult Add(int?legalEntityFK)
        {
            LegalEntityBranchView legalEntityBranchView = new LegalEntityBranchView();

            // set default country to Croatia
            legalEntityBranchView.CountryFK = 81;

            //legalEntities ddl
            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);

            if (legalEntityFK != null)
            {
                TempData["legalEntityFK"]             = legalEntityFK;
                legalEntityBranchView.LegalEntityFK   = (int)legalEntityFK;
                legalEntityBranchView.LegalEntityName = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }

            legalEntityBranchView.BindDDLs(legalEntityBranchView, db);

            return(View(legalEntityBranchView));
        }
Exemple #14
0
        public void ConvertFrom(LegalEntityBranch legalEntityBranch, LegalEntityBranchView legalEntityBranchView, ObjectContext db)
        {
            legalEntityBranchView.LegalEntityBranchPK = legalEntityBranch.LegalEntityBranchPK;
            legalEntityBranchView.Name            = legalEntityBranch.Name;
            legalEntityBranchView.LegalEntityFK   = legalEntityBranch.LegalEntityFK;
            legalEntityBranchView.CountryFK       = legalEntityBranch.CountryFK;
            legalEntityBranchView.CountyFK        = legalEntityBranch.CountyFK;
            legalEntityBranchView.CityCommunityFK = legalEntityBranch.CityCommunityFK;
            legalEntityBranchView.PostalOfficeFK  = legalEntityBranch.PostalOfficeFK;
            legalEntityBranchView.PlaceFK         = legalEntityBranch.PlaceFK;
            legalEntityBranchView.StreetName      = legalEntityBranch.StreetName;
            legalEntityBranchView.Phone           = legalEntityBranch.Phone;
            legalEntityBranchView.Fax             = legalEntityBranch.Fax;
            legalEntityBranchView.Mobile          = legalEntityBranch.Mobile;
            legalEntityBranchView.EMail           = legalEntityBranch.EMail;
            legalEntityBranchView.Deleted         = legalEntityBranch.Deleted;

            ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
            LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityBranchView.LegalEntityFK);

            legalEntityBranchView.LegalEntityName = legalEntity.Name + " (" + legalEntity.OIB + ")";
        }
Exemple #15
0
        public ActionResult Edit(LegalEntityView legalEntityView, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);

                LegalEntity legalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityView.LegalEntityPK);
                legalEntityView.ConvertTo(legalEntityView, legalEntity);

                legalEntitiesRepository.SaveChanges();

                TempData["message"] = LayoutHelper.GetMessage("UPDATE", legalEntity.LegalEntityPK);

                return(RedirectToAction("Index", "LegalEntity", new { active = "true" }));
            }
            else
            {
                legalEntityView.BindDDLs(legalEntityView, db);

                return(View(legalEntityView));
            }
        }
Exemple #16
0
        public ActionResult WorkDoneExportToExcel(
            int?toDoListFK, int?legalEntityFK, int?workTypeFK, int?workSubtypeFK, int?serviceTypeFK, int?userFK, string dateFrom, string dateTo, int?timeSpentFrom, int?timeSpentTo, int?numberOfAttachmentsFrom, int?numberOfAttachmentsTo, string description,
            bool ShowBasicInfo, bool ShowOrdinal, bool ShowID, bool ShowToDoList, bool ShowLegalEntity, bool ShowWorkType, bool ShowWorkSubtype, bool ShowServiceType, bool ShowDate, bool ShowUsername, bool ShowDescription, bool ShowTimeSpent, bool ShowComment, bool ShowAttachments)
        {
            IWorkDonesRepository           workDonesRepository           = new WorkDonesRepository(db);
            IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db);
            WorkDoneView                   workDoneView                  = new WorkDoneView();
            IContractsRepository           contractsRepository           = new ContractsRepository(db);
            ILegalEntityBranchesRepository legalEntityBranchesRepository = new LegalEntityBranchesRepository(db);
            IToDoListsRepository           toDoListsRepository           = new ToDoListsRepository(db);
            ILegalEntitiesRepository       legalEntitiesRepository       = new LegalEntitiesRepository(db);
            IWorkTypesRepository           workTypesRepository           = new WorkTypesRepository(db);
            IWorkSubtypesRepository        workSubtypesRepository        = new WorkSubtypesRepository(db);
            IServiceTypesRepository        serviceTypesRepository        = new ServiceTypesRepository(db);
            IUsersRepository               usersRepository               = new UsersRepository(db);

            string sortOrder  = !string.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC";
            string sortColumn = !string.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "WorkDonePK";
            string ordering   = sortColumn + " " + sortOrder;

            ordering = ordering.Trim();

            if (legalEntityFK != null)
            {
                ViewBag.LegalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }
            if (toDoListFK != null)
            {
                ViewBag.ToDoList = toDoListsRepository.GetToDoListByPK((int)toDoListFK).Name;
            }
            if (workTypeFK != null)
            {
                ViewBag.WorkType = workTypesRepository.GetWorkTypeByPK((int)workTypeFK).Name;
            }
            if (workSubtypeFK != null)
            {
                ViewBag.WorkSubtype = workSubtypesRepository.GetWorkSubtypeByPK((int)workSubtypeFK).Name;
            }
            if (userFK != null)
            {
                ViewBag.User = usersRepository.GetUserByUserID((int)userFK).Username;
            }

            DateTime?dateFromTime = null;
            DateTime?dateToTime   = null;

            if (dateFrom != null && dateFrom != "")
            {
                dateFromTime = DateTime.ParseExact(dateFrom, "dd.MM.yyyy.", null);
            }
            if (dateTo != null && dateTo != "")
            {
                dateToTime = DateTime.ParseExact(dateTo, "dd.MM.yyyy.", null);
            }

            // Applying filters
            IQueryable <WorkDone> workDonesFiltered = WorkDoneView.GetWorkDonesReport(db, toDoListFK, legalEntityFK, workTypeFK, workSubtypeFK, serviceTypeFK, userFK, dateFromTime, dateToTime, timeSpentFrom, timeSpentTo, numberOfAttachmentsFrom, numberOfAttachmentsTo, description);

            IQueryable <WorkDoneView> workDones = WorkDoneView.GetWorkDoneView(workDonesFiltered,
                                                                               toDoListsRepository.GetValid(),
                                                                               workDoneAttachmentsRepository.GetValid(),
                                                                               legalEntitiesRepository.GetValidLegalEntities(),
                                                                               workTypesRepository.GetValid(),
                                                                               workSubtypesRepository.GetValid(),
                                                                               serviceTypesRepository.GetValid(),
                                                                               usersRepository.GetValid())
                                                  .OrderBy(ordering);

            var workDonesList = workDones.ToList();

            var columns = new Dictionary <string, int>();

            var ms = new MemoryStream();

            using (var package = new ExcelPackage(ms))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Izvršeni posao");

                var columnPosition = 1;

                Action <bool, string> setColumnHeader = (columnVisible, columnName) =>
                {
                    if (columnVisible)
                    {
                        worksheet.Cells[1, columnPosition].Value           = columnName;
                        worksheet.Cells[1, columnPosition].Style.Font.Bold = true;
                        columns.Add(columnName, columnPosition++);
                    }
                };

                setColumnHeader(ShowOrdinal, "#");
                setColumnHeader(ShowID, "ID");
                setColumnHeader(ShowToDoList, "Obaveza");
                setColumnHeader(ShowLegalEntity, "Tvrtka");
                setColumnHeader(ShowWorkType, "Vrsta rada");
                setColumnHeader(ShowWorkSubtype, "Vrsta posla");
                setColumnHeader(ShowServiceType, "Vrsta usluge");
                setColumnHeader(ShowDate, "Datum izvršenja");
                setColumnHeader(ShowUsername, "Korisnik");
                setColumnHeader(ShowDescription, "Opis");
                setColumnHeader(ShowTimeSpent, "Utrošeno vrijeme");
                setColumnHeader(ShowComment, "Važna napomena");
                setColumnHeader(ShowAttachments, "Prilozi");

                Action <int, bool, string, object> setRowValue = (ri, columnVisible, columnName, value) =>
                {
                    if (columnVisible)
                    {
                        worksheet.Cells[ri, columns[columnName]].Value = value;
                    }
                };

                var rowIndex = 2;
                foreach (var item in workDonesList)
                {
                    setRowValue(rowIndex, ShowOrdinal, "#", rowIndex - 1);
                    setRowValue(rowIndex, ShowID, "ID", item.WorkDonePK);
                    setRowValue(rowIndex, ShowToDoList, "Obaveza", item.ToDoListName);
                    setRowValue(rowIndex, ShowLegalEntity, "Tvrtka", item.LegalEntityName);
                    setRowValue(rowIndex, ShowWorkType, "Vrsta rada", item.WorkTypeName);
                    setRowValue(rowIndex, ShowWorkSubtype, "Vrsta posla", item.WorkSubtypeName);
                    setRowValue(rowIndex, ShowServiceType, "Vrsta usluge", item.ServiceTypeName);
                    setRowValue(rowIndex, ShowDate, "Datum izvršenja", item.Date?.ToString("dd.MM.yyyy."));
                    setRowValue(rowIndex, ShowUsername, "Korisnik", item.UserUsername);
                    setRowValue(rowIndex, ShowDescription, "Opis", item.Description);
                    setRowValue(rowIndex, ShowTimeSpent, "Utrošeno vrijeme", LinkHelper.calculateTimeSpent(item.TimeSpent));
                    setRowValue(rowIndex, ShowComment, "Važna napomena", item.Comment);
                    setRowValue(rowIndex, ShowAttachments, "Prilozi", item.WorkDoneAttachmentsCount);

                    rowIndex++;
                }

                worksheet.Calculate();
                worksheet.Cells.AutoFitColumns(0);

                package.Save();
            }

            ms.Seek(0, SeekOrigin.Begin);

            return(new FileStreamResult(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
            {
                FileDownloadName = $"Izvršeni posao {DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss")}.xlsx"
            });
        }
Exemple #17
0
        public ActionResult WorkDone(int?toDoListFK, int?legalEntityFK, int?workTypeFK, int?workSubtypeFK, int?serviceTypeFK, int?userFK, string dateFrom, string dateTo, int?timeSpentFrom, int?timeSpentTo, int?numberOfAttachmentsFrom, int?numberOfAttachmentsTo, string description)
        {
            IWorkDonesRepository           workDonesRepository           = new WorkDonesRepository(db);
            IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db);
            WorkDoneView                   workDoneView                  = new WorkDoneView();
            IContractsRepository           contractsRepository           = new ContractsRepository(db);
            ILegalEntityBranchesRepository legalEntityBranchesRepository = new LegalEntityBranchesRepository(db);
            IToDoListsRepository           toDoListsRepository           = new ToDoListsRepository(db);
            ILegalEntitiesRepository       legalEntitiesRepository       = new LegalEntitiesRepository(db);
            IWorkTypesRepository           workTypesRepository           = new WorkTypesRepository(db);
            IWorkSubtypesRepository        workSubtypesRepository        = new WorkSubtypesRepository(db);
            IServiceTypesRepository        serviceTypesRepository        = new ServiceTypesRepository(db);
            IUsersRepository               usersRepository               = new UsersRepository(db);

            string sortOrder  = !string.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC";
            string sortColumn = !string.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "WorkDonePK";
            string ordering   = sortColumn + " " + sortOrder;

            ordering = ordering.Trim();

            //grid filters ddl
            ViewBag.ToDoLists     = new SelectList(toDoListsRepository.GetValid().OrderBy("Name ASC").ToList(), "ToDoListPK", "Name", toDoListFK);
            ViewBag.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").ToList(), "LegalEntityPK", "Name", legalEntityFK);
            ViewBag.WorkTypes     = new SelectList(workTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkTypePK", "Name", workTypeFK);
            ViewBag.WorkSubtypes  = new SelectList(workSubtypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkSubtypePK", "Name", workSubtypeFK);
            ViewBag.ServiceTypes  = new SelectList(serviceTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "ServiceTypePK", "Name", serviceTypeFK);
            ViewBag.Users         = new SelectList(usersRepository.GetValid().OrderBy("Username ASC").ToList(), "UserPK", "Username", userFK);

            if (legalEntityFK != null)
            {
                ViewBag.LegalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name;
            }
            if (toDoListFK != null)
            {
                ViewBag.ToDoList = toDoListsRepository.GetToDoListByPK((int)toDoListFK).Name;
            }
            if (workTypeFK != null)
            {
                ViewBag.WorkType = workTypesRepository.GetWorkTypeByPK((int)workTypeFK).Name;
            }
            if (workSubtypeFK != null)
            {
                ViewBag.WorkSubtype = workSubtypesRepository.GetWorkSubtypeByPK((int)workSubtypeFK).Name;
            }
            if (userFK != null)
            {
                ViewBag.User = usersRepository.GetUserByUserID((int)userFK).Username;
            }

            DateTime?dateFromTime = null;
            DateTime?dateToTime   = null;

            if (dateFrom != null && dateFrom != "")
            {
                dateFromTime = DateTime.ParseExact(dateFrom, "dd.MM.yyyy.", null);
            }
            if (dateTo != null && dateTo != "")
            {
                dateToTime = DateTime.ParseExact(dateTo, "dd.MM.yyyy.", null);
            }

            // Applying filters
            IQueryable <WorkDone> workDonesFiltered = WorkDoneView.GetWorkDonesReport(db, toDoListFK, legalEntityFK, workTypeFK, workSubtypeFK, serviceTypeFK, userFK, dateFromTime, dateToTime, timeSpentFrom, timeSpentTo, numberOfAttachmentsFrom, numberOfAttachmentsTo, description);

            IQueryable <WorkDoneView> workDones = WorkDoneView.GetWorkDoneView(workDonesFiltered,
                                                                               toDoListsRepository.GetValid(),
                                                                               workDoneAttachmentsRepository.GetValid(),
                                                                               legalEntitiesRepository.GetValidLegalEntities(),
                                                                               workTypesRepository.GetValid(),
                                                                               workSubtypesRepository.GetValid(),
                                                                               serviceTypesRepository.GetValid(),
                                                                               usersRepository.GetValid())
                                                  .OrderBy(ordering);

            // Excluding temporary deleted items from view
            workDonesPKPKsToExclude = new List <int>();

            // Empty session on first request
            if (Request.QueryString.Count == 0)
            {
                Session["workDonesPKPKsToExclude"] = null;
            }

            if (Session["workDonesPKPKsToExclude"] != null)
            {
                workDonesPKPKsToExclude = (List <int>)Session["workDonesPKPKsToExclude"];
                workDones = workDones.Where(c => !workDonesPKPKsToExclude.Contains(c.WorkDonePK));
            }

            return(View("WorkDone", workDones.ToList()));
        }
Exemple #18
0
        public ActionResult Edit(AssessmentsView assessmentView, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                IAssessmentsRepository assessmentsRepository = new AssessmentsRepository(db);
                Assessment             assessment            = assessmentsRepository.GetAssessmentByPK((int)assessmentView.AssessmentPK);

                IAssessmentAnswersRepository assessmentAnswersRepository = new AssessmentAnswersRepository(db);

                // Delete old values
                assessmentAnswersRepository.Delete(a => a.AssessmentFK == assessment.AssessmentPK);

                // Add new values
                IAssessmentGroupsRepository    assessmentGroupsRepository    = new AssessmentGroupsRepository(db);
                IAssessmentQuestionsRepository assessmentQuestionsRepository = new AssessmentQuestionsRepository(db);
                IAssessmentTypesRepository     assessmentTypesRepository     = new AssessmentTypesRepository(db);

                assessmentView.AssessmentsTypesView = AssessmentsView.FillQuiz(assessmentTypesRepository.GetValid(), assessmentGroupsRepository, assessmentQuestionsRepository, form);

                // Fetching answered type
                AssessmentsTypeView atw = assessmentView.AssessmentsTypesView.Where(a => a.AssessmentType.AssessmentTypePK == assessmentView.AssessmentTypeFK).First();

                List <AssessmentAnswers> assessmentAnswers = AssessmentAnswerView.ExtractQuizAnswers(atw, assessment.AssessmentPK);

                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                LegalEntity legalEntity             = legalEntitiesRepository.GetLegalEntityByPK((int)assessmentView.LegalEntityFK);
                bool        activityHighRisky       = legalEntity.Activity.HighRisk != null && (bool)legalEntity.Activity.HighRisk ? true : false;
                bool        activityLowRisky        = legalEntity.Activity.LowRisk != null && (bool)legalEntity.Activity.LowRisk ? true : false;
                bool        headquarterCountryRisky = legalEntity.Country.Risk != null && (bool)legalEntity.Country.Risk ? true : false;

                IRisksRepository risksRepository = new RisksRepository(db);
                if (activityHighRisky || headquarterCountryRisky) // check explicitly if related legalEntity activity is high risk
                {
                    assessmentView.RiskFK = risksRepository.GetRiskByName("Visok").RiskPK;
                }
                else if (activityLowRisky) // check explicitly if related legalEntity activity is low risk
                {
                    assessmentView.RiskFK = risksRepository.GetRiskByName("Nizak").RiskPK;
                }
                else // run assesment quiz
                {
                    ILegalEntityOwnersRepository  legalEntityOwnersRepository = new LegalEntityOwnersRepository(db);
                    IQueryable <LegalEntityOwner> legalEntityOwnersTable      = legalEntityOwnersRepository.GetValid();
                    ICountriesRepository          countriesRepository         = new CountriesRepository(db);

                    IActivitiesRepository activitiesRepository = new ActivitiesRepository(db);

                    List <LegalEntityOwner> coList = legalEntityOwnersRepository.GetFirstLegalEntityOwnersForLegalEntity((int)assessmentView.LegalEntityFK).ToList();

                    legalEntityOwnersTable = LegalEntityOwnerView.GetLegalEntityOwnersForLegalEntity(Convert.ToInt32(assessmentView.LegalEntityFK), coList, legalEntityOwnersTable);

                    IQueryable <LegalEntity> legalEntityView = LegalEntityOwnerView.GetRelatedLegalEntities(legalEntityOwnersTable, legalEntitiesRepository.GetValid(), countriesRepository.GetValid(), activitiesRepository.GetValid());

                    // check owners risks
                    bool ownersResidenceCountryRisky = false;
                    bool ownersActivitiesHighlyRisky = false;
                    bool ownersActivitiesLowRisky    = false;

                    if (legalEntityView.Count() > 0)
                    {
                        if (legalEntityView.ToList().TrueForAll(le => le.Country.Risk == null || (le.Country.Risk != null && (bool)le.Country.Risk != true)) == false)
                        {
                            ownersResidenceCountryRisky = true;
                        }

                        if (legalEntityView.ToList().TrueForAll(le => le.Activity == null || (le.Activity.HighRisk == null || (le.Activity.HighRisk != null && (bool)le.Activity.HighRisk != true))) == false)
                        {
                            ownersActivitiesHighlyRisky = true;
                        }

                        if (legalEntityView.ToList().TrueForAll(le => le.Activity == null || (le.Activity.LowRisk == null || (le.Activity.LowRisk != null && (bool)le.Activity.LowRisk != true))) == false)
                        {
                            ownersActivitiesLowRisky = true;
                        }
                    }

                    // check form
                    bool allAnswersYes = false;
                    bool allAnswersNo  = false;
                    bool mixedAnswers  = false;

                    if (assessmentAnswers.TrueForAll(aa => aa.AssessmentAnswer != null && (bool)aa.AssessmentAnswer == true))
                    {
                        allAnswersYes = true;
                    }

                    if (assessmentAnswers.TrueForAll(aa => aa.AssessmentAnswer != null && (bool)aa.AssessmentAnswer == false))
                    {
                        allAnswersNo = true;
                    }

                    if (allAnswersYes == false && allAnswersNo == false)
                    {
                        mixedAnswers = true;
                    }

                    // check general conditions
                    if (ownersActivitiesLowRisky)
                    {
                        assessmentView.RiskFK = risksRepository.GetRiskByName("Nizak").RiskPK;
                    }
                    else if (allAnswersYes || ownersResidenceCountryRisky || ownersActivitiesHighlyRisky)
                    {
                        assessmentView.RiskFK = risksRepository.GetRiskByName("Visok").RiskPK;
                    }
                    else if (allAnswersNo || mixedAnswers)
                    {
                        assessmentView.RiskFK = risksRepository.GetRiskByName("Srednji").RiskPK;
                    }
                }

                if (assessmentAnswers.Count() > 0)
                {
                    assessmentAnswersRepository.AddAll(assessmentAnswers);
                    assessmentAnswersRepository.SaveChanges();
                }

                assessmentView.ConvertTo(assessmentView, assessment);
                assessmentsRepository.SaveChanges();

                TempData["message"] = LayoutHelper.GetMessage("UPDATE", assessment.AssessmentPK);

                return(RedirectToAction("Index", "Assessment"));
            }
            else
            {
                IAssessmentGroupsRepository    assessmentGroupsRepository    = new AssessmentGroupsRepository(db);
                IAssessmentQuestionsRepository assessmentQuestionsRepository = new AssessmentQuestionsRepository(db);

                //Assessment types ddl
                IAssessmentTypesRepository assessmentTypesRepository = new AssessmentTypesRepository(db);
                assessmentView.AssessmentTypes = new SelectList(assessmentTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "AssessmentTypePK", "Name");

                //legalEntities ddl
                ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db);
                assessmentView.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().ToList(), "LegalEntityPK", "Name");

                assessmentView.AssessmentsTypesView = AssessmentsView.FillQuiz(assessmentTypesRepository.GetValid(), assessmentGroupsRepository, assessmentQuestionsRepository, form);

                return(View(assessmentView));
            }
        }