Example #1
0
    def exportMultiple(self):
        files = QtGui.QFileDialog.getOpenFileNames(
            self, None, os.path.join(get_data_dir(), "raw"),
            "Ruwe verkoopdata (*.csv)")

        for file in files:
            proc = Processor(file).process()
            logger.info("%s verwerkt" % os.path.basename(file))

        if not files:
            logger.warn("Geen bestanden geselecteerd")
Example #2
0
    def removeLine(self):
        if self.cart.isCheckedOut():
            logger.warn("Deze transactie is al afgerekend")
            return

        item = self.ui.amountList.selectedItems()

        if not item:
            logger.warn("Geen regel geselecteerd")
            return

        row = self.ui.amountList.row(item[0])
        self.cart.contents.pop(row)
        self.updateReceipt()
Example #3
0
    def __init__(self, filename=""):
        self.products = []

        if not os.path.exists(filename):
            logger.warn("Productdatabase niet gevonden (%s)" % filename)
            return

        self._filename = os.path.abspath(filename)
        with open(self._filename, 'r') as f:
            reader = csv.reader(f, dialect='excel_semicolon')
            for row in reader:
                if len(row) != 4:
                    continue
                product = Product(row[0], row[1], row[2], row[3])
                self.products.append(product)

        num_products = len(self.products)
        if num_products:
            logger.info("%d producten uit database ingeladen" % num_products)
        else:
            logger.warn("Productdatabase is leeg")
Example #4
0
    def addToFile(self, method):
        row = [0] * (len(self.productDb) + 2)
        row[0] = time.strftime('%H:%M:%S')
        row[1] = method

        with open(self.filename, 'r') as f:
            reader = csv.reader(f, dialect='excel_semicolon')
            headerrow = next(reader)

        with open(self.filename, 'a') as f:
            writer = csv.writer(f, dialect='excel_semicolon')
            for entry in self.contents:
                idx = -1
                for i, name in enumerate(headerrow):
                    if name == entry[1]:
                        idx = i
                        break
                if idx == -1:
                    logger.warn('Het product %s is niet gevonden in de rawX' %
                                entry[1])
                    return
                row[idx] += entry[0]
            writer.writerow(row)
Example #5
0
    def export(self):
        date = -1
        for f in os.listdir(os.path.join(get_data_dir(), 'raw')):
            if date < int(f.split('_')[0]):
                date = int(f.split('_')[0])

        if date == -1:
            return logger.warn("Geen raw rapportage gevonden")

        proc = Processor(
            os.path.join(get_data_dir(), 'raw', '%s_raw.csv' % date))
        proc.process()
        os.startfile(proc.outfile)

        logger.info("Geƫxporteerd naar %s_proc.csv" % str(date))
Example #6
0
    def pay(self, method, retour=False):
        if self.cart.isCheckedOut():
            return logger.warn('Deze transactie is al afgerekend')

        if self.cart.isEmpty():
            return

        self.lastMethod = method

        if retour:
            self.cart.negate()
            self.updateReceipt()

        self.cart.checkOut(method)

        self.ui.amountList.setStyleSheet(PROCESSED_STYLE)
        self.ui.productList.setStyleSheet(PROCESSED_STYLE)
        self.ui.priceList.setStyleSheet(PROCESSED_STYLE)
        self.ui.totalAmountLineEdit.setStyleSheet(PROCESSED_STYLE)
        self.ui.totalPriceLineEdit.setStyleSheet(PROCESSED_STYLE)

        self.setPage(list(self.pages.keys())[1])