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); }
/// <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); }
/// <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); }