Exemplo n.º 1
0
 def post(self):
     if self.objjson.has_key("padre") and self.objjson.has_key("datos") and type(self.objjson["datos"]) == list:
         try:
             idpadre = int(self.objjson["padre"])
         except:
             self.errornor("idpadre erróneo %s" % self.objjson["padre"])
             return
         datos = self.objjson["datos"]
         ancestor_key = self.session["usuario"].tienda
         padre = todosmodelos.Otros.get_by_id(idpadre, parent=ancestor_key)
         if not padre:
             self.errornor("idpadre no existe")
             return
         kpadre = padre.key
     else:
         self.errornor("padre erróneo")
         return
     ope = self.objjson["ope"]
     if ope == "ins":
         va = ["nombre", "descrip"]
         ta = [80, 200]
         self.devol = []
         self.numd = 0
         for cam in datos:
             if not self.existeen(["nombre", "descrip", "precio", "grupo"], cam) or not self.loncadeen(va, ta, cam):
                 self.errorcomp("error en campos")
                 return
             try:
                 pre = float(cam["precio"])
                 gr = cam["grupo"][:80]
             except:  # ValueError as e:
                 self.errorcomp("precio, id")  # %s" % e)
                 return
             uot = todosmodelos.UnOtros(
                 parent=kpadre, nombre=cam["nombre"], descrip=cam["descrip"], grupo=gr, precio=pre
             )
             k = uot.put()
             if k:
                 self.devol.append([k.integer_id(), k.urlsafe()])
                 self.numd += 1
                 # self.ok(k.integer_id(), k.urlsafe())
             else:
                 self.errorcomp("no se pudo grabar.")
         self.ok(self.devol, 1)
     elif ope == "mod":
         va = ["nombre", "descrip"]
         ta = [80, 200]
         self.devol = []
         self.numd = 0
         for cam in datos:
             if not self.existeen(["id", "nombre", "descrip", "precio", "grupo"], cam) or not self.loncadeen(
                 va, ta, cam
             ):
                 self.errorcomp("error en campos")
                 return
             try:
                 pre = float(cam["precio"])
                 gr = cam["grupo"][:80]
                 id = int(cam["id"])
             except:  # ValueError as e:
                 self.errorcomp("precio, id")  # %s" % e)
                 return
             x = todosmodelos.UnOtros.get_by_id(id, parent=kpadre)
             if not x:
                 self.errorcomp("No se puede encontrar id")
                 return
             x.populate(nombre=cam["nombre"], descrip=cam["descrip"], grupo=gr, precio=pre)
             k = x.put()
             if k:
                 self.devol.append(k.integer_id())
                 self.numd += 1
             else:
                 self.errorcomp("no se pudo grabar")
         self.ok(self.devol, 1)
     elif ope == "del":
         lids = []
         for i in datos:
             try:
                 id = int(i)
             except:
                 self.response.out.write(json.dumps({"error": "i=%d" % i, "ids": ids}))
                 return
             x = False
             x = todosmodelos.UnOtros.get_by_id(id, parent=kpadre)
             if x:
                 if x.keyimagen:
                     img = x.keyimagen.get()
                     img.puntero -= 1
                     if img.puntero < 1:
                         Img.borrarImg_cloud(img)
                     else:
                         img.put()
                         # lids.append(x.keyimagen)
                 lids.append(x.key)
             else:
                 self.response.out.write(json.dumps({"error": "al append id", "ids": ids}))
                 return
         if x:
             todosmodelos.ndb.delete_multi(lids)
             self.ok("ok eliminados")
