|
|
@@ -349,10 +349,14 @@ func getFees(db *sql.DB, loan int) ([]Fee, error) { |
|
|
|
|
|
|
|
func fetchFeesTemp(db *sql.DB, user int, branch int) ([]FeeTemplate, error) { |
|
|
|
var fees []FeeTemplate |
|
|
|
rows, err := db.Query( |
|
|
|
"SELECT * FROM fee_template " + |
|
|
|
"WHERE user_id = ? OR branch_id = ?", |
|
|
|
user, branch) |
|
|
|
query := `SELECT |
|
|
|
id, user_id, COALESCE(branch_id, 0), amount, perc, type, notes, name, |
|
|
|
category, auto |
|
|
|
FROM fee_template |
|
|
|
WHERE user_id = ? OR branch_id = ? |
|
|
|
` |
|
|
|
|
|
|
|
rows, err := db.Query(query, user, branch) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
return nil, fmt.Errorf("Fee template query error %v", err) |
|
|
@@ -396,6 +400,48 @@ func getFeesTemp(w http.ResponseWriter, db *sql.DB, r *http.Request) { |
|
|
|
json.NewEncoder(w).Encode(fees) |
|
|
|
} |
|
|
|
|
|
|
|
// Fetch fees from the database |
|
|
|
func createFeesTemp(w http.ResponseWriter, db *sql.DB, r *http.Request) { |
|
|
|
var fee FeeTemplate |
|
|
|
var query string |
|
|
|
var row *sql.Row |
|
|
|
var err error |
|
|
|
|
|
|
|
claims, err := getClaims(r) |
|
|
|
// var id int // Inserted estimate's id |
|
|
|
err = json.NewDecoder(r.Body).Decode(&fee) |
|
|
|
if err != nil { w.WriteHeader(422); return } |
|
|
|
|
|
|
|
query = `INSERT INTO fee_template |
|
|
|
( |
|
|
|
user_id, |
|
|
|
branch_id, |
|
|
|
amount, |
|
|
|
perc, |
|
|
|
type, |
|
|
|
notes, |
|
|
|
name, |
|
|
|
auto |
|
|
|
) |
|
|
|
VALUES (?, NULL, ?, ?, ?, ?, ?, ?) |
|
|
|
RETURNING id |
|
|
|
` |
|
|
|
row = db.QueryRow(query, |
|
|
|
claims.Id, |
|
|
|
fee.Amount, |
|
|
|
fee.Perc, |
|
|
|
fee.Type, |
|
|
|
fee.Notes, |
|
|
|
fee.Name, |
|
|
|
fee.Auto, |
|
|
|
) |
|
|
|
|
|
|
|
err = row.Scan(&fee.Id) |
|
|
|
if err != nil { w.WriteHeader(500); return } |
|
|
|
|
|
|
|
json.NewEncoder(w).Encode(fee) |
|
|
|
} |
|
|
|
|
|
|
|
func getMi(db *sql.DB, loan int) (MI, error) { |
|
|
|
var mi MI |
|
|
|
|
|
|
@@ -1501,6 +1547,10 @@ func api(w http.ResponseWriter, r *http.Request) { |
|
|
|
r.Method == http.MethodGet && |
|
|
|
guard(r, 1): |
|
|
|
getFeesTemp(w, db, r) |
|
|
|
case match(p, "/api/fee", &args) && |
|
|
|
r.Method == http.MethodPost && |
|
|
|
guard(r, 1): |
|
|
|
createFeesTemp(w, db, r) |
|
|
|
case match(p, "/api/estimates", &args) && |
|
|
|
r.Method == http.MethodGet && |
|
|
|
guard(r, 1): |
|
|
|