Ejemplo n.º 1
0
        public static IList <NormaContent> reorderNormaContents(IList <NormaContent> normaContents, bool isWinter)
        {
            List <NormaContent> nc = new List <NormaContent>(normaContents);

            nc.Sort();
            normaContents = nc;

            NormaContent item = null;

            for (int i = 0, j = 0; j < normaContents.Count; i++)
            {
                item = normaContents[i];
                if (item.IsActive == false)
                {
                    normaContents.Remove(item);
                    i--;
                    continue;
                }
                if (item.InShop || (isWinter == false && item.NomGroup.IsWinter))
                {
                    normaContents.Remove(item);
                    i--;
                    continue;
                }
                if (item.NomGroup.NomBodyPart.Id == DataGlobals.SIZ_SIZE_ID)
                {
                    normaContents.Remove(item);
                    normaContents.Add(item);
                    i--;
                }
                j++;
            }
            return(normaContents);
        }
Ejemplo n.º 2
0
        public static NormaContent rebuildNormaContent(NormaContent inNormaContent)
        {
            NormaContent normaContent = new NormaContent(inNormaContent.Id, inNormaContent.Quantity, inNormaContent.UsePeriod);

            normaContent.NormaId  = inNormaContent.NormaId;
            normaContent.IsActive = inNormaContent.IsActive;
//            if (inNormaContent.QuantityTON != 0)
            normaContent.QuantityTON = inNormaContent.QuantityTON;
//            else
//                normaContent.QuantityTON = inNormaContent.Quantity;
            NomGroup nomGroup = rebuildNomGroup(inNormaContent.NomGroup);

            normaContent.NomGroup = nomGroup;
            normaContent.InShop   = inNormaContent.InShop;
            List <NormaNomGroup> normaNomGroups = new List <NormaNomGroup>();

            foreach (var item in inNormaContent.NormaNomGroups)
            {
                NormaNomGroup normaNomGroup = rebuildNormaNomGroup(item);
                normaNomGroups.Add(normaNomGroup);
            }
            normaContent.NormaNomGroups = normaNomGroups;
            string normaContentInfo = "";

            foreach (var item in normaContent.NormaNomGroups)
            {
                if (item.IsBase == false)
                {
                    normaContentInfo = normaContentInfo + item.NomGroup.Name + "; ";
                }
            }
            normaContent.NormaContentInfo = normaContentInfo;
            return(normaContent);
        }
Ejemplo n.º 3
0
        public ActionResult Delete()
        {
            string idOrg      = getCurrentEnterpriseId();
            string shopNumber = Session["shopNumber"].ToString();

            int          idOrganization = System.Int32.Parse(idOrg);
            Organization organization   = organizationRepository.Get(idOrganization);
            IList <WorkerCardContent> workerCardContents = null;
            Norma norma = new Norma();

            if (TryUpdateModel <Norma>(norma))
            {
                Dictionary <string, object> queryParams = new Dictionary <string, object>();
                norma = normaRepository.Get(norma.Id);

                queryParams.Clear();
                queryParams.Add("Norma.Id", norma.Id);
                string flag = "";
                IEnumerable <NormaOrganization> workplaces = normaOrganizationRepository.FindAll(queryParams);
                foreach (var workplace in workplaces)
                {
                    normaOrganizationRepository.Delete(workplace);
                }
                NormaContent normaContent = null;

                for (int i = 0; i < norma.NormaContents.Count; i++)
                {
                    normaContent = norma.NormaContents[i];
                    queryParams.Clear();
                    queryParams.Add("NormaContent", normaContent);
                    workerCardContents = workerCardContentRepository.GetByLikeCriteria(queryParams);
                    if (workerCardContents.Count > 0)
                    {
                        flag = "1";
                        normaContent.IsActive = false;
                    }
                    else
                    {
                        norma.NormaContents.Remove(normaContent);
                        normaContentRepository.Delete(normaContent);
                        i--;
                    }
                }
                if (flag == "1")
                {
                    //normaContents = newNormaContents;
                    //norma.NormaContents = normaContents;
                    norma.Organization = organization;
                    norma.IsActive     = false;
                    normaRepository.SaveOrUpdate(norma);
                }
                else
                {
                    normaRepository.Delete(norma);
                }
            }
            //HttpContext.Cache.Remove("NormaId");
            Session.Remove("NormaId");
            return(_SelectionClientSide_Normas(shopNumber, Session["shopInfo"].ToString()));
        }
