Esempio n. 1
0
        public static string ExchangeKmhInOrders(List<Guid> orderArticles, DateTime timeStamp, Guid prodNomenId, TechnDatesSpeciality speciality)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                var dates = from date in provider.TechnDates
                            where orderArticles.Contains(date.OrderArticleID)
                            && date._dictNomenID == prodNomenId
                            select date;
                foreach (var date in dates)
                {
                    switch (speciality)
                    {
                        case TechnDatesSpeciality.Main:
                            date.gen_date = timeStamp.ToLocalTime();
                            break;
                        case TechnDatesSpeciality.Svar:
                            date.svar_date = timeStamp.ToLocalTime();
                            break;
                        case TechnDatesSpeciality.Him:
                            date.him_date = timeStamp.ToLocalTime();
                            break;
                        case TechnDatesSpeciality.Techn:
                            date.techn_date = timeStamp.ToLocalTime();
                            break;
                    }
                }

                provider.SubmitChanges();
            }

            return new PostResult("Ok", 0).ToString();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                Guid uid = new Guid(Request["uid"]);

                //List<Aspect.Domain.Configuration> confs = provider.Configurations.Where(c => c.ProductID == uid).ToList(); //bvv120420

                /*
                                var s = from confs0 in provider.Configurations
                                        join pp in provider.ProductProperties on confs0.ProductOwnerID equals pp.ProductID
                                        where confs0.ProductID == uid && pp.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552") && pp.Value == "1"
                                        select confs0;//bvv120420

                 *
                 *
                 *
                 *
                 *
                 * List<Aspect.Domain.Configuration> confs = s.ToList<Aspect.Domain.Configuration>(); //bvv120420

                 */

                var s = from confs0 in provider.Configurations
                        join pp in provider.ProductProperties on confs0.ProductOwnerID equals pp.ProductID
                        join p in provider.Products on confs0.ProductOwnerID equals p.ID
                        join n in provider._dictNomens on p._dictNomenID equals n.ID
                        where confs0.ProductID == uid && pp.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552") && pp.Value == "1"
                        orderby n.superpole
                        select confs0;//bvv120420

                 List<Aspect.Domain.Configuration> confs = s.OrderBy(c=>c.Product1._dictNomen.superpole).ToList<Aspect.Domain.Configuration>(); //bvv120420

                List<Guid> ownerProdsId = confs.DistinctBy(c => c.ProductOwnerID).Select(c => c.ProductOwnerID).ToList();

                List<Product> ownerProds = provider.Products.Where(p => ownerProdsId.Contains(p.ID)).OrderBy(p=>p._dictNomen.superpole).ToList();//bvv120420

                UsageResponse response = new UsageResponse();
                foreach (Product prod in ownerProds)
                {
                    if (provider.IsMainVersion(prod.ID) || provider.isPrikazVersion(prod.ID))
                    {

                        var ff = from confs0 in provider.Configurations
                                where confs0.ProductID == uid && confs0.ProductOwnerID == prod.ID
                                select confs0.Quantity;//bvv120420

                        UsageRow row = new UsageRow(prod.ID, prod._dictNomen.superpole, ff.First().ToString(), ff.First().ToString(), prod.Version, //bvv120420
                            prod.MainVersion,
                            prod.OrderYear, prod.OrderNumber,"0");
                        response.rows.Add(row);
                    };
                }

                response.totalCount = response.rows.Count;
                //response.rows = response.rows.OrderBy(c => c.superpole);
                JavaScriptSerializer js = new JavaScriptSerializer();
                jsonResponse = js.Serialize(response);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                Guid uid = new Guid(Request["uid"]);

                List<Aspect.Domain.Configuration> confs = provider.Configurations.Where(c => c.ProductID == uid).ToList();
                List<Guid> ownerProdsId = confs.DistinctBy(c => c.ProductOwnerID).Select(c => c.ProductOwnerID).ToList();

                List<Product> ownerProds = provider.Products.Where(p => ownerProdsId.Contains(p.ID)).ToList();

                UsageResponse response = new UsageResponse();
                foreach (Product prod in ownerProds)
                {
                    if (provider.IsMainVersion(prod.ID) || provider.isPrikazVersion(prod.ID))
                    {
                        UsageRow row = new UsageRow(prod.ID, prod._dictNomen.superpole, prod.Version,
                            prod.MainVersion,
                            prod.OrderYear, prod.OrderNumber);
                        response.rows.Add(row);
                    };
                }

                response.totalCount = response.rows.Count;

                JavaScriptSerializer js = new JavaScriptSerializer();
                jsonResponse = js.Serialize(response);
            }
        }
Esempio n. 4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (ProductProvider provider = new ProductProvider())
     {
         Guid id = provider.CreateNewVersionOfProduct(RequestProductID, User.ID);
         Response.Redirect(String.Format("~/Configuration/Edit.aspx?ID={0}", id));
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            // выбираем значения из post запроса
            Guid[] prods = Request["products"].Split(',').Select(p => new Guid(p)).ToArray(); //120420
               // List<Guid> prods = Request["products"].Split(',').Select(p => new Guid(p)).ToList();
            Guid srcProductID = new Guid(Request["left_uid"]);
            Guid dstProductID = new Guid(Request["right_uid"]);
               //List<string> qdus_new = Request["qdus_new"].Split(',').ToList<string>(); //120420
             string[] qdus_new = Request["qdus_new"].Split(',').ToArray(); //120420

            // для каждого продукта в списке [products] выполняем
            // замену исходного продукта на целевой
               // foreach (Guid prod in prods) //120420
             for (int i = 0; i < prods.Length; i++) //120420

            {
                 using (ProductProvider provider = new ProductProvider())
                {

                      // создаём новую версию продукта
                    Guid newprod = provider.CreateNewVersionOfProduct(prods[i], Guid.Empty);

                    // берём все исходные детали для замены
                    // их может быть несколько
                    List<Aspect.Domain.Configuration> srcConfs, dstConfs;
                    srcConfs = provider.Configurations.Where(p => p.ProductOwnerID == newprod && p.ProductID == srcProductID).ToList();
                    dstConfs = new List<Aspect.Domain.Configuration>();

                    // создаём на базе исходных деталей - целевые с такими же параметрами
                    using (ConfigurationProvider confProvider = new ConfigurationProvider())
                    {
                        foreach (Aspect.Domain.Configuration conf in srcConfs)
                        {
                            Aspect.Domain.Configuration newconf = confProvider.CopyConfiguration(conf);
                            newconf.ID = Guid.NewGuid();
                            newconf.ProductID = dstProductID;
                            newconf.Quantity = Convert.ToDecimal(qdus_new[i]);
                            dstConfs.Add(newconf);
                        }
                    }

                    // удаляем из спецификации исходные продукты
                    // вставляем в спецификацию новые продукты
                    provider.Configurations.DeleteAllOnSubmit(srcConfs);
                    provider.Configurations.InsertAllOnSubmit(dstConfs);
                    provider.SubmitChanges();

                    // устанавливаем признак основной версии
                    ProductProperty prop = provider.ProductProperties.Where(
                        p => p.ProductID == newprod &&
                        p.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552")).Single();
                    prop.Value = "1";
                    provider.SubmitChanges();
                }
            }
        }
Esempio n. 6
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (ProductProvider provider = new ProductProvider())
     {
         Product product = provider.GetProduct(new Guid(Request.Params["prodid"]));
         Page.Title = String.Format("Применяемость по изделиям для {0} версии {1}",
                 product.Name,
                 product.Version);
     }
 }
