def __init__(self, width, factuur, manager, number, ppointer): self.manager = manager super(factuurListItem, self).__init__( width, 1, getVerenigingNaam(factuur['vereniging_id']).encode('utf-8') + " " + str(factuur['volgnummer'])) self.factuur = factuur self.number = number self.ppointer = ppointer self.final = False
def __init__(self, width, height, factuur): super(factuurInfobox, self).__init__(width, height) #Associated data object self.factuur = factuur #Layout settings self.labelWidth = 19 self.minValueWidth = 20 if 'vereniging_id' in factuur: self.otherPartyLabel = Label(0, 1, "Vereniging:") self.otherPartyValue = Label( 0, 1, getVerenigingNaam(factuur['vereniging_id']).encode('utf-8')) else: self.otherPartyLabel = Label(0, 1, "Leverancier:") self.otherPartyValue = Label( 0, 1, factuur['leverancier'].encode('utf-8')) self.volgnummerLabel = Label(0, 1, "Volgnummer:") self.volgnummerValue = Label(0, 1, str(factuur['volgnummer'])) self.factuurDatumLabel = Label(0, 1, "Factuurdatum:") self.factuurDatumValue = Label(0, 1, factuur['factuurdatum'].encode('utf-8')) self.leverDatumLabel = Label(0, 1, "Leverdatum:") self.leverDatumValue = Label(0, 1, factuur['leverdatum'].encode('utf-8')) self.separatorFill = Fill(0, 0, '|') self.separatorFillIdx = self.addChild(0, 0, self.separatorFill) self.hasVerantwoordelijke = False if 'verantwoordelijke' in factuur: self.hasVerantwoordelijke = True self.verantwoordelijkeLabel = Label(0, 1, "Verantwoordelijke:") self.verantwoordelijkeValue = Label( 0, 1, factuur['verantwoordelijke'].encode('utf-8')) self.otherPartyLabelIdx = self.addChild(0, 0, self.otherPartyLabel) self.otherPartyValueIdx = self.addChild(0, 0, self.otherPartyValue) self.volgnummerLabelIdx = self.addChild(0, 0, self.volgnummerLabel) self.volgnummerValueIdx = self.addChild(0, 0, self.volgnummerValue) self.factuurDatumLabelIdx = self.addChild(0, 0, self.factuurDatumLabel) self.factuurDatumValueIdx = self.addChild(0, 0, self.factuurDatumValue) self.leverDatumLabelIdx = self.addChild(0, 0, self.leverDatumLabel) self.leverDatumValueIdx = self.addChild(0, 0, self.leverDatumValue) if self.hasVerantwoordelijke: self.verantwoordelijkeLabelIdx = self.addChild( 0, 0, self.verantwoordelijkeLabel) self.verantwoordelijkeValueIdx = self.addChild( 0, 0, self.verantwoordelijkeValue) self.resize(width, 0)
def __init__(self, width, factuur, manager): self.manager = manager if 'vereniging_id' in factuur: super(factuurListItem, self).__init__( width, 1, getVerenigingNaam(factuur['vereniging_id']).encode('utf-8') + " " + str(factuur['volgnummer'])) else: super(factuurListItem, self).__init__( width, 1, factuur['leverancier'].encode('utf-8') + " " + str(factuur['volgnummer'])) self.factuur = factuur
def __init__(self, width, height, facturen, manager): super(factuurList, self).__init__(width, height) if 'vereniging_id' in facturen[0]: self.name = getVerenigingNaam(facturen[0]['vereniging_id']).encode('utf-8') else: self.name = "Leveranciers en overige" self.manager = manager self.header = Label(width, 1, self.name, curses.A_REVERSE) self.factuurListbox = Listbox(width, height-2) for factuur in reversed(facturen): self.factuurListbox.append(factuurListItem(width, factuur, manager)) self.factuurListboxIndex = self.addChild(0,2, self.factuurListbox) self.headerIndex = self.addChild(0,0, self.header)
def __init__(self, width, height, factuur): super(factuurInfobox, self).__init__(width, height) #Associated data object self.factuur = factuur #Layout settings self.labelWidth = 19 self.minValueWidth = 20 if 'vereniging_id' in factuur: self.otherPartyLabel = Label(0,1,"Vereniging:") self.otherPartyValue = Label(0,1,getVerenigingNaam(factuur['vereniging_id']).encode('utf-8')) else: self.otherPartyLabel = Label(0,1,"Leverancier:") self.otherPartyValue = Label(0,1,factuur['leverancier'].encode('utf-8')) self.volgnummerLabel = Label(0,1,"Volgnummer:") self.volgnummerValue = Label(0,1,str(factuur['volgnummer'])) self.factuurDatumLabel = Label(0,1,"Factuurdatum:") self.factuurDatumValue = Label(0,1,factuur['factuurdatum'].encode('utf-8')) self.leverDatumLabel = Label(0,1, "Leverdatum:") self.leverDatumValue = Label(0,1,factuur['leverdatum'].encode('utf-8')) self.separatorFill = Fill(0,0,'|') self.separatorFillIdx = self.addChild(0,0,self.separatorFill) self.hasVerantwoordelijke = False if 'verantwoordelijke' in factuur: self.hasVerantwoordelijke = True self.verantwoordelijkeLabel = Label(0,1,"Verantwoordelijke:") self.verantwoordelijkeValue = Label(0,1,factuur['verantwoordelijke'].encode('utf-8')) self.otherPartyLabelIdx = self.addChild(0,0,self.otherPartyLabel) self.otherPartyValueIdx = self.addChild(0,0,self.otherPartyValue) self.volgnummerLabelIdx = self.addChild(0,0,self.volgnummerLabel) self.volgnummerValueIdx = self.addChild(0,0,self.volgnummerValue) self.factuurDatumLabelIdx = self.addChild(0,0,self.factuurDatumLabel) self.factuurDatumValueIdx = self.addChild(0,0,self.factuurDatumValue) self.leverDatumLabelIdx = self.addChild(0,0,self.leverDatumLabel) self.leverDatumValueIdx = self.addChild(0,0,self.leverDatumValue) if self.hasVerantwoordelijke: self.verantwoordelijkeLabelIdx = self.addChild(0,0,self.verantwoordelijkeLabel) self.verantwoordelijkeValueIdx = self.addChild(0,0,self.verantwoordelijkeValue) self.resize(width, 0)
def factuurRetex(factuur, budget): #process regels regels = "" totaal = 0 indx = 0 for regel in factuur['regels']: indx+=1 if 'naam' in regel: naam = regel['naam'] else: naam = prd.getProductNaam(regel['product_id']) regels += naam + " & " + str(regel['aantal']) + " & " regels += _moneyConvert(regel['stukprijs']) + " & " + _moneyConvert(regel['totaalprijs']) + "\\\\\n" totaal += copysign(regel['totaalprijs'], regel['aantal']) info = {} _assoc = vrn.getVerenigingNaam(factuur['vereniging_id']).encode('utf-8') info['factuurregels'] = regels info['vereniging'] = _assoc info['factuurnummer'] = factuur['volgnummer'] info['factuurdatum'] = factuur['factuurdatum'] info['afnamedatum'] = factuur['leverdatum'] info['totaal'] = totaal / 100.0 if 'verantwoordelijke' in factuur: info['verantwoordelijke'] = tex_escape(factuur['verantwoordelijke']) else: info['verantwoordelijke'] = "" if 'saldo_basis_na' in factuur: info['borrelsaldo'] = budget/100.0 else: info['borrelsaldo'] = 0.0 budget += totaal if 'saldo_speciaal' in factuur: info['speciaalsaldo'] = "" info['speciaalsaldona'] = factuur['saldo_speciaal_na'] / 100.0 else: info['speciaalsaldo'] = "" info['speciaalsaldona'] = 0.0 clear() oldpath = os.getcwd() path = "/".join(sys.argv[0].split("/")[:-1]) os.chdir(path) texCode = template % info texFilename = "facturen/" + _assoc + "_" + str(info['factuurnummer']) + ".tex" auxFilename = _assoc + "_" + str(info['factuurnummer']) + ".aux" logFilename = _assoc + "_" + str(info['factuurnummer']) + ".log" pdfFilename = _assoc + "_" + str(info['factuurnummer']) + ".pdf" pdf2Filename = "facturen/" + _assoc + "_" + str(info['factuurnummer']) + ".pdf" texfile = open(texFilename, "w") texfile.write(texCode) texfile.close() if subprocess.check_call(["pdflatex", texFilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) != 0: print "Was unable to compile PDF." sys.exit() else: print "Pdf produced" os.system("mv " + pdfFilename + " " + pdf2Filename) os.system("rm " + auxFilename) os.system("rm " + logFilename) os.chdir(oldpath) return budget
def factuurRetex(factuur, budget): #process regels regels = "" totaal = 0 indx = 0 for regel in factuur['regels']: indx += 1 if 'naam' in regel: naam = regel['naam'] else: naam = prd.getProductNaam(regel['product_id']) regels += naam + " & " + str(regel['aantal']) + " & " regels += _moneyConvert(regel['stukprijs']) + " & " + _moneyConvert( regel['totaalprijs']) + "\\\\\n" totaal += copysign(regel['totaalprijs'], regel['aantal']) info = {} _assoc = vrn.getVerenigingNaam(factuur['vereniging_id']).encode('utf-8') info['factuurregels'] = regels info['vereniging'] = _assoc info['factuurnummer'] = factuur['volgnummer'] info['factuurdatum'] = factuur['factuurdatum'] info['afnamedatum'] = factuur['leverdatum'] info['totaal'] = totaal / 100.0 if 'verantwoordelijke' in factuur: info['verantwoordelijke'] = tex_escape(factuur['verantwoordelijke']) else: info['verantwoordelijke'] = "" if 'saldo_basis_na' in factuur: info['borrelsaldo'] = budget / 100.0 else: info['borrelsaldo'] = 0.0 budget += totaal if 'saldo_speciaal' in factuur: info['speciaalsaldo'] = "" info['speciaalsaldona'] = factuur['saldo_speciaal_na'] / 100.0 else: info['speciaalsaldo'] = "" info['speciaalsaldona'] = 0.0 clear() oldpath = os.getcwd() path = "/".join(sys.argv[0].split("/")[:-1]) os.chdir(path) texCode = template % info texFilename = "facturen/" + _assoc + "_" + str( info['factuurnummer']) + ".tex" auxFilename = _assoc + "_" + str(info['factuurnummer']) + ".aux" logFilename = _assoc + "_" + str(info['factuurnummer']) + ".log" pdfFilename = _assoc + "_" + str(info['factuurnummer']) + ".pdf" pdf2Filename = "facturen/" + _assoc + "_" + str( info['factuurnummer']) + ".pdf" texfile = open(texFilename, "w") texfile.write(texCode) texfile.close() if subprocess.check_call(["pdflatex", texFilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) != 0: print "Was unable to compile PDF." sys.exit() else: print "Pdf produced" os.system("mv " + pdfFilename + " " + pdf2Filename) os.system("rm " + auxFilename) os.system("rm " + logFilename) os.chdir(oldpath) return budget