Exemplo n.º 2
0
	def post(self):
		if self.objjson.has_key("datos") and type(self.objjson["datos"]) == list:
			datos=self.objjson["datos"]
		else:
			self.errornor(u"datos erróneo")
			return
		ope=self.objjson["ope"]
		ancestor_key= todosmodelos.ndb.Key(self.session['usuario'].tienda.kind(),self.session['usuario'].tienda.id(),todosmodelos.Pizzaespe,"pizza")
		if ope=="ins":
			va=["idsal","nuing","nombre","descrip","queso","ingres","masas","grupo"]
			self.devol=[]
			self.numd=0
			for cam in datos:
				if not self.existeen(va,cam) or not self.loncadeen(["nombre","descrip"],[80,200],cam):
					self.errorcomp("error en campos")
					return
				try:
					gru=cam["grupo"][:80]
					nui=int(cam["nuing"])
					idsal=int(cam["idsal"])
					maaux=cam["masas"]
					idsma=[int(i) for i in maaux]
					ingaux=cam["ingres"]
					idsing=[int(i) for i in ingaux]
					que=cam["queso"]==1
				except:
					self.errorcomp("valor erróneo")
					return
				
				piz= todosmodelos.Pizzaespe(parent=ancestor_key,nombre=cam["nombre"],descrip=cam["descrip"],salsa=idsal,queso=que,ingres=idsing,masas=idsma,apartir_numing_cobrar=nui,grupo=gru)
				k=piz.put()
				if k:
					self.devol.append([k.integer_id(), k.urlsafe()])
					self.numd+=1
				else:
					self.errorcomp("no se pudo grabar.")
			self.ok(self.devol,1)
		elif ope=="mod":
			va=["idsal","nuing","nombre","descrip","queso","ingres","masas","id","grupo"]
			self.devol=[]
			self.numd=0
			for cam in datos:
				if not self.existeen(va,cam) or not self.loncadeen(["nombre","descrip"],[80,200],cam):
					self.errorcomp("Faltan campos")
					return
				try:
					gru=cam["grupo"][:80]
					nui=int(cam["nuing"])
					idsal=int(cam["idsal"])
					maaux=cam["masas"]
					if len(maaux)==0:
						idsma=[]
					else:
						idsma=[int(i) for i in maaux]
					ingaux=cam["ingres"]
					if len(ingaux)==0:
						idsing=[]
					else:
						idsing=[int(i) for i in ingaux]
					que=cam["queso"]==1
					id=int(cam["id"])
				except:
					self.errorcomp("valor erróneo")
					return
				x=todosmodelos.Pizzaespe.get_by_id(id,parent=ancestor_key)
				if not x:
					self.errorcomp("No se puede encontrar id")
					return
				x.nombre=cam["nombre"]
				x.descrip=cam["descrip"]
				x.salsa=idsal
				x.queso=que
				x.ingres=idsing
				x.masas=idsma
				x.apartir_numing_cobrar=nui
				x.grupo=gru
				k=x.put()
				if k:
					self.devol.append(k.integer_id())
					self.numd+=1
				else:
					self.errorcomp("no se pudo grabar")
			self.ok(self.devol,1)
		elif ope=="del":
			lids=[]
			for i in datos:
				try:
					id=int(i)
				except:
					self.response.out.write(json.dumps({"error":"i=%d" % i,"ids":datos}))
					return
				x=False
				x=todosmodelos.Pizzaespe.get_by_id(id,parent=ancestor_key)
				if x:
					if x.keyimagen:
						img=x.keyimagen.get()
						img.puntero-=1
						if img.puntero < 1:
							Img.borrarImg_cloud(img)
						else:
							img.put()
					lids.append(x.key)
				else:
					self.response.out.write(json.dumps({"error":"al append id","ids":datos}))
					break
			if x:
				todosmodelos.ndb.delete_multi(lids)
				self.ok("ok eliminados")
Exemplo n.º 3
0
	def post(self):
		if  not self.objjson.has_key("datos"):
			self.errornor("error en datos")
			return
		ope=self.objjson["ope"]
		datos=self.objjson["datos"]
		self.ancestor_key= self.session['usuario'].tienda
		if ope=="ins":
			reco=self.comprobar(datos)
			if reco:
				try:
					okofe=self.grab_pro_trans(datos,reco[0],reco[1],reco[2],False)
					self.ok((okofe[0],okofe[1]),okofe[2])
				except Exception as e:
					self.errornor("Error al grabar oferta=%s" % e.message)
		elif ope=="mod":
			try:
				id=int(datos["id"])
			except:
				self.errornor("id erróneo")
				return
			x= todosmodelos.Oferta.get_by_id(id,parent=self.ancestor_key)
			if not x:
				self.errornor("No se puede encontrar id")
				return
			datos["pakey"]=x.key
			reco=self.comprobar(datos)
			if reco:
				try:
					okofe=self.grab_pro_trans(datos,reco[0],reco[1],reco[2],x)
					self.ok((okofe[0],okofe[1]),okofe[2])
				except Exception as e:
					self.errornor("Error al modificar oferta=%s" % e.message)
		elif ope=="del":
			lids=[]
			for i in datos:
				try:
					id=int(i)
				except:
					self.response.out.write(json.dumps({"error":"en id %d" % i,"ids":datos}))
					return
				x=False
				x=todosmodelos.Oferta.get_by_id(id,parent=self.ancestor_key)
				if x:
					if x.keyimagen:
						img=x.keyimagen.get()
						img.puntero-=1
						if img.puntero < 1:
							Img.borrarImg_cloud(img)
						else:
							img.put()
					lids.append(x.key)
					uoQry=todosmodelos.ofertadetalle.query(ancestor=x.key)
					lids.extend([d for d in uoQry.iter(keys_only=True)])
					#for d in uoQry.iter(keys_only=True):
					#	lids.append(d)
				else:
					self.response.out.write(json.dumps({"error":"al append id","ids":datos}))
					break
			if x:
				todosmodelos.ndb.delete_multi(lids)
				self.ok("ok eliminados")