Пример #1
0
        public TextObject(int textId, int floor)
            : base(textId, floor)
        {
            this.Text = AutoCad.Db.Text.GetText(textId);

            var countedTexts = TextObject.GetCountedText(this.Text);

            this.TextWithoutQty = countedTexts[0];
            this.Qty            = countedTexts.Count;
            this.Position       = AutoCad.Db.Text.GetPosition(textId);
        }
Пример #2
0
        /// <summary>品番の中に「AAAA x 4」のように数量が含まれていたら、分解して「AAAA」4つを返す</summary>
        public List <string> GetSerialsForCount()
        {
            var serials = this.GetSerialsForView();
            var newList = new List <string>();

            foreach (var serial in serials)
            {
                newList.AddRange(TextObject.GetCountedText(serial));
            }

            return(newList);
        }
Пример #3
0
        /// <summary>
        /// 重複品番名は取り除いて、付いてる品番名を返す
        /// </summary>
        /// <returns></returns>
        public List <string> GetSerialsForDistinct()
        {
            var serials = this.GetSerialsForView();
            var newList = new List <string>();

            foreach (var serial in serials)
            {
                List <string> countedTexts = TextObject.GetCountedText(serial);
                if (newList.IndexOf(countedTexts[0]) == -1)
                {
                    newList.Add(countedTexts[0]);
                }
            }

            return(newList);
        }
        private List <TextObject> GetSplitTextsForEx(List <TextObject> texts)
        {
            var splitTexts = new List <TextObject>();

            texts.ForEach(text =>
            {
                var s = TextObject.GetCountedText(text.Text);

                for (var i = 0; i < s.Count; i++)
                {
                    var split  = new TextObject(text.ObjectId, text.Floor);
                    split.Text = s[i];
                    splitTexts.Add(split);
                }
            });
            return(splitTexts);
        }
        public static string ConvertIrisohyamaLightSerial(string constructionCode, string baseSerial)
        {
            //プレート付きの場合があるのでバラしてチェック
            var serial = TextObject.GetCountedText(baseSerial)[0];

            //新品番が必要か
            if (NeedNewLightSerial(constructionCode, serial))
            {
                var switchLight = LightSerialConverter.switchLights.Find(p => p.OldHinban == serial);
                if (switchLight == null)
                {
                    throw new ApplicationException("データ壊れてます");
                }

                return(baseSerial.Replace(switchLight.OldHinban, switchLight.Newhinban));
            }

            return(string.Empty);
        }
        public static string ConvertBracketSerial(string constructionCode, string baseSerial)
        {
            //プレート付きの場合があるのでバラしてチェック
            var serial = TextObject.GetCountedText(baseSerial)[0];

            //初回のみDB取得
            if (LightSerialConverter.checkedConstructionCode != constructionCode)
            {
                LightSerialConverter.Initialize(constructionCode);
            }

            //在庫テーブルにある場合はそのまま
            if (usableBracketSerials.Exists(p => p.LightSerial == serial))
            {
                return(string.Empty);
            }

            switch (serial)
            {
            case (Bracket_PL_Kibiroi):
                return(baseSerial.Replace(serial, "L-PA(D1)-C"));

            case (Bracket_BL_Kibiroi):
                return(baseSerial.Replace(serial, "L-BL(P1)-C"));

            case (Bracket_BN_Kibiroi):
                return(baseSerial.Replace(serial, "L-BN(P1)-C"));

            case (Bracket_PL):
                return(baseSerial.Replace(serial, serial + "(D1)"));

            case (Bracket_BL):
                return(baseSerial.Replace(serial, serial + "(P1)"));

            case (Bracket_BN):
                return(baseSerial.Replace(serial, serial + "(P1)"));

            default:
                return(string.Empty);
            }
        }
        //新商品が必要か
        public static bool NeedNewLightSerial(string constructionCode, string baseSerial)
        {
            //初回のみDB取得
            if (LightSerialConverter.checkedConstructionCode != constructionCode)
            {
                LightSerialConverter.Initialize(constructionCode);
            }

            //プレート付きの場合があるのでバラしてチェック
            var serial = TextObject.GetCountedText(baseSerial)[0];

            //変換テーブルにあったら終了
            foreach (var convertSerial in convertionSerials)
            {
                if (serial == convertSerial.TargetLightSerial)
                {
                    return(false);
                }
                else if (serial == "L-" + convertSerial.TargetLightSerial)
                {
                    return(false);
                }
                else if (serial == "L-" + convertSerial.TargetLightSerial + "-C")
                {
                    return(false);
                }
            }

            //数量チェックが行われているものに関しては、現行品となる。
            //三段階のチェック
            foreach (var usableSerial in usableSerials)
            {
                if (serial == usableSerial.LightSerial)
                {
                    return(false);
                }
                else if (serial == "L-" + usableSerial.LightSerial)
                {
                    return(false);
                }
                else if (serial == "L-" + usableSerial.LightSerial + "-C")
                {
                    return(false);
                }
            }

            //対象品番か
            if (!LightSerialConverter.switchLights.Exists(p => p.OldHinban == serial))
            {
                return(false);
            }

            //加工ストップしている現場だったら新商品
            if (isUsingIrisLight)
            {
                return(true);
            }

            //加工依頼前は全てやる
            if (Static.IsBeforeKakouIrai)
            {
                return(true);
            }

            //引渡し日が空ならやる。
            //引渡し日で切り替え日以降はやる
            if (releaseDate == null || releaseDate >= LightSerialConverter.SwitchingDate)
            {
                return(true);
            }

            return(false);
        }