Exemplo n.º 1
0
        /*protected void Page_Load(object sender, EventArgs e)
        {

        }*/
        /// <summary>
        /// tran -> kmhCard
        /// </summary>
        protected static void LoadKmh(Specification_1 kmhCard, transfer tran)
        {
            kmhCard._Product_ID = tran.prod_id;
            kmhCard._Material_ID = tran.material_id;

            kmhCard.sw = tran.sw;
            kmhCard.stw = tran.stw;

            kmhCard.ss = tran.ss;
            kmhCard.sp = tran.sp;
            kmhCard.sd = tran.sd;

            kmhCard.h_got =  tran.gotov_him ? "ГОТОВ" : "НЕ ГОТОВ";
            kmhCard.t_got = tran.gotov_tech ? "ГОТОВ" : "НЕ ГОТОВ";
            kmhCard.s_got = tran.gotov_svar ? "ГОТОВ" : "НЕ ГОТОВ";

            kmhCard.gt_kmh = tran.gotov_kmh ? 1 : 0;

            kmhCard.no = tran.no;
            kmhCard.cmt = tran.cmt_ogt;
            kmhCard.Route = tran.route;

            kmhCard._dictPVDID = tran.pvd_id == null ? new Guid("C23B8D6F-FFA7-45C2-8F3B-D6CA53566906") : tran.pvd_id.Value;
            kmhCard._dictUMID = tran.um_id;
            kmhCard._dictSFID = tran.sf_id;
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
        /// <summary>
        /// kmhCard -> tran
        /// </summary>
        protected static void FillKmh(Specification_1 kmhCard, transfer tran, DateTime currentDT)
        {
            //tran.prod_id = kmhCard._Product_ID.Value;

            if (kmhCard._Material_ID != null)
            {
                tran.material = kmhCard.Material.superpole;
                tran.material_id = kmhCard._Material_ID;
            }

            tran.sw = kmhCard.sw;
            tran.stw = kmhCard.stw;

            tran.ss = kmhCard.ss;
            tran.sp = kmhCard.sp;
            tran.sd = kmhCard.sd;

            tran.gotov_him = kmhCard.h_got.Trim() == "ГОТОВ" ? true : false;
            tran.gotov_tech = kmhCard.t_got.Trim() == "ГОТОВ" ? true : false;
            tran.gotov_svar = kmhCard.s_got.Trim() == "ГОТОВ" ? true : false;

            tran.gotov_kmh = kmhCard.gt_kmh == 1 ? true : false;

            tran.no = kmhCard.no;
            tran.cmt_ogt = kmhCard.cmt;
            tran.route = kmhCard.Route == null ? "" : kmhCard.Route.Trim();

            tran.pvd_id = kmhCard._dictPVDID;
            tran.pvd = tran.pvd_id == null ? "" : kmhCard._dictPVD.pvdn;
            tran.um_id = kmhCard._dictUMID;
            tran.um = tran.um_id == null ? "" : kmhCard._dictUM.umn1;
            tran.sf_id = kmhCard._dictSFID;
            tran.sf = tran.sf_id == null ? "" : kmhCard._dictSF.sfn;

            tran.ste_id = kmhCard._dictS_TEID;
            tran.ste = tran.ste_id == null ? "" : kmhCard._dictS_te.type;

            tran.actual = (kmhCard.StartDT < currentDT && kmhCard.FinishDT > currentDT);
            tran.isprikaz = !(kmhCard.OrderArticleID == null);

            try
            {
                using (UserProvider provider = new UserProvider())
                {
                    tran.last_change_date = kmhCard.dtle;
                    tran.last_change_user = (from u in provider.Users where u.ID == kmhCard.userID select u.Name).Single();
                }
            } catch {}
        }