summaryrefslogtreecommitdiff
path: root/sqlite.go
diff options
context:
space:
mode:
Diffstat (limited to 'sqlite.go')
-rw-r--r--sqlite.go72
1 files changed, 60 insertions, 12 deletions
diff --git a/sqlite.go b/sqlite.go
index 637b76b..6ce6c3c 100644
--- a/sqlite.go
+++ b/sqlite.go
@@ -214,6 +214,11 @@ func saveBill(in bill) {
func showLastBills(count int) {
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
+ cn := "all"
+ if count > 0 {
+ cn = string(count)
+ }
+ fmt.Printf(boldGreen("Loading %s Bills\n"),cn)
rows, err := db.Query("SELECT * FROM timetable")
if count == 0 {
rows, err = db.Query("SELECT * FROM bills ORDER BY date ASC")
@@ -377,13 +382,14 @@ func checkTasks(in []int,billid int) {
checkErr(err)
}
-func uncheckTasks(in []int) {
- ins := strings.Trim(strings.Replace(fmt.Sprint(in)," "," , ",-1),"[]")
- que := fmt.Sprintf("UPDATE timetable SET checkout = ? WHERE id IN (%s)",ins)
+func uncheckTasks(billid int) {
+ //ins := strings.Trim(strings.Replace(fmt.Sprint(in)," "," , ",-1),"[]")
+ //que := fmt.Sprintf("UPDATE timetable SET checkout = ? WHERE id IN (%s)",ins)
//rows,err := db.Query(que)
- stmt, err := db.Prepare(que)
+ //stmt, err := db.Prepare(que)
+ stmt, err := db.Prepare("UPDATE timetable SET checkout = 0 WHERE checkout = ?")
checkErr(err)
- _, err = stmt.Exec(0)
+ _, err = stmt.Exec(billid)
checkErr(err)
}
@@ -648,6 +654,8 @@ func showLastProject() {
}
func addCustomer() {
+ boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Adding new Customer"))
com := getInput("Enter Customer Company: ")
nam := getInput("Enter Customer Name: ")
add := getInput("Enter Address (separate lines by ; [Street;Zip;City;Country]): ")
@@ -659,11 +667,13 @@ func addCustomer() {
checkErr(err)
_, err = stmt.Exec(com,nam,add,sat)
checkErr(err)
- fmt.Println(" Customer Added:",com ,nam, add, sat)
+ fmt.Println(boldGreen(" Customer Successfully Added:"),com ,nam, add, sat)
}
func newProject() {
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Creating new Project"))
if (opentask.id == 0) {
nam := getInput("Enter Project Name: ")
icust := 0
@@ -851,6 +861,8 @@ func allCustomers() {
}
func allProjects() {
+ boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Loading all customers"))
fmt.Println("___All Projects________________")
rows3,err := db.Query("SELECT * FROM customers")
checkErr(err)
@@ -897,7 +909,7 @@ func allProjects() {
if (sumo+sumb) > 0 {
fmt.Printf(" %v:%s \n",uid,prname)
fmt.Printf(" Unbilled: %.2f[h] Billed: %.2f[h] | Total: %.2f[h]\n",sumo,sumb,sumo+sumb)
- fmt.Printf(" First: %s, Last:%s, Fin:%v, For:%v\n",first.Local().Format("2006-01-02 15:04 MST"),last.Local().Format("2006-01-02 15:04 MST"),finish,customer)
+ fmt.Printf(" First: %s, Last:%s, Fin:%v, For:%v\n\n",first.Local().Format("2006-01-02 15:04 MST"),last.Local().Format("2006-01-02 15:04 MST"),finish,customer)
}else{
fmt.Print(" Nothing\n")
}
@@ -909,9 +921,44 @@ func allProjects() {
fmt.Println("_______________________________\n")
}
+func deleteBill(id int) {
+ boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
+ boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Deleting Bill ",id))
+ var prj int
+ var identity,moneys,hours string
+ var date time.Time
+
+ rows,err := db.Query("SELECT project, date, identity, hours, moneys FROM bills WHERE id = $1",id)
+ checkErr(err)
+ if rows.Next() {
+ err = rows.Scan(&prj, &date, &identity, &hours, &moneys)
+ checkErr(err)
+ rows.Close() //good habit to close
+ prstr,custr := getProjectName(prj)
+ hsum := sumFloatArray(string2FloatArray(hours,";"))
+ msum := sumFloatArray(string2FloatArray(moneys,";"))
+ fmt.Printf("%v: For %v- %v (%v) - %.1f[h] : %.2f[€]\n",identity,custr,prstr,date.Local().Format("2006 Mon Jan _2"),hsum,msum)
+ if isSure("Are You Sure?") {
+ uncheckTasks(id) //Set corresponding Tasks to checkout=0
+ stmt, err := db.Prepare("DELETE FROM bills WHERE id = ?")
+ checkErr(err)
+ _, err = stmt.Exec(id)
+ checkErr(err)
+ fmt.Println(boldGreen("Bill ",id," deleted successfully!"))
+ } else {
+ return
+ }
+ }else{
+ fmt.Println(boldRed(id," is Not a known Bill!"))
+ showLastBills(0)
+ }
+}
+
func deleteTask(id int) {
boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Deleting Task ",id))
var chk,prj int
var start,stop time.Time
var task string
@@ -921,7 +968,7 @@ func deleteTask(id int) {
err = rows.Scan(&prj, &start, &stop, &task, &chk)
checkErr(err)
rows.Close() //good habit to close
- fmt.Println(boldGreen("Delete Task", id))
+ //fmt.Println(boldGreen("Delete Task", id))
dur := float64(stop.Sub(start))/(1000000000*60*60)
fmt.Printf("%v: %v (%v-%v) - %.2f h\n",prj,task,start.Local().Format("2006 Mon Jan _2 15:04"),stop.Local().Format("15:04"),dur)
if isSure("Are You Sure?") {
@@ -929,7 +976,7 @@ func deleteTask(id int) {
checkErr(err)
_, err = stmt.Exec(id)
checkErr(err)
- fmt.Println(boldGreen(id," deleted successfully!"))
+ fmt.Println(boldGreen("Task ",id," deleted successfully!"))
} else {
return
}
@@ -941,6 +988,7 @@ func deleteTask(id int) {
func editCustomer(id int) {
boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Editing Customer ",id))
var comp,name,addr string
var satz float64
rows,err := db.Query("SELECT company, name, address, satz FROM customers WHERE id = $1",id)
@@ -955,7 +1003,7 @@ func editCustomer(id int) {
}
rows.Close() //good habit to close
- fmt.Println(boldGreen("Edit Customer",id))
+ //fmt.Println(boldGreen("Edit Customer",id))
fmt.Println("Old Company Name:",comp)
in := getInput("Enter New:")
if in!=""{
@@ -992,6 +1040,7 @@ func editCustomer(id int) {
func editTask(id int) {
boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Edit Task ",id))
var chk,prj int
var start,stop time.Time
var task,startstr,stopstr string
@@ -1007,7 +1056,6 @@ func editTask(id int) {
}
rows.Close() //good habit to close
- fmt.Println(boldGreen("Edit Task ",id))
fmt.Println("Old Name:",task)
in := getInput("Enter New:")
if in!=""{
@@ -1067,6 +1115,7 @@ func editTask(id int) {
func editProject(id int) {
boldGreen := color.New(color.FgGreen, color.Bold).SprintFunc()
boldRed := color.New(color.FgRed, color.Bold).SprintFunc()
+ fmt.Println(boldGreen("Edit Project ",id))
var fin,cust int
var first time.Time
var name,nfirst string
@@ -1075,7 +1124,6 @@ func editProject(id int) {
if rows.Next() {
err = rows.Scan(&name, &first, &fin, &cust)
checkErr(err)
- fmt.Println(boldGreen("Edit Project ",id))
fmt.Println("Old Name:",name)
in := getInput("Enter New:")
if in!=""{