Пример #1
0
	def get(self):
		pagina = self.request.get('pagina')
		if not pagina:
			pagina = 1	
		else:
			try:
				pagina = int(pagina)
			except ValueError:
				pagina = 1
		if pagina > 0:
			pagina -= 1
			batchsize = 500
			offset = batchsize * pagina

		self.response.headers['Content-Type'] = 'text/csv'
		#self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
		self.response.out.write("cta.Nombre,cta.Apellidos,cta.Puesto,cta.Email,cta.EmailAlt,cta.Pass,cta.Tel,cta.Cel,cta.FechaHora,cta.CodigoCfm,cta.Status,IdEmp,RFC,Nombre Empresa,Logo,Razon Social,Dir.Calle,Dir.Colonia,Dir.Entidad,Dir.Municipio,Dir.Cp,Dir.Numero Suc,Organiso Emp,Otro Organismo,Reg Org. Empresarial,Url,PartLinea,ExpComer,Descripcion,FechaHora Alta Emp.,emp.Status\n")

		ctas = Cta.all().order("FechaHora")
		for cta in ctas.run(batch_size=20000, limit=500):
			empresas = Empresa.all()
			empresas.ancestor(cta)
			for emp in empresas:
				entidad = ''
				entidades = Entidad.all().filter("CveEnt =", emp.DirEnt)
				for ent in entidades:
					entidad = ent.Entidad
				municipio = ''
				municipios = Municipio.all().filter("CveMun =", emp.DirMun)
				for mun in municipios:
					municipio = mun.Municipio
				haslogo = 'no'
				shortlogos = ShortLogo.all().filter("IdEmp =", emp.IdEmp)
				for sl in shortlogos:
					haslogo = 'si'

				self.response.out.write('"' + cta.Nombre + '","' + cta.Apellidos + '","' +  cta.Puesto + '","' +  cta.Email + '","' + cta.EmailAlt + '","' + cta.Pass + '","' + cta.Tel + '","' + cta.Cel + '","' + str(cta.FechaHora) + '","' + cta.CodigoCfm + '","' + str(cta.Status) + '","' + emp.IdEmp + '","' + emp.RFC + '","' + emp.Nombre + '","' + haslogo + '","' + emp.RazonSoc + '","' + emp.DirCalle + '","' + emp.DirCol + '","' + entidad + '","' + municipio + '","' + emp.DirCp + '","' + emp.NumSuc + '","' + emp.OrgEmp + '","' + emp.OrgEmpOtro + '","' + emp.OrgEmpReg + '","' + emp.Url + '","' + str(emp.PartLinea) + '","' + str(emp.ExpComer) + '","' + str(emp.Desc).replace(u'\u00e1',u'a').replace(u'\u00e9',u'e').replace(u'\u00ed',u'i').replace(u'\u00f3',u'o').replace(u'\u00fa',u'u').replace(u'\u00f1',u'n').replace('\n',' ').replace('\r',' ') + '","' + str(emp.FechaHora) + '","' + str(emp.Status) + '"\n')
