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()
def neuerVorgang(self): self.vorgang = Vorgang() self.alte_kundenvorgaenge = None self.liter_alte_abfuellungen = 0 self.rabattstufe_berechnen = True self.modusSpeichern() self.update()
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()
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, ])
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
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)