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