/**
 *
 */

var persistenceBanco;
var callbackGlobal;
var erro;
function SincProdutos(ip, banco, empresa, callback) {

	callbackGlobal = callback;

	var select = "EMPRESAID,PRODUTOID,CODIGO,DESCRICAO,CODIGO_BARRA,GRUPOID,GRUPO,UN,DESCONTO_MAX,VALOR,ESTOQUE,LINHAID,COLUNAID,LINHA,COLUNA,UNIDADEID".split(",");
	var from = "dbo.VW_MOBILE_PRODUTOS2";
	var where = "EMPRESAID = " + empresa;

	try {

		var servico = new ServicoConsulta(ip, banco, montarSqlSelect(select, from, where), true, function(retorno) {

			var produtosAdicionar = [];

			for (var i = 0; i < retorno.length; i++) {

				var colunas = retorno[i].split("#c#");

				var novasColunas = new HashTable();

				for (var j = 0; j < colunas.length; j++) {
					if (colunas[j] == null) {
						colunas[j] = "";
					}
					novasColunas.setItem(select[j], colunas[j]);
				}

				var produto = new Produto();
				produto.empresaId = novasColunas.getItem("EMPRESAID");
				produto.produtoId = novasColunas.getItem("PRODUTOID");
				produto.codigo = novasColunas.getItem("CODIGO");
				produto.descricao = novasColunas.getItem("DESCRICAO");
				produto.codigoBarra = novasColunas.getItem("CODIGO_BARRA");
				produto.grupoId = novasColunas.getItem("GRUPOID");
				produto.grupo = novasColunas.getItem("GRUPO");
				produto.un = novasColunas.getItem("UN");
				produto.descontoMax = novasColunas.getItem("DESCONTO_MAX");
				produto.valor = novasColunas.getItem("VALOR");
				produto.estoque = novasColunas.getItem("ESTOQUE");
				produto.linhaId = novasColunas.getItem("LINHAID");
				produto.colunaId = novasColunas.getItem("COLUNAID");
				produto.linha = novasColunas.getItem("LINHA");
				produto.coluna = novasColunas.getItem("COLUNA");
				produto.unidadeId = novasColunas.getItem("UNIDADEID");

				produtosAdicionar[i] = produto;
			}
			apagarTodos(produtosAdicionar);
		});

	} catch(e) {
		e.message = e.message + "\nBanco: " + from;
		throw e;
	}

}

function apagarTodos(produtosAdicionar) {
	abrirBanco(function(a) {
		persistenceBanco = a;

		persistenceBanco.produtos.clear().done(function(results) {

			adicionarBanco(persistenceBanco, "produtos", produtosAdicionar, function(i) {
				callbackGlobal();
			});
		});
	});
}
