bygdis.fi

git clone https://git.tarina.org/bygdis.fi
Log | Files | Refs | README

commit 480743966548d1fef4c233cefe97b498def90685
parent 2765dcfc4bed43160b894513c53fc1f452f11126
Author: rob <rob@tarina.org>
Date:   Thu, 16 Mar 2023 06:51:51 +0200

mlinvoice integrerat

Diffstat:
Mpublic_html/html/fakturor.html | 4++--
Mserver.py | 68+++++++++++++++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 51 insertions(+), 21 deletions(-)

diff --git a/public_html/html/fakturor.html b/public_html/html/fakturor.html @@ -4,7 +4,6 @@ $def with (alla_fakturor,getkund,getmaksuja,round,getprodukt) <h1>Bygdis.fi</h1> <a href="/admin"><<-----tibaks</a> <h2>Fakturor</h2> -<a href="/fakturor?add=faktura">Lägg till</a> <br> <br> <br> @@ -13,7 +12,8 @@ $for i in alla_fakturor: <br> $if i.company_id: $getkund(i.company_id)<br> - nummer: $i.invoice_no<br> + nr: $i.invoice_no<br> + ref: $i.ref_number<br> datum: $i.invoice_date<br> sista betalningsdag: $i.due_date<br> $ tot = 0 diff --git a/server.py b/server.py @@ -264,10 +264,13 @@ def getDorrkoder(): dorrkoder=db.query("SELECT * FROM dorrkoder ORDER BY datum DESC") return dorrkoder -def sendmail(email, subject, msg): +def sendmail(email, subject, msg, bilaga): #Send mail echomsg = subprocess.Popen(('echo', msg+'\n'+postadmin_signature), stdout=subprocess.PIPE) - sendmsg = subprocess.check_output(('mail', '-r', postadmin, '-s', subject, email), stdin=echomsg.stdout) + if bilaga != '': + sendmsg = subprocess.check_output(('mail.mailutils', '-A', bilaga, '-a', 'From:'+postadmin, '-r', postadmin, '-s', subject, email),stdin=echomsg.stdout) + else: + sendmsg = subprocess.check_output(('mail', '-r', postadmin, '-s', subject, email), stdin=echomsg.stdout) echomsg.wait() #subprocess.call(['echo', msg, '|', 'mail', '-r', 'rob@tarina.org','-s', subject, email]) @@ -334,10 +337,10 @@ class admin(): #Send mail to admin bokning = db.select('bokningar', where='id="'+i.approve+'"')[0] msg = "Bokning godkänd av " + bokning.namn + ' epost: ' + bokning.epost - sendmail(postadmin, 'Bokning godkänd!', msg) + sendmail(postadmin, 'Bokning godkänd!', msg, '') #Send mail to user msg = "Hej " + bokning.namn + " tack din bokning godkändes, du får fakturan inom kort och en dörrkod när fakturan är betald. Tack!" - sendmail(bokning.epost, 'Bokning av Bygdegården lyckades och är godkänd', msg) + sendmail(bokning.epost, 'Bokning av Bygdegården lyckades och är godkänd', msg, '') #update booking db.update('bokningar', where='id="'+i.approve+'"', approved=datetime.datetime.now()) #add to kalender events as privat bokning @@ -348,10 +351,10 @@ class admin(): #Send mail to admin bokning = db.select('bokningar', where='id="'+i.sendrules+'"')[0] msg = "Skickar regler och villkor till " + bokning.namn + ' epost: ' + bokning.epost - sendmail(postadmin, 'Skickar villkor och regler', msg) + sendmail(postadmin, 'Skickar villkor och regler', msg,'') #Send mail to user msg = "Hej " + bokning.namn + "! Gå in här https://bygdis.fi/boka?id="+bokning.bokningshash+" och godkänn regler och villkor för din bokning, du får fakturan inom kort och en dörrkod när fakturan är betald. Tack!" - sendmail(bokning.epost, 'Regler och villkor för Bygdegården', msg) + sendmail(bokning.epost, 'Regler och villkor för Bygdegården', msg,'') #update booking db.update('bokningar', where='id="'+i.sendrules+'"', approved="") raise web.seeother('/admin') @@ -437,11 +440,11 @@ class boka(): if i.villkor=='Ja': #Send mail to admin msg = "Ny bokning! " + i.namn + ' epost: ' + i.epost - sendmail(postadmin, 'Ny bokning!', msg) + sendmail(postadmin, 'Ny bokning!', msg,'') #Send mail to user rules_and_regulations = md_to_text('protokoll/dokument/hyreskontrakt_regler_och_villkor.md') msg = "Hej " + i.namn + "! Tack för att du valde Bygdegården. Vi kontaktar dej som snarast om din boknings förfrågan och du får faktura per epost och en dörrkod när fakturan är betald. Tack! Här under är regler och villkor vilka du har läst och godkänner då du hyr hos oss. \n\n" + rules_and_regulations - sendmail(i.epost, 'Regler och villkor för Bygdegården', msg) + sendmail(i.epost, 'Regler och villkor för Bygdegården', msg,'') raise web.seeother('/tack') class tack(): @@ -452,9 +455,9 @@ class fakturor(): def GET(self): if session.login == 5: viewfile = '' - i = web.input(radera=None,uppdatera=None,fakturera=None,add=None,faktura=None,yes=None) + i = web.input(radera=None,uppdatera=None,fakturera=None,add=None,faktura=None,yes=None,epost=None, kund=None, produkt=None) # - # MLINVOICE Hack COpy Faktura och Lägg till kund och vara i fakturan + # MLINVOICE COpy Faktura och Lägg till kund och vara i fakturan # #curl -b -X https://bygdis.fi/static/mlinvoice/login.php -i -b ~/cookies.txt -c ~/cookies.txt -d 'backlink=0&csrf=pcCFor0ic9KfoQ4jWQ3s&login=???&passwd=????&logon=Kirjaudu' # @@ -469,13 +472,13 @@ class fakturor(): subprocess.check_output(login_mlinvoice) #yes # - if i.add == 'faktura': + if i.add == 'faktura' and i.epost != '' and i.kund != '' and i.produkt != None: url='https://bygdis.fi/static/mlinvoice/copy_invoice.php' copy_mlinvoice = ['curl','-b','X', url , '-i', '-b', basedir+'/sessions/cookies.txt', '-c',basedir+'/sessions/cookies.txt', '-d', 'id=40'] viewfile = subprocess.check_output(copy_mlinvoice) print(viewfile) # - # HACK TO GET LATEST INVOICE NR + # GET LATEST INVOICE NR and ref # senaste = db2.query("SELECT * FROM mlinvoice_invoice ORDER BY id DESC LIMIT 1;")[0] print(senaste) @@ -486,14 +489,41 @@ class fakturor(): invoice = json.loads(next_invoice.decode()) #print(invoice) #print(invoice['invoice_no']) - db2.update('mlinvoice_invoice',where='id="'+str(senaste.id)+'"', invoice_no=invoice['invoice_no'], ref_number=invoice['ref_no']) + # + #KOLLA OM KUNDUPPGIFTER FINNS (lägg till annors) + try: + payer = db2.select('mlinvoice_company', where='email="'+str(i.epost)+'"')[0] + except: + db.insert('mlinvoice_company', email=i.epost, company_name=i.kund) + #LÄGG TILL VAROR + # + pris=getprodukt(i.produkt) + pris=pris.unit_price + db2.insert('mlinvoice_invoice_row', invoice_id=senaste.id, product_id=i.produkt, pcs=1.00, price=float(pris)) + # + print(payer.id) + print(payer.company_name) + db2.update('mlinvoice_invoice',where='id="'+str(senaste.id)+'"', invoice_no=invoice['invoice_no'], ref_number=invoice['ref_no'], company_id=payer.id, state_id=2) + # + #Skicka epost + # + url='https://bygdis.fi/static/mlinvoice/invoice.php' + open_mlinvoice = ['curl','-b','X', url , '-i', '-b', basedir+'/sessions/cookies.txt', '-c',basedir+'/sessions/cookies.txt', '-d', 'id='+str(senaste.id)+'&template=15'] + pdf_file = subprocess.check_output(open_mlinvoice) + pdfhash = hashlib.md5(str(random.getrandbits(256)).encode('utf-8')).hexdigest() + bilaga=basedir+'/public_html/static/pdf/'+pdfhash+'.pdf' + with open(bilaga,'wb') as binary_file: + binary_file.write(pdf_file) + msg = 'faktura' + sendmail(i.epost, 'Faktura', msg, bilaga) raise web.seeother('/fakturor?yes=lyckades') if i.faktura != None: url='https://bygdis.fi/static/mlinvoice/invoice.php' open_mlinvoice = ['curl','-b','X', url , '-i', '-b', basedir+'/sessions/cookies.txt', '-c',basedir+'/sessions/cookies.txt', '-d', 'id='+i.faktura+'&template=15'] pdf_file = subprocess.check_output(open_mlinvoice) pdfhash = hashlib.md5(str(random.getrandbits(256)).encode('utf-8')).hexdigest() - with open(basedir+'/public_html/static/pdf/'+pdfhash+'.pdf','wb') as binary_file: + bilaga=basedir+'/public_html/static/pdf/'+pdfhash+'.pdf' + with open(bilaga,'wb') as binary_file: binary_file.write(pdf_file) raise web.seeother('/static/pdf/'+pdfhash+'.pdf') alla_fakturor = db2.query("SELECT * FROM mlinvoice_invoice ORDER BY id DESC;") @@ -713,7 +743,7 @@ class forgotpass(): db.update('bildadmin', where='name="'+p.name+'"', password=password_hashed) print("lösenordet uppdaterat!") msg = "Ditt nya lösenord till bygdis.fi e: " + unencrypted_password + ' , om du vill ändra lösenordet ti någå ana som du minns så tryck på namne ditt högst op på ruutån efter du loggat in.' - sendmail(p.mail, 'Nytt lösenord till byyns fotoalbum', msg) + sendmail(p.mail, 'Nytt lösenord till byyns fotoalbum', msg,'') raise web.seeother('/forgotpass?error=done') raise web.seeother('/forgotpass?error=fejl') @@ -778,10 +808,10 @@ class register(): adduser(i.user, i.password, i.mail.lower()) #Send mail to Madbaker msg = "Wowowowoweeewaaa! Ny användare på bygdis.fi! " + i.user + ' ' + i.mail - sendmail(postadmin, 'Wowowoweewaaa!', msg) + sendmail(postadmin, 'Wowowoweewaaa!', msg,'') #Send mail to new user msg = "Gratulis " + i.user + ", du har nu ett konto opa bygdis.fi! Logga in med användarnamn å lösenord på sidan https://bygdis.fi/login" - sendmail(i.mail, 'Byyns eji fotoalbum', msg) + sendmail(i.mail, 'Byyns eji fotoalbum', msg,'') session.login = 3 session.user = i.user return web.seeother('/ny') @@ -828,10 +858,10 @@ class nydorrkod(): addDorrkod(dorrkod, i.namn, i.mail.lower()) #Send mail to Madbaker msg = "Wowowowoweeewaaa! Ny dörrkod! " + i.namn + ' ' + i.mail + ' ' + str(dorrkod) - sendmail(postadmin, 'Wowowoweewaaa!', msg) + sendmail(postadmin, 'Wowowoweewaaa!', msg,'') #Send mail to new user msg = "Gratulis " + i.namn + ", du har en dörrkod till Bygdegården: " + str(dorrkod) - sendmail(i.mail, 'Dörrkod till Bygdegården', msg) + sendmail(i.mail, 'Dörrkod till Bygdegården', msg,'') return web.seeother('/dorrkoder') class dorrkoder():