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")
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")
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")