¶Ô±ÈÐÂÎļþ |
| | |
| | | using Rhea.Common; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Globalization; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace Tiger.Business.WMS |
| | | { |
| | | /// <summary> |
| | | /// æ¡ç åºç±» |
| | | /// </summary> |
| | | public class Barcode |
| | | { |
| | | public Barcode(string metaSn) |
| | | { |
| | | SetAnalysisRule(); |
| | | Analyse(MetaSn = metaSn); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¡ç ï¼è§£æåçæ¡ç ï¼ |
| | | /// </summary> |
| | | private List<BarcodeAnalysis> Analyses { get; set; } = new(); |
| | | /// <summary> |
| | | /// æ¡ç ï¼è§£æåçæ¡ç ï¼ |
| | | /// </summary> |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// å
æ¡ç ï¼æ«æå°çæ¡ç ï¼ |
| | | /// </summary> |
| | | public string MetaSn { get; set; } |
| | | /// <summary> |
| | | /// æ¡ç ç±»å |
| | | /// </summary> |
| | | public Types Type { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public ItemTypes ItemType { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string ItemCode { get; set; } |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string ItemName { get; set; } |
| | | /// <summary> |
| | | /// çäº§æ¥æç¼ç |
| | | /// </summary> |
| | | public string DateCode { get; set; } |
| | | /// <summary> |
| | | /// çäº§æ¥æ |
| | | /// </summary> |
| | | public string ProdDateStr { get; set; } |
| | | /// <summary> |
| | | /// çäº§æ¥æ |
| | | /// </summary> |
| | | public DateTime? ProdDate { get => BarcodeAnalysis.GetDateTime(ProdDateStr) ?? BarcodeAnalysis.GetDateTime(PrintDateStr); } |
| | | /// <summary> |
| | | /// æå°æ¥æ |
| | | /// </summary> |
| | | public string PrintDateStr { get; set; } |
| | | /// <summary> |
| | | /// ä¾åºå代ç |
| | | /// </summary> |
| | | public string SupplierCode { get; set; } |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string LotNo { get; set; } |
| | | /// <summary> |
| | | /// 订åå· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | /// <summary> |
| | | /// 订åè¡å· |
| | | /// </summary> |
| | | public string OrderLine { get; set; } |
| | | /// <summary> |
| | | /// å¶é å/代工åæå· |
| | | /// </summary> |
| | | public string OEMItemCode { get; set; } |
| | | /// <summary> |
| | | /// æµæ°´ç |
| | | /// </summary> |
| | | public string SerialNoStr { get; set; } |
| | | /// <summary> |
| | | /// æµæ°´ç |
| | | /// </summary> |
| | | public int? SerialNo { get => BarcodeAnalysis.GetSerialNo(SerialNoStr); } |
| | | |
| | | /// <summary> |
| | | /// åä½ |
| | | /// </summary> |
| | | public string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public string QtyStr { get; set; } |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal? Qty { get => Convert.ToDecimal(BarcodeAnalysis.GetDouble(QtyStr)); } |
| | | |
| | | /// <summary> |
| | | /// æ¯é |
| | | /// </summary> |
| | | public string GrossWeightStr { get; set; } |
| | | /// <summary> |
| | | /// æ¯é |
| | | /// </summary> |
| | | public double? GrossWeight { get => BarcodeAnalysis.GetDouble(GrossWeightStr); } |
| | | |
| | | /// <summary> |
| | | /// æå·é¿åº¦ |
| | | /// </summary> |
| | | public int ItemLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¡ç åæå¼å¸¸ä¿¡æ¯ |
| | | /// </summary> |
| | | public Exception AnalyseException { get; set; } |
| | | /// <summary> |
| | | /// æ¡ç æ¯å¦åæå¼å¸¸ |
| | | /// </summary> |
| | | public bool IsException { get => !AnalyseException.IsNullOrEmpty(); } |
| | | |
| | | /// <summary> |
| | | /// æ¡ç æ¯å¦åæ³ |
| | | /// </summary> |
| | | public bool IsRegular { get => Type != Types.Illegal; } |
| | | |
| | | /// <summary> |
| | | /// æ¡ç æ¯å¦åæææ¡ç |
| | | /// </summary> |
| | | public bool IsMaterialSN { get => !(new List<ItemTypes>() { ItemTypes.RawMaterial }).Contains(ItemType); } |
| | | |
| | | /// <summary> |
| | | /// æ ç¾éææµæ°´ç å符 |
| | | /// </summary> |
| | | public string ReprintNoStr { get; set; } |
| | | /// <summary> |
| | | /// æ ç¾éææµæ°´ç |
| | | /// </summary> |
| | | public int? ReprintNo => BarcodeAnalysis.GetReprintNo(ReprintNoStr); |
| | | /// <summary> |
| | | /// æ ç¾éæä¸çº§ä¸å¡ç¼ç |
| | | /// </summary> |
| | | public string ReprintBizCode1 { get; set; } |
| | | /// <summary> |
| | | /// æ ç¾éæäºçº§ä¸å¡ç¼ç |
| | | /// </summary> |
| | | public string ReprintBizCode2 { get; set; } |
| | | /// <summary> |
| | | /// æ¯å¦éææ ç¾ |
| | | /// </summary> |
| | | public bool IsReprintSn => SN.Contains("_"); |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æªæéææ ç¾ |
| | | /// </summary> |
| | | public bool IsCutSn => ReprintBizCode1 == "C"; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éæéææ ç¾ |
| | | /// </summary> |
| | | public bool IsReturnSn => ReprintBizCode1 == "T"; |
| | | /// <summary> |
| | | /// æ¯å¦äºç»´ç |
| | | /// </summary> |
| | | public bool IsQRCode => MetaSn.Contains(","); |
| | | |
| | | public enum Types |
| | | { |
| | | /// <summary> |
| | | /// éæ³æ¡ç |
| | | /// </summary> |
| | | [Description("éæ³æ¡ç ")] |
| | | Illegal, |
| | | /// <summary> |
| | | /// å¯ä¸ID |
| | | /// </summary> |
| | | [Description("æå°å
è£
æ ç¾")] |
| | | MiniPackage, |
| | | /// <summary> |
| | | /// ä¸å
æ ç¾ |
| | | /// </summary> |
| | | [Description("å
å
è£
æ ç¾")] |
| | | InnerPackage, |
| | | /// <summary> |
| | | /// å¤å
æ ç¾ |
| | | /// </summary> |
| | | [Description("å¤å
è£
æ ç¾")] |
| | | OuterPackage, |
| | | /// <summary> |
| | | /// æ æ¿æ¡ç |
| | | /// </summary> |
| | | [Description("æ æ¿æ¡ç ")] |
| | | Pallet, |
| | | /// <summary> |
| | | /// å
¶ä»æ ç¾æ¡ç |
| | | /// </summary> |
| | | [Description("å
¶ä»æ ç¾")] |
| | | Other, |
| | | } |
| | | |
| | | public enum ItemTypes |
| | | { |
| | | [Description("æªç¥ç±»å")] |
| | | Unknown, |
| | | [Description("湿æå
ä»¶")] |
| | | HumidityMaterial, |
| | | [Description("åæå")] |
| | | SemiProduct, |
| | | [Description("SMTåæå")] |
| | | SmtSemiProduct, |
| | | [Description("DIPåæå")] |
| | | DipSemiProduct, |
| | | [Description("æå")] |
| | | Product, |
| | | [Description("PCB")] |
| | | PCB, |
| | | [Description("è¾
æ")] |
| | | SubsidiaryMaterial, |
| | | [Description("åææ")] |
| | | RawMaterial, |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置æ¡ç åæéªè¯è§å |
| | | /// </summary> |
| | | public void SetAnalysisRule() |
| | | { |
| | | Analyses.Clear(); |
| | | Analyses.Add(new YadaBarcode()); |
| | | Analyses.Add(new BarcodeAnalysis()); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¡ç åæ |
| | | /// </summary> |
| | | /// <param name="metaSn"></param> |
| | | public void Analyse(string metaSn) |
| | | { |
| | | SN = metaSn; |
| | | Type = Types.Illegal; |
| | | ItemType = ItemTypes.Unknown; |
| | | AnalyseException = null; |
| | | try |
| | | { |
| | | foreach (var rule in Analyses) |
| | | { |
| | | var result = rule.Analyse(this); |
| | | if (result.IsSuccessed) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | AnalyseException = ex; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ä¼ å
¥çæ¡ç ç¸åççäº§æ¥æ |
| | | /// </summary> |
| | | /// <param name="sn"></param> |
| | | /// <returns></returns> |
| | | public bool IsSameProdDate(string sn) |
| | | { |
| | | return (ProdDate ?? DateTime.MaxValue).Date == ((new Barcode(sn)).ProdDate ?? DateTime.MinValue).Date; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å°äºçäºä¼ å
¥çæ¡ç ççäº§æ¥æ |
| | | /// </summary> |
| | | /// <param name="sn"></param> |
| | | /// <returns></returns> |
| | | public bool IsPriorProdDate(string sn) |
| | | { |
| | | return (ProdDate ?? DateTime.MaxValue).Date <= ((new Barcode(sn)).ProdDate ?? DateTime.MinValue).Date; |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// æ¡ç åæ |
| | | ///// </summary> |
| | | ///// <param name="metaSn"></param> |
| | | //public void Analyse(string metaSn) |
| | | //{ |
| | | // SN = metaSn; |
| | | // Type = Types.Illegal; |
| | | // ItemType = ItemTypes.Unknown; |
| | | // AnalyseException = null; |
| | | // try |
| | | // { |
| | | // if (!string.IsNullOrEmpty(SN)) |
| | | // { |
| | | // string[] parts = (metaSn ?? "").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); |
| | | // if (parts.Length > 1 && parts.Any(q => q.StartsWith("S"))) |
| | | // { |
| | | // foreach (var part in parts.OrderBy(q => q.FirstOrDefault())) |
| | | // { |
| | | // var param = part.First().ToString().ToUpper(); |
| | | // var content = part.Substring(1); |
| | | // switch (param) |
| | | // { |
| | | // case "S"://PAG ID (SN) |
| | | // var snParts = (content ?? "").Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); |
| | | // SN = content; |
| | | // Type = Types.Other; |
| | | // if (SN.StartsWith("C") && SN.Length > 14) |
| | | // { |
| | | // SupplierCode = SN.Substring(1, 5); |
| | | // PrintDateStr = SN.Substring(6, 8); |
| | | // SerialNoStr = SN.Substring(14); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Middle; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // else if (SN.StartsWith("P") && SN.Length > 14) |
| | | // { |
| | | // SupplierCode = SN.Substring(1, 5); |
| | | // PrintDateStr = SN.Substring(6, 8); |
| | | // SerialNoStr = SN.Substring(14); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Outer; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // else if (SN.Length > 13) |
| | | // { |
| | | // SupplierCode = SN.Substring(0, 5); |
| | | // PrintDateStr = SN.Substring(5, 8); |
| | | // SerialNoStr = SN.Substring(13); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Small; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // //æ¯å¦éæå¤æ |
| | | // if(snParts.Count() >1 && snParts[1].Length > 2) |
| | | // { |
| | | // ReprintBizCode1 = snParts[1][0].ToString(); |
| | | // ReprintBizCode2 = snParts[1][1].ToString(); |
| | | // ReprintNoStr = snParts[1].Substring(2); |
| | | // } |
| | | // break; |
| | | // case "V"://éè´§åå· |
| | | // OrderNo = content; |
| | | // break; |
| | | // case "P"://ç©æç¼ç |
| | | // ItemCode = content; |
| | | // break; |
| | | // case "N"://ç©æç¼ç |
| | | // ItemName = content; |
| | | // break; |
| | | // case "Q"://ç©ææ°é |
| | | // QtyStr = content; |
| | | // break; |
| | | // case "U"://ç©æåä½ |
| | | // Unit = content; |
| | | // break; |
| | | // case "M"://å¶é åæå· |
| | | // OEMItemCode = content; |
| | | // break; |
| | | // case "D"://çäº§æ¥æ |
| | | // DateCode = content; |
| | | // ProdDateStr = content; |
| | | // break; |
| | | // case "L"://çäº§æ¹æ¬¡ |
| | | // LotNo = content; |
| | | // break; |
| | | // case "G"://ç©ææ¯é |
| | | // GrossWeightStr = content; |
| | | // break; |
| | | // default: |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // else if(SN.Length > 10) |
| | | // { |
| | | // var snParts = (SN ?? "").Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); |
| | | // Type = Types.Other; |
| | | // if (SN.StartsWith("C") && SN.Length > 14) |
| | | // { |
| | | // SupplierCode = SN.Substring(1, 5); |
| | | // PrintDateStr = SN.Substring(6, 8); |
| | | // SerialNoStr = SN.Substring(14); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Middle; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // else if (SN.StartsWith("P") && SN.Length > 14) |
| | | // { |
| | | // SupplierCode = SN.Substring(1, 5); |
| | | // PrintDateStr = SN.Substring(6, 8); |
| | | // SerialNoStr = SN.Substring(14); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Outer; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // else if (SN.Length > 13) |
| | | // { |
| | | // SupplierCode = SN.Substring(0, 5); |
| | | // PrintDateStr = SN.Substring(5, 8); |
| | | // SerialNoStr = SN.Substring(13); |
| | | // if (ProdDate != null && SerialNo != null) |
| | | // { |
| | | // Type = Types.Small; |
| | | // ItemType = ItemTypes.RawMaterial; |
| | | // } |
| | | // } |
| | | // //æ¯å¦éæå¤æ |
| | | // if (snParts.Count() > 1 && snParts[1].Length > 2) |
| | | // { |
| | | // ReprintBizCode1 = snParts[1][0].ToString(); |
| | | // ReprintBizCode2 = snParts[1][1].ToString(); |
| | | // ReprintNoStr = snParts[1].Substring(2); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // AnalyseException = ex; |
| | | // } |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®å符串è¿åæµæ°´å· |
| | | ///// </summary> |
| | | ///// <param name="str"></param> |
| | | ///// <returns></returns> |
| | | //private int? GetSerialNo(string str) |
| | | //{ |
| | | // int serialNo; |
| | | // try |
| | | // { |
| | | // serialNo = Convert.ToInt32(new Regex(@"[^\d]*").Replace(str, "")); |
| | | // } |
| | | // catch |
| | | // { |
| | | // return null; |
| | | // } |
| | | // return serialNo; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®å符串è¿åéææµæ°´å· |
| | | ///// </summary> |
| | | ///// <param name="str"></param> |
| | | ///// <returns></returns> |
| | | //private int? GetReprintNo(string str) |
| | | //{ |
| | | // int qty; |
| | | // try |
| | | // { |
| | | // qty = Convert.ToInt32(str, 16); |
| | | // } |
| | | // catch |
| | | // { |
| | | // return null; |
| | | // } |
| | | // return qty; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®å符串è¿åæ°é |
| | | ///// </summary> |
| | | ///// <param name="str"></param> |
| | | ///// <returns></returns> |
| | | //private int? GetInt32(string str) |
| | | //{ |
| | | // int qty; |
| | | // try |
| | | // { |
| | | // qty = Convert.ToInt32(str); |
| | | // } |
| | | // catch |
| | | // { |
| | | // return null; |
| | | // } |
| | | // return qty; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®å符串è¿åæ°é |
| | | ///// </summary> |
| | | ///// <param name="str"></param> |
| | | ///// <returns></returns> |
| | | //private double? GetDouble(string str) |
| | | //{ |
| | | // double qty; |
| | | // try |
| | | // { |
| | | // qty = Convert.ToDouble(str); |
| | | // } |
| | | // catch |
| | | // { |
| | | // return null; |
| | | // } |
| | | // return qty; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®æ¥æç¼ç è¿åçäº§æ¥æ |
| | | ///// </summary> |
| | | ///// <param name="dateStr"></param> |
| | | ///// <returns></returns> |
| | | //public static DateTime? GetDateTime(string dateStr) |
| | | //{ |
| | | // DateTime proddate; |
| | | // dateStr = dateStr ?? ""; |
| | | // if (dateStr.Length == 8) |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´ææ¥ |
| | | // proddate = DateTime.ParseExact(dateStr, "yyyyMMdd", new CultureInfo("zh-CN", true)); |
| | | // } |
| | | // catch |
| | | // { |
| | | // return null; |
| | | // } |
| | | // } |
| | | // else if (dateStr.Length == 6) |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´ææ¥ |
| | | // proddate = DateTime.ParseExact(dateStr, "yyMMdd", new CultureInfo("zh-CN", true)); |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´å¨ |
| | | // var firstDate = Convert.ToDateTime(dateStr.Substring(0, 4) + "-1-1"); |
| | | // int weekNum = Convert.ToInt32(dateStr.Substring(4, 2)); |
| | | |
| | | // int daysOffset = DayOfWeek.Monday - firstDate.DayOfWeek; |
| | | // DateTime firstSunday = firstDate.AddDays(daysOffset); |
| | | // var calendar = CultureInfo.CurrentCulture.Calendar; |
| | | // int firstWeek = calendar.GetWeekOfYear(firstDate, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); |
| | | // if (firstWeek <= 1) |
| | | // { |
| | | // weekNum -= 1; |
| | | // } |
| | | // proddate = firstSunday.AddDays(weekNum * 7 - 1); |
| | | // if (proddate.Year < firstDate.Year) |
| | | // { |
| | | // proddate = firstDate; |
| | | // } |
| | | // if (proddate.Year > firstDate.Year) |
| | | // { |
| | | // proddate = firstDate.AddYears(1).AddDays(-1); |
| | | // } |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´æ |
| | | // proddate = DateTime.ParseExact(dateStr, "yyyyMM", new CultureInfo("zh-CN", true)); |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // proddate = Convert.ToDateTime(dateStr); |
| | | // } |
| | | // catch |
| | | // { |
| | | // //proddate = DateTime.Now; |
| | | // return null; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // else if (dateStr.Length == 4) |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´å¨ |
| | | // var firstDate = DateTime.ParseExact(dateStr.Substring(0, 2), "yy", CultureInfo.CurrentCulture); |
| | | // int weekNum = Convert.ToInt32(dateStr.Substring(2, 2)); |
| | | |
| | | // int daysOffset = DayOfWeek.Monday - firstDate.DayOfWeek; |
| | | // DateTime firstSunday = firstDate.AddDays(daysOffset); |
| | | // var calendar = CultureInfo.CurrentCulture.Calendar; |
| | | // int firstWeek = calendar.GetWeekOfYear(firstDate, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); |
| | | // if (firstWeek <= 1) |
| | | // { |
| | | // weekNum -= 1; |
| | | // } |
| | | // proddate = firstSunday.AddDays(weekNum * 7 - 1); |
| | | // if (proddate.Year < firstDate.Year) |
| | | // { |
| | | // proddate = firstDate; |
| | | // } |
| | | // if (proddate.Year > firstDate.Year) |
| | | // { |
| | | // proddate = firstDate.AddYears(1).AddDays(-1); |
| | | // } |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´æ |
| | | // proddate = DateTime.ParseExact(dateStr, "yyMM", new CultureInfo("zh-CN", true)); |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // //å¹´ |
| | | // proddate = DateTime.ParseExact(dateStr, "yyyy", new CultureInfo("zh-CN", true)); |
| | | // } |
| | | // catch |
| | | // { |
| | | // try |
| | | // { |
| | | // proddate = Convert.ToDateTime(dateStr); |
| | | // } |
| | | // catch |
| | | // { |
| | | // //æ æ³è¯å«å使ç¨å½åæ¶é´ |
| | | // //proddate = DateTime.Now; |
| | | // return null; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // try |
| | | // { |
| | | // proddate = Convert.ToDateTime(dateStr); |
| | | // } |
| | | // catch |
| | | // { |
| | | // //proddate = DateTime.Now; |
| | | // return null; |
| | | // } |
| | | // } |
| | | // return proddate; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ¯å¦ä¸ä¼ å
¥çæ¡ç ç¸åççäº§æ¥æ |
| | | ///// </summary> |
| | | ///// <param name="sn"></param> |
| | | ///// <returns></returns> |
| | | //public bool IsSameProdDate(string sn) |
| | | //{ |
| | | // return (ProdDate ?? DateTime.MaxValue).Date == ((new Barcode(sn)).ProdDate ?? DateTime.MinValue).Date; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ¯å¦å°äºçäºä¼ å
¥çæ¡ç ççäº§æ¥æ |
| | | ///// </summary> |
| | | ///// <param name="sn"></param> |
| | | ///// <returns></returns> |
| | | //public bool IsPriorProdDate(string sn) |
| | | //{ |
| | | // return (ProdDate ?? DateTime.MaxValue).Date <= ((new Barcode(sn)).ProdDate ?? DateTime.MinValue).Date; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ¯å¦éæ³æ¡ç |
| | | ///// </summary> |
| | | ///// <param name="sn"></param> |
| | | ///// <returns></returns> |
| | | //public static bool IsIllegal(string sn) |
| | | //{ |
| | | // return !new Barcode(sn).IsRegular; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// è·åæ¡ç ç±»å |
| | | ///// </summary> |
| | | ///// <param name="sn"></param> |
| | | ///// <returns></returns> |
| | | //public static Types GetType(string sn) |
| | | //{ |
| | | // return new Barcode(sn).Type; |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// 夿æ¯å¦éæçæ¡ç |
| | | ///// </summary> |
| | | ///// <param name="sn"></param> |
| | | ///// <returns></returns> |
| | | //public static bool IsReprint(string sn) |
| | | //{ |
| | | // return new Barcode(sn).IsReprintSn; |
| | | //} |
| | | }//endClass |
| | | } |