Exemplo n.º 1
0
        public EtiquetaVenda(Array arrayEtiqueta, TipoCode tipoEtiqueta)
        {
            try
            {
                switch (tipoEtiqueta)
                {
                case TipoCode.QRCODE:

                    foreach (string item in arrayEtiqueta)
                    {
                        string strItem = item.Substring(0, item.IndexOf(":", 0));

                        if (strItem == "PNUMBER")
                        {
                            base.PartnumberEtiqueta = item.Substring(item.IndexOf(":", 0) + 1);
                        }
                        else if (strItem == "DESCRICAO")
                        {
                            DescricaoProdutoEtiqueta = item.Substring(item.IndexOf(":", 0) + 1);
                        }
                        else if (strItem == "EAN13")
                        {
                            Ean13Etiqueta = Convert.ToInt64(item.Substring(item.IndexOf(":", 0) + 1));
                        }
                        else if (strItem == "ITEMPED")
                        {
                            Diferencial = Convert.ToInt32(item.Substring(item.IndexOf(":", 0) + 1));
                        }
                        else if (strItem == "LOTE")
                        {
                            LoteEtiqueta = item.Substring(item.IndexOf(":", 0) + 1);
                        }
                        else if (strItem == "SEQ")
                        {
                            SequenciaEtiqueta = Convert.ToInt32(item.Substring(item.IndexOf(":", 0) + 1));
                        }
                        else if (strItem == "QTD")
                        {
                            QuantidadeEtiqueta = Convert.ToDouble(item.Substring(item.IndexOf(":", 0) + 1));
                        }
                    }

                    break;

                case TipoCode.BARRAS:

                    foreach (string item in arrayEtiqueta)
                    {
                        daoProduto = new DaoProduto();

                        this.TipoEtiqueta = TipoCode.BARRAS;
                        Ean13Etiqueta     = Convert.ToInt64(item);
                        EtiquetaVenda aux = (EtiquetaVenda)daoProduto.recuperarInformacoesPorEan13Etiqueta(this);

                        if (aux != null)
                        {
                            DescricaoProdutoEtiqueta = aux.DescricaoProdutoEtiqueta;
                            PartnumberEtiqueta       = aux.PartnumberEtiqueta;
                            Ean13Etiqueta            = aux.Ean13Etiqueta;
                            LoteEtiqueta             = aux.LoteEtiqueta;
                            SequenciaEtiqueta        = aux.SequenciaEtiqueta;
                            QuantidadeEtiqueta       = aux.QuantidadeEtiqueta;
                        }
                    }

                    break;

                default:
                    MainConfig.errorMessage("Tipo de Etiqueta indefinido!!", "Leitura Etiquetas");
                    break;
                }

                DataHoraValidacao = DateTime.Now;
                this.TipoEtiqueta = tipoEtiqueta;
            }
            catch (Exception ex)
            {
                throw new Exception("Problemas durante a validação da etiqueta!\n" + ex);
            }
        }