Esempio n. 7
0
        protected void BindData(Guid productId)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                if (Guid.Empty.Equals(productId)) return;
                Statistic stat = new Statistic();

                divSummaryWeight = weightOfProduct(provider, productId, 1, ref stat).ToString();
                divProductName = productName(productId);
                divIgnore = stat.ingoreProducts.ToString();
            }
        }
Esempio n. 8
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (ProductProvider provider = new ProductProvider())
     {
         // ищем продукт в приказных изделиях
         Product product = provider.GetProduct(new Guid(Request[PROD_ID]));
         if (!String.IsNullOrEmpty(product.OrderNumber) && !String.IsNullOrEmpty(product.OrderYear))
         {
             // приказное изделия
             var orders = from order in provider.OrderArticles
                          where order.year == product.OrderYear
                          && order.cco == product.OrderNumber
                          select order;
             if (orders.Count() > 0)
             {
                 // есть приказ соотвествующий номеру и году
                 Page.Title = string.Format("Разузлованный технологический состав для {0} версии {1}. Номер приказа: {2}. Год приказа: {3}",
                     product._dictNomen.pn1,
                     product.Version,
                     product.OrderNumber,
                     product.OrderYear);
             }
             else
             {
                 // приказа нет, поэтому будем считать его стандартным
                 Page.Title = string.Format("Разузлованный технологический состав для {0} стандартной версии {1}.",
                     product._dictNomen.pn1,
                     product.Version);
             }
         }
         else
         {
             // не приказное изделие
             Page.Title = string.Format("Разузлованный технологический состав для {0} стандартной версии {1}.",
                 product._dictNomen.pn1,
                 product.Version);
         }
     }
 }
Esempio n. 9
0
        protected void DataBind()
        {
            using (ProductProvider provider = new ProductProvider())
            {
                fileTables = new List<FileRow>();
                Guid pid = GetPID;
                var userFiles = provider.UserFiles.Where(file => file.pid == pid);

                foreach (var file in userFiles)
                {
                    fileTables.Add(new FileRow()
                    {
                        ID = file.id,
                        UserName = file.username,
                        FileName = String.Format("../UserFiles/{0}", Server.UrlEncode(file.filename))
                    });
                }

                Repeater1.DataSource = fileTables;
                Repeater1.DataBind();
            }
        }
Esempio n. 10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                Product product = provider.GetProduct(new Guid(Request.QueryString["prodid"]));

                if (Request.QueryString["orderid"] == null)
                {
                    Title = String.Format("Редактирование %state% КМХ для {0}.", product.PublicName);
                }
                else
                {
                    OrderArticle order = (from or in provider.OrderArticles
                                         where or.ID == new Guid(Request.QueryString["orderid"])
                                         select or).Single();
                    Title = String.Format("Редактирование %state% КМХ для {0}. По приказу №{1} от {2} года.", product.PublicName, order.cco, order.year);
                }
            }

            this.PopupIframeInitializationStringWithProduct(linkSelectMaterial, "",
                string.Format("../Popup/Selector.aspx?ID={0}&ctrlID={1}&treeID={2}&textCtrlID={3}",
                "", "valueID", "316c6bc7-d883-44c8-aae0-602f49c73595", "clientID"), 800, 500);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                if (!string.IsNullOrEmpty(Request["nid"]))
                {
                    try
                    {
                        Guid nid = new Guid(Request["nid"]);
                        int lmaxVersion = provider.getMaxVersionByNomenID(nid) + 1;
                        maxVersion = lmaxVersion.ToString();
                    }
                    catch
                    {
                        maxVersion = "";
                    }

                }
                else
                {
                    maxVersion = "";
                }
            }
        }
Esempio n. 12
0
        public static string SaveKmhCard(transfer card, int saveType, Guid order_id)
        {
            DateTime CurDateTime = DateTime.Now;

            // saveType == 1 (сохранить как основную)
            // saveType == 2 (сохранить как приказную)
            // saveType == 3 (как приказную и как основную)

            using (ProductProvider provider = new ProductProvider())
            {
                // {!} здесь может быть проблемное место, потому что надо оборачивать действия
                // в одну транзакцию

                // проходим два раза по коду
                // 1 - стандартная карточка
                // 2 - карточка по приказу

                for (int index = 1; index <= 2; index++)
                {
                    if (saveType == 2 && index == 1) continue;
                    if (saveType == 1 && index == 2) continue;

                    // получаем все существующие стандарные карты для данного продукта
                    var all_kmh = from kmh in provider.Specification_1s
                                  where Object.Equals(kmh.OrderArticleID, index == 1 ? null : new Guid?(order_id))
                                  && kmh._Product_ID == card.prod_id
                                  select kmh;

                    // переносим полученные данные в карту
                    Specification_1 savedCard = new Specification_1();
                    savedCard.id = Guid.NewGuid();
                    savedCard.OrderArticleID = (index == 1 ? null : new Guid?(order_id));
                    LoadKmh(savedCard, card);

                    // устанавливаем время действия карты
                    savedCard.FinishDT = PlusInfinity;
                    if (all_kmh.Count() == 0)
                    {
                        // если других карт нету, даты от -∞ до +∞
                        // savedCard.StartDT = MinusInfinity;
                        savedCard.StartDT = CurDateTime;

                    }
                    else
                    {
                        // если другие карты есть, дата от CurDateTime+1 до +∞
                        savedCard.StartDT = CurDateTime;

                        // выбираем актуальные карты и завершаем дату их действия
                        List<Specification_1> actual_kmh = all_kmh.Where(c => c.StartDT <= CurDateTime && c.FinishDT > CurDateTime).ToList();
                        foreach (Specification_1 iter_kmh in actual_kmh)
                        {
                            iter_kmh.FinishDT = CurDateTime;
                        }
                    }

                    savedCard.dtle = CurDateTime;
                    try
                    {
                        savedCard.userID = (Guid)HttpContext.Current.Session["userID"];
                    }
                    catch { }
                    provider.Specification_1s.InsertOnSubmit(savedCard);
                }

                // Сохраняем изменения
                provider.SubmitChanges();
            }
            PostResult result = new PostResult("ok", 0) { TimeStamp = CurDateTime.ToUniversalTime() };
            return  result.ToString();
        }
Esempio n. 13
0
        public static string SaveRoute2(transfer saved_route)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                Guid unitDictNomen = (saved_route.unit_id == Guid.Empty) ? Guid.Empty : provider.GetProduct(saved_route.unit_id)._dictNomenID.Value;
                Guid prodDictNomen = provider.GetProduct(saved_route.prod_id)._dictNomenID.Value;

                SaveRouteInternal(unitDictNomen, prodDictNomen, saved_route.route);
            };

            return new PostResult("ok", 0).ToString();
        }
