def process_data(self, data): if not data: self.error_data.append(data) return False data["valdemoro"] = True eciweb_data = DevolucioneseciwebSerializer().serialize(data) if not eciweb_data: self.error_data.append(data) return False if qsatype.FLUtil.sqlSelect( "ew_devolucioneseciweb", "idventaweb", "idventaweb = '{}'".format(eciweb_data["idventaweb"])): self.log( "Error", "La venta {} ya ha sido procesada".format( eciweb_data["idventaweb"])) return True idComanda = self.masAccionesProcessData(eciweb_data) if not idComanda: raise NameError("No se pudo crear la devolución") eciweb_data["idtpv_comanda"] = idComanda eciweb_data["datosdevol"] = data["body"] devoleciweb = EwDevolucioneseciweb(eciweb_data) devoleciweb.save() return True
def process_data(self, data): if not data: self.error_data.append(data) return False idComandaO = qsatype.FLUtil.quickSqlSelect( "ew_ventaseciweb", "idtpv_comanda", "idweb = '{}'".format(data["order_id"])) bodyMensaje = str(data["body"]) print("*******BODYMENSAJE 2******: ", bodyMensaje) bodyMensaje = bodyMensaje.replace("\"", "__aqcomillas__") bodyMensaje = bodyMensaje.replace("'", "\"") bodyMensaje = bodyMensaje.replace("__aqcomillas__", "'") mensajeDevol = json.loads(bodyMensaje) for devolucion in mensajeDevol['message']['returns']: barcode = str(devolucion["ean"]) cantidad = float(devolucion["quantity"]) cantDev = float( qsatype.FLUtil.quickSqlSelect( "tpv_lineascomanda", "cantdevuelta", "idtpv_comanda = {} AND barcode = '{}'".format( idComandaO, barcode))) if not cantDev or cantDev == "None": cantDev = 0 if cantDev >= cantidad: self.log( "Error", "La línea con barcode {} de la venta {} ya ha sido procesada" .format(barcode, data["order_id"])) return False data["valdemoro"] = False eciweb_data = DevolucioneseciwebSerializer().serialize(data) if not eciweb_data: self.error_data.append(data) return False idComanda = self.masAccionesProcessData(eciweb_data) if not idComanda or idComanda == "None": raise NameError("No se pudo crear la devolucion") eciweb_data["idtpv_comanda"] = idComanda eciweb_data["datosdevol"] = data["body"] devoleciweb = EwDevolucioneseciweb(eciweb_data) devoleciweb.save() return True
def process_data(self, data): if not data: self.error_data.append(data) return False idComandaO = qsatype.FLUtil.quickSqlSelect( "ew_ventaseciweb", "idtpv_comanda", "idweb = '{}'".format(data["order_id"])) root = ET.fromstring(data["body"]) for devolucion in root.findall('Devolucion'): barcode = str(devolucion.find("EAN").text)[2:15] cantidad = int(devolucion.find("unidades").text) cantDev = int( qsatype.FLUtil.quickSqlSelect( "tpv_lineascomanda", "cantdevuelta", "idtpv_comanda = {} AND barcode = '{}'".format( idComandaO, barcode))) if not cantDev or cantDev == "None": cantDev = 0 if cantDev >= cantidad: self.log( "Error", "La línea con barcode {} de la venta {} ya ha sido procesada" .format(barcode, data["order_id"])) return False data["valdemoro"] = False eciweb_data = DevolucioneseciwebSerializer().serialize(data) if not eciweb_data: self.error_data.append(data) return False idComanda = self.masAccionesProcessData(eciweb_data) if not idComanda or idComanda == "None": raise NameError("No se pudo crear la devolucion") eciweb_data["idtpv_comanda"] = idComanda eciweb_data["datosdevol"] = data["body"] devoleciweb = EwDevolucioneseciweb(eciweb_data) devoleciweb.save() return True