/********************************************************************************
*********************************************************************************
*Projeto:	TCgertec
*Arquivo:	tabelas_SQLite.c
*Descrição:	Contém funções para o busca no banco de dados
*Data da Criação:	01/06/2006

*Revisão:	1.0
*Data:		10/06/2006
*Modificações:

**********************************************************************************
**********************************************************************************

Funções e procedimentos utilizados no arquivo

Preco SeekBarCode(int *rc,char *barras,int *achou) - procura na tabela de preço
Bonus SeekBonus(int *rc,char *code,int *achou) - procura na tabela de bonus

********************************************************************************/

/*-------------------------------------------------------------------------------
				INCLUDES
-------------------------------------------------------------------------------*/

#include <stdio.h>
#include <string.h>
#include <sqlite3.h> // Biblioteca do SQLite

#include "tabelas_SQLite.h" // possui os tipos de dados


/********************************************************************************
>>>>Preco SeekBarCode(int *rc,char *barras,int *achou) <<<<
---------------------------------------------------------------------------------
*Função:	Preco SeekBarCode(int *rc,char *barras,int *achou)
*Descrição:	Procura um código de barras

*Entrada:	rc: referência da conexão com o banco de dados
		barras: string com o código de barras lido

*Saída:		Retorna uma variável do tipo Preco com informações do produto pesquisado
		achou: variável para verificar se o código foi encontrado
			1 - produto foi encontrado
			0 - produto não foi encontrado

*Data da Criação:	10/10/2006
*Modificações:

*Obs:

********************************************************************************/
Preco SeekBarCode(sqlite3 *db,char *barras,int *achou)
{
		
	char *erro;
	char query[100];
	Preco prod; //variável que receberá informações dos produtos
	char ***azResult;
	int linha;
	int coluna;
	
	bzero(query,sizeof(query)); // limpa a string de query
	bzero(&prod,sizeof(Preco));
	
	sprintf(query,"SELECT * FROM %s WHERE %s = %s",PRICE,BARCODEL,barras); //Monta a string de busca
	printf("QUERY: %s\n",query);
	/*if (rc != SQLITE_OK)
	{
		printf("Produto nao encontrado\n");
		*achou = 0;
		return prod;
	}*/
	
	//Seleciona os campos
	sqlite3_get_table(&db,query,azResult,&linha,&coluna,&erro);
	printf("LINHA: %d, COLUNA: %d, ERRO: %s\n",linha,coluna,erro);
	/*sqlite3_get_table(db,query,azResult[2],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[3],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[4],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[5],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[6],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[7],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[8],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[9],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[10],linha,coluna,&erro);
	sqlite3_get_table(db,query,azResult[11],linha,coluna,&erro);*/
	
	//Atribui os campos ás váriáveis da estrutura produto
	/*strcpy(prod.nome,azResult[1]); 
	strcpy(prod.preco,azResult[2]);
    	prod.Xnome= atoi(azResult[3]);
    	prod.Ynome= atoi(azResult[4]);
    	prod.Xpreco= atoi(azResult[5]);
    	prod.Ypreco= atoi(azResult[6]);
    	strcpy(prod.cor,azResult[7]);
    	strcpy(prod.background,azResult[8]);
    	if (azResult[9]!= NULL)
    	strcpy(prod.imagem1,azResult[9]);
    	if (azResult[10]!= NULL)
    	strcpy(prod.imagem2,azResult[10]);
    	if (azResult[11]!= NULL)
    	strcpy(prod.imagem3,azResult[11]);*/
	
 	*achou = 1;
 	return prod;
} 

/********************************************************************************
>>>> Bonus SeekBonus(int *rc,char *code,int *achou) <<<<
---------------------------------------------------------------------------------
*Função:	Bonus SeekBonus(int *rc,char *code,int *achou)
*Descrição:	Procura um código de barras

*Entrada:	rc: Referência ao banco de dados
		code: string com o código do cartão ligo
*Saída:		Retorna uma variável do tipo Bonus
		achou: variável para verificar se o código foi encontrado
			1 - produto foi encontrado
			0 - produto não foi encontrado

*Data da Criação:	10/10/2006
*Modificações:

*Obs: o funcionamento desta função é semelhante a anterior

********************************************************************************/
Bonus SeekBonus(sqlite3 *db,char *code,int *achou)
{
	char *erro;
	char query[100];
	Bonus bonus; //variável que receberá informações dos produtos
	char ***azResult[12];
	int *linha;
	int *coluna;
	
	bzero(query,sizeof(query)); // limpa a string de query
	bzero(&bonus,sizeof(Bonus));
	
	sprintf(query,"SELECT * FROM %s WHERE %s = \"%s\";",CARD,CARDCODEL,code); //Monta a string de busca
	
	/*if (rc != SQLITE_OK)
	{
		printf("Cartao nao encontrado");
		*achou = 0;
		return bonus;
	}*/
	
	
	strcpy(bonus.nome,sqlite3_get_table(db,query,azResult[1],linha,coluna,&erro));
	strcpy(bonus.bonus,sqlite3_get_table(db,query,azResult[2],linha,coluna,&erro));
	
	if (azResult[3]  != NULL )
	strcpy(bonus.imagem,sqlite3_get_table(db,query,azResult[2],linha,coluna,&erro));
	
	*achou = 1;
	return bonus;
}
