diff --git a/main.go b/main.go index 9d41b48..c22af16 100644 --- a/main.go +++ b/main.go @@ -7,10 +7,8 @@ import ( "html/template" "log" "net/http" - - //"sync" - //"time" - //"net/url" + "net/smtp" + "time" "github.com/gorilla/sessions" _ "github.com/mattn/go-sqlite3" @@ -53,6 +51,11 @@ var ( IDdania int NazwaDania string KosztDania int + + //sprawdza zadluzenie + dataBiletu string + dataAktualna string + roznica float64 ) //const localHost = string("192.168.8.102:9197") @@ -61,6 +64,73 @@ var ( //funkcje sterujące //*************************************************************************** +//############################################################################# +//wyslij maila +//############################################################################# +func wyslijEmail(body string) { + //sprawdz czy kotś zalega + + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + rows3, err := db.Query("SELECT * FROM bilety") + checkErr(err) + for rows3.Next() { + err = rows3.Scan(&IDbiletu, &KtoZabralID, &DataCzas, &KosztBiletu, &CzyZaplacony) + checkErr(err) + dataBiletu := DataCzas + currentTime := time.Now() + dataAktualna := currentTime.Format("2006-1-2 / 3:4:5") + + if KtoZabralID == IDusers { + + input := dataBiletu + layout := "2006-1-2 / 3:4:5" + t, _ := time.Parse(layout, input) + dataBiletu := t + + input1 := dataAktualna + layout1 := "2006-1-2 / 3:4:5" + t1, _ := time.Parse(layout1, input1) + dataAktualna := t1 + + //fmt.Println(dataAktualna) + //fmt.Println(dataBiletu) + + diff := dataAktualna.Sub(dataBiletu) + //fmt.Println(diff) + + roznica := diff.Hours() + //fmt.Println(roznica) + + if roznica > 720 { + if CzyZaplacony == "nie" { + //email start + from := "golang_zaliczenie_pp@moto-boss.pl" + pass := "zaq1@WSX" + to := "kryklo@st.amu.edu.pl" + msg := "From: " + from + "\n" + + "To: " + to + "\n" + + "Subject: Stołówka ZPM - płatności\n\n" + + body + err = smtp.SendMail("serwer1812241.home.pl:587", smtp.PlainAuth("", from, pass, "serwer1812241.home.pl"), from, []string{to}, []byte(msg)) + if err != nil { + log.Printf("smtp error: %s", err) + return + } + log.Print("wysłano poprawnie e-mail z powiadomieniem o zaleganiu") + //email end + } + + } + } + } + //---------------------------------- + rows3.Close() + db.Close() + //----------------------- + +} + //############################################################################# func sesja(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("sesja.gtpl") @@ -174,6 +244,9 @@ func login(w http.ResponseWriter, r *http.Request) { session.Values[User] = true session.Save(r, w) //---------------- + //e-mail------------------- + wyslijEmail(User + ", zalega z płatnościami za posiłki w stołówce! Skontaktuj się z nim lub z administratorem systemu 'Stołówka ZPM' (admin@example.pl), w celu ustalenia wysokości zadłużenia. \n\n Dziękuję,\n Administrator.\n (wiadomość została wygenerowana automatycznie, proszę nie odpowiadaj na nią)") + //------------------------- http.Redirect(w, r, "http://localhost:9197/panel", http.StatusSeeOther) panel(w, r) break