Exemplo n.º 1
0
 def transitbuchung(self, betrag, beschreibung):
     tse_trxnum = None
     tse_time_start = None
     try:
         tse = TSE()
         response = tse.transaction_start('', '')
         tse_trxnum = response.transactionNumber
         tse_time_start = response.logTime
     except TSEException:
         pass
     v = Vorgang()
     s = Speicher()
     v.newItem(1,
               beschreibung=beschreibung,
               einzelpreis=betrag,
               steuersatz=0.0)
     v.setPayed(True)
     v.setStatus('transit')
     s.speichereZahlung(v, 'transit', betrag)
     v = s.ladeVorgang(v.ID)
     kb = Kassenbeleg(v,
                      'transit',
                      tse_trxnum=tse_trxnum,
                      tse_time_start=tse_time_start)
     self.get_kassenstand()
     self.calculate()
Exemplo n.º 2
0
 def neuerVorgang(self):
     self.vorgang = Vorgang()
     self.alte_kundenvorgaenge = None
     self.liter_alte_abfuellungen = 0
     self.rabattstufe_berechnen = True
     self.modusSpeichern()
     self.update()
Exemplo n.º 3
0
    text("%i Liter Saft, gepresst, gefiltert, pasteurisiert und verpackt in Bag-in-Box." % iv.getLiterzahl(), "Wir haben hergestellt:")
    text("Das gelieferte Obst wurde bei uns separat verarbeitet und der hergestellte Saft wurde dem Lieferanten wieder übergeben. Eine Beimischung von Zutaten erfolgte nicht. Die Vermischung mit konventioneller Ware ist ausgeschlossen, da alle Maschinen vorher gereinigt wurden (Verarbeitung der Bio-Ware morgens als erstes).", "Verfahren:")
    text("Datum der Verarbeitung: %s\nUnsere Öko-Kontrollnummer: DE-BW-003-62284-B\nZuständige Kontrollstelle: DE-ÖKO-003" % iv.getZeitpunkt().strftime('%d.%m.%Y'))
    
    text('\n\n\n_________________________________________________________________________\nBernd Wurst, Betriebsinhaber')
      
    _Footer()
    
    canvas.showPage()
    canvas.save()
    pdfdata = fd.getvalue()
    return pdfdata


if __name__ == '__main__':
    from lib.Vorgang import Vorgang
    import datetime
    i = Vorgang()
    _5er = i.newItem(10, '5er')
    _10er = i.newItem(10, '10er')
    gebraucht_5er = i.newItem(10, 'frischsaft')
    i.setAdresse("Helmut Wurst\nKöchersberg 19\n71540 Murrhardt")
    i.setZeitpunkt(datetime.datetime.now())
    
    print (i) 
    
    pdfdata = PDFBioBeleg(i, 'DE-ÖKO-003')
    pdffile = open('test.pdf', 'w')
    pdffile.write(pdfdata)
    pdffile.close()
Exemplo n.º 4
0
        receive_status_backend(belegliste)
        last_update = datetime.datetime.now()
    else:
        print('no SMS status update needed')
    # Datenbank-Verbindung geht nicht über mehrere Threads
    #thread.start_new_thread(receive_status_backend, (belegliste,))


if __name__ == '__main__':
    from lib.Vorgang import Vorgang
    from lib.Kunde import Kunde
    import sys
    s = Speicher()
    password = getpass.getpass('Code: ')
    if not s.check_password(password):
        print('Falscher Code!')
        sys.exit(1)

    b = Vorgang()
    b.newItem(10, '5er')
    b.newItem(10, '10er')
    b.newItem(10, 'frischsaft')

    b.setKunde(s.sucheKundeTelefon('7192936436')[0])
    send_sms(b)
    b.setID('0000')

    receive_status([
        b,
    ])