Esempio n. 14
0
        public static string RequestKmhCard(Guid prod_id, Guid order_id)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                DateTime CurDateTime = DateTime.Now;
                Product prod = provider.GetProduct(prod_id);
                transfer tran = new transfer() { prod_id = prod._dictNomenID.Value };

                #region filling kmh card
                if (Guid.Empty.Equals(order_id))
                {
                    var actual_kmh = from kmh in provider.Specification_1s
                                     where kmh.OrderArticleID == null // стандарные (не приказные)
                                     && kmh.StartDT <= CurDateTime // на текущую дату
                                     && kmh.FinishDT > CurDateTime
                                     && kmh._Product_ID == prod._dictNomenID
                                     select kmh;

                    if (actual_kmh.Count() > 0)
                    {
                        FillKmh(actual_kmh.First(), tran, CurDateTime);
                        tran.prod_pn2 = actual_kmh.First().Product.superpole;
                    }
                    else
                    {
                        // создание новой КМХ для продукта
                        tran.prod_id = prod._dictNomenID.Value;
                        tran.prod_pn2 = prod._dictNomen.superpole;
                    }
                }
                else
                {
                    Product order_unit = provider.GetActualOrderProduct(order_id);
                    Specification_1 actual_kmh = null;

                    // пытаемся получить КМХ для данного приказа
                    try
                    {
                        actual_kmh = (from kmh in provider.Specification_1s
                                      where kmh.OrderArticleID == order_id // стандарные (не приказные)
                                      && kmh.StartDT <= CurDateTime // на текущую дату
                                      && kmh.FinishDT > CurDateTime
                                      && kmh._Product_ID == prod._dictNomenID
                                      select kmh).Single();
                    }
                    catch
                    {
                        // пытаемся получить КМХ на момент создания сборки
                        try
                        {
                            var actual_date = (from dates in provider.TechnDates
                                               where dates.OrderArticleID == order_id
                                               && dates._dictNomenID == prod._dictNomenID
                                               select dates.gen_date).SingleOrDefault();
                            if (actual_date == null) actual_date = order_unit.CreatedDate;

                            actual_kmh = (from kmh in provider.Specification_1s
                                          where kmh.OrderArticleID == null // стандарные (не приказные)
                                          && kmh.StartDT <= actual_date
                                          && kmh.FinishDT > actual_date
                                          && kmh._Product_ID == prod._dictNomenID
                                          select kmh).Single();
                        }
                        catch
                        {
                        }
                    }

                    if (actual_kmh == null)
                    {
                        // создание новой КМХ для продукта
                        tran.prod_id = prod._dictNomenID.Value;
                        tran.prod_pn2 = prod._dictNomen.superpole;
                    }
                    else
                    {
                        // заполняем карточку
                        FillKmh(actual_kmh, tran, CurDateTime);
                        tran.prod_pn2 = actual_kmh.Product.superpole;
                    }
                }
                #endregion

                Guid userID = (Guid)HttpContext.Current.Session["userID"];
                List<Guid> userRoles = (from role in provider.UserRoles
                                        where role.UserID == userID
                                        select role.RoleID).ToList();

                var permisions = (from perm in provider.RoleViewPermissions
                                 where perm.PermissionEntityID == new Guid("11F1BC17-20FB-4E93-8389-A55BFA4CA251") // EditorKMH
                                 && userRoles.Contains(perm.RoleID)
                                 && perm.Read
                                 select perm.EntityID).Distinct();

                tran.enabled_fields.AddRange(permisions);

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                return serializer.Serialize(tran);
            }
        }
Esempio n. 15
0
        public static string SaveAddMaterials(List<transfer_add> list, Guid prodid, int saveType, Guid order_id, Guid ste_id)
        {
            DateTime CurDateTime = DateTime.Now;

            // saveType == 1 (сохранить как основную)
            // saveType == 2 (сохранить как приказную)
            // saveType == 3 (как приказную и как основную)

            using (ProductProvider provider = new ProductProvider())
            {
                // {!} здесь может быть проблемное место, потому что надо оборачивать действия
                // в одну транзакцию

                // проходим два раза по коду
                // 1 - стандартная карточка
                // 2 - карточка по приказу
                for (int index = 1; index <= 2; index++)
                {
                    if (saveType == 2 && index == 1) continue;
                    if (saveType == 1 && index == 2) continue;

                    // получаем актуальные на текущий момент дополнительные материалы
                    var all_kmh = from kmh in provider.Specification_2s
                                  where Object.Equals(kmh.OrderArticleID, index == 1 ? null : new Guid?(order_id))
                                  && kmh._Product_ID == prodid
                                  && kmh._dictS_TEID == ste_id
                                  select kmh;

                    // перебераем только актуальные карты
                    // и завершаем их по текущей дате
                    foreach (var kmh in all_kmh.Where(it => it.StartDT <= CurDateTime && it.FinishDT > CurDateTime))
                    {
                        kmh.FinishDT = CurDateTime;
                    }

                    // если в списке нет доп. материалов, то вставляем
                    // специальный материал с Guid = {00000000-0000-0000-0000-000000000000}
                    if (list.Count == 0)
                    {
                        list.Add(new transfer_add()
                        {
                            material_id = Guid.Empty
                        });
                    }

                    // создаём новые карты материалов
                    foreach (transfer_add new_kmh in list)
                    {
                        provider.Specification_2s.InsertOnSubmit(new Specification_2()
                        {
                            id = Guid.NewGuid(),
                            _Product_ID = prodid,
                            _Material_ID = new_kmh.material_id,
                            // если данный материал уже применялся, то дата начинается с текущего момента
                            // если же данный материал добавлен впервые то дата начаинается с -∞
                            // StartDT = all_kmh.Count(it => it._Material_ID == new_kmh.material_id) > 0 ? CurDateTime : MinusInfinity,
                            StartDT = CurDateTime,
                            FinishDT = PlusInfinity,
                            no = new_kmh.no,
                            _dictUMID = new_kmh.um_id,
                            _dictSID = new_kmh.s_id,
                            _dictS_TEID = ste_id,
                            OrderArticleID = (index == 1 ? null : new Guid?(order_id))
                        });
                    }

                }

                // Сохраняем изменения
                provider.SubmitChanges();
            }
            PostResult result = new PostResult("ok", 0) { TimeStamp = CurDateTime.ToUniversalTime() };
            return result.ToString();
        }
Esempio n. 16
0
        protected void ItemCommand(Object Sender, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "com.delete")
            {
                using (ProductProvider provider = new ProductProvider())
                {
                    var userFile = provider.UserFiles.SingleOrDefault(it => it.id == new Guid((string)e.CommandArgument));

                    if (userFile != null)
                    {
                        provider.UserFiles.DeleteOnSubmit(userFile);

                        String savePath = Path.Combine(Request.PhysicalApplicationPath, "UserFiles");
                        File.Delete(Path.Combine(savePath, userFile.filename));

                        provider.SubmitChanges();
                    }
                }
            }

            DataBind();
        }
