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