Ejemplo n.º 4
0
        public void ChangeContentDel(NormaContent normaContent)
        {
            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            queryParams.Add("NormaId", normaContent.NormaId);
            queryParams.Add("IsActive", true);
            IList <NormaContent> normaContents = normaContentRepository.FindAll(queryParams);

            foreach (var item in normaContents)
            {
                foreach (var nng in item.NormaNomGroups)
                {
                    queryParams.Clear();
                    queryParams.Add("NormaContent.Id", normaContent.Id);
                    IList <WorkerCardContent> workerCardContents = workerCardContentRepository.FindAll(queryParams);
                    foreach (var wcc in workerCardContents)
                    {
                        if (wcc.Storage.Nomenclature.NomGroup.Id == nng.NomGroup.Id)
                        {
                            wcc.NormaContent = nng.NormaContent;
                            workerCardContentRepository.SaveOrUpdate(wcc);
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public ActionResult SaveNormaNomGroup(string id)
        {
            string NormaContentId = null;

            if (Session["NormaContentId"] != null)
            {
                NormaContentId = Session["NormaContentId"].ToString();
            }
//            NormaNomGroup normaNomGroup = new NormaNomGroup();
            NormaNomGroup newNormaNomGroup = normaNomGroupRepository.Get(int.Parse(id));
            NormaNomGroup normaNomGroup    = new NormaNomGroup();

            normaNomGroup.NomGroup = newNormaNomGroup.NomGroup;
            NormaContent normaContent = normaContentRepository.Get(int.Parse(NormaContentId));


            if (TryUpdateModel <NormaNomGroup>(normaNomGroup, null, new string[] { "NomGroup" }, new string[] { "NormaContent" }))

            {
                if (normaNomGroup.NomGroup.Id != newNormaNomGroup.NomGroup.Id)
                {
                    ValidateNormaNomGroup(normaContent.Id, normaNomGroup);
                }

                if (ModelState.IsValid)
                {
                    newNormaNomGroup.NormaContent = normaContent;
                    newNormaNomGroup.NomGroup     = normaNomGroup.NomGroup;
                    normaNomGroupRepository.SaveOrUpdate(newNormaNomGroup);
                    ChangeContentIns(newNormaNomGroup);
                }
            }

            return(_Selection_NormaNomGroups(NormaContentId));
        }
Ejemplo n.º 6
0
        public ActionResult InsertContent()
        {
            int                   NormaId        = int.Parse(Session["NormaId"].ToString());
            NormaContent          normaContent   = new NormaContent();
            IList <NormaNomGroup> normaNomGroups = new List <NormaNomGroup>();

            TryUpdateModel(normaContent);
            {
                ValidateContent(NormaId, normaContent, true);

                if (ModelState.IsValid)
                {
                    normaContent.NormaId = NormaId;
                    NormaNomGroup normaNomGroup = new NormaNomGroup();
                    normaNomGroup.NomGroup     = normaContent.NomGroup;
                    normaNomGroup.IsBase       = true;
                    normaNomGroup.NormaContent = normaContent;
                    normaNomGroups.Add(normaNomGroup);
                    normaContent.NormaNomGroups = normaNomGroups;
                    normaContent.IsActive       = true;


                    normaContentRepository.SaveOrUpdate(normaContent);
                    ChangeContentIns(normaNomGroup);
                }
            }

            return(_SelectionClientSide_NormaContents(NormaId.ToString()));
        }
Ejemplo n.º 7
0
        public void ValidateContent(int NormaId, NormaContent normaContent, bool isControlNomgroup)
        {
            if (isControlNomgroup == true)
            {
                Dictionary <string, object> queryParams = new Dictionary <string, object>();
                queryParams.Add("NormaId", NormaId);
                queryParams.Add("IsActive", true);
                IList <NormaContent> normaContents = normaContentRepository.FindAll(queryParams);
                foreach (var item in normaContents)
                {
                    foreach (var nng in item.NormaNomGroups)
                    {
                        if (nng.NomGroup.Id == normaContent.NomGroup.Id)
                        {
                            ModelState.AddModelError("NomGroup", "Группа  " + normaContent.NomGroup.Name + " уже добавлена в норму");
                        }
                    }
                }
            }
            if (normaContent.Quantity == 0)
            {
                ModelState.AddModelError("Quantity", "Количество не может быть 0");
            }

            if (normaContent.InShop == false && normaContent.UsePeriod == 0)
            {
                ModelState.AddModelError("UsePeriod ", "Период использования для СИЗ, выдаваемых в салоне, не должен быть 0");
            }
        }
Ejemplo n.º 8
0
        public static NormaNomGroup rebuildNormaNomGroup(NormaNomGroup inNormaNomGroup)
        {
            NormaNomGroup normaNomGroup = new NormaNomGroup(inNormaNomGroup.Id);

            normaNomGroup.NomGroup = rebuildNomGroup(inNormaNomGroup.NomGroup);
            normaNomGroup.IsBase   = inNormaNomGroup.IsBase;
            NormaContent nc = new NormaContent(inNormaNomGroup.NormaContent.Id);

            normaNomGroup.NormaContent = nc;
            return(normaNomGroup);
        }
Ejemplo n.º 9
0
        private Storage getStorageForWorkerNorma(NormaContent normaContent, Worker worker)
        //private Storage getStorageForWorkerNorma(NormaContent normaContent, IList<NomBodyPartSize> NomBodyPartSizes)
        {
            //Storage storage = null;
            List <Storage>  storages           = null;
            NomBodyPart     normaBodyPart      = normaContent.NomGroup.NomBodyPart;
            NomBodyPartSize workerBodyPartSize = null;

            foreach (var item in worker.NomBodyPartSizes)
            //foreach (var item in NomBodyPartSizes)
            {
                if (item.NomBodyPart.Id == normaBodyPart.Id)
                {
                    workerBodyPartSize = item;
                    break;
                }
            }

            Dictionary <string, object> query = new Dictionary <string, object>();

            query.Add("StorageName.Organization.Id", int.Parse(getCurrentEnterpriseId()));
            query.Add("Nomenclature.NomGroup.Id", normaContent.NomGroup.Id);
            query.Add("NomBodyPartSize.NomBodyPart.Id", normaBodyPart.Id);
            if (workerBodyPartSize != null && DataGlobals.SIZ_SIZE_ID != normaBodyPart.Id)
            {
                query.Add("NomBodyPartSize.SizeNumber", workerBodyPartSize.SizeNumber);
            }
            if (DataGlobals.CLOTH_SIZE_ID == normaBodyPart.Id)
            {
                query.Add("Growth.SizeNumber", worker.Growth);
            }
            storages = (List <Storage>)storageRepository.GetByCriteria(query);

            if (storages == null || storages.Count == 0)
            {
                query.Clear();
                query.Add("StorageName.Organization.Id", int.Parse(getCurrentEnterpriseId()));
                foreach (var normaNomGroup in normaContent.NormaNomGroups)
                {
                    query.Add("Nomenclature.NomGroup.Id", normaNomGroup.NomGroup.Id);
                    storages.AddRange(storageRepository.GetByLikeCriteria(query));
                    query.Remove("Nomenclature.NomGroup.Id");
                }
            }

            if (storages == null || storages.Count == 0)
            {
                storages.Add(new Storage());
            }

            return(storages[0]);
        }
Ejemplo n.º 10
0
        public ActionResult Copy(string Id)
        {
            Norma norma    = normaRepository.Get(int.Parse(Id));
            Norma newNorma = new Norma();

            newNorma.Organization = norma.Organization;
            newNorma.Name         = norma.Name + " (Копия)";
            newNorma.IsActive     = norma.IsActive;
            newNorma.NormaComment = norma.NormaComment;
            normaRepository.SaveOrUpdate(newNorma);

            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            queryParams.Add("NormaId", int.Parse(Id));
            queryParams.Add("IsActive", true);
            Dictionary <string, object> orderParams = new Dictionary <string, object>();

            orderParams.Add("Id", ASC);
            IEnumerable <NormaContent> normaContents = normaContentRepository.GetByCriteria(queryParams, orderParams);

            foreach (var item in normaContents)
            {
                NormaContent nc = new NormaContent();
                nc.Quantity    = item.Quantity;
                nc.QuantityTON = item.QuantityTON;
                nc.UsePeriod   = item.UsePeriod;
                nc.IsActive    = item.IsActive;
                nc.NormaId     = newNorma.Id;
                nc.NomGroup    = item.NomGroup;
                nc.InShop      = item.InShop;
                normaContentRepository.SaveOrUpdate(nc);
                foreach (var nng in item.NormaNomGroups)
                {
                    NomGroup     nomGroup = new NomGroup(nng.NomGroup.Id, nng.NomGroup.Name);
                    NomBodyPart  nb       = new NomBodyPart(nng.NomGroup.NomBodyPart.Id, nng.NomGroup.NomBodyPart.Name);
                    Organization o        = rebuildOrganization(nng.NomGroup.Organization);
                    nomGroup.Organization = o;
                    nomGroup.NomBodyPart  = nb;
                    NormaNomGroup ng = new NormaNomGroup();
                    ng.NomGroup     = nomGroup;
                    ng.IsBase       = nng.IsBase;
                    ng.NormaContent = nc;

                    normaNomGroupRepository.SaveOrUpdate(ng);
                }
            }
            ;
            return(View(viewName));
//            return _SelectionClientSide_Normas();
        }
Ejemplo n.º 11
0
        public ActionResult SaveContent(string Id)
        {
            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            queryParams.Add("Id", int.Parse(Id));
            NormaContent          newNormaContent   = normaContentRepository.FindOne(queryParams);
            IList <NormaNomGroup> newNormaNomGroups = new List <NormaNomGroup>();
            NormaContent          normaContent      = new NormaContent();

            newNormaNomGroups = newNormaContent.NormaNomGroups;
            if (TryUpdateModel <NormaContent>(normaContent, null, new string[] { "NomGroup", "Quantity", "UsePeriod", "InShop", "IsActive", "QuantityTON" }, new string[] { "NormaNomGroups" }))
            {
                if (newNormaContent.NomGroup.Id == normaContent.NomGroup.Id)
                {
                    ValidateContent(newNormaContent.NormaId, normaContent, false);
                }
                else
                {
                    ValidateContent(newNormaContent.NormaId, normaContent, true);
                }


                if (ModelState.IsValid)
                {
                    foreach (NormaNomGroup nng in newNormaNomGroups)
                    {
                        if (nng.IsBase)
                        {
                            newNormaNomGroups[newNormaNomGroups.IndexOf(nng)].NomGroup = normaContent.NomGroup;
                        }
                    }
                    newNormaContent.NomGroup    = normaContent.NomGroup;
                    newNormaContent.Quantity    = normaContent.Quantity;
                    newNormaContent.UsePeriod   = normaContent.UsePeriod;
                    newNormaContent.IsActive    = normaContent.IsActive;
                    newNormaContent.InShop      = normaContent.InShop;
                    newNormaContent.QuantityTON = normaContent.QuantityTON;

                    normaContentRepository.SaveOrUpdate(newNormaContent);
                    //ChangeContentIns(newNormaContent.NomGroup);
                }
            }
            return(_SelectionClientSide_NormaContents(newNormaContent.NormaId.ToString()));
        }
Ejemplo n.º 12
0
        public ActionResult _SelectionClientSide_NormaContents(string id)
        {
            Dictionary <string, object> queryParams = new Dictionary <string, object>();
            List <NormaContent>         model       = new List <NormaContent>();

            int idNorma = 0;

            if (id == null)
            {
                if (Session["NormaId"] != null)
                {
                    idNorma = int.Parse(Session["NormaId"].ToString());
                }
            }
            else
            {
                idNorma = int.Parse(id);
            }
            if (idNorma != 0)
            {
                Norma norma = normaRepository.Get(idNorma);
                Session.Add("NormaId", idNorma);
                queryParams.Add("NormaId", idNorma);
                queryParams.Add("IsActive", true);
                Dictionary <string, object> orderParams = new Dictionary <string, object>();
                orderParams.Add("NomGroup.IsWinter", ASC);
                orderParams.Add("NomGroup.NomBodyPart.Id", ASC);
                orderParams.Add("NomGroup.Name", ASC);
                IEnumerable <NormaContent> normaContents = normaContentRepository.GetByLikeCriteria(queryParams, orderParams);
                foreach (var item in normaContents)
                {
                    NormaContent nc = rebuildNormaContent(item);
                    nc.IsApproved = norma.IsApproved;

                    model.Add(nc);
                }
            }

            return(View(new GridModel <NormaContent>
            {
                Data = model
            }));
        }
Ejemplo n.º 13
0
        public ActionResult DeleteContent(int Id)
        {
            NormaContent normaContent = normaContentRepository.Get(Id);
            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            queryParams.Add("NormaContent", normaContent);
            IList <WorkerCardContent> workerCardContents = workerCardContentRepository.FindAll(queryParams);

            if (workerCardContents.Count == 0)
            {
                normaContentRepository.Delete(normaContent);
            }
            else
            {
                normaContent.IsActive = false;
                normaContentRepository.SaveOrUpdate(normaContent);
            }

            ChangeContentDel(normaContent);
            return(_SelectionClientSide_NormaContents(normaContent.NormaId.ToString()));
        }
Ejemplo n.º 14
0
        public ActionResult _GetNomenclaturesOnStorage(string normaContentId, string text)
        {
            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            List <Storage> storages = new List <Storage>();

            int code = -1;

            if (int.TryParse(text, out code))
            {
                queryParams.Add("Nomenclature.ExternalCode", text);
            }
            else
            {
                queryParams.Add("Nomenclature.Name", text);
            }
            queryParams.Add("StorageName.Organization.Id", int.Parse(getCurrentEnterpriseId()));

            if (normaContentId != null)
            {
                NormaContent normaContent = normaContentRepository.Get(int.Parse(normaContentId));

                foreach (var normaNomGroup in normaContent.NormaNomGroups)
                {
                    queryParams.Add("Nomenclature.NomGroup.Id", normaNomGroup.NomGroup.Id);
                    storages.AddRange(storageRepository.GetByLikeCriteria(queryParams));
                    queryParams.Remove("Nomenclature.NomGroup.Id");
                }
            }
            else
            {
                storages.AddRange(storageRepository.GetByLikeCriteria(queryParams));
            }

            return(new JsonResult
            {
                Data = new SelectList(storages, "Id", "StorageInfo")
            });
        }
Ejemplo n.º 15
0
        public void ValidateNormaNomGroup(int NormaContentId, NormaNomGroup normaNomGroup)
        {
            NormaContent normaContent = normaContentRepository.Get(NormaContentId);
            Dictionary <string, object> queryParams = new Dictionary <string, object>();

            queryParams.Add("NormaId", normaContent.NormaId);
            queryParams.Add("IsActive", true);
            IList <NormaContent> normaContents = normaContentRepository.FindAll(queryParams);

            foreach (var nc in normaContents)
            {
                queryParams.Clear();
                queryParams.Add("NormaContent", nc);
                IList <NormaNomGroup> normaNomGroups = normaNomGroupRepository.FindAll(queryParams);
                foreach (var nng in normaNomGroups)
                {
                    if (nng.NomGroup.Id == normaNomGroup.NomGroup.Id)
                    {
                        ModelState.AddModelError(nng.NomGroup.Id.ToString(), "Группа  " + normaNomGroup.NomGroup.Name + " уже добавлена в норму");
                    }
                }
            }
        }
Ejemplo n.º 16
0
        public ActionResult _TransferWorkerCard(int?workerWorkplaceId, int storageNameId, string listId, Boolean outNorma, string OperDate)
        {
            DateTime operDate;

            DateTime.TryParseExact(OperDate, DataGlobals.DATE_FORMAT, null, System.Globalization.DateTimeStyles.None, out operDate);
            ResultState resultState = new ResultState();

            resultState.Status = ResultState.OK;
            if (workerWorkplaceId != null)
            {
                Dictionary <string, object> query = new Dictionary <string, object>();
                Dictionary <string, object> order = new Dictionary <string, object>();
                query.Add("Worker.Id", workerWorkplaceId);
                query.Add("IsActive", true);
                order.Add("Storage.StorageName.Id", storageNameId);
                //Выбираем активные рабочие места
                IList <WorkerWorkplace> workerWorkplaces = workerWorkplaceRepository.GetByLikeCriteria(query);
                if (workerWorkplaces.Count == 1)
                {
                    WorkerWorkplace ww = workerWorkplaces[0];
                    //Выбираем активные рабочие места
                    // Запрет на одевание работника в салоне к которому он не приписан. Пока закомментировала, т.к. не уверена, что не будет последствий

                    /*
                     * if (ww.Organization.StorageName.Id != storageNameId)
                     * {
                     *  resultState.Status = ResultState.ERROR;
                     *  resultState.setMessage("НЕЛЬЗЯ ВЫПОЛНИТЬ ПЕРЕВОД!!! Работник приписан к складу " + ww.Organization.StorageName.StorageNumber);
                     * }
                     */
                    string   periodDateStr  = getConfigParamValue(configRepository, "periodDate", getCurrentEnterpriseId());
                    string   periodIsClosed = getConfigParamValue(configRepository, "periodIsClosed", getCurrentEnterpriseId());
                    DateTime periodDate;
                    DateTime.TryParseExact(periodDateStr, DataGlobals.DATE_FORMAT_FULL_YEAR, null, System.Globalization.DateTimeStyles.None, out periodDate);

                    // проверка на закрытие периода
                    if (periodIsClosed != null && periodIsClosed.Equals("1") && periodDate > operDate)
                    {
                        resultState.Status = ResultState.ERROR;
                        resultState.setMessage(OperDate + ": Период закрыт для изменений");
                    }

                    if (resultState.Status == ResultState.OK)
                    {
                        query.Clear();
                        query.Add("WorkerWorkplace", ww);
                        WorkerCardHead newWorkerCardHead = workerCardRepository.FindOne(query);
                        if (newWorkerCardHead == null)
                        {
                            newWorkerCardHead = new WorkerCardHead();
                            newWorkerCardHead.WorkerWorkplace = ww;
                        }
                        query.Clear();
                        query.Add("Organization", ww.Organization);
                        query.Add("Norma.Organization.Id", int.Parse(getCurrentEnterpriseId()));
                        query.Add("Norma.IsActive", true);
                        IList <NormaOrganization>  normaOrganizations = normaOrganizationRepository.GetByCriteria(query);
                        IList <NomenclatureSimple> list = getNomenclaturesByParam(listId);
                        string docNumber = "00000";
                        // Убрала ниже, чтобы можно было изменять номер документа
                        docNumber = operationRepository.GetNextDocNumber(DataGlobals.OPERATION_STORAGE_TRANSFER_OUT, getCurrentEnterpriseId());
                        int?skladId = null;
                        foreach (var item in list)
                        {
                            ResultState listResultState = new ResultState();
                            listResultState.Status = ResultState.OK;

                            WorkerCardContent oldWorkerCardContent = workerCardContentRepository.Get(item.Id);
                            if (skladId != null && skladId != oldWorkerCardContent.Storage.StorageName.Id)
                            {
                                docNumber = operationRepository.GetNextDocNumber(DataGlobals.OPERATION_STORAGE_TRANSFER_OUT, getCurrentEnterpriseId());
                            }

                            if (oldWorkerCardContent.StartDate >= operDate)
                            {
                                listResultState.Status = ResultState.ERROR;
                                listResultState.setMessage(item.Name + "   Дата перевода раньше даты выдачи!!! Введите текущую дату!");

                                resultState.Status = ResultState.ERROR;
                                resultState.setMessage(item.Name + "   Дата перевода раньше даты выдачи!!! Введите текущую дату!");
                            }

                            NormaContent newNormaContent = GetNewNormaContent(normaOrganizations, item.GroupId);
                            // Если на новом рабочем месте номенклатура не подходит по норме и выбрана опция
                            //Ставим старую норму
                            //Закомментировано, т.к. по просьбе УПУ не нужно переносить на руки, то что не по норме
                            if (newNormaContent == null && outNorma == true)
                            {
                                newNormaContent = oldWorkerCardContent.NormaContent;
                            }
//                        if (newNormaContent != null )
                            if (newNormaContent == null && outNorma != true)
                            {
                                listResultState.Status = ResultState.ERROR;
                                listResultState.setMessage(item.Name + " НЕ СООТВЕТСТВУЕТ новой норме. Выполните ВОЗВРАТ или СПИСАНИЕ по акту!");

                                resultState.Status = ResultState.ERROR;
                                resultState.setMessage(item.Name + " НЕ СООТВЕТСТВУЕТ новой норме. Выполните ВОЗВРАТ или СПИСАНИЕ по акту!");
                            }
                            else
                            {
                                Storage storageTo = null;
                                //Выбранный склад и склад номенклатуры совпадают
                                if (oldWorkerCardContent.Storage.StorageName.Id == storageNameId)
                                {
                                    storageTo = oldWorkerCardContent.Storage;
                                }
                                //Выбранный склад и склад номенклатуры не совпадают
                                else
                                {
                                    //Пытаемся найти номенклатуру на другом складе
                                    StorageName storageName = storageNameRepository.Get(storageNameId);
                                    if (storageName == null)
                                    {
                                        listResultState.Status = ResultState.ERROR;
                                        listResultState.setMessage("В справочнике не найден склад с идентификатором " + storageNameId + "!");

                                        resultState.Status = ResultState.ERROR;
                                        resultState.setMessage("В справочнике не найден склад с идентификатором " + storageNameId + "!");
                                    }
                                    if (listResultState.Status == ResultState.OK)
                                    {
                                        query.Clear();
                                        query.Add("Nomenclature", oldWorkerCardContent.Storage.Nomenclature);
                                        query.Add("StorageName", storageName);
                                        if (oldWorkerCardContent.Storage.Wear == null)
                                        {
                                            query.Add("[]Wear", "");
                                        }
                                        else
                                        {
                                            query.Add("Wear", oldWorkerCardContent.Storage.Wear);
                                        }
                                        if (oldWorkerCardContent.Storage.Growth == null)
                                        {
                                            query.Add("[]Growth", "");
                                        }
                                        else
                                        {
                                            query.Add("Growth", oldWorkerCardContent.Storage.Growth);
                                        }
                                        if (oldWorkerCardContent.Storage.NomBodyPartSize == null)
                                        {
                                            query.Add("[]NomBodyPartSize", "");
                                        }
                                        else
                                        {
                                            query.Add("NomBodyPartSize", oldWorkerCardContent.Storage.NomBodyPartSize);
                                        }
                                        IList <Storage> storages = storageRepository.GetByLikeCriteria(query);
                                        if (storages.Count > 0)
                                        {
                                            storageTo = storages[0];
                                        }
                                        else
                                        {
                                            //На новом складе не нашлась номенклатура
                                            storageTo                 = new Storage();
                                            storageTo.StorageName     = storageName;
                                            storageTo.Nomenclature    = oldWorkerCardContent.Storage.Nomenclature;
                                            storageTo.Quantity        = 0;
                                            storageTo.Price           = oldWorkerCardContent.Storage.Price;
                                            storageTo.Growth          = oldWorkerCardContent.Storage.Growth;
                                            storageTo.NomBodyPartSize = oldWorkerCardContent.Storage.NomBodyPartSize;
                                            storageTo.Wear            = oldWorkerCardContent.Storage.Wear;
                                            storageRepository.SaveOrUpdate(storageTo);
                                        }
                                    }
                                }
//                            if (resultState.Status == ResultState.OK)
                                if (listResultState.Status == ResultState.OK)

                                {
                                    //Создаем операцию на перевод по старому месту работы
                                    Operation oldOperation = new Operation();
                                    oldOperation.WorkerWorkplace = oldWorkerCardContent.WorkerCardHead.WorkerWorkplace;
                                    oldOperation.OperDate        = operDate; //DateTime.Now;
                                    oldOperation.Quantity        = oldWorkerCardContent.Quantity;
                                    oldOperation.OperType        = operTypeRepository.Get(DataGlobals.OPERATION_STORAGE_TRANSFER_OUT);
                                    oldOperation.Organization    = organizationRepository.Get(int.Parse(getCurrentEnterpriseId()));
                                    oldOperation.DocNumber       = docNumber;
                                    oldOperation.GiveOperation   = oldWorkerCardContent.GiveOperation;
                                    //oldOperation.DocDate=
                                    query.Clear();
                                    query.Add("OperType", oldOperation.OperType);
                                    IList <Motiv> motivs = motivRepository.GetByLikeCriteria(query);
                                    if (motivs.Count > 0)
                                    {
                                        oldOperation.Motiv = motivs[0];
                                    }
                                    oldOperation.Storage = oldWorkerCardContent.Storage;

                                    //Создаем операцию на перевод по новому месту работы
                                    Operation newOperation = new Operation();
                                    newOperation.WorkerWorkplace = ww;
                                    newOperation.OperDate        = operDate; //DateTime.Now;
                                    newOperation.Quantity        = oldWorkerCardContent.Quantity;
                                    newOperation.OperType        = operTypeRepository.Get(DataGlobals.OPERATION_STORAGE_TRANSFER_IN);
                                    newOperation.Organization    = organizationRepository.Get(int.Parse(getCurrentEnterpriseId()));
                                    newOperation.DocNumber       = docNumber;
                                    newOperation.GiveOperation   = oldWorkerCardContent.GiveOperation;
                                    //newOperation.DocDate=

                                    motivs.Clear();
                                    query.Clear();
                                    query.Add("OperType", newOperation.OperType);
                                    motivs = motivRepository.GetByLikeCriteria(query);
                                    if (motivs.Count > 0)
                                    {
                                        newOperation.Motiv = motivs[0];
                                    }
                                    newOperation.Storage = storageTo;

                                    newOperation.TransferOperation = oldOperation;
                                    oldOperation.TransferOperation = newOperation;

                                    operationRepository.SaveOrUpdate(oldOperation);
                                    operationRepository.SaveOrUpdate(newOperation);
                                    //Создаем новую карточку
                                    WorkerCardContent newWorkerCardContent = new WorkerCardContent();
                                    newWorkerCardContent.WorkerCardHead = newWorkerCardHead;
                                    newWorkerCardContent.Storage        = storageTo;
                                    newWorkerCardContent.Quantity       = oldWorkerCardContent.Quantity;
                                    newWorkerCardContent.Operation      = newOperation;
                                    newWorkerCardContent.StartDate      = oldWorkerCardContent.StartDate;
                                    newWorkerCardContent.UsePeriod      = oldWorkerCardContent.UsePeriod;
                                    newWorkerCardContent.GiveOperation  = oldWorkerCardContent.GiveOperation;

                                    //Проставляем новую норму!!!
                                    newWorkerCardContent.NormaContent = newNormaContent;
                                    //Обнуляем старую карточку
                                    oldWorkerCardContent.Quantity   = 0;
                                    oldWorkerCardContent.EndDate    = operDate; //DateTime.Now;
                                    oldWorkerCardContent.OperReturn = oldOperation;
                                    //Сохраняем новую и старую карточки
                                    workerCardContentRepository.SaveOrUpdate(oldWorkerCardContent);
                                    workerCardContentRepository.SaveOrUpdate(newWorkerCardContent);
                                }
                            }

                            skladId = oldWorkerCardContent.Storage.StorageName.Id;
                        }
                    }
                }
                else
                {
                    //У человека несколько активных рабочих мест или рабочее место не найдено
                    resultState.Status = ResultState.ERROR;
                    resultState.setMessage("У человека больше одного рабочего места или рабочее место не найдено!");
                }
            }
            return(Json(resultState));
        }