Esempio n. 17
0
        public static string RequestAllRoutes(Guid prod_id)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                DateTime currentDT = DateTime.Now;

                List<transfer_route> list_routes = new List<transfer_route>();
                Product product = provider.GetProduct(prod_id);

                var applicability = (from conf in provider.Configurations
                                    join prod in provider.Products on conf.ProductID equals prod.ID
                                    join ownprod in provider.Products on conf.ProductOwnerID equals ownprod.ID
                                    join ownnomen in provider._dictNomens on ownprod._dictNomenID equals ownnomen.ID
                                    where prod._dictNomenID == product._dictNomenID
                                    select ownnomen.ID).Distinct();

                var all_routes = from route in provider.Specification_3s
                                 where route._Material_ID == product._dictNomenID
                                 && route.StartDT <= currentDT
                                 && route.FinishDT > currentDT
                                 select route;

                // есть применяемость
                // нет маршрута
                var list1 = applicability.Where(appl => !all_routes.Any(rt => rt._Product_ID == appl));
                foreach (Guid ownnomen_id in list1)
                {
                    _dictNomen ownnomen = provider._dictNomens.SingleOrDefault(d => d.ID == ownnomen_id);

                    transfer_route adding_route = new transfer_route();
                    adding_route.prodNomenID = product._dictNomenID.Value;
                    adding_route.unitNomenID = ownnomen.ID;
                    adding_route.unit_pn1 = ownnomen.pn1;
                    adding_route.unit_pn2 = ownnomen.superpole;
                    list_routes.Add(adding_route);
                }

                // есть маршрут
                foreach (Specification_3 route in all_routes )
                {
                    try
                    {
                        _dictNomen unit_nomen = provider._dictNomens.SingleOrDefault(d => d.ID == route._Product_ID);

                        transfer_route adding_route = new transfer_route();
                        adding_route.ID = route.id;
                        adding_route.prodNomenID = product._dictNomenID.Value;
                        adding_route.unitNomenID = route._Product_ID;
                        adding_route.unit_pn1 = unit_nomen.pn1;
                        adding_route.unit_pn2 = unit_nomen.superpole;
                        adding_route.route = route.Route;
                        adding_route.comment = route.cmt;
                        adding_route.lastedit_date = route.dtle;

                        try
                        {
                            adding_route.lastedit_author = (from u in provider.Users
                                                            where u.ID == route.userID
                                                            select u.Name).Single();
                        } catch {};

                        list_routes.Add(adding_route);
                    }
                    catch { }
                }

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                return serializer.Serialize(list_routes);
            }
        }
Esempio n. 18
0
        public static string GetColumns(Guid ClassificationTreeId)
        {
            Guid userID;
            try
            {
                userID = (Guid)HttpContext.Current.Session["userID"];
            }
            catch
            {
                return new PostResult("Lose user session. Please reconnect.", 102).ToString();
            }

            List<transfer_column> list = new List<transfer_column>();
            using (ProductProvider provider = new ProductProvider())
            {
                // select existing settings
                var columns = from col in provider.ColumnWidths
                                where col.ClassificationTreeID == ClassificationTreeId
                                && col.UserID == userID
                                select col;

                foreach (var column in columns)
                {
                    list.Add(new transfer_column()
                    {
                        hidden = column.Hidden,
                        position = column.Index,
                        uid = column.ColumnID,
                        width = (int) column.Width
                    });
                }
            }

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize(list);
        }
Esempio n. 19
0
        public static string GenerateForOrder(Guid order_id, Guid product_id, DateTime gen_date)
        {
            using (ConfigurationTreeProvider provider = new ConfigurationTreeProvider())
            {
                // получаем разузлованный состав для данной главной детали
                DataSet tree = provider.GetList(FormGridView.ConfigurationTree, product_id, UserID, new List<SearchExpression>());

                // удаляем все существующие даты для данного изделия и данного приказа
                var subprod_dictNomenIDs = new List<Guid>();
                foreach (DataRow row in tree.Tables[0].Rows)
                {
                    subprod_dictNomenIDs.Add((Guid)row["_dictNomenID"]);
                }
                using (ProductProvider pprovider = new ProductProvider())
                {
                    subprod_dictNomenIDs.Add(pprovider.GetProduct(product_id)._dictNomenID.Value);
                }

                var datesForDelete = provider.TechnDates.Where(
                    it => subprod_dictNomenIDs.Contains(it._dictNomenID)
                    && it.OrderArticleID == order_id);

                provider.TechnDates.DeleteAllOnSubmit(datesForDelete);
                provider.SubmitChanges();

                // создаём новые записи для данного приказа
                foreach (Guid subprod_dictNomenID in subprod_dictNomenIDs.Distinct())
                {
                    provider.TechnDates.InsertOnSubmit(new TechnDate()
                    {
                        OrderArticleID = order_id,
                        _dictNomenID = subprod_dictNomenID,
                        gen_date = gen_date
                    });
                }

                provider.SubmitChanges();
            }
            return new PostResult("ok", 0).ToString();
        }
Esempio n. 20
0
        public static string SetColumns(List<transfer_column> columns, Guid ClassificationTreeId)
        {
            Guid userID;
            try
            {
                userID = (Guid)HttpContext.Current.Session["userID"];
            }
            catch
            {
                return new PostResult("Lose user session. Please reconnect.", 102).ToString();
            }

            using (ProductProvider provider = new ProductProvider())
            {
                // delete existing settings
                var columnIDs = columns.Select(it => it.uid);
                var forDelete = from col in provider.ColumnWidths
                                where col.ClassificationTreeID == ClassificationTreeId
                                && col.UserID == userID
                                && columnIDs.Contains(col.ColumnID)
                                select col;
                provider.ColumnWidths.DeleteAllOnSubmit(forDelete);
                provider.SubmitChanges();

                // saving new settings
                foreach (var column in columns)
                {
                    provider.ColumnWidths.InsertOnSubmit(new ColumnWidth()
                    {
                        ID = Guid.NewGuid(),
                        ClassificationTreeID = ClassificationTreeId,
                        UserID = userID,
                        ColumnID = column.uid,
                        Width = column.width,
                        Index = column.position,
                        Hidden = column.hidden
                    });
                }
                provider.SubmitChanges();
            }

            return new PostResult("ok", 0).ToString();
        }
Esempio n. 21
0
        public static string TechDatesSave(Guid _dictNomenID, Guid OrderArticleID, DateTime? gen_date,
            DateTime? him_date, DateTime? svar_date, DateTime? techn_date)
        {
            try
            {
                using (ProductProvider provider = new ProductProvider())
                {
                    // select row with dates from DB
                    var unit_dates = provider.TechnDates.SingleOrDefault(it => it._dictNomenID == _dictNomenID && it.OrderArticleID == OrderArticleID);

                    // if row doesn't exists create new row
                    if (unit_dates == null)
                    {
                        unit_dates = new TechnDate()
                        {
                            _dictNomenID = _dictNomenID,
                            OrderArticleID = OrderArticleID
                        };
                        provider.TechnDates.InsertOnSubmit(unit_dates);
                    }

                    // clear dates if needed and save dates to row
                    if (gen_date.HasValue)
                    {
                        unit_dates.gen_date = (gen_date == DateTime.MinValue) ? null : gen_date;
                    }
                    if (him_date.HasValue)
                    {
                        unit_dates.him_date = (him_date == DateTime.MinValue) ? null : him_date;
                    }
                    if (svar_date.HasValue)
                    {
                        unit_dates.svar_date = (svar_date == DateTime.MinValue) ? null : svar_date;
                    }
                    if (techn_date.HasValue)
                    {
                        unit_dates.techn_date = (techn_date == DateTime.MinValue) ? null : techn_date;
                    }

                    // if row contain all nulled fields delete it
                    if (unit_dates.techn_date == null &&
                        unit_dates.him_date == null &&
                        unit_dates.svar_date == null &&
                        unit_dates.gen_date == null)
                    {
                        provider.TechnDates.DeleteOnSubmit(unit_dates);
                    }

                    // save dates to DB
                    provider.SubmitChanges();
                }
                return new PostResult("Ok", 0).ToString();
            }
            catch (Exception e)
            {
                return new PostResult("Unknown exception: " + e.Message, -1).ToString();
            }
        }
