示例#1
0
    def on_orderCancelButton_clicked(self):
        selection = self.orderTableWidget.selectedItems()
        if not selection:
            return

        index = self.indexFromOrderStatus()
        prevmsg = MM_util.searchlistbyhash(self.listDict[index],
                                           str(selection[4].text()))

        conf = None
        order = None
        if index == 'order':
            order = prevmsg
            for ver in self.listDict['conf']:
                if ver.obj['orderhash'] == order.hash:
                    conf = ver
        elif index == 'conf':
            conf = prevmsg
            order = MM_util.searchlistbyhash(self.listDict['order'],
                                             conf.obj['orderhash'])

        if conf:
            for ver in self.listDict['pay']:
                if ver.obj['confhash'] == conf.hash:
                    self.info("We cannot cancel this Order, " + \
                                "as a Payment has already been sent.")
                    return

        if not self.yorn("Are you sure?"):
            return

        msgstr = MM_util.createcancel(self.myid.hash, self.btcaddr, \
                                    "buyer", self.listDict['conf'], order)

        hash = MM_util.MM_writefile(msgstr)
        MM_util.appendindex('cancel', hash)

        self.do_sendmsgviabm(vendor.obj['bmaddr'], msgstr)
        self.info("Order cancellation message sent to Vendor!")