예제 #1
0
        public ActionResult GetBSOInvoice(BSOSaveDataModel model)
        {
            List <ReferenceUniversalItem> DP = referenceBusinessLogic.GetUniversalList(Constants.DeliveryPointRef);
            string deliveryPointName         = DP.Where(m => m.Id == model.DeliveryPointId).FirstOrDefault().Name;
            long?  deliveryPointHeadId       = DP.Where(m => m.Id == model.DeliveryPointId).FirstOrDefault().DeliveryPointHeadId;
            List <SelectListItem> Users      = ReferencesProvider.GetUsers();
            string fio;

            if (deliveryPointHeadId != null)
            {
                fio = Users.Where(a => a.Value == deliveryPointHeadId.ToString()).Select(b => b.Text).FirstOrDefault();
            }
            else
            {
                fio = CurrentUser.Fullname;
            }

            List <string> listBsoNumber = new List <string>();

            listBsoNumber.Add(model.TemporaryPolicyNumber);
            BSOInvoice printedForm = new BSOInvoice(listBsoNumber, fio, deliveryPointName);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Накладная БСО (ВС).xls")));
        }
예제 #2
0
        public ActionResult AddToClient(ClientVisitSaveDataModel model)
        {
            long clientId = model.ClientId.Value;

            model.Validate(new ModelValidationContext()
            {
                currenUser = CurrentUser
            });
            model.IsSuccessfullySaved = model.IsValid();
            if (!model.IsValid())
            {
                model.TemporaryPolicyNumber = string.Empty;
                return(View("Details", model));
            }
            else
            {
                ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData());
                model.VisitGroupId = result.VisitGroupId;
                model.ClientId     = result.ClientID;
                model.VisitId      = result.ClientVisitID;
                if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber))
                {
                    BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber));
                    bsoBusinessLogic.BSO_Save((bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser)).GetBSOSaveData());
                }
                model.SetFlagPrintReport();
                //return View("Create", model);
                return(View("Details", model));

                //нет
                //return RedirectToAction("Details", "Client", new { id = clientId });
            }
        }
예제 #3
0
        public ActionResult Create(ClientVisitSaveDataModel model)
        {
            model.Comment = model.Comment + Environment.NewLine +
                            " Место выдачи: " + model.DeliveryCenters.Where(a => a.Value == model.DeliveryCenterId.ToString()).Select(b => b.Text).FirstOrDefault() + Environment.NewLine +
                            " Категория клиента: " + model.UralsibClientCategories.Where(a => a.Value == model.ClientCategoryId.ToString()).Select(b => b.Text).FirstOrDefault() + Environment.NewLine;
            model.Registrator = new UserModel(userBusinessLogic.User_GetByLogin(this.HttpContext.User.Identity.Name));
            model.Validate(new ModelValidationContext()
            {
                currenUser = CurrentUser
            });
            model.IsSuccessfullySaved = model.IsValid();
            if (model.IsValid())
            {
                ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData());
                model.VisitGroupId = result.VisitGroupId;
                model.VisitId      = result.ClientVisitID;
                model.ClientId     = result.ClientID;
                if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber))
                {
                    BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber));
                    bsoBusinessLogic.BSO_Save((bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser)).GetBSOSaveData());
                }

                //return RedirectToAction("Details", "Client", new { id = result.ClientID });
                model.SetFlagPrintReport();
                return(View(model));
            }
            else
            {
                return(View(model));
            }
        }
예제 #4
0
 public ActionResult Edit(long?id)
 {
     if (id != null)
     {
         BSO bso = bsoBusinessLogic.BSO_GetByID((long)id);
         BSOSaveDataModel model = new BSOSaveDataModel(bso);
         model.Comment    = null;
         model.StatusDate = DateTime.Now;
         return(PartialView(model));
     }
     else
     {
         BSOSaveDataModel model = new BSOSaveDataModel();
         return(PartialView(model));
     }
 }
예제 #5
0
        public ActionResult Edit(BSOSaveDataModel model)
        {
            long?BSO_Id = model.Id;

            model.Validate(new ModelValidationContext()
            {
                currenUser = CurrentUser
            });
            model.IsSuccessfullySaved = model.IsValid();
            model.GetAvailableBSOStatus(model.StatusId, true);
            if (Request.IsAjaxRequest())
            {
                if (model.IsValid())
                {
                    model.UserId = CurrentUser.Id;
                    if (model.StatusId == (long)ListBSOStatusID.OnDelivery)
                    {
                        model.FlagPrintReport = true;
                    }
                    bsoBusinessLogic.BSO_Save(model.GetBSOSaveData());
                    return(PartialView("Edit", model));
                }
                else
                {
                    return(PartialView("Edit", model));
                }
            }
            else
            {
                if (model.IsValid())
                {
                    model.UserId = CurrentUser.Id;
                    bsoBusinessLogic.BSO_Save(model.GetBSOSaveData());
                    return(RedirectToAction("BSOHistory", "BSO", new { id = BSO_Id }));
                }
                else
                {
                    return(View("BSO"));
                    //return RedirectToAction("BSOHistory", "BSO", new { id = BSO_Id });
                }
            }
        }
