Exemple #1
0
        /// <summary>
        /// Parse barcode and return Barcode object
        /// </summary>
        /// <param name="barcode">string to parse</param>
        /// <returns>object</returns>
        public Barcode parse(string barcode)
        {
            BarcodeEnum b = parse_barcode(barcode);

            if (!(b == BarcodeEnum.UNKNOWN))
            {
                return(buildBarcode(b, barcode));
            }
            else
            {
                throw ErrorHandler.Throw(ErrorType.UKNOWN_BARCODE, "Unknown Barcode {" + barcode + "}");
            }
        }
Exemple #2
0
        /// <summary>
        /// Builds a barcode based on the given Enum type and barcode string
        /// </summary>
        /// <param name="btype">BarcodeEnum</param>
        /// <param name="barcode">barcode number</param>
        /// <returns>Barcode object</returns>
        private Barcode buildBarcode(BarcodeEnum btype, string barcode)
        {
            SQLBuilder builder = new SQLBuilder();
            DataTable  dt;

            switch (btype)
            {
            case BarcodeEnum.KIT:
                string   id, kit_number, desc, serial_number;
                string[] s = barcode.Split('-');

                id            = s[1];
                serial_number = s[2];

                builder.add("SELECT product_number, description");
                builder.add("FROM doarni.ci_product_data");
                builder.add(string.Format(@"WHERE product_number_id = {0} AND serial_number = {1}", id, serial_number));

                dt = postgres.execute(builder.build(), true);

                builder.clear();

                kit_number = dt.Rows[0][0].ToString();
                desc       = dt.Rows[0][1].ToString();

                return(new BKit(barcode, id, kit_number, desc, serial_number));

            case BarcodeEnum.BIN: throw new NotImplementedException("BIN barcodes not yet supported");

            case BarcodeEnum.GS1: throw new NotImplementedException("GS1 barcodes not yet supported");

            case BarcodeEnum.HIBC: throw new NotImplementedException("HIBC barcodes not yet supported");

            case BarcodeEnum.ZTAG: throw new NotImplementedException("ZTAG barcodes not yet supported");

            default:
                break;
            }

            return(null);
        }