Exemplo n.º 2
0
        public Etiqueta recuperarInformacoesPorEan13Etiqueta(EtiquetaVenda etiqueta)
        {
            sql01 = new StringBuilder();
            sql01.Append(" SELECT        tb0005_Embalagens.produtoEMBALAGEM, tb0005_Embalagens.codigoEMBALAGEM, tb0005_Embalagens.quantidadeEMBALAGEM AS qtdEMBALAGEM, tb0005_Embalagens.ean13EMBALAGEM, ");
            sql01.Append(" tb0003_Produtos.ean13PRODUTO, tb0003_Produtos.partnumberPRODUTO, tb0003_Produtos.descricaoPRODUTO, tb0003_Produtos.codigolotePRODUTO, tb0003_Produtos.identificacaolotePRODUTO, ");
            sql01.Append(" tb0003_Produtos.codigolocalPRODUTO, tb0003_Produtos.nomelocalPRODUTO");
            sql01.Append(" FROM            tb0005_Embalagens INNER JOIN");
            sql01.Append(" tb0003_Produtos ON tb0005_Embalagens.produtoEMBALAGEM = tb0003_Produtos.codigoPRODUTO");
            sql01.Append(" INNER JOIN tb0002_ItensProposta ON tb0003_Produtos.codigoPRODUTO = tb0002_ItensProposta.codigoprodutoITEMPROPOSTA");
            sql01.AppendFormat(" WHERE        (tb0005_Embalagens.ean13EMBALAGEM = {0})", etiqueta.Ean13Etiqueta);
            sql01.Append(" AND        (CONVERT(INT,tb0002_ItensProposta.quantidadeITEMPROPOSTA) % CONVERT(int,tb0005_Embalagens.quantidadeEMBALAGEM) = 0)");

            SqlCeDataReader dr = CeSqlServerConn.fillDataReaderCe(sql01.ToString());

            while (dr.Read())
            {
                etiqueta = new EtiquetaVenda((int)(dr["partnumberPRODUTO"]), (string)dr["descricaoPRODUTO"], (string)(dr["ean13EMBALAGEM"]), (string)dr["identificacaolotePRODUTO"]
                                        , 0, Convert.ToDouble(dr["qtdEMBALAGEM"]), etiqueta.TipoEtiqueta);
            }

            return etiqueta;
        }
 /// <summary>
 /// realiza todo o procedimento para validação de tipo de etiqueta,etiqueta, produto,
 /// validação de sequência,subtração de quantidade de itens registrados na etiqueta.
 /// </summary>
 /// <param name="produto">Produto a ser validado</param>
 /// <param name="tbProduto">Text Box Nome do Produto</param>
 /// <param name="tbLote">Text Box Lote</param>
 /// <param name="tbSequencia">Text Box  Sequencia</param>
 /// <param name="tbQuantidade">Text Box Quantidade</param>
 /// <param name="tbMensagem">Text Box Mensagem</param>
 /// <param name="objEtiqueta">Objeto Etiqueta.</param>
 public static void efetuaLeituraEtiqueta(ProdutoProposta produto,TextBox tbProduto,TextBox tbLote,TextBox tbSequencia,TextBox tbQuantidade,
                                          TextBox tbMensagem,EtiquetaVenda objEtiqueta)
 {
     try
     {
         if (comparaProdutoEtiquetaProdutoTrabalhado(produto, objEtiqueta))
         {
             if (objEtiqueta.QuantidadeEtiqueta == 0.0)
             {
                 throw new QuantidadeInvalidaException("A quantidade de produtos informado na embalagem é inválida!");
             }
             if (podeTrabalharEtiqueta(objEtiqueta))
             {
                 if (QtdPecasItem > 0)
                 {
                     tbProduto.Text = objEtiqueta.PartnumberEtiqueta.ToString() + " - " + objEtiqueta.DescricaoProdutoEtiqueta.ToString();
                     tbLote.Text = objEtiqueta.LoteEtiqueta;
                     tbSequencia.Text = objEtiqueta.SequenciaEtiqueta.ToString();
                     tbQuantidade.Text = MainConfig.intOrDecimal(Convert.ToDouble(subtrairQtdPecasItem(objEtiqueta.QuantidadeEtiqueta)));
                     objEtiqueta.VolumeEtiqueta = ProcedimentosLiberacao.TotalVolumes;
                     addToListEtiquetasLidas(objEtiqueta);
                 }
             }
             else
             {
                 FrmProposta.mostrarMensagem(TitaniumColector.Forms.FrmProposta.enumCor.RED,String.Format("A etiqueta {0} já foi validada.", objEtiqueta.SequenciaEtiqueta),TitaniumColector.Forms.FrmProposta.enumCursor.DEFAULT);
             }
         }
         else
         {
             if (ProcedimentosLiberacao.Mensagem != "" || ProcedimentosLiberacao.Mensagem != null)
             {
                 tbMensagem.Text = ProcedimentosLiberacao.Mensagem;
             }
             else
             {
                 tbMensagem.Text = String.Format("Produto da etiqueta lida não confere com o item a ser liberado.");
             }
         }
     }
     catch ( QuantidadeInvalidaException qtdEx)
     {
         StringBuilder sb = new StringBuilder();
         sb.AppendFormat("error : {0} ", qtdEx.Message);
         MainConfig.errorMessage(sb.ToString(), "Erro de validação!!");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 /// <summary>
 /// Valida as informações lidas pelo coletor e as transformam em um objeto do tipo Etiqueta e continua o procedimento de leitura da etiqueta.
 /// </summary>
 /// <param name="inputValue">Valor fornecido pelo coletor de dados</param>
 /// <param name="tipoEtiqueta">Tipo de etiqueta lida  (EAN13) OU (QRCOODE)</param>
 /// <param name="produto">produto a ser validado durante processo de liberação do item</param>
 /// <param name="tbProduto">Campo para informações ao usuário</param>
 /// <param name="tblote">Campo para informações ao usuário</param>
 /// <param name="tbSequencia">Campo para informações ao usuário</param>
 /// <param name="tbQuantidade">Campo para informações ao usuário</param>
 /// <param name="tbMensagem">Campo para informações ao usuário</param>
 public static void lerEtiqueta(String inputValue,Etiqueta.TipoCode tipoEtiqueta, ProdutoProposta produto, TextBox tbProduto, TextBox tblote, TextBox tbSequencia, TextBox tbQuantidade, TextBox tbMensagem)
 {
     tbMensagem.Text = "";
     //monta um array de string com os dados lidos na etiqueta
     //utiliza as informações para montar um objeto do tipo etiquetaVenda
     var objEtiqueta = new EtiquetaVenda(FileUtility.arrayOfTextFile(inputValue, FileUtility.splitType.PIPE), tipoEtiqueta);
     efetuaLeituraEtiqueta(produto, tbProduto, tblote, tbSequencia, tbQuantidade, tbMensagem, objEtiqueta);
 }
        /// <summary>
        /// Verifica se  Produto trabalhado e Produto Etiqueta são os mesmos.
        /// </summary>
        /// <param name="propostaProduto">Obj Produto que será verificado </param>
        /// <param name="etiquetaLida"> Obj Etiqueta que será verificado </param>
        /// <returns>True --> Caso sejam iguais.</returns>
        /// 
        public static bool comparaProdutoEtiquetaProdutoTrabalhado(ProdutoProposta produtoProposta, EtiquetaVenda etiquetaLida)
        {
            try
            {
                //Verifica se os produtos são iguais
                switch (etiquetaLida.TipoEtiqueta)
                {
                    case Etiqueta.TipoCode.QRCODE:

                        if (produtoProposta.Partnumber.Equals(etiquetaLida.PartnumberEtiqueta))
                        {
                            if (produtoProposta.Embalagens.Count == 0)
                            {
                                throw new QuantidadeInvalidaException("O produto não possui embalagens cadastradas!!");
                            }
                            foreach (var item in produtoProposta.Embalagens)
                            {
                                if ((etiquetaLida.Ean13Etiqueta.ToString() == item.Ean13Embalagem))
                                {
                                    if (etiquetaLida.QuantidadeEtiqueta == item.Quantidade)
                                    {
                                        return true;
                                    }
                                    else
                                    {
                                        Mensagem = "Quantidade da etiqueta não confere com a Quantidade de itens da embalagem do produto.";
                                    }
                                }
                                else
                                {
                                    Mensagem = "Ean informado na Etiqueta não confere com o Ean utilizado no produto";
                                }
                            }
                        }
                        else
                        {
                            Mensagem = "Partnumber produto etiqueta não confere com partnumber do item da proposta";
                        }
                        break;

                    case Etiqueta.TipoCode.BARRAS:

                        if (produtoProposta.Partnumber.Equals(etiquetaLida.PartnumberEtiqueta))
                        {
                            foreach (var item in produtoProposta.Embalagens)
                            {
                                if ((etiquetaLida.Ean13Etiqueta.ToString() == item.Ean13Embalagem))
                                {
                                    return true;
                                }
                                else
                                {
                                    Mensagem = "Ean informado na Etiqueta não confere com o Ean do produto";
                                }
                            }
                        }
                        else
                        {
                            Mensagem = "Partnumber produto etiqueta não confere com partnumber do item da proposta";
                        }

                        break;

                    case Etiqueta.TipoCode.INVALID:

                        break;

                    default:

                        break;
                }
                return false;
            }
            catch (Exception)
            {
                throw;
            }
        }