Esempio n. 22
0
        /// <summary>
        /// Для выделенных в гриде продуктов устанавливает поле "Основная версия" в "1",
        /// при условии что в данный момент времени это поле установлено в "0"
        /// </summary>
        protected void SetMainVersion_Click(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                // составляем список выделенных продуктов
                List<Guid> selectedRows;
                if (hiddenSelectedProducts.Value.ToString() != "")
                    selectedRows = hiddenSelectedProducts.Value.ToString().Split(',').Select(s => new Guid(s)).ToList();
                else
                    return ;

                provider.SetMainVersion(this.User.ID, selectedRows);

                // insert here
                // RefreshButton_Click(sender, e);
                // GridPanel1.Reload();
            }
        }
Esempio n. 23
0
        protected void SavaFileNames(object sender, EventArgs e)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                Repeater repeater = (Repeater)FindControlRecursive(this.Master, "Repeater1");

                foreach (var repeaterItem in repeater.Controls)
                {
                    var hidden = (repeaterItem as RepeaterItem).FindControl("hiddenID") as HiddenField;
                    var edit = (repeaterItem as RepeaterItem).FindControl("textUserName") as TextBox;

                    var userFile = provider.UserFiles.Single(it => it.id == new Guid(hidden.Value));
                    if (userFile != null && userFile.username != edit.Text)
                    {
                        userFile.username = edit.Text;
                    }
                }

                provider.SubmitChanges();
            }
        }
Esempio n. 24
0
        private void BindGeneralPropertyList(List<ITreeNode> parents)
        {
            using (ProductProvider provider = new ProductProvider())
            {
                //--- general property-------
                List<Property> props = provider.GetAvailablePropertiesToModify(this.Roles);

                var q = from s in props.Where(f => f.ClassificationID.HasValue)
                        join l in parents on s.ClassificationID.Value equals l.ID
                        select new Property()
                        {
                            ID = s.ID,
                            Type = s.Type,
                            Name = string.Format("{0} ({1})", s.Name, l.Name)
                        };
                props = q.ToList();

                List<ProductProperty> values = provider.ProductProperties.Where(pp => pp.ProductID == this.RequestProductID).ToList();
                List<Pair<Property, ProductProperty>> source = new List<Pair<Property, ProductProperty>>();
                foreach (Property item in props)
                {
                    ProductProperty val = values.SingleOrDefault(pp => pp.PropertyID == item.ID);
                    Pair<Property, ProductProperty> entity = new Pair<Property, ProductProperty>(item, val);
                    source.Add(entity);
                }

                GeneralPropertyRepeater.DataSource = source;//props;
                GeneralPropertyRepeater.DataBind();

            }
        }
Esempio n. 25
0
        public static void SaveRouteInternal(Guid _Product_ID, Guid _Material_ID, string Route)
        {
            DateTime currentDT = DateTime.Now;
            Route = Route.Trim();

            using (ProductProvider provider = new ProductProvider())
            {
                // получаем действующие (по времени) маршруты по применяемости
                // для данного продукта в данной сборке
                // ! в идеале такой маршрут должен быть один

                var routes = from rt in provider.Specification_3s
                             where rt._Product_ID == _Product_ID
                             && rt._Material_ID == _Material_ID
                             && rt.StartDT <= currentDT
                             && rt.FinishDT > currentDT
                             select rt;

                // завершаем маршруты текущей датой
                foreach (var route in routes)
                {
                    route.FinishDT = currentDT;
                }

                // создаём новый маршрут по применяемости, если он не пустой
                if (!String.IsNullOrEmpty(Route))
                {
                    Specification_3 newRoute = new Specification_3()
                    {
                        id = Guid.NewGuid(),
                        _Product_ID = _Product_ID,
                        _Material_ID = _Material_ID,
                        Route = Route,
                        dtle = currentDT,
                        StartDT = currentDT,
                        FinishDT = DateTime.MaxValue
                    };
                    try
                    {
                        newRoute.userID = (Guid)HttpContext.Current.Session["userID"];
                    }
                    catch { }
                    provider.Specification_3s.InsertOnSubmit(newRoute);
                }

                provider.SubmitChanges();
            }
        }
