private static Produto ParseYouDoInvoice(string linha)
        {
            int inteiro;
            double flutuante;

            Produto novoProduto = new Produto();
            string[] campos = linha.Split(new char[] {'|'});

            novoProduto.Descricao = campos[YDI_COL_DESCRICAO];
            novoProduto.CodigoBarra = campos[YDI_COL_CODIGO_BARRA];
            if (int.TryParse(campos[YDI_COL_NCM], out inteiro))
                novoProduto.Ncm = inteiro;
            if (double.TryParse(campos[YDI_COL_IPI], out flutuante))
                novoProduto.Ipi = flutuante;
            novoProduto.Genero = campos[YDI_COL_GENERO];
            novoProduto.Unidade = campos[YDI_COL_UNIDADE];
            if (double.TryParse(campos[YDI_COL_VALOR], out flutuante))
                novoProduto.Custo = flutuante;
            if (novoProduto.CodigoBarra == string.Empty)
                novoProduto.CodigoBarra = campos[YDI_COL_CODIGO_BARRA_2];
            if (novoProduto.Unidade == string.Empty)
                novoProduto.Unidade = campos[YDI_COL_UNIDADE_2];
            if (novoProduto.Custo == 0)
                if (double.TryParse(campos[YDI_COL_VALOR_2], out flutuante))
                    novoProduto.Custo = flutuante;
            if (int.TryParse(campos[YDI_COL_QUANTIDADE], out inteiro))
                novoProduto.Estoque = inteiro;

            return novoProduto;
        }
        public static Produto ParseBlueBill(string linha)
        {
            int inteiro;
            double flutuante;
            Produto novoProduto = new Produto();
            string[] campos = linha.Split(new char[] { ';' });

            novoProduto.Categoria = campos[BB_COL_CATEGORIA].Substring(1, campos[BB_COL_CATEGORIA].Length -2);
            novoProduto.SubCategoria = campos[BB_COL_SUBCATEGORIA].Substring(1, campos[BB_COL_SUBCATEGORIA].Length - 2);
            novoProduto.Unidade = campos[BB_COL_UNIDADE].Substring(1, campos[BB_COL_UNIDADE].Length - 2);
            novoProduto.Descricao = campos[BB_COL_DESCRICAO].Substring(1, campos[BB_COL_DESCRICAO].Length - 2);
            novoProduto.Identificacao = campos[BB_COL_IDENTIFICACAO].Substring(1, campos[BB_COL_IDENTIFICACAO].Length - 2);
            if (double.TryParse(campos[BB_COL_CUSTO].Trim(new char[] { '"' }), out flutuante))
                novoProduto.Custo = flutuante;
            if (double.TryParse(campos[BB_COL_PRECO1].Trim(new char[] { '"' }), out flutuante))
                novoProduto.Preco1 = flutuante;
            novoProduto.Observacoes = campos[BB_COL_OBSERVACOES].Substring(1, campos[BB_COL_OBSERVACOES].Length - 2);
            novoProduto.Fornecedor = campos[BB_COL_FORNECEDOR].Substring(1, campos[BB_COL_FORNECEDOR].Length - 2);
            if (int.TryParse(campos[BB_COL_ESTOQUE].Trim(new char[] { '"' }), out inteiro))
                novoProduto.Estoque = inteiro;
            novoProduto.CodigoBarra = campos[BB_COL_CODIGO_BARRA].Substring(1, campos[BB_COL_CODIGO_BARRA].Length - 2);
            if (double.TryParse(campos[BB_COL_PRECO2].Trim(new char[] { '"' }), out flutuante))
                novoProduto.Preco2 = flutuante;
            if (double.TryParse(campos[BB_COL_PRECO3].Trim(new char[] { '"' }), out flutuante))
                novoProduto.Preco3 = flutuante;
            if (int.TryParse(campos[BB_COL_ESTOQUE_MIN].Trim(new char[] { '"' }), out inteiro))
                novoProduto.EstoqueMinimo = inteiro;
            if (int.TryParse(campos[BB_COL_ESTOQUE_MAX].Trim(new char[] { '"' }), out inteiro))
                novoProduto.EstoqueMaximo = inteiro;
            if (int.TryParse(campos[BB_COL_ESTOQUE_COMPRA].Trim(new char[] { '"' }), out inteiro))
                novoProduto.EstoqueCompra = inteiro;
            if (int.TryParse(campos[BB_COL_FATOR_UNID_VENDA].Trim(new char[] { '"' }), out inteiro))
                novoProduto.FatorUnidVenda = inteiro;
            if (int.TryParse(campos[BB_COL_NCM].Trim(new char[] { '"' }), out inteiro))
                novoProduto.Ncm = inteiro;
            novoProduto.Marca = campos[BB_COL_MARCA].Substring(1, campos[BB_COL_MARCA].Length - 2);
            if (int.TryParse(campos[BB_COL_PESO].Trim(new char[] { '"' }), out inteiro))
                novoProduto.Peso = inteiro;
            novoProduto.Tamanho = campos[BB_COL_TAMANHO].Substring(1, campos[BB_COL_TAMANHO].Length - 2);
            novoProduto.Inativo = campos[BB_COL_INATIVO].Trim(new char[] { '"' }) == "1";
            if (int.TryParse(campos[BB_COL_TIPO].Trim(new char[] { '"' }), out inteiro))
                novoProduto.Tipo = inteiro;
            if (novoProduto.Categoria == string.Empty)
                novoProduto.Categoria = campos[BB_COL_CATEGORIA_2].Substring(1, campos[BB_COL_CATEGORIA_2].Length - 2);
            if (novoProduto.SubCategoria == string.Empty)
                novoProduto.SubCategoria = campos[BB_COL_SUBCATEGORIA_2].Substring(1, campos[BB_COL_SUBCATEGORIA_2].Length - 2);
            if (int.TryParse(campos[BB_COL_COMPOSICAO].Trim(new char[] { '"' }), out inteiro))
                novoProduto.Composicao = inteiro;
            if (int.TryParse(campos[BB_COL_MATERIA_PRIMA].Trim(new char[] { '"' }), out inteiro))
                novoProduto.MateriaPrima = inteiro;
            if (int.TryParse(campos[BB_COL_MATERIAL_EXPEDIENTE].Trim(new char[] { '"' }), out inteiro))
                novoProduto.MaterialExpediente = inteiro;
            if (int.TryParse(campos[BB_COL_PARA_VENDA].Trim(new char[] { '"' }), out inteiro))
                novoProduto.ParaVenda = inteiro;
            novoProduto.Moeda = campos[BB_COL_MOEDA].Substring(1, campos[BB_COL_MOEDA].Length - 2);

            return novoProduto;
        }