/// <summary>
        /// Geração do Código de barras Ean
        /// </summary>
        /// <param name="CompanyPrefix">Prefixo da Empresa</param>
        /// <param name="ItemReference">Código do item</param>
        /// <param name="partition">Numeto da Partição</param>
        /// <returns>Ean</returns>
        public static string getbarcodeEan13(long CompanyPrefix, long ItemReference, int partition = 6)
        {
            var CompaniaDigito = SgtinPartition.GetCompanyDigitos(partition);
            var auxCompany     = CompanyPrefix.ToString();

            if (auxCompany.Length > CompaniaDigito)
            {
                auxCompany = auxCompany.Substring(1, auxCompany.Length - 1);
            }
            if (auxCompany.Length < CompaniaDigito)
            {
                auxCompany = HelperConverter.fill(auxCompany, CompaniaDigito);
            }

            var itemDigito = SgtinPartition.GetItemDigitos(partition) - 1;
            var auxItem    = ItemReference.ToString();

            if (auxItem.Length > itemDigito)
            {
                auxItem = auxItem.Substring(1, auxItem.Length - 1);
            }
            if (auxItem.Length < itemDigito)
            {
                auxItem = HelperConverter.fill(auxItem, itemDigito);
            }

            string fullEan = $"{auxCompany}{auxItem}";

            int calculo = GTINCheckDigito(fullEan);

            return($"{fullEan}{calculo}");
        }
Exemple #2
0
        /// <summary>
        /// Contrutor via Código de barras
        /// </summary>
        /// <param name="barcode">Código de Barras</param>
        /// <param name="serial">Série</param>
        /// <param name="Filter">Filter</param>
        /// <param name="part">Partição</param>
        public Sgtin96(string barcode, long serial, string Filter, int part = 6)
        {
            //Se vier com "0" no inicio
            if (barcode.Substring(0, 1) == "0")
            {
                barcode = barcode.Substring(1, barcode.Length - 1);
            }

            //preenche com "0" se não for um ean 13
            barcode = HelperConverter.fill(barcode, 12);

            this.Header    = EpcHeaders.GetName(EpcHeaders.SGTIN_96);
            this.Filter    = Filter;
            this.Partition = part;
            string auxbarcode = barcode.Substring(0, (barcode.Length - 1));

            this.CompanyPrefix = Convert.ToInt64(HelperConverter.fill(auxbarcode.Substring(0, SgtinPartition.GetCompanyDigitos(this.Partition)), SgtinPartition.GetCompanyDigitos(this.Partition)));
            this.ItemReference = Convert.ToInt64(
                HelperConverter.fill(
                    auxbarcode.Substring(SgtinPartition.GetCompanyDigitos(this.Partition),
                                         (auxbarcode.Length - SgtinPartition.GetCompanyDigitos(this.Partition))),
                    SgtinPartition.GetItemDigitos(this.Partition)));
            this.SerialNumber = serial;
            this.Barcode      = barcode;
        }
Exemple #3
0
        /// <summary>
        /// Método de Decodificação da string binária para valores legíveis
        /// </summary>
        /// <param name="linhaBinaria">Descriptografa a string Binária no padrão GS1</param>
        public void Decript(string linhaBinaria)
        {
            int posicaoInicial = 0;

            this.Header     = EpcHeaders.GetName(linhaBinaria.Substring(posicaoInicial, 8));
            posicaoInicial += 8;

            this.Filter     = Convert.ToInt32(linhaBinaria.Substring(posicaoInicial, 3), 2).ToString();
            posicaoInicial += 3;

            this.Partition  = Convert.ToInt32(linhaBinaria.Substring(posicaoInicial, 3), 2);
            posicaoInicial += 3;

            this.CompanyPrefix = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, SgtinPartition.GetCompany(this.Partition)), 2);
            posicaoInicial    += SgtinPartition.GetCompany(this.Partition);

            this.ItemReference = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, SgtinPartition.GetItem(this.Partition)), 2);
            posicaoInicial    += SgtinPartition.GetItem(this.Partition);

            this.SerialNumber = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, 38), 2);

            this.Barcode = HelperBarcode.getbarcodeEan13(CompanyPrefix, ItemReference, Partition);
        }
Exemple #4
0
 /// <summary>
 /// Url EPC de Tag
 /// </summary>
 /// <returns></returns>
 public string EpcTagURI()
 {
     return($"urn:epc:tag:{this.Header}:{this.Filter}.{HelperConverter.fill(this.CompanyPrefix.ToString(), SgtinPartition.GetCompanyDigitos(this.Partition))}.{HelperConverter.fill(this.ItemReference.ToString(), SgtinPartition.GetItemDigitos(this.Partition))}.{this.SerialNumber}");
 }
Exemple #5
0
 /// <summary>
 /// Url EPC de identificação pura
 /// </summary>
 /// <returns></returns>
 public string EpcPureURI()
 {
     return($"urn:epc:id:sgtin:{HelperConverter.fill(this.CompanyPrefix.ToString(), SgtinPartition.GetCompanyDigitos(this.Partition))}.{HelperConverter.fill(this.ItemReference.ToString(), SgtinPartition.GetItemDigitos(this.Partition))}.{this.SerialNumber}");
 }
Exemple #6
0
        /// <summary>
        /// Método de Codificação segundo o Padrão EPC
        /// </summary>
        /// <returns>Objeto Simplicado do padrão</returns>
        public EPCSimplesDTO Encript()
        {
            string Header        = EpcHeaders.GetBin(this.Header);
            string Filter        = HelperConverter.fill(Convert.ToString(Convert.ToInt32(this.Filter), 2), 3);
            string Partition     = HelperConverter.fill(Convert.ToString(this.Partition, 2), 3);
            string CompanyPrefix = HelperConverter.fill(Convert.ToString(this.CompanyPrefix, 2), SgtinPartition.GetCompany(this.Partition));
            string ItemReference = HelperConverter.fill(Convert.ToString(this.ItemReference, 2), SgtinPartition.GetItem(this.Partition));
            string SerialNumber  = HelperConverter.fill(Convert.ToString(this.SerialNumber, 2), 38);

            string        BinString = $"{Header}{Filter}{Partition}{CompanyPrefix}{ItemReference}{SerialNumber}";
            EPCSimplesDTO retorno   = new EPCSimplesDTO();

            retorno.BarCode           = this.Barcode;
            retorno.EPCString         = EpcTagURI();
            retorno.HexadecimalString = HelperConverter.BinaryStringToHexString(BinString);
            return(retorno);
        }