Пример #2
0
	def post(self):
		self.response.headers['Content-Type'] = 'text/plain'
		try:
			batchsize = int(self.request.get('batchsize'))
			batchnumber = int(self.request.get('batchnumber'))
			if batchsize is None:
				batchsize = 10
			if batchnumber is None:
				batchnumber = 0
		except ValueError:
			batchsize = 10
			batchnumber = 0

		offset = batchnumber * batchsize
		sucs = Sucursal.all()
		for b in MvBlob.all().order ("-FechaHora").run(limit=1):
			sucs.filter("FechaHora >", b.FechaHora)
		sucs.order("FechaHora")#[offset:offset + batchsize]
		logging.info('MvBlob generation, batchsize: ' + str(batchsize) + ',batchnumber: ' + str(batchnumber) + '. [' + str(offset) + ':' + str(offset + batchsize) + ']')
		for suc in sucs.run(offset=offset, limit=batchsize):
			HasOferta = False
			olist = []
			OSs = OfertaSucursal.all().filter("IdSuc =", suc.IdSuc)
			for OS in OSs:
				HasOferta = True
				olist.append(OS.IdOft)
			if HasOferta:
				als = MvBlob.all().filter("IdSuc =", suc.IdSuc)
				for al in als:
					db.delete(al)
				sucdict = {'id': suc.IdSuc, 'nombre': suc.Nombre, 'lat': suc.Geo1, 'long': suc.Geo2, 'fechamod': str(suc.FechaHora)}
				ent = None
	                        entidades = Entidad.all().filter("CveEnt =", suc.DirEnt)
	                        for entidad in entidades:
		                        ent = entidad.Entidad
	                        mun = None
	                        municipios = Municipio.all().filter("CveEnt =", suc.DirEnt).filter("CveMun =", suc.DirMun)
	                        for municipio in municipios:
		                        mun = municipio.Municipio
				sucdict['direccion'] = {'calle': suc.DirCalle, 'colonia': suc.DirCol, 'cp': suc.DirCp,'entidad_id': suc.DirEnt, 'entidad': ent,'municipio_id': suc.DirMun, 'municipio': mun}
				empresas = Empresa.all().filter("IdEmp = ", suc.IdEmp)
	                        for empresa in empresas.run(limit=1):
			                empresadict = {'id': empresa.IdEmp, 'nombre': empresa.Nombre, 'url': empresa.Url, 'url_logo': ''}
		                        sucdict['empresa'] = empresadict
				urllogo = 'http://www.elbuenfin.org/imgs/imageDefault.png'
				ofertaslist = []
				for o in olist:
					ofertas = Oferta.all().filter("IdOft =", o).run()
					for oferta in ofertas:
						url = 'http://www.elbuenfin.org/imgs/imageDefault.png'
		                                try:
		                                        if oferta.Codigo and oferta.Codigo.replace('https://','http://')[0:7] == 'http://':
		                                                url = oferta.Codigo
						except AttributeError:
	                                                err = 'logourl'
						try:
		                                        if oferta.Codigo is None and oferta.BlobKey  and oferta.BlobKey != None and oferta.BlobKey.key() != 'none':
								url = 'http://' + APPID + '/ofimg?id=' + str(oferta.BlobKey.key())
		                                except AttributeError:
		                                        err = 'logourl'
						if url == 'http://www.elbuenfin.org/imgs/imageDefault.png' and oferta.Promocion is not None and oferta.Promocion != '':
							url = oferta.Promocion
						if oferta.Promocion is not None and oferta.Promocion != '':
							urllogo = oferta.Promocion
						ofertadict = {'id': oferta.IdOft, 'oferta': oferta.Oferta, 'descripcion': oferta.Descripcion, 'descuento': oferta.Descuento, 'promocion': oferta.Promocion, 'enlinea': oferta.Enlinea, 'precio': oferta.Precio, 'url': oferta.Url, 'url_logo': url, 'fechapub': str(oferta.FechaHoraPub.strftime('%Y-%m-%d'))}
	                                        palabraslist = []
	                                        palabras = OfertaPalabra.all().filter("IdOft =", oferta.IdOft)
	                                        for palabra in palabras:
		                                        palabraslist.append(palabra.Palabra)
	                                        ofertadict['palabras'] = palabraslist
	                                        cat = None
	                                        categorias = Categoria.all().filter("IdCat =", oferta.IdCat)
	                                        for categoria in categorias:
	                                        	cat = categoria.Categoria
	                                        ofertadict['categoria_id'] = oferta.IdCat
	                                        ofertadict['categoria'] = cat

						ofertaslist.append(ofertadict)
				sucdict['ofertas'] = ofertaslist
				sucdict['empresa']['url_logo'] = urllogo
				mvblob = MvBlob()
				mvblob.FechaHora = suc.FechaHora
				mvblob.IdSuc = suc.IdSuc
				mvblob.Blob = json.dumps(sucdict)
				mvblob.put()
		else:
			pass