/**
 *
 */
var persistenceBanco;
var callbackGlobal;
var erro;
function SincClientes(ip, banco, empresa, vendedor, callback) {

	callbackGlobal = callback;

	var select = "EMPRESAID, VENDEDORID, NOME, FANTASIA, CPF_CNPJ, INSC_EST, RESPONSAVEL, LOGRADOURO, NUMERO, BAIRRO, COMPLEMENTO, CIDADE, TELEFONE, CELULAR, ATIVO, OBS, CEP, EMAIL, LIMITE_CREDITO, FORMA_PGTOID, LISTA_PRECOID, ULT_DATA, ULT_TOTAL".split(", ");
	var from = "dbo.VW_MOBILE_CLIENTES";
	var where = "EMPRESAID = " + empresa + " and VENDEDORID = " + vendedor;

	try {

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

			var clientesAdicionar = [];

			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 cliente = new Cliente();
				cliente.empresaId = novasColunas.getItem("EMPRESAID");
				cliente.vendedorId = novasColunas.getItem("VENDEDORID");
				cliente.nome = novasColunas.getItem("NOME");
				cliente.fantasia = novasColunas.getItem("FANTASIA");
				cliente.cpfCnpj = novasColunas.getItem("CPF_CNPJ");
				cliente.insEst = novasColunas.getItem("INSC_EST");
				cliente.responsavel = novasColunas.getItem("RESPONSAVEL");
				cliente.logadouro = novasColunas.getItem("LOGRADOURO");
				cliente.numero = novasColunas.getItem("NUMERO");
				cliente.bairro = novasColunas.getItem("BAIRRO");
				cliente.complemento = novasColunas.getItem("COMPLEMENTO");
				cliente.cidade = novasColunas.getItem("CIDADE");
				cliente.telefone = novasColunas.getItem("TELEFONE");
				cliente.celular = novasColunas.getItem("CELULAR");
				cliente.ativo = novasColunas.getItem("ATIVO");
				cliente.obs = novasColunas.getItem("OBS");
				cliente.cep = novasColunas.getItem("CEP");
				cliente.email = novasColunas.getItem("EMAIL");
				cliente.limiteCredito = novasColunas.getItem("LIMITE_CREDITO");
				cliente.formaPagamento = novasColunas.getItem("FORMA_PGTOID");
				cliente.listaPrecoId = novasColunas.getItem("LISTA_PRECOID");
				cliente.ultData = novasColunas.getItem("ULT_DATA");
				cliente.ultTotal = novasColunas.getItem("ULT_TOTAL");
				cliente.sinc = 1;

				clientesAdicionar[i] = cliente;
			}
			apagarTodosClientes(clientesAdicionar);
		});

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

}

function apagarTodosClientes(clientesAdicionar) {
	abrirBanco(function(a) {
		persistenceBanco = a;

		persistenceBanco.clientes.clear().done(function(results) {
			adicionarBanco(persistenceBanco, 'clientes', clientesAdicionar, function(a) {
				callbackGlobal();
			});
		});
	});
}