Esempio n. 26
0
        public static string GetTechConsist(Guid prod_id, Guid order_id)
        {
            using (ConfigurationTreeProvider provider = new ConfigurationTreeProvider())
            {
                // главный продукт (чья дата берётся как основная в случае по приказу)
                Product product = null;
                using (ProductProvider productProvider = new ProductProvider())
                {
                    product = productProvider.GetProduct(prod_id);
                }

                // для стандартных продуктов всегда берётся карта актуальная на текущий момент
                // для приказного продукта
                // * если карточка приказная - на текущий момент
                // * если карточка стандартная - на момент создания продукта
                //   !! в новой редакции, берётся не дата создания продукта, а дата из
                //   колонки [TechnDates].[gen_date]
                DateTime currentDT = DateTime.Now;
                DateTime actualDT = Guid.Empty.Equals(order_id) ? currentDT : product.CreatedDate;

                // Получаем разузлованный состав
                List<transfer> list = new List<transfer>();
                DataSet data = provider.GetListWithKmh(prod_id, order_id, actualDT, currentDT);

                // добавляем самую верхнюю деталь
                /*transfer tran = new transfer();
                tran.prod_id = product.ID;
                tran.prod_pn1 = product._dictNomen.pn1;
                tran.prod_pn2 = product._dictNomen.pn2;

                #region attachKMH
                // получаем приказную актуальную карту
                Specification_1 order_kmh = null;
                try
                {
                    if (!Guid.Empty.Equals(order_id))
                    {
                        order_kmh = (from kmh in provider.Specification_1s
                                 where kmh.OrderArticleID == order_id
                                 && kmh._Product_ID == product._dictNomenID
                                 && kmh.StartDT <= currentDT
                                 && kmh.FinishDT > currentDT
                                 select kmh).Single();
                    }
                }
                catch {}

                // получеам стандартную актуальную карту
                Specification_1 stand_kmh = null;
                try
                {
                    stand_kmh = (from kmh in provider.Specification_1s
                                 where kmh.OrderArticleID == null
                                 && kmh._Product_ID == product._dictNomenID
                                 && kmh.StartDT <= actualDT
                                 && kmh.FinishDT > actualDT
                                 select kmh).Single();
                }
                catch {}

                if (!Guid.Empty.Equals(order_id) && order_kmh != null)
                {
                    FillKmh(order_kmh, tran, currentDT);
                }
                else if (stand_kmh != null)
                {
                    FillKmh(stand_kmh, tran, currentDT);
                }
                #endregion*/

                // получаем маршрут по применяемости
                /*try
                {
                    var route = (from r in provider.Specification_3s
                                 where r._Material_ID == product._dictNomenID
                                 && r._Product_ID == Guid.Empty
                                 && r.StartDT <= currentDT
                                 && r.FinishDT > currentDT
                                 select r).Single();
                    tran.route = route.Route;
                    tran.route_changed = true;
                } catch { }

                list.Add(tran);*/

                try
                {
                    #region getch result of query
                    foreach (DataRow row in data.Tables[0].Rows)
                    {
                        transfer tran = new transfer();

                        tran.unit_id = row.Field<Guid>("unitID");
                        tran.unit_pn1 = row.Field<string>("unitPn1");
                        tran.unit_pn2 = row.Field<string>("unitPn2");

                        tran.prod_id = row.Field<Guid>("prodID");
                        tran.prod_pn1 = row.Field<string>("prodPn1");
                        tran.prod_pn2 = row.Field<string>("prodPn2");

                        tran.level = row.Field<int>("Level");
                        tran.count = row.Field<decimal>("Quantity");
                        tran.group_exchange = row.Field<int?>("GroupToChange");
                        tran.number_exchange = row.Field<int?>("GroupNumber");

                        // дата добавления в состав должна быть только у приказных составов
                        tran.added_date = row.Field<DateTime?>("gen_date");

                        /*#region attachKMH
                        // получаем приказную актуальную карту
                        order_kmh = null;
                        try
                        {
                            if (!Guid.Empty.Equals(order_id))
                            {
                                order_kmh = (from kmh in provider.Specifications
                                         where kmh.tn == 1
                                         && kmh.OrderArticleID == order_id
                                         && kmh._Product_ID == row.Field<Guid>("prodNomenID")
                                         && kmh.StartDT < currentDT
                                         && kmh.FinishDT > currentDT
                                         select kmh).Single();
                            }
                        }
                        catch {}

                        // получеам стандартную актуальную карту
                        stand_kmh = null;
                        try
                        {
                            stand_kmh = (from kmh in provider.Specifications
                                         where kmh.tn == 1
                                         && kmh.OrderArticleID == null
                                         && kmh._Product_ID == row.Field<Guid>("prodNomenID")
                                         && kmh.StartDT < actualDT
                                         && kmh.FinishDT > actualDT
                                         select kmh).Single();
                        }
                        catch {}

                        if (!Guid.Empty.Equals(order_id) && order_kmh != null)
                        {
                            FillKmh(order_kmh, tran, currentDT);
                        }
                        else if (stand_kmh != null)
                        {
                            FillKmh(stand_kmh, tran, currentDT);
                        }
                        #endregion*/
                        FillKmhByRow(provider, row, tran, currentDT);

                        list.Add(tran);
                    }
                    #endregion
                }
                catch (Exception e)
                {
                    string tmpMessage = e.Message;
                }

                Dictionary<Guid,string> PVDs = provider._dictPVDs.AsEnumerable().ToDictionary(i => i.ID, i => i.pvdn);
                Dictionary<Guid, string> UMs = provider._dictUMs.AsEnumerable().ToDictionary(i => i.ID, i => i.umn1);
                Dictionary<Guid, string> SFs = provider._dictSFs.AsEnumerable().ToDictionary(i => i.ID, i => i.sfn);

                foreach (var item in list)
                {
                    try
                    {

                        item.pvd = item.pvd_id.HasValue ? PVDs[item.pvd_id.Value] : "";
                        item.um = item.um_id.HasValue ? UMs[item.um_id.Value] : "";
                        item.sf = item.sf_id.HasValue ? SFs[item.sf_id.Value] : "";
                    }
                    catch { };

                }

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                // some fix, because setting in web.config not always working as good
                serializer.MaxJsonLength = 50000000;
                return serializer.Serialize(list);
            }
        }