Exemplo n.º 5
0
    def vorgangAusgewaehlt(self, listWidgetItem = None, nonsense = None, invoice=None):
        if not invoice:
            if len(self.ui.listWidget_2.selectedItems()) > 0:
                if len(self.ui.listWidget_2.selectedItems()) > 1:
                    invoice = Vorgang()
                    zahlungen = False
                    for selectedItem in self.ui.listWidget_2.selectedItems():
                        tmp = self.speicher.ladeVorgang(self.ui.listWidget_2.itemWidget(selectedItem).getVorgang().ID)
                        invoice.vorgangHinzufuegen(tmp)
                        if tmp.getZahlungen():
                            zahlungen = True
                    self.ui.label_dateiname.setText(u'<em>Mehrere ausgewählt</em>')
                    if not zahlungen:
                        self.ui.button_sammelbeleg.show()
                else:
                    widget = self.ui.listWidget_2.itemWidget(self.ui.listWidget_2.selectedItems()[0])
                    if type(widget) == AbfuellungWidget:
                        invoice = self.speicher.ladeVorgang(widget.getVorgang().ID)
                        self.ui.label_dateiname.setText('%s' % invoice.ID)
                    self.ui.button_sammelbeleg.hide()
        
        if invoice:
            self.__aktueller_vorgang = invoice
            if invoice.isRechnung():
                self.ui.button_anrufen.setEnabled(False)
                self.ui.button_bearbeiten.setEnabled(False)
                self.ui.button_rechnung_storno.setEnabled(True)
                self.ui.button_beleganzeigen.setEnabled(True)
                self.ui.button_bezahlt.setEnabled(False)
            else:
                self.ui.button_bearbeiten.setEnabled(True)
                self.ui.button_rechnung_storno.setEnabled(False)
                self.ui.button_beleganzeigen.setEnabled(False)
                self.ui.button_bezahlt.setEnabled(True)
                self.ui.button_anrufen.setEnabled(True)
            

            text = BelegHTML(invoice, public=False)
            self.ui.textBrowser.setHtml(text)

            if invoice.ID:
                # Wenn mehrere Belegen ausgewählt wurden, ist das None
                self.ui.listWidget_version.show()
                self.updateVersionen(invoice.ID)
            else:
                self.ui.listWidget_version.hide()
                self.ui.button_bezahlt.setEnabled(False)
                self.ui.button_anrufen.setEnabled(False)

            label = u'Ist bezahlt'
            if invoice.getPayed() and not invoice.isRechnung():
                label = u'Ist noch nicht bezahlt'
            self.ui.button_bezahlt.setText(label)

            if invoice.getStatus() == 'postponed':
                self.ui.button_zurueckstellen.setText('Nicht mehr zurückstellen')
            else:
                self.ui.button_zurueckstellen.setText('Zurückstellen')
            self.ui.button_zurueckstellen.setEnabled(not (invoice.getPayed() or invoice.getBanktransfer()))

            if self.year != str(datetime.date.today().year):
                self.ui.button_bearbeiten.setEnabled(False)
                self.ui.button_anrufen.setEnabled(False)
            if len(self.ui.listWidget_2.selectedItems()) > 1:
                self.ui.button_bearbeiten.setEnabled(False)
                self.ui.button_anrufen.setEnabled(False)
        else:
            # Kein Vorgang ausgewählt
            self.ui.textBrowser.clear()
            self.ui.listWidget_version.clear()
            self.ui.button_anrufen.setEnabled(False)
            self.ui.button_bezahlt.setEnabled(False)
            self.ui.button_bearbeiten.setEnabled(False)
            self.ui.button_beleganzeigen.setEnabled(False)
            self.ui.button_zurueckstellen.setEnabled(False)
            self.ui.label_dateiname.setText(u'<em>Kein Vorgang ausgewählt</em>') 
            self.__aktueller_vorgang = None
Exemplo n.º 6
0
            else:
                raise NotImplementedError("Cannot handle part of type %s" %
                                          type(part))
            self.y -= (0.5 * cm)

        self.canvas.showPage()
        self.canvas.save()
        pdfdata = self.fd.getvalue()
        return pdfdata


def InvoiceToPDF(iv):
    pdf = PDF()
    return pdf.renderRechnung(iv)


if __name__ == '__main__':
    import datetime
    from lib.Vorgang import Vorgang
    from lib.BelegRechnung import BelegRechnung
    vorgang = Vorgang()
    for n in range(30):
        dummy = vorgang.newItem(n, None, 'Dummy #%i' % n, 0.01, 0, 'Stk',
                                False, 19.0, 0.0)
    vorgang.kunde.setName('Müller')
    vorgang.setAdresse('Testkunde\nTeststraße 1\nTestort')
    vorgang.setRechnungsdaten('2014-12-10', '2014-9999')
    vorgang.setZeitpunkt(datetime.datetime.now())
    filename = BelegRechnung(vorgang)
    print(filename)