aboutsummaryrefslogtreecommitdiff
path: root/server/database
diff options
context:
space:
mode:
Diffstat (limited to 'server/database')
-rw-r--r--server/database/database.go8
-rw-r--r--server/database/invoices.go70
2 files changed, 78 insertions, 0 deletions
diff --git a/server/database/database.go b/server/database/database.go
index 2339d29..5e3e940 100644
--- a/server/database/database.go
+++ b/server/database/database.go
@@ -47,5 +47,13 @@ func InitDB() {
Email TEXT)`,
)
init_users.Exec()
+
+ init_invoices, _ := myDatabase.Prepare(
+ `CREATE TABLE IF NOT EXISTS Invoices
+ (id INTEGER PRIMARY KEY AUTOINCREMENT,
+ Data BLOB NOT NULL,
+ Created_on DATETIME)`,
+ )
+ init_invoices.Exec()
}
diff --git a/server/database/invoices.go b/server/database/invoices.go
new file mode 100644
index 0000000..f6e1a4c
--- /dev/null
+++ b/server/database/invoices.go
@@ -0,0 +1,70 @@
+/*
+ * OpenBills - Self hosted browser app to generate and keep track of simple invoices
+ * Version - 0
+ * Licensed under the MIT license - https://opensource.org/licenses/MIT
+ * Copyright (c) 2021 Vidhu Kant Sharma
+*/
+
+// handles all Items related database functions
+
+package database
+
+import (
+ _ "github.com/mattn/go-sqlite3"
+)
+
+type Invoice struct {
+ ID int
+ Data string
+ CreatedON string
+}
+
+/*
+func GetAllItems() []Item {
+ var allItems []Item
+ rows, _ := myDatabase.Query(
+ `SELECT Model, Desc, UnitPrice, HSN, TotalGST, Category, Brand FROM Items`,
+ )
+
+ var (
+ model, desc, cat, brand string
+ unitPrice, GST float64
+ HSN string
+ )
+
+ for rows.Next() {
+ rows.Scan(&model, &desc, &unitPrice, &HSN, &GST, &cat, &brand)
+ allItems = append(allItems, Item{model, desc, unitPrice, HSN, GST, cat, brand})
+ }
+
+ return allItems
+}
+
+func RegisterItem(item Item) bool {
+ itemNames, _ := myDatabase.Query("SELECT model FROM Items")
+
+ register_item, _ := myDatabase.Prepare(
+ `INSERT INTO Items
+ (Model, Desc, UnitPrice, HSN, TotalGST, Category, Brand)
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,
+ )
+
+ // check if item already exists
+ // probably this should be handled by front end
+ // so we can check this without need of using api
+ for itemNames.Next() {
+ var rModel string
+ itemNames.Scan(&rModel)
+ if rModel == item.Model {
+ return false
+ }
+ }
+
+ register_item.Exec(
+ item.Model, item.Description, item.UnitPrice, item.HSN,
+ item.TotalGST, item.Category, item.Brand,
+ )
+
+ return true
+}
+*/