예제 #6
0
        public ActionResult MassChanges(BSOListModel bsoListModel)
        {
            long     newStatus      = (long)bsoListModel.SearchCriteriaModel.CurrentStatusId;
            long?    newDelivery    = bsoListModel.SearchCriteriaModel.NewDeliveryPointId;
            long?    newResponsible = bsoListModel.SearchCriteriaModel.NewResponsibleID;
            DateTime?newStatusDate  = bsoListModel.SearchCriteriaModel.NewStatusDate;

            long countPrintBso = 0;

            //Регистратор не может изменить 'Точку выдачи' и 'Ответственного'
            if (Role.Registrator.Id == Role.GetRealRole(CurrentUser).Id)
            {
                bsoListModel.SearchCriteriaModel.NewDeliveryPointId = CurrentUser.DeliveryPoint.Id;
                newDelivery = CurrentUser.DeliveryPoint.Id;
                bsoListModel.SearchCriteriaModel.NewResponsibleID = bsoListModel.SearchCriteriaModel.ResponsibleID;
                newResponsible = bsoListModel.SearchCriteriaModel.ResponsibleID;
                bsoListModel.SearchCriteriaModel.Messages.Add("В роли Регистратор, вы не можете изменить Ответственного или Точку Выдачи");
            }

            //Ответственный не может изменить 'Ответственного'
            if (Role.ResponsibleBSO.Id == Role.GetRealRole(CurrentUser).Id &&
                (bsoListModel.SearchCriteriaModel.NewResponsibleID != bsoListModel.SearchCriteriaModel.ResponsibleID))
            {
                bsoListModel.SearchCriteriaModel.NewResponsibleID = bsoListModel.SearchCriteriaModel.ResponsibleID;
                newResponsible = bsoListModel.SearchCriteriaModel.ResponsibleID;
                bsoListModel.SearchCriteriaModel.Messages.Add("В роли Ответственного, вы не можете изменить 'Ответственного'");
            }

            BSOSearchCriteria oldCriteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria();

            bsoListModel.SearchCriteriaModel.Validate(new ModelValidationContext()
            {
                currenUser = CurrentUser
            });
            bsoListModel.SearchCriteriaModel.IsSuccessfullySaved = bsoListModel.SearchCriteriaModel.IsValid();
            if (Request.IsAjaxRequest())
            {
                if (bsoListModel.SearchCriteriaModel.IsValid())
                {
                    BSOSearchCriteria  criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria();
                    DataPage <BSOInfo> listBso  = bsoBusinessLogic.BSO_Find(
                        criteria,
                        new List <SortCriteria <BSOSortField> >(),
                        new PageRequest()
                    {
                        PageNumber = bsoListModel.PageNumber, PageSize = int.MaxValue
                    });

                    BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel()
                    {
                        StatusId          = newStatus,
                        ResponsibleID     = newResponsible,
                        PolicyPartyNumber = bsoListModel.SearchCriteriaModel.PolicyPartyNumber,
                        DeliveryPointId   = newDelivery,
                        UserId            = CurrentUser.Id,
                        Comment           = string.Format("Массовая смена статуса")
                    };

                    if (listBso.Count == 0)
                    {
                        bsoListModel.SearchCriteriaModel.IsSuccessfullySaved = false;
                    }
                    foreach (var b in listBso)
                    {
                        //если не указана новая точка выдачи, то сохраняем прежную
                        //если указана - записываем новую
                        if (newDelivery == null)
                        {
                            bsoSaveDataModel.DeliveryPointId = b.DeliveryPointId;
                        }
                        else
                        {
                            bsoSaveDataModel.DeliveryPointId = newDelivery;
                        }

                        //если не указан новый ответственный, то сохраняем прежнего
                        //если указан - записываем нового
                        if (newResponsible == null)
                        {
                            bsoSaveDataModel.ResponsibleID = b.ResponsibleID;
                        }
                        else
                        {
                            bsoSaveDataModel.ResponsibleID = newResponsible;
                        }

                        //если не указана новая дата статуса, то сохраняем прежную
                        //если указан - записываем новую
                        if (newStatusDate == null)
                        {
                            bsoSaveDataModel.StatusDate = b.StatusDate;
                        }
                        else
                        {
                            bsoSaveDataModel.StatusDate = newStatusDate;
                        }

                        bsoSaveDataModel.Id = b.Id;
                        BSO.SaveData save = bsoSaveDataModel.GetBSOSaveData();
                        bsoBusinessLogic.BSO_Set(save);
                    }
                    countPrintBso = listBso.Count;
                }
                else
                {
                    //nothing
                }
            }
            else
            {
                return(RedirectToAction("Index", "BSO"));
            }

            DataPage <BSOInfo> bsos = bsoBusinessLogic.BSO_Find(
                oldCriteria,
                new List <SortCriteria <BSOSortField> >(),
                new PageRequest()
            {
                PageNumber = bsoListModel.PageNumber, PageSize = bsoListModel.PageSize
            });
            BSOListModel model = new BSOListModel()
            {
                Items = bsos.Data.Select(item => new BSOBaseInfoModel(item)),
                SearchCriteriaModel = new BSOSearchCriteriaModel(oldCriteria),
                PageNumber          = bsoListModel.PageNumber,
                PageSize            = bsoListModel.PageSize,
                TotalCount          = bsos.TotalCount
            };

            model.SearchCriteriaModel.Messages.AddRange(bsoListModel.SearchCriteriaModel.Messages);
            model.SearchCriteriaModel.CurrentStatusId     = newStatus;
            model.SearchCriteriaModel.NewDeliveryPointId  = newDelivery;
            model.SearchCriteriaModel.NewResponsibleID    = newResponsible;
            model.SearchCriteriaModel.IsSuccessfullySaved = bsoListModel.SearchCriteriaModel.IsSuccessfullySaved;
            model.GetAvailableBSOStatus(bsoListModel.SearchCriteriaModel.StatusId, true);
            //печатаем отчет, если статус изменился: На точке
            if (model.SearchCriteriaModel.CurrentStatusId == (long)ListBSOStatusID.OnDelivery && model.SearchCriteriaModel.IsSuccessfullySaved.Value)
            {
                model.FlagPrintReport = countPrintBso;
            }
            else
            {
                model.FlagPrintReport = 0;
            }
            return(PartialView("MassChanges", model));
        }
