Пример #1
0
        public ActionResult SendProtocol(PP_Protocols protocol)
        {
            try {
                var  user  = UserHelper.GetCurrentEmployee();
                bool isNew = !(protocol.Id != Guid.Empty);
                //save new

                Guid protocolId = isNew ? Guid.NewGuid() : protocol.Id;

                if (isNew)
                {
                    protocol.Id = protocolId;
                }

                protocol.OwnerId      = user.Id;
                protocol.ProtocolDate = DateTime.Now;
                protocol.CreatedDate  = DateTime.Now;

                if (!isNew)
                {
                    db.PP_ProtocolComissionMembers.RemoveRange(db.PP_ProtocolComissionMembers.Where(x => x.ProtocolId == protocolId));
                }
                foreach (var member in protocol.PP_ProtocolComissionMembers)
                {
                    member.Id          = Guid.NewGuid();
                    member.CreatedDate = DateTime.Now;
                    member.ProtocolId  = protocolId;
                    db.PP_ProtocolComissionMembers.Add(member);
                }

                if (!isNew)
                {
                    db.PP_ProtocolProductPrices.RemoveRange(db.PP_ProtocolProductPrices.Where(x => x.ProtocolId == protocolId));
                }
                foreach (var productPrice in protocol.PP_ProtocolProductPrices)
                {
                    productPrice.Id          = Guid.NewGuid();
                    productPrice.CreatedDate = DateTime.Now;
                    productPrice.ProtocolId  = protocolId;
                    db.PP_ProtocolProductPrices.Add(productPrice);
                }
                //db.Entry(protocol).State = EntityState.Modified;

                if (isNew)
                {
                    db.PP_Protocols.Add(protocol);
                }
                else
                {
                    db.Entry(protocol).State = EntityState.Modified;
                }
                db.SaveChanges();
                return(Json("Ok", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex) {
                LogHelper.Log.Error("Не удалось сохранить протокол", ex);
                throw;
            }
        }
Пример #2
0
        public ActionResult ProtocolForm(Guid?id)
        {
            var user         = UserHelper.GetCurrentEmployee();
            var ppRepository = new PriceProjectRepository();

            PP_Protocols protocol;

            if (id.HasValue)
            {
                protocol = db.PP_Protocols.FirstOrDefault(x => x.Id == id.Value);
                if (protocol == null)
                {
                    LogHelper.Log.ErrorFormat("Не удалось найти протокол по идентификатору {0}", id.Value);
                    return(null);
                }
            }
            else
            {
                protocol = new PP_Protocols {
                    ProtocolDate = DateTime.Now,
                    Type         = (int)ProtocolType.Protocol1,
                    Status       = (int)ProtocolStatus.Draft,
                    Number       = ppRepository.GenerateProtocolNumber(),
                    IsImn        = false
                };
            }

            var model = new ProtocolModel {
                Guid     = Guid.NewGuid(),
                Protocol = protocol
            };

            if (protocol.Status == (int)ProtocolStatus.Draft)
            {
                ViewBag.Leadership = ppRepository.GetLeadership().ToList().Select(e => new SelectListItem
                {
                    Value = e.Id.ToString(),
                    Text  = e.FullName
                }).ToList();

                var list = new List <SelectListItem>();
                list.AddRange(EnumHelper.GetDisplayNameEnumList <ProtocolType>().ToList().Select(x => new SelectListItem
                {
                    Value = x.Key.ToString(),
                    Text  = x.Value
                }));
                ViewBag.ProtocolTypes = list;

                ViewBag.Requesters = ppRepository.GetRequesters().ToList().Select(e => new SelectListItem
                {
                    Value = e.Id.ToString(),
                    Text  = e.DisplayName
                }).ToList();
                return(PartialView(model));
            }
            else
            {
                ViewBag.HasEdit = model.Protocol.OwnerId == user.Id;

                var file = FileHelper.GetProtocolAttachFile(db, protocol.Id);
                if (file != null)
                {
                    ViewBag.AttFileName      = file.Name;
                    ViewBag.AttFileExtension = file.Extension;
                    ViewBag.AttFileSize      = file.Length;
                }

                var employee = ppRepository.GetEmployeeById(protocol.RequesterId.Value);
                ViewBag.RequesterDisplayName = employee != null ? employee.DisplayName : "";
                employee = ppRepository.GetEmployeeById(protocol.ChiefId.Value);
                ViewBag.ChiefDisplayName = employee != null ? employee.DisplayName : "";

                ViewBag.ComissionMembers = string.Join("<br/>", protocol.PP_ProtocolComissionMembers.Select(x => x.Employee.FullName).ToArray());

                return(PartialView("ProtocolFormView", model));
            }
        }