Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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