예제 #7
0
        public ActionResult Edit(long?id, ClientVisitSaveDataModel model)
        {
            model.Validate(new ModelValidationContext()
            {
                currenUser = CurrentUser
            });
            model.IsSuccessfullySaved = model.IsValid();
            model.Registrator         = new UserModel(userBusinessLogic.User_Get(model.Registrator.Id.Value));
            if (Request.IsAjaxRequest())
            {
                if (model.IsValid())
                {
                    ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData());
                    model.VisitGroupId = result.VisitGroupId;
                    model.ClientId     = result.ClientID;
                    model.VisitId      = result.ClientVisitID;
                    if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber))
                    {
                        BSO bso = bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber);
                        BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bso);
                        bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser);
                        bsoSaveDataModel.Validate(new ModelValidationContext());
                        bsoSaveDataModel.IsSuccessfullySaved = model.IsValid();
                        if (bsoSaveDataModel.IsValid())
                        {
                            bsoBusinessLogic.BSO_Save(bsoSaveDataModel.GetBSOSaveData());
                        }
                    }
                    ClientVisitSaveDataModel m = new ClientVisitSaveDataModel(CurrentUser, clientBusinessLogic.ClientVisit_Get(model.VisitId.Value));
                    m.GetMessagesNotCritical(model);
                    m.IsSuccessfullySaved = true;
                    m.SetFlagPrintReport();
                    return(PartialView("Edit", m));
                }
                else
                {
                    return(PartialView("Edit", model));
                }
            }
            else
            {
                var t  = model.IsValid();
                var tt = model.IsValidNotCritical();
                if (model.IsValid())
                {
                    ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData());
                    model.VisitGroupId = result.VisitGroupId;
                    model.ClientId     = result.ClientID;
                    model.VisitId      = result.ClientVisitID;
                    //TempData["ClientVisitSaveDataModel"] = new ClientVisitSearchCriteriaModel()
                    TempData["ClientVisitSaveDataModel"] = new ClientSearchCriteriaModel()
                    {
                        Firstname  = model.NewClientInfo.Firstname,
                        Secondname = model.NewClientInfo.Secondname,
                        Lastname   = model.NewClientInfo.Lastname,
                        Birthday   = model.NewClientInfo.Birthday
                    };
                    if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber))
                    {
                        BSO bso = bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber);
                        if (bso != null)
                        {
                            BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bso);
                            bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser);
                            bsoSaveDataModel.Validate(new ModelValidationContext());
                            bsoSaveDataModel.IsSuccessfullySaved = model.IsValid();
                            if (bsoSaveDataModel.IsValid())
                            {
                                bsoBusinessLogic.BSO_Save(bsoSaveDataModel.GetBSOSaveData());
                            }
                        }
                    }

                    //Если нет никаких ошибок вообще - перебрасываем в Клиенты с поиском этого клиента
                    if (model.IsValidNotCritical())
                    {
                        return(RedirectToAction("Index", "Client"));
                    }
                    else
                    {
                        return(View("Details", model));
                    }
                    //return RedirectToAction("Index");
                }
                else
                {
                    return(View("Details", model));
                }
            }
        }