Esempio n. 27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                Guid cid = Guid.Empty;
                Guid eid = Guid.Empty;
                try
                {
                    cid = new Guid(Request["CID"]);
                    eid = new Guid(Request["ID"]);
                }
                catch (Exception)
                {
                    Edit.Visible = false;
                    Usage.Visible = false;
                    View.Visible = false;
                    Tree.Visible = false;
                    TreeEx.Visible = false;
                    EditObject.Visible = false;
                    NewObject.Visible = false;
                    ViewObject.Visible = false;
                    return;
                }

                if (cid != Guid.Empty) //dictionary entity
                {
                    if (cid == new Guid("316c6bc7-d883-44c8-aae0-602f49c73595"))
                    {
                        // добавляем пункт прикрепляемые файлы
                        string secretKey = MD5Hash(String.Format("{0}{1}{2}", AttachedFilesApplication, User.ID, new Guid(Request["ID"])));
                        string attachedUrl = @"javascript:CallAttachedFiles('{0}','{1}','{2}','{3}')";
                        AttachedFiles.NavigateUrl = string.Format(attachedUrl, AttachedFilesApplication, this.User.ID, new Guid(Request["ID"]), secretKey);
                    }
                    else
                    {
                        AttachedFiles.Visible = false;
                    }

                    NewObjectWithConfs.Visible = false;
                    Edit.Visible = false;
                    EditReadOnly.Visible = false;
                    Usage.Visible = false;
                    UsageWaves.Visible = false;
                    View.Visible = false;
                    Tree.Visible = false;
                    TreeEx.Visible = false;
                    TreeWithKmh.Visible = false;
                    EditKmh.Visible = false;
                    EditObject.NavigateUrl = string.Format("~/Editarea/EditDict.aspx?ID={0}&new=false&DictID={1}", Request["ID"], cid);
                    NewObject.NavigateUrl = string.Format("~/Editarea/EditDict.aspx?ID={0}&new=true&DictID={1}", Request["ID"], cid);
                    ViewObject.NavigateUrl = string.Format("~/Editarea/ViewDict.aspx?ID={0}&new=false&DictID={1}", Request["ID"], cid);

                    using (Aspect.Model.DictionaryDomain.DictionaryProvider provider = new Aspect.Model.DictionaryDomain.DictionaryProvider())
                    {
                        if (!provider.AllowEdit(this.Roles, cid))
                        {
                            EditObject.Visible = false;
                            NewObject.Visible = false;
                        }
                    }
                }
                else //product entity
                {
                    NewObject.Text = "Добавить новую версию";
                    NewObjectWithConfs.NavigateUrl = string.Format("{0}?ID={1}", NewObjectWithConfs.NavigateUrl, Request["ID"]);
                    Edit.NavigateUrl = string.Format("{0}?ID={1}", Edit.NavigateUrl, Request["ID"]);
                    EditReadOnly.NavigateUrl = string.Format("{0}?ID={1}&mode=view", EditReadOnly.NavigateUrl, Request["ID"]);
                    Usage.NavigateUrl = string.Format("{0}?ID={1}", Usage.NavigateUrl, Request["ID"]);
                    UsageWaves.NavigateUrl = string.Format("{0}?prodid={1}", UsageWaves.NavigateUrl, Request["ID"]);
                    View.NavigateUrl = string.Format("{0}?ID={1}", View.NavigateUrl, Request["ID"]);
                    Tree.NavigateUrl = string.Format("{0}?ID={1}", Tree.NavigateUrl, Request["ID"]);
                    TreeEx.NavigateUrl = string.Format("{0}?ID={1}", TreeEx.NavigateUrl, Request["ID"]);

                    EditObject.NavigateUrl = string.Format("{0}?ID={1}&new=false", EditObject.NavigateUrl, Request["ID"]);
                    NewObject.NavigateUrl = string.Format("{0}?ID={1}&new=true", NewObject.NavigateUrl, Request["ID"]);

                    ViewObject.NavigateUrl = string.Format("{0}?ID={1}&new=false", ViewObject.NavigateUrl, Request["ID"]);

                    using (Aspect.Model.ProductDomain.ProductProvider provider = new Aspect.Model.ProductDomain.ProductProvider())
                    {
                        if (!provider.AllowEdit(this.Roles, eid))
                        {
                            EditObject.Visible = false;
                            NewObject.Visible = false;
                            Edit.Visible = false;
                        }

                        // добавляем пункт прикрепляемые файлы
                        Product prod = provider.GetProduct(new Guid(Request["ID"]));
                        string secretKey = MD5Hash(String.Format("{0}{1}{2}", AttachedFilesApplication, User.ID, prod._dictNomenID));
                        string attachedUrl = @"javascript:CallAttachedFiles('{0}','{1}','{2}','{3}')";
                        AttachedFiles.NavigateUrl = string.Format(attachedUrl, AttachedFilesApplication, this.User.ID, prod._dictNomenID, secretKey);

                        // ищем продукт в приказных изделиях
                        if (!String.IsNullOrEmpty(Request.QueryString["order_id"]))
                        {
                            TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}&orderid={2}", TreeWithKmh.NavigateUrl, Request["ID"], Request["order_id"]);
                        }
                        else
                        {
                            Product product = provider.GetProduct(eid);
                            if (!String.IsNullOrEmpty(product.OrderNumber) && !String.IsNullOrEmpty(product.OrderYear))
                            {
                                // приказное изделия
                                var orders = from order in provider.OrderArticles
                                             where order.year == product.OrderYear
                                             && order.cco == product.OrderNumber
                                             select order;
                                if (orders.Count() > 0)
                                {
                                    // есть приказ соотвествующий номеру и году
                                    TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}&orderid={2}", TreeWithKmh.NavigateUrl, Request["ID"], orders.First().ID);
                                    EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}&orderid={1}", Request["ID"], orders.First().ID);
                                }
                                else
                                {
                                    // приказа нет, поэтому будем считать его стандартным
                                    TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}", TreeWithKmh.NavigateUrl, Request["ID"]);
                                    EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}", Request["ID"]);
                                }
                            }
                            else
                            {
                                // не приказное изделие
                                TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}", TreeWithKmh.NavigateUrl, Request["ID"]);
                                EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}", Request["ID"]);
                            }
                        }

                        if (provider.IsMainVersion(eid))
                        {
                            /*
                             * для основных версий запрещается редактирование
                             * характеристик и состава
                             */
                            EditObject.Visible = false;
                            Edit.Visible = false;
                        }
                        else
                        {
                            /*
                             * для НЕосновных версий запрещается создание
                             * новых версий и новых версий с составом
                             */
                            NewObject.Visible = false;
                            NewObjectWithConfs.Visible = false;
                        }

                        if (provider.isPrikazVersion(eid) || provider.isLessOfMainVersion(eid))
                        {
                            /*
                             * для приказных версий запрещается редактирование
                             * характеристик и состава
                             */
                            EditObject.Visible = false;
                            Edit.Visible = false;
                        }

                        if (provider.IsNotConfigurationable(eid))
                        {
                            /*
                             * для простых продуктов (материалы, прочие, ...)
                             * запрещены любые манипуляции с составом
                             */
                            NewObjectWithConfs.Visible = false;
                            Edit.Visible = false;
                            EditReadOnly.Visible = false;
                            View.Visible = false;
                            Tree.Visible = false;
                            TreeEx.Visible = false;
                        }

                        if (!TechnologyEnable)
                        {
                            TreeWithKmh.Visible = false;
                        }
                    }
                }

                // применяем разрешения для пунктов меню
                List<KeyValuePair<HyperLink, Guid>> menuList = new List<KeyValuePair<HyperLink,Guid>>();
                menuList.Add(new KeyValuePair<HyperLink,Guid>(EditObject, new Guid("8e227deb-6c24-4904-997a-0e9aeb768a3c")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(ViewObject, new Guid("8f6c3479-0905-4f05-a4cb-f06de253be73")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(NewObject, new Guid("20a57357-7f79-4af5-87e0-35192d16d736")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(AttachedFiles, new Guid("a96e10df-fb98-42a4-8c48-c8d5c40d1536")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(NewObjectWithConfs, new Guid("fe711646-62ce-4f34-b1e3-67e2376a5ff3")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(Edit, new Guid("71ea2f2b-a5ab-4cad-b1c1-d025fe92eb4e")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(EditReadOnly, new Guid("972431d2-cca3-46f1-bc79-b4f8250fb68f")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(Usage, new Guid("65e7bea5-4a86-4b02-bfcc-3ae0ae0192d8")));
                menuList.Add(new KeyValuePair<HyperLink, Guid>(UsageWaves, new Guid("F0370805-D740-4B0B-A9E6-786905F172F8")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(View, new Guid("079e49a6-0d19-42b6-a8fe-6b1237d84c78")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(Tree, new Guid("4a4f9ffe-1686-4f01-8c35-065cea788a54")));
                menuList.Add(new KeyValuePair<HyperLink,Guid>(TreeWithKmh, new Guid("98d79f99-6b09-4846-9af8-6bacb71b7bef")));

                using (ProductProvider provider = new ProductProvider())
                {
                    List<Guid> userRoles = (from role in provider.UserRoles
                                            where role.UserID == User.ID
                                            select role.RoleID).ToList();

                    var permisions = from perm in provider.RoleViewPermissions
                                     where perm.PermissionEntityID == new Guid("0097C313-2EAD-4E1A-B12C-BB31F110A367") // MenuActionItem
                                     && userRoles.Contains(perm.RoleID)
                                     select perm;

                    foreach (var menuItem in menuList)
                    {
                        if (permisions.Count(perm => perm.EntityID == menuItem.Value && perm.Read) > 0)
                        {
                            menuItem.Key.Enabled = true;
                        }
                        else
                        {
                            menuItem.Key.Enabled = false;
                            menuItem.Key.ForeColor = Color.LightGray;
                        }
                    }

                }

            }
            //Response.Write(Request["ID"]);
        }
Esempio n. 28
0
        public static string RequestAddMaterials(Guid prod_id, Guid order_id)
        {
            DateTime CurDateTime = DateTime.Now;

            using (ProductProvider provider = new ProductProvider())
            {
                // пытаемся получить приказные доп. материалы для данного приказа
                Product prod = provider.GetProduct(prod_id);

                // пытаемся получить временные метки для химика, сварщика и технолога
                DateTime himDate = DateTime.Now, svarDate = DateTime.Now, technDate = DateTime.Now;
                var dateLabels = provider.TechnDates.SingleOrDefault(it
                    => it._dictNomenID == prod._dictNomenID
                    && it.OrderArticleID == order_id);

                // временные метки учитываются только для приказных составов
                if (dateLabels != null && order_id != Guid.Empty)
                {
                    himDate = dateLabels.him_date.HasValue ? dateLabels.him_date.Value : dateLabels.gen_date.Value;
                    technDate = dateLabels.techn_date.HasValue ? dateLabels.techn_date.Value : dateLabels.gen_date.Value;
                    svarDate = dateLabels.svar_date.HasValue ? dateLabels.svar_date.Value : dateLabels.gen_date.Value;
                }

                // получаем отдельно приказные материалы для химика, сварщика и технолога
                #region request him kmh
                var him_kmh = from kmh in provider.Specification_2s
                                    where (kmh.OrderArticleID == order_id)
                                        && kmh.StartDT <= CurDateTime
                                        && kmh.FinishDT > CurDateTime
                                        && kmh._Product_ID == prod._dictNomenID
                                        && kmh._dictS_TEID == new Guid("46A00C26-1768-4521-9A33-88336E65D50C")
                                    select kmh;
                if (him_kmh.Count() == 0)
                {
                    him_kmh = from kmh in provider.Specification_2s
                                    where kmh.OrderArticleID == null
                                        && kmh.StartDT <= himDate
                                        && kmh.FinishDT > himDate
                                        && kmh._Product_ID == prod._dictNomenID
                                    select kmh;
                }
                #endregion
                #region request svar kmh
                var svar_kmh = from kmh in provider.Specification_2s
                                    where (kmh.OrderArticleID == order_id)
                                        && kmh.StartDT <= CurDateTime
                                        && kmh.FinishDT > CurDateTime
                                        && kmh._Product_ID == prod._dictNomenID
                                        && kmh._dictS_TEID == new Guid("61931973-A5BD-40CD-92A6-FA802DE6CE6A")
                                    select kmh;
                if (svar_kmh.Count() == 0)
                {
                    svar_kmh = from kmh in provider.Specification_2s
                                    where kmh.OrderArticleID == null
                                        && kmh.StartDT <= svarDate
                                        && kmh.FinishDT > svarDate
                                        && kmh._Product_ID == prod._dictNomenID
                                    select kmh;
                }
                #endregion
                #region request techn kmh
                var techn_kmh = from kmh in provider.Specification_2s
                                    where (kmh.OrderArticleID == order_id)
                                        && kmh.StartDT <= CurDateTime
                                        && kmh.FinishDT > CurDateTime
                                        && kmh._Product_ID == prod._dictNomenID
                                    select kmh;
                if (techn_kmh.Count() == 0)
                {
                    techn_kmh = from kmh in provider.Specification_2s
                                    where kmh.OrderArticleID == null
                                        && kmh.StartDT <= technDate
                                        && kmh.FinishDT > technDate
                                        && kmh._Product_ID == prod._dictNomenID
                                        && kmh._dictS_TEID == new Guid("BCE12453-3AB9-4FCB-8FB3-4811A311B764")
                                    select kmh;
                }
                #endregion

                var actual_kmh = new List<Specification_2>();
                actual_kmh.AddRange(him_kmh);
                actual_kmh.AddRange(techn_kmh);
                actual_kmh.AddRange(svar_kmh);

                List<transfer_add> list = new List<transfer_add>();
                foreach (Specification_2 iter_kmh in actual_kmh)
                {
                    // пропускаем специальный материал с Guid = {00000000-0000-0000-0000-000000000000}
                    // которые обозначают пустые списки
                    if (iter_kmh._Material_ID == Guid.Empty) continue;

                    transfer_add add_material = new transfer_add()
                    {
                        s_id = iter_kmh._dictSID,
                        material = !iter_kmh._Material_ID.HasValue ? "" : iter_kmh.Material.superpole,
                        um_id = iter_kmh._dictUMID,
                        ste_id = iter_kmh._dictS_TEID,
                        material_id = iter_kmh._Material_ID,
                        no = iter_kmh.no
                    };

                    list.Add(add_material);
                }

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                return serializer.Serialize(list);
            }
        }
Esempio n. 29
0
        /*
         * return weight of product multiply to it count -- if don't have child products
         * return summary weight of child products -- if have child products
         */
        protected decimal weightOfProduct(ProductProvider provider, Guid productId, int productCount, ref Statistic stat)
        {
            var confs = from m in provider.Configurations
                        where m.ProductOwnerID == productId
                        select new { m.GroupNumber, m._dictUMID, m.ProductID, m.Quantity };
            if (confs.Count() == 0)
            {
                // don't have child products
                Product product = provider.GetProduct(productId);
                decimal? weight =  product._dictNomen.pw;

                if (weight.HasValue)
                {
                    return weight.Value;
                }
                else
                {
                    stat.ingoreProducts += 1;
                    return 0;
                }

                /*
                var prop = from m in domain.ProductProperties
                           where m.PropertyID == new Guid("AC37F816-E4C1-4751-99ED-6180D7CCA142") // вес по приказу
                           && m.ProductID == productId
                           select new { m.Value };
                if (prop.Count() == 1)
                {
                    return Convert.ToDecimal(prop.First().Value) * productCount;
                }
                else
                {
                    // ignory because product don't have weight property
                    stat.ingoreProducts += 1;
                    return 0;
                }*/
            }
            else
            {
                // have child products
                decimal summaryWeight = 0;
                foreach (var conf in confs)
                {
                    if (conf.GroupNumber == 0 && conf._dictUMID == new Guid("68CD2019-85F6-4E52-AEFE-09CA5C2B64F3")) // штуки
                    {
                        summaryWeight += weightOfProduct(provider, conf.ProductID, Convert.ToInt32(conf.Quantity), ref stat);
                    }
                    else
                    {
                        // ignory because child product is order version
                        // or it measure not in pieces
                        stat.ingoreProducts += 1;
                    }

                }
                return summaryWeight;
            }
        }
Esempio n. 30
0
        protected void UploadButton_Click(object sender, EventArgs e)
        {
            // Specify the path on the server to
            // save the uploaded file to.
            String savePath = Path.Combine(Request.PhysicalApplicationPath, "UserFiles");

            // Before attempting to perform operations
            // on the file, verify that the FileUpload
            // control contains a file.
            if (FileUpload1.HasFile)
            {
                // Get the name of the file to upload.
                String fileName = FileUpload1.FileName;
                String savedFileName = String.Empty;
                int postfix = 0;

                // Append the name of the file to upload to the path.

                do
                {

                    if (postfix == 0)
                    {
                        savedFileName = Path.Combine(new string[] {savePath, fileName});
                    }
                    else
                    {
                        savedFileName = Path.Combine(new string[] {savePath, Path.GetFileNameWithoutExtension(fileName) + "_" + postfix + Path.GetExtension(fileName)});
                    }
                    postfix++;
                } while (File.Exists(savedFileName));

                FileUpload1.SaveAs(savedFileName);

                using (ProductProvider provider = new ProductProvider())
                {
                    var userFile = new UserFile()
                    {
                        id = Guid.NewGuid(),
                        pid = GetPID,
                        cid = Guid.Empty,
                        filename = Path.GetFileName(savedFileName),
                        username = Path.GetFileNameWithoutExtension(fileName)
                    };

                    provider.UserFiles.InsertOnSubmit(userFile);
                    provider.SubmitChanges();
                }

                DataBind();

                // Notify the user of the name of the file
                // was saved under.
                // UploadStatusLabel.Text = "Your file was saved as " + fileName;
            }
            else
            {
                // Notify the user that a file was not uploaded.
                // UploadStatusLabel.Text = "You did not specify a file to upload.";
            }
        }