ปัญหา คือ ตอนนี้ติดเรื่อง การส่งค่าไอดีของ name ข้ามฟังก์ชั่นค่ะ
ตัวอย่างโค้ดที่ใช้
โค้ด: เลือกทั้งหมด
@app.route('/search/<postID>',methods=['POST'])
def search(postID):
global comp, money, id, row
idd = postID
fname = request.form['name']
#print(idd)
try:
con = psycopg2.connect(host='localhost', database='testppp', user='postgres', password='')
cur = con.cursor()
cur.execute('SELECT version()')
sql = "SELECT id, name, date_to FROM hr_payslip WHERE name='%s'" % fname
try:
cur.execute(sql)
con.commit()
row = cur.fetchall()
for line in row:
id = line[0]
name = line[1]
date = line[2]
print(id, name, date)
return render_template("show.html", rows=row)
except:
con.rollback()
except psycopg2.DatabaseError:
print('Error %s' % psycopg2.DatabaseError)
# -------------------------------------------PDF-----------------------------------------------------
@app.route('/payslippdf/<postID>', methods=['POST'])
def payslippdf(postID):
global comp
idd = postID
#print(idd)
con = psycopg2.connect(host='localhost', database='testppp', user='postgres', password='')
cur = con.cursor()
sql1 = "SELECT name FROM res_company"
try:
cur.execute(sql1)
con.commit()
comp = cur.fetchone()
print(comp)
except:
con.rollback()
sql2 = "SELECT name,amount FROM hr_payslip_line WHERE slip_id = '%s" % id
try:
cur.execute(sql2)
con.commit()
money = cur.fetchall()
print(money)
c = canvas.Canvas("payslip.pdf")
c.setFont("THSarabunNew", 18)
date = time.localtime()
a = time.strftime('%d/%m/%Y', date)
f1 = Frame(inch, 6.25 * inch, 6.5 * inch, 4 * inch, showBoundary=1) # ช่องใหญ่สุด
# --------หัวตาราง-------------------------------------------------------------------------
c.drawString(inch, 11 * inch, "ใบแจ้งเงินเดือน (Payslip)")
c.drawString(inch, 10.75 * inch, "แผนก/Dep.")
c.drawString(inch, 10.5 * inch, "ชื่อสกุล/Emp.")
c.drawString(3.25 * inch, 11 * inch, comp[0])
c.drawString(3.25 * inch, 10.75 * inch, "***")
c.drawString(3.25 * inch, 10.5 * inch, "***")
c.drawImage("md.jpg", 5.5 * inch, 11 * inch, width=1.75 * inch, height=0.5 * inch)
c.drawString(5.5 * inch, 10.75 * inch, "ประจำงวด(PERIOD)1")
c.drawString(5.5 * inch, 10.5 * inch, "วันที่จ่าย(DATE)")
c.drawString(6.7 * inch, 10.5 * inch, a)
c.drawString(1.25 * inch, 10 * inch, "รายได้(Income)")
c.drawString(3.5 * inch, 10 * inch, "รายการหัก(Dediction)")
c.drawString(5.6 * inch, 9.6 * inch, "รวมเงินได้")
c.drawString(5.6 * inch, 9.3 * inch, "รวมเงินหัก")
c.drawString(5.6 * inch, 6.64 * inch, "ลงชื่อ/Sing __________")
c.drawString(5.6 * inch, 6.34 * inch, "วันที่/Date __________")
# --------ตัวตาราง-------------------------------------------------------------------------
for row2 in money:
print(row2[0])
# print(row2[1])
c.drawString(1.1 * inch, 9.6 * inch, row2[0]) # c.drawString(2.75 * inch, 9.6 * inch, row[1])
f1.addFromList(story, c)
f2 = Frame(inch, 6.25 * inch, 4.5 * inch, 4 * inch, showBoundary=1) # ช่องรวมเงิน
f2.addFromList(story, c)
f3 = Frame(inch, 6.25 * inch, 4.5 * inch, 3.65 * inch, showBoundary=0.5) # ช่องรายการหัก
f3.addFromList(story, c)
f4 = Frame(inch, 6.25 * inch, 2.25 * inch, 4 * inch, showBoundary=0.5) # ช่องรายได้
f4.addFromList(story, c)
f5 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.6 * inch, showBoundary=0.5) # ช่องล่างซ้าย
f5.addFromList(story, c)
f6 = Frame(inch, 6.25 * inch, 1.4 * inch, 0.6 * inch, showBoundary=1) # ช่องล่างขวา
f6.addFromList(story, c)
f7 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.3 * inch, showBoundary=0.5) # ช่องล่างสุด
f7.addFromList(story, c)
c.showFullScreen0()
c.showPage()
c.save()
except:
con.rollback()
return render_template("payslip.html")
if __name__ == '__main__':
